From 8d774afb2d45592d85725474a704ac99b0624d2c Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Tue, 31 Aug 2010 15:39:25 -0400 Subject: no more pminit, or ELF header at 0x10000 kinit() knows about end and PHYSTOP map all of kernel read/write (rather than r/o instructions) thanks, austin --- defs.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index ca7367d..dca91bb 100644 --- a/defs.h +++ b/defs.h @@ -62,7 +62,7 @@ void ioapicinit(void); // kalloc.c char* kalloc(void); void kfree(char*); -void kinit(char*,uint); +void kinit(); // kbd.c void kbdintr(void); @@ -151,7 +151,6 @@ void uartintr(void); void uartputc(int); // vm.c -void pminit(void); void ksegment(void); void kvmalloc(void); void vmenable(void); -- cgit v1.2.3 From c7c21467c3d3c9f2a04d6fac3b8ef796470b0448 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 2 Sep 2010 14:30:06 -0400 Subject: Oops. Broke the build when I rearranged proc.c --- defs.h | 1 + 1 file changed, 1 insertion(+) (limited to 'defs.h') diff --git a/defs.h b/defs.h index dca91bb..f2724ad 100644 --- a/defs.h +++ b/defs.h @@ -101,6 +101,7 @@ int kill(int); void pinit(void); void procdump(void); void scheduler(void) __attribute__((noreturn)); +void sched(void); void sleep(void*, struct spinlock*); void userinit(void); int wait(void); -- cgit v1.2.3 From f53e6110bed159c8541c6e0d2fc1b1ffac2d141a Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 2 Sep 2010 15:37:05 -0400 Subject: Simplify inituvm and userinit by assuming initcode fits on a page --- defs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index f2724ad..cc3a721 100644 --- a/defs.h +++ b/defs.h @@ -160,7 +160,7 @@ 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); +void inituvm(pde_t*, char*, uint); int loaduvm(pde_t*, char*, struct inode *ip, uint, uint); pde_t* copyuvm(pde_t*,uint); void switchuvm(struct proc*); -- cgit v1.2.3 From 79cd8b3eedeb1f85d3b19fb6119bd5224c4c532a Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 2 Sep 2010 18:28:36 -0400 Subject: Simplify allocuvm/deallocuvm to operate in a contiguous memory model. This makes their interface match up better with proc->sz and also simplifies the callers (it even gets the main body of exec on one page). --- defs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index cc3a721..4de95ad 100644 --- a/defs.h +++ b/defs.h @@ -157,8 +157,8 @@ void kvmalloc(void); void vmenable(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); +int allocuvm(pde_t*, uint, uint); +int deallocuvm(pde_t*, uint, uint); void freevm(pde_t*); void inituvm(pde_t*, char*, uint); int loaduvm(pde_t*, char*, struct inode *ip, uint, uint); -- cgit v1.2.3 From 588644f4728e2707138628c62469ba4eeebe18e9 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Thu, 2 Sep 2010 19:01:25 -0400 Subject: Consistent style in defs.h --- defs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 4de95ad..93a8bc6 100644 --- a/defs.h +++ b/defs.h @@ -161,7 +161,7 @@ int allocuvm(pde_t*, uint, uint); int deallocuvm(pde_t*, uint, uint); void freevm(pde_t*); void inituvm(pde_t*, char*, uint); -int loaduvm(pde_t*, char*, struct inode *ip, uint, uint); +int loaduvm(pde_t*, char*, struct inode *, uint, uint); pde_t* copyuvm(pde_t*,uint); void switchuvm(struct proc*); void switchkvm(); -- cgit v1.2.3 From faad047ab22cbe989c208bff5ecb42608ecb8d7b Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Mon, 13 Sep 2010 15:34:44 -0400 Subject: change some comments, maybe more informative delete most comments from bootother.S (since copy of bootasm.S) ksegment() -> seginit() move more stuff from main() to mainc() --- defs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 93a8bc6..7408d4d 100644 --- a/defs.h +++ b/defs.h @@ -152,7 +152,7 @@ void uartintr(void); void uartputc(int); // vm.c -void ksegment(void); +void seginit(void); void kvmalloc(void); void vmenable(void); pde_t* setupkvm(void); -- cgit v1.2.3 From 4655d42e3b65f906eae8c815fb78331790f6e423 Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Mon, 27 Sep 2010 16:14:33 -0400 Subject: copyout() copies data to a va in a pagetable, for exec() &c usertest that passes too many arguments, break exec --- defs.h | 1 + 1 file changed, 1 insertion(+) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 7408d4d..d08609d 100644 --- a/defs.h +++ b/defs.h @@ -165,6 +165,7 @@ int loaduvm(pde_t*, char*, struct inode *, uint, uint); pde_t* copyuvm(pde_t*,uint); void switchuvm(struct proc*); void switchkvm(); +int copyout(pde_t *pgdir, uint va, void *buf, uint len); // number of elements in fixed-size array #define NELEM(x) (sizeof(x)/sizeof((x)[0])) -- cgit v1.2.3 From 1a81e38b17144624415d252a521fd5a06079d681 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 11 Jan 2011 13:01:13 -0500 Subject: make new code like old code Variable declarations at top of function, separate from initialization. Use == 0 instead of ! for checking pointers. Consistent spacing around {, *, casts. Declare 0-parameter functions as (void) not (). Integer valued functions return -1 on failure, 0 on success. --- defs.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index d08609d..43f35d2 100644 --- a/defs.h +++ b/defs.h @@ -62,7 +62,7 @@ void ioapicinit(void); // kalloc.c char* kalloc(void); void kfree(char*); -void kinit(); +void kinit(void); // kbd.c void kbdintr(void); @@ -117,8 +117,8 @@ void getcallerpcs(void*, uint*); int holding(struct spinlock*); void initlock(struct spinlock*, char*); void release(struct spinlock*); -void pushcli(); -void popcli(); +void pushcli(void); +void popcli(void); // string.c int memcmp(const void*, const void*, uint); @@ -164,7 +164,7 @@ void inituvm(pde_t*, char*, uint); int loaduvm(pde_t*, char*, struct inode *, uint, uint); pde_t* copyuvm(pde_t*,uint); void switchuvm(struct proc*); -void switchkvm(); +void switchkvm(void); int copyout(pde_t *pgdir, uint va, void *buf, uint len); // number of elements in fixed-size array -- cgit v1.2.3 From 417c37115e0c7fc3b2a65c3c4d213e566cbc8807 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 11 Jan 2011 13:51:40 -0500 Subject: more trivial cleanup --- defs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 43f35d2..8ea46d6 100644 --- a/defs.h +++ b/defs.h @@ -161,11 +161,11 @@ int allocuvm(pde_t*, uint, uint); int deallocuvm(pde_t*, uint, uint); void freevm(pde_t*); void inituvm(pde_t*, char*, uint); -int loaduvm(pde_t*, char*, struct inode *, uint, uint); -pde_t* copyuvm(pde_t*,uint); +int loaduvm(pde_t*, char*, struct inode*, uint, uint); +pde_t* copyuvm(pde_t*, uint); void switchuvm(struct proc*); void switchkvm(void); -int copyout(pde_t *pgdir, uint va, void *buf, uint len); +int copyout(pde_t*, uint, void*, uint); // number of elements in fixed-size array #define NELEM(x) (sizeof(x)/sizeof((x)[0])) -- cgit v1.2.3 From 13a96baefc0ff5d8262c4bc8c797bee4b157443c Mon Sep 17 00:00:00 2001 From: Frans Kaashoek Date: Wed, 27 Jul 2011 20:35:46 -0400 Subject: Dirt simple logging Passes usertests and stressfs Seems to recover correctly in a number of simple cases --- defs.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'defs.h') diff --git a/defs.h b/defs.h index 8ea46d6..bbe4ae4 100644 --- a/defs.h +++ b/defs.h @@ -6,6 +6,7 @@ struct pipe; struct proc; struct spinlock; struct stat; +struct superblock; // bio.c void binit(void); @@ -32,6 +33,7 @@ int filestat(struct file*, struct stat*); int filewrite(struct file*, char*, int n); // fs.c +void readsb(int dev, struct superblock *sb); int dirlink(struct inode*, char*, uint); struct inode* dirlookup(struct inode*, char*, uint*); struct inode* ialloc(uint, short); @@ -75,6 +77,12 @@ void lapicinit(int); void lapicstartap(uchar, uint); void microdelay(int); +// log.c +void initlog(void); +void log_write(struct buf*); +void begin_trans(); +void commit_trans(); + // mp.c extern int ismp; int mpbcpu(void); -- cgit v1.2.3