summaryrefslogtreecommitdiff
path: root/defs.h
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2010-07-02 14:51:53 -0400
committerFrans Kaashoek <[email protected]>2010-07-02 14:51:53 -0400
commit40889627ba50db29a64bc6a1553c2b21e6a99b78 (patch)
tree7cb8f51492af706cafdcaf1b01a5cac8073d5a38 /defs.h
parentb7a517f2277670e156f150ee2cb7aae6426c6aef (diff)
downloadxv6-labs-40889627ba50db29a64bc6a1553c2b21e6a99b78.tar.gz
xv6-labs-40889627ba50db29a64bc6a1553c2b21e6a99b78.tar.bz2
xv6-labs-40889627ba50db29a64bc6a1553c2b21e6a99b78.zip
Initial version of single-cpu xv6 with page tables
Diffstat (limited to 'defs.h')
-rw-r--r--defs.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/defs.h b/defs.h
index bcfab55..71dbb14 100644
--- a/defs.h
+++ b/defs.h
@@ -60,9 +60,10 @@ extern uchar ioapicid;
void ioapicinit(void);
// kalloc.c
+extern int nfreemem;
char* kalloc(int);
void kfree(char*, int);
-void kinit(void);
+void kinit(char*,uint);
// kbd.c
void kbdintr(void);
@@ -101,8 +102,6 @@ int kill(int);
void pinit(void);
void procdump(void);
void scheduler(void) __attribute__((noreturn));
-void ksegment(void);
-void usegment(void);
void sleep(void*, struct spinlock*);
void userinit(void);
int wait(void);
@@ -111,6 +110,7 @@ void yield(void);
// swtch.S
void swtch(struct context**, struct context*);
+void jstack(uint);
// spinlock.c
void acquire(struct spinlock*);
@@ -152,6 +152,22 @@ void uartinit(void);
void uartintr(void);
void uartputc(int);
+// vm.c
+#define PGROUNDUP(sz) ((sz+PGSIZE-1) & ~(PGSIZE-1))
+void pminit(void);
+void swkstack(void);
+void vminit(void);
+void printpgdir(uint*);
+uint* setupkvm(void); // XXX need pde_t*
+char* uva2ka(uint*, char*);
+int allocuvm(uint*, char*, uint); // XXX need pde_t*
+void freevm(uint*);
+void inituvm(uint*, char*, char*, uint);
+int loaduvm(uint*, char*, struct inode *ip, uint, uint);
+uint* copyuvm(uint*,uint);
+void ksegment(void);
+void loadvm(struct proc*);
+
// number of elements in fixed-size array
#define NELEM(x) (sizeof(x)/sizeof((x)[0]))