From eb18645f17877de4ced951eed5abac61bdfcd5c5 Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Thu, 5 Aug 2010 12:10:54 -0400 Subject: fix allocuvm() to handle sbrk() with non-page-granularity argument (maybe this never worked, but it works now) --- defs.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 86268b2..b414a5f 100644 --- a/defs.h +++ b/defs.h @@ -153,8 +153,6 @@ void uartintr(void); void uartputc(int); // vm.c -#define PGROUNDUP(sz) ((sz+PGSIZE-1) & ~(PGSIZE-1)) -extern pde_t *kpgdir; void pminit(void); void ksegment(void); void kvmalloc(void); -- cgit v1.2.3 From 2cf6b32d4dbc915f5d3b2d7b0e382c0ad20299be Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Thu, 5 Aug 2010 14:15:03 -0400 Subject: move jkstack to main.c replace jstack with asm()s --- defs.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index b414a5f..6a19244 100644 --- a/defs.h +++ b/defs.h @@ -110,7 +110,6 @@ void yield(void); // swtch.S void swtch(struct context**, struct context*); -void jstack(uint); // spinlock.c void acquire(struct spinlock*); @@ -157,7 +156,6 @@ void pminit(void); void ksegment(void); void kvmalloc(void); void vminit(void); -void jkstack(); void printstack(void); void printpgdir(pde_t *); pde_t* setupkvm(void); -- cgit v1.2.3 From c99599784e950169d85bf1e4446e7dbfb1a40f59 Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Thu, 5 Aug 2010 16:00:59 -0400 Subject: remove some unused vm #defines fix corner cases with alignment when mapping kernel ELF file --- defs.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 6a19244..4a63154 100644 --- a/defs.h +++ b/defs.h @@ -156,8 +156,6 @@ void pminit(void); void ksegment(void); void kvmalloc(void); void vminit(void); -void printstack(void); -void printpgdir(pde_t *); pde_t* setupkvm(void); char* uva2ka(pde_t*, char*); int allocuvm(pde_t*, char*, uint); -- cgit v1.2.3 From c4cc10da7ef6d65f0f654445e0af35b8309f16c2 Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Fri, 6 Aug 2010 11:12:18 -0400 Subject: fix corner cases in exec of ELF put an invalid page below the stack have fork() handle invalid pages --- defs.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 4a63154..b691099 100644 --- a/defs.h +++ b/defs.h @@ -163,7 +163,8 @@ void freevm(pde_t*); void inituvm(pde_t*, char*, char*, uint); int loaduvm(pde_t*, char*, struct inode *ip, uint, uint); pde_t* copyuvm(pde_t*,uint); -void loadvm(struct proc*); +void switchuvm(struct proc*); +void switchkvm(); // number of elements in fixed-size array #define NELEM(x) (sizeof(x)/sizeof((x)[0])) -- cgit v1.2.3 From 83d2db91f75460e1275d67847adec0fca5a9800b Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Tue, 10 Aug 2010 17:08:41 -0400 Subject: allow sbrk(-x) to de-allocate user memory --- defs.h | 1 + 1 file changed, 1 insertion(+) (limited to 'defs.h') diff --git a/defs.h b/defs.h index b691099..a051522 100644 --- a/defs.h +++ b/defs.h @@ -159,6 +159,7 @@ void vminit(void); pde_t* setupkvm(void); char* uva2ka(pde_t*, char*); int allocuvm(pde_t*, char*, uint); +int deallocuvm(pde_t *pgdir, char *addr, uint sz); void freevm(pde_t*); void inituvm(pde_t*, char*, char*, uint); int loaduvm(pde_t*, char*, struct inode *ip, uint, uint); -- cgit v1.2.3 From 789b508d538e6faf635e49f268a4f1f9e9b65f05 Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Wed, 11 Aug 2010 14:34:45 -0400 Subject: uptime() sys call for benchmarking increase PHYSTOP --- defs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index a051522..0197e70 100644 --- a/defs.h +++ b/defs.h @@ -142,7 +142,7 @@ void timerinit(void); // trap.c void idtinit(void); -extern int ticks; +extern uint ticks; void tvinit(void); extern struct spinlock tickslock; -- cgit v1.2.3