summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2018-08-30 15:45:16 -0400
committerFrans Kaashoek <[email protected]>2018-08-30 15:45:16 -0400
commit2c73068e825060d188fd9519ebb5bc59fa39c8b2 (patch)
tree82e61fa50a60bb2fde6d8c68e690451371264745
parente559fd2c5acdb5c3faea2d12c038b52308017ed1 (diff)
downloadxv6-labs-2c73068e825060d188fd9519ebb5bc59fa39c8b2.tar.gz
xv6-labs-2c73068e825060d188fd9519ebb5bc59fa39c8b2.tar.bz2
xv6-labs-2c73068e825060d188fd9519ebb5bc59fa39c8b2.zip
Delete a patch
Adjust typesetting of code
-rw-r--r--mmu.h2
-rwxr-xr-xrunoff5
-rw-r--r--symlink.patch151
3 files changed, 4 insertions, 154 deletions
diff --git a/mmu.h b/mmu.h
index d009d97..a82d8e2 100644
--- a/mmu.h
+++ b/mmu.h
@@ -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
-
diff --git a/runoff b/runoff
index 26593af..be362d0 100755
--- a/runoff
+++ b/runoff
@@ -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)