diff options
| author | rsc <rsc> | 2007-08-24 22:17:54 +0000 | 
|---|---|---|
| committer | rsc <rsc> | 2007-08-24 22:17:54 +0000 | 
| commit | 8d2e9a4867c21f1ff84b78cd82f386394d768b3a (patch) | |
| tree | dfd1fe01a481434fa247d6ad587a05f5b80dd7ae | |
| parent | d7b44dbcfc6c0eec97c60832409f75fc64444d1d (diff) | |
| download | xv6-labs-8d2e9a4867c21f1ff84b78cd82f386394d768b3a.tar.gz xv6-labs-8d2e9a4867c21f1ff84b78cd82f386394d768b3a.tar.bz2 xv6-labs-8d2e9a4867c21f1ff84b78cd82f386394d768b3a.zip  | |
shuffle for formatting
| -rw-r--r-- | fs.c | 30 | ||||
| -rw-r--r-- | sysfile.c | 37 | 
2 files changed, 37 insertions, 30 deletions
@@ -247,6 +247,7 @@ iunlockput(struct inode *ip)    iput(ip);  } +//PAGEBREAK!  // Allocate a new inode with the given type on device dev.  struct inode*  ialloc(uint dev, short type) @@ -295,6 +296,7 @@ iupdate(struct inode *ip)    brelse(bp);  } +//PAGEBREAK!  // Inode contents  //  // The contents (data) associated with each inode is stored @@ -522,6 +524,7 @@ dirlink(struct inode *dp, char *name, uint ino)    return 0;  } +//PAGEBREAK!  // Paths  // Copy the next path element from path into name. @@ -560,6 +563,21 @@ skipelem(char *path, char *name)    return path;  } +static struct inode* _namei(char*, int, char*); + +struct inode* +namei(char *path) +{ +  char name[DIRSIZ]; +  return _namei(path, 0, name); +} + +struct inode* +nameiparent(char *path, char *name) +{ +  return _namei(path, 1, name); +} +  // Look up and return the inode for a path name.  // If parent is set, return the inode for the parent  // and write the final path element to name, which @@ -602,15 +620,3 @@ _namei(char *path, int parent, char *name)    return ip;  } -struct inode* -namei(char *path) -{ -  char name[DIRSIZ]; -  return _namei(path, 0, name); -} - -struct inode* -nameiparent(char *path, char *name) -{ -  return _namei(path, 1, name); -} @@ -74,14 +74,17 @@ sys_write(void)  }  int -sys_fstat(void) +sys_dup(void)  {    struct file *f; -  struct stat *st; +  int fd; -  if(argfd(0, 0, &f) < 0 || argptr(1, (void*)&st, sizeof(*st)) < 0) +  if(argfd(0, 0, &f) < 0)      return -1; -  return filestat(f, st); +  if((fd=fdalloc(f)) < 0) +    return -1; +  fileincref(f); +  return fd;  }  int @@ -97,6 +100,17 @@ sys_close(void)    return 0;  } +int +sys_fstat(void) +{ +  struct file *f; +  struct stat *st; +   +  if(argfd(0, 0, &f) < 0 || argptr(1, (void*)&st, sizeof(*st)) < 0) +    return -1; +  return filestat(f, st); +} +  // Create the path new as a link to the same inode as old.  int  sys_link(void) @@ -152,6 +166,7 @@ isdirempty(struct inode *dp)    return 1;  } +//PAGEBREAK!  int  sys_unlink(void)  { @@ -345,20 +360,6 @@ sys_chdir(void)  }  int -sys_dup(void) -{ -  struct file *f; -  int fd; -   -  if(argfd(0, 0, &f) < 0) -    return -1; -  if((fd=fdalloc(f)) < 0) -    return -1; -  fileincref(f); -  return fd; -} - -int  sys_exec(void)  {    char *path, *argv[20];  | 
