diff options
| author | Frans Kaashoek <kaashoek@mit.edu> | 2018-08-30 15:45:16 -0400 | 
|---|---|---|
| committer | Frans Kaashoek <kaashoek@mit.edu> | 2018-08-30 15:45:16 -0400 | 
| commit | 2c73068e825060d188fd9519ebb5bc59fa39c8b2 (patch) | |
| tree | 82e61fa50a60bb2fde6d8c68e690451371264745 | |
| parent | e559fd2c5acdb5c3faea2d12c038b52308017ed1 (diff) | |
| download | xv6-labs-2c73068e825060d188fd9519ebb5bc59fa39c8b2.tar.gz xv6-labs-2c73068e825060d188fd9519ebb5bc59fa39c8b2.tar.bz2 xv6-labs-2c73068e825060d188fd9519ebb5bc59fa39c8b2.zip | |
Delete a patch
Adjust typesetting of code
| -rw-r--r-- | mmu.h | 2 | ||||
| -rwxr-xr-x | runoff | 5 | ||||
| -rw-r--r-- | symlink.patch | 151 | 
3 files changed, 4 insertions, 154 deletions
| @@ -144,7 +144,6 @@ struct taskstate {    ushort iomb;       // I/O map base address  }; -// PAGEBREAK: 12  // Gate descriptors for interrupts and traps  struct gatedesc {    uint off_15_0 : 16;   // low 16 bits of offset in segment @@ -180,4 +179,3 @@ struct gatedesc {  }  #endif - @@ -14,6 +14,7 @@ pad()  mkdir -p fmt  rm -f fmt/*  cp README fmt +echo > fmt/blank  files=`grep -v '^#' runoff.list | awk '{print $1}'`  n=99  for i in $files @@ -214,7 +215,9 @@ awk '  	# pr -t -2 t.defs | ../pr.pl -h "definitions" | pad  	pr -t -l50 -2 refs | ../pr.pl -h "cross-references" | pad  	# pr.pl -h "definitions" -2 t.defs | pad -	# pr.pl -h "cross-references" -2 refs | pad  +	# pr.pl -h "cross-references" -2 refs | pad +	../pr.pl blank  # make sheet 1 start on left page +	../pr.pl blank  	for i in $files  	do  		../pr.pl -h "xv6/$i" $i diff --git a/symlink.patch b/symlink.patch deleted file mode 100644 index c7caf23..0000000 --- a/symlink.patch +++ /dev/null @@ -1,151 +0,0 @@ -diff -r f8a4e40ab1d6 fs.c ---- a/fs.c	Thu Aug 30 14:32:06 2007 -0400 -+++ b/fs.c	Thu Aug 30 14:29:02 2007 -0400 -@@ -577,12 +577,18 @@ skipelem(char *path, char *name) - // If parent != 0, return the inode for the parent and copy the final - // path element into name, which must have room for DIRSIZ bytes. - static struct inode* --_namei(char *path, int parent, char *name) -+_namei(struct inode *root, char *path, int parent, char *name, int depth) - { -   struct inode *ip, *next; -+  char buf[100], tname[DIRSIZ]; -+ -+  if(depth > 5) -+    return 0; -  -   if(*path == '/') -     ip = iget(ROOTDEV, 1); -+  else if(root) -+    ip = idup(root); -   else -     ip = idup(cp->cwd); -  -@@ -598,10 +604,24 @@ _namei(char *path, int parent, char *nam -       return ip; -     } -     if((next = dirlookup(ip, name, 0)) == 0){ -+      cprintf("did not find %s\n", name); -       iunlockput(ip); -       return 0; -     } --    iunlockput(ip); -+    iunlock(ip); -+    ilock(next); -+    if(next->type == T_SYMLINK){ -+      if(next->size >= sizeof(buf) || readi(next, buf, 0, next->size) != next->size){ -+        iunlockput(next); -+        iput(ip); -+        return 0; -+      } -+      buf[next->size] = 0; -+      iunlockput(next); -+      next = _namei(ip, buf, 0, tname, depth+1); -+    }else -+      iunlock(next); -+    iput(ip); -     ip = next; -   } -   if(parent){ -@@ -615,11 +635,11 @@ namei(char *path) - namei(char *path) - { -   char name[DIRSIZ]; --  return _namei(path, 0, name); -+  return _namei(0, path, 0, name, 0); - } -  - struct inode* - nameiparent(char *path, char *name) - { --  return _namei(path, 1, name); --} -+  return _namei(0, path, 1, name, 0); -+} -diff -r f8a4e40ab1d6 fs.h ---- a/fs.h	Thu Aug 30 14:32:06 2007 -0400 -+++ b/fs.h	Thu Aug 30 13:05:43 2007 -0400 -@@ -33,6 +33,7 @@ struct dinode { - #define T_DIR  1   // Directory - #define T_FILE 2   // File - #define T_DEV  3   // Special device -+#define T_SYMLINK 4  // Symlink -  - // Inodes per block. - #define IPB           (BSIZE / sizeof(struct dinode)) -diff -r f8a4e40ab1d6 syscall.c ---- a/syscall.c	Thu Aug 30 14:32:06 2007 -0400 -+++ b/syscall.c	Thu Aug 30 13:05:29 2007 -0400 -@@ -96,6 +96,7 @@ extern int sys_unlink(void); - extern int sys_unlink(void); - extern int sys_wait(void); - extern int sys_write(void); -+extern int sys_symlink(void); -  - static int (*syscalls[])(void) = { - [SYS_chdir]   sys_chdir, -@@ -118,6 +119,7 @@ static int (*syscalls[])(void) = { - [SYS_unlink]  sys_unlink, - [SYS_wait]    sys_wait, - [SYS_write]   sys_write, -+[SYS_symlink]	sys_symlink, - }; -  - void -diff -r f8a4e40ab1d6 syscall.h ---- a/syscall.h	Thu Aug 30 14:32:06 2007 -0400 -+++ b/syscall.h	Thu Aug 30 13:02:48 2007 -0400 -@@ -19,3 +19,4 @@ - #define SYS_getpid 18 - #define SYS_sbrk   19 - #define SYS_sleep  20 -+#define SYS_symlink 21 -diff -r f8a4e40ab1d6 sysfile.c ---- a/sysfile.c	Thu Aug 30 14:32:06 2007 -0400 -+++ b/sysfile.c	Thu Aug 30 13:10:31 2007 -0400 -@@ -257,6 +257,21 @@ create(char *path, int canexist, short t - } -  - int -+sys_symlink(void) -+{ -+  char *old, *new; -+  struct inode *ip; -+   -+  if(argstr(0, &old) < 0 || argstr(1, &new) < 0) -+    return -1; -+  if((ip = create(new, 0, T_SYMLINK, 0, 0)) == 0) -+    return -1; -+  writei(ip, old, 0, strlen(old)); -+  iunlockput(ip); -+  return 0; -+} -+ -+int - sys_open(void) - { -   char *path; -@@ -393,3 +408,4 @@ sys_pipe(void) -   fd[1] = fd1; -   return 0; - } -+ -diff -r f8a4e40ab1d6 user.h ---- a/user.h	Thu Aug 30 14:32:06 2007 -0400 -+++ b/user.h	Thu Aug 30 13:02:34 2007 -0400 -@@ -21,6 +21,7 @@ int getpid(); - int getpid(); - char* sbrk(int); - int sleep(int); -+int symlink(int); -  - // ulib.c - int stat(char*, struct stat*); -diff -r f8a4e40ab1d6 usys.S ---- a/usys.S	Thu Aug 30 14:32:06 2007 -0400 -+++ b/usys.S	Thu Aug 30 13:05:54 2007 -0400 -@@ -28,3 +28,4 @@ STUB(getpid) - STUB(getpid) - STUB(sbrk) - STUB(sleep) -+STUB(symlink) | 
