diff options
author | rsc <rsc> | 2007-08-21 19:22:08 +0000 |
---|---|---|
committer | rsc <rsc> | 2007-08-21 19:22:08 +0000 |
commit | f32f3638f4c34fbf2fc4398878e6304612bb3283 (patch) | |
tree | cabca9bf9ac8b1465b2c59e27e3dc8020c02e2be /defs.h | |
parent | 2d61a40b2059b9a198e7c4ff04c6ced88cb3ce65 (diff) | |
download | xv6-labs-f32f3638f4c34fbf2fc4398878e6304612bb3283.tar.gz xv6-labs-f32f3638f4c34fbf2fc4398878e6304612bb3283.tar.bz2 xv6-labs-f32f3638f4c34fbf2fc4398878e6304612bb3283.zip |
Various cleanup:
- Got rid of dummy proc[0]. Now proc[0] is init.
- Added initcode.S to exec /init, so that /init is
just a regular binary.
- Moved exec out of sysfile to exec.c
- Moved code dealing with fs guts (like struct inode)
from sysfile.c to fs.c. Code dealing with system call
arguments stays in sysfile.c
- Refactored directory routines in fs.c; should be simpler.
- Changed iget to return *unlocked* inode structure.
This solves the lookup-then-use race in namei
without introducing deadlocks.
It also enabled getting rid of the dummy proc[0].
Diffstat (limited to 'defs.h')
-rw-r--r-- | defs.h | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -40,6 +40,7 @@ int memcmp(const void*, const void*, uint); void* memmove(void*, const void*, uint); int strncmp(const char*, const char*, uint); char* safestrcpy(char*, const char*, int); +int strlen(const char*); // syscall.c void syscall(void); @@ -135,11 +136,16 @@ int readi(struct inode*, char*, uint, uint); int writei(struct inode*, char*, uint, uint); struct inode* mknod(char*, short, short, short); struct inode* dircreat(struct inode*, char*, int, short, short, short); -int dirlookup(struct inode*, char*, int, uint*, uint*); +struct inode* dirlookup(struct inode*, char*, int, uint*); int unlink(char*); void iupdate(struct inode*); int link(char*, char*); struct inode* igetroot(void); +int mkdir(char *path); +struct inode* create(char *path); + +// exec.c +int exec(char*, char**); // number of elements in fixed-size array #define NELEM(x) (sizeof(x)/sizeof((x)[0])) |