diff --git a/kernel/proc.c b/kernel/proc.c
index 8aae51ec8e64b9037bbd570371ec7657df01d5c3..048bc90a28f4e0c141deeb814a6f3ba5bcd8ae95 100755
--- a/kernel/proc.c
+++ b/kernel/proc.c
@@ -168,7 +168,6 @@ found:
      p->vma[i].valid = 0;
      p->vma[i].alloc = 0;
    }
-   p->max_addr = p->sz;
   return p;
 }
 
diff --git a/kernel/proc.o b/kernel/proc.o
index 7e53867a56749c4a1ab9f522acd801fd3e60d9b1..2fd596a496d24f68fce0a3b8b6fa39381760924f 100644
Binary files a/kernel/proc.o and b/kernel/proc.o differ
diff --git a/kernel/sysfile.c b/kernel/sysfile.c
index 56a9662b61908ac3d531c6fa342fa36843ba5a64..6d602d867073529343781c9bb1e233180b272a6b 100755
--- a/kernel/sysfile.c
+++ b/kernel/sysfile.c
@@ -655,8 +655,7 @@ sys_mmap(void)
     if (vma->valid == 0) {
       vma->valid = 1;
       vma->alloc = 0;
-      vma->addr = p->max_addr;
-      p->max_addr += len;
+      vma->addr = p->sz;
       vma->len = len;
       vma->prot = prot;
       vma->flags = flags;
@@ -689,15 +688,14 @@ sys_munmap(void) {
 
   addr = PGROUNDDOWN(addr);
 
-  if(vma->alloc){
-    printf("here\n");
+  if(vma->alloc !=0){
     if( walkaddr( p->pagetable , addr ) != 0)
     {
       if (vma->flags & MAP_SHARED) {
       vma->f->off = vma->off;
       filewrite(vma->f, addr, len);
       }
-      vmunmap(p->pagetable, addr, len/PGSIZE, 1); 
+      //vmunmap(p->pagetable, addr, len/PGSIZE, 1); 
       vma->alloc = 0;
     }
     
diff --git a/kernel/sysfile.o b/kernel/sysfile.o
index f56b7c6d7a43ec68b1f7195ed7dbfac6e03e00c5..142239eef113063fc6612d1d944f10963240d45b 100644
Binary files a/kernel/sysfile.o and b/kernel/sysfile.o differ
diff --git a/kernel/trap.c b/kernel/trap.c
index 2b8f2f5708b9c88dafd5440f27fc85bc27dbb90d..ac5d2bc3d04ca9f13ce1f71185f99929c22f097d 100755
--- a/kernel/trap.c
+++ b/kernel/trap.c
@@ -114,6 +114,7 @@ usertrap(void)
           eunlock(vma->f->ep);
           
           vma->alloc = 1;
+          p->sz+=len;
           break;
         }
       }
diff --git a/kernel/trap.o b/kernel/trap.o
index 6a3035c6687546d5949bfe9446be881393b850c5..5867ff9ec2bee41616e1c2dea3ace2bc1fdada9c 100644
Binary files a/kernel/trap.o and b/kernel/trap.o differ
diff --git a/sdcard.img b/sdcard.img
index 657d3b64edab0a0d84027639c7b378f9139b0297..e9f9ba52ba254a180e2b44909b863ac323fed932 100755
Binary files a/sdcard.img and b/sdcard.img differ
diff --git a/target/kernel b/target/kernel
index 6bb17b5b9b57b6ab83bf883ef3a97b0931172201..cf6f2f151968163af1d2485d3c47d5aa08680013 100755
Binary files a/target/kernel and b/target/kernel differ
diff --git a/target/kernel.asm b/target/kernel.asm
index 13db4cb92083062bb70f849c7e95688163be5ba5..1dfb89ff2be46912ab599e5d38d784e1245bae73 100644
--- a/target/kernel.asm
+++ b/target/kernel.asm
@@ -88,7 +88,7 @@ printint(int xx, int base, int sign)
     consputc(buf[i]);
     80200092:	fff4c503          	lbu	a0,-1(s1)
     80200096:	00008097          	auipc	ra,0x8
-    8020009a:	a64080e7          	jalr	-1436(ra) # 80207afa <consputc>
+    8020009a:	a24080e7          	jalr	-1500(ra) # 80207aba <consputc>
   while(--i >= 0)
     8020009e:	14fd                	addi	s1,s1,-1
     802000a0:	ff2499e3          	bne	s1,s2,80200092 <printint+0x7c>
@@ -120,7 +120,7 @@ void printstring(const char* s) {
         consputc(*s++);
     802000ca:	0485                	addi	s1,s1,1
     802000cc:	00008097          	auipc	ra,0x8
-    802000d0:	a2e080e7          	jalr	-1490(ra) # 80207afa <consputc>
+    802000d0:	9ee080e7          	jalr	-1554(ra) # 80207aba <consputc>
     while (*s)
     802000d4:	0004c503          	lbu	a0,0(s1)
     802000d8:	f96d                	bnez	a0,802000ca <printstring+0x12>
@@ -287,7 +287,7 @@ r_fp()
     8020021c:	f2c080e7          	jalr	-212(ra) # 80200144 <panic>
       consputc(c);
     80200220:	00008097          	auipc	ra,0x8
-    80200224:	8da080e7          	jalr	-1830(ra) # 80207afa <consputc>
+    80200224:	89a080e7          	jalr	-1894(ra) # 80207aba <consputc>
   for(i = 0; (c = fmt[i] & 0xff) != 0; i++){
     80200228:	2985                	addiw	s3,s3,1
     8020022a:	013a07b3          	add	a5,s4,s3
@@ -341,18 +341,18 @@ r_fp()
   consputc('0');
     802002ae:	03000513          	li	a0,48
     802002b2:	00008097          	auipc	ra,0x8
-    802002b6:	848080e7          	jalr	-1976(ra) # 80207afa <consputc>
+    802002b6:	808080e7          	jalr	-2040(ra) # 80207aba <consputc>
   consputc('x');
     802002ba:	07800513          	li	a0,120
-    802002be:	00008097          	auipc	ra,0x8
-    802002c2:	83c080e7          	jalr	-1988(ra) # 80207afa <consputc>
+    802002be:	00007097          	auipc	ra,0x7
+    802002c2:	7fc080e7          	jalr	2044(ra) # 80207aba <consputc>
     802002c6:	84ea                	mv	s1,s10
     consputc(digits[x >> (sizeof(uint64) * 8 - 4)]);
     802002c8:	03c95793          	srli	a5,s2,0x3c
     802002cc:	97da                	add	a5,a5,s6
     802002ce:	0007c503          	lbu	a0,0(a5)
-    802002d2:	00008097          	auipc	ra,0x8
-    802002d6:	828080e7          	jalr	-2008(ra) # 80207afa <consputc>
+    802002d2:	00007097          	auipc	ra,0x7
+    802002d6:	7e8080e7          	jalr	2024(ra) # 80207aba <consputc>
   for (i = 0; i < (sizeof(uint64) * 2); i++, x <<= 4)
     802002da:	0912                	slli	s2,s2,0x4
     802002dc:	34fd                	addiw	s1,s1,-1
@@ -368,8 +368,8 @@ r_fp()
     802002f2:	0004c503          	lbu	a0,0(s1)
     802002f6:	d90d                	beqz	a0,80200228 <printf+0x9a>
         consputc(*s);
-    802002f8:	00008097          	auipc	ra,0x8
-    802002fc:	802080e7          	jalr	-2046(ra) # 80207afa <consputc>
+    802002f8:	00007097          	auipc	ra,0x7
+    802002fc:	7c2080e7          	jalr	1986(ra) # 80207aba <consputc>
       for(; *s; s++)
     80200300:	0485                	addi	s1,s1,1
     80200302:	0004c503          	lbu	a0,0(s1)
@@ -384,17 +384,17 @@ r_fp()
       consputc('%');
     80200318:	8556                	mv	a0,s5
     8020031a:	00007097          	auipc	ra,0x7
-    8020031e:	7e0080e7          	jalr	2016(ra) # 80207afa <consputc>
+    8020031e:	7a0080e7          	jalr	1952(ra) # 80207aba <consputc>
       break;
     80200322:	b719                	j	80200228 <printf+0x9a>
       consputc('%');
     80200324:	8556                	mv	a0,s5
     80200326:	00007097          	auipc	ra,0x7
-    8020032a:	7d4080e7          	jalr	2004(ra) # 80207afa <consputc>
+    8020032a:	794080e7          	jalr	1940(ra) # 80207aba <consputc>
       consputc(c);
     8020032e:	8526                	mv	a0,s1
     80200330:	00007097          	auipc	ra,0x7
-    80200334:	7ca080e7          	jalr	1994(ra) # 80207afa <consputc>
+    80200334:	78a080e7          	jalr	1930(ra) # 80207aba <consputc>
       break;
     80200338:	bdc5                	j	80200228 <printf+0x9a>
   if(locking)
@@ -1443,10 +1443,10 @@ main(unsigned long hartid, unsigned long dtb_pa)
     80200a0a:	0de080e7          	jalr	222(ra) # 80200ae4 <kvminithart>
     trapinithart();
     80200a0e:	00002097          	auipc	ra,0x2
-    80200a12:	f84080e7          	jalr	-124(ra) # 80202992 <trapinithart>
+    80200a12:	f7e080e7          	jalr	-130(ra) # 8020298c <trapinithart>
     plicinithart();  // ask PLIC for device interrupts
     80200a16:	00007097          	auipc	ra,0x7
-    80200a1a:	ea2080e7          	jalr	-350(ra) # 802078b8 <plicinithart>
+    80200a1a:	e62080e7          	jalr	-414(ra) # 80207878 <plicinithart>
     printf("hart 1 init done\n");
     80200a1e:	0000a517          	auipc	a0,0xa
     80200a22:	9d250513          	addi	a0,a0,-1582 # 8020a3f0 <digits+0x70>
@@ -1455,10 +1455,10 @@ main(unsigned long hartid, unsigned long dtb_pa)
   }
   scheduler();
     80200a2e:	00001097          	auipc	ra,0x1
-    80200a32:	6ee080e7          	jalr	1774(ra) # 8020211c <scheduler>
+    80200a32:	6e8080e7          	jalr	1768(ra) # 80202116 <scheduler>
     consoleinit();
     80200a36:	00007097          	auipc	ra,0x7
-    80200a3a:	294080e7          	jalr	660(ra) # 80207cca <consoleinit>
+    80200a3a:	254080e7          	jalr	596(ra) # 80207c8a <consoleinit>
     printfinit();   // init a lock for printf 
     80200a3e:	00000097          	auipc	ra,0x0
     80200a42:	930080e7          	jalr	-1744(ra) # 8020036e <printfinit>
@@ -1476,31 +1476,31 @@ main(unsigned long hartid, unsigned long dtb_pa)
     80200a62:	086080e7          	jalr	134(ra) # 80200ae4 <kvminithart>
     timerinit();     // init a lock for timer
     80200a66:	00005097          	auipc	ra,0x5
-    80200a6a:	408080e7          	jalr	1032(ra) # 80205e6e <timerinit>
+    80200a6a:	3c8080e7          	jalr	968(ra) # 80205e2e <timerinit>
     trapinithart();  // install kernel trap vector, including interrupt handler
     80200a6e:	00002097          	auipc	ra,0x2
-    80200a72:	f24080e7          	jalr	-220(ra) # 80202992 <trapinithart>
+    80200a72:	f1e080e7          	jalr	-226(ra) # 8020298c <trapinithart>
     procinit();
     80200a76:	00001097          	auipc	ra,0x1
     80200a7a:	f24080e7          	jalr	-220(ra) # 8020199a <procinit>
     plicinit();
     80200a7e:	00007097          	auipc	ra,0x7
-    80200a82:	e22080e7          	jalr	-478(ra) # 802078a0 <plicinit>
+    80200a82:	de2080e7          	jalr	-542(ra) # 80207860 <plicinit>
     plicinithart();
     80200a86:	00007097          	auipc	ra,0x7
-    80200a8a:	e32080e7          	jalr	-462(ra) # 802078b8 <plicinithart>
+    80200a8a:	df2080e7          	jalr	-526(ra) # 80207878 <plicinithart>
     disk_init();
     80200a8e:	00005097          	auipc	ra,0x5
-    80200a92:	47c080e7          	jalr	1148(ra) # 80205f0a <disk_init>
+    80200a92:	43c080e7          	jalr	1084(ra) # 80205eca <disk_init>
     binit();         // buffer cache
     80200a96:	00003097          	auipc	ra,0x3
-    80200a9a:	090080e7          	jalr	144(ra) # 80203b26 <binit>
+    80200a9a:	094080e7          	jalr	148(ra) # 80203b2a <binit>
     fileinit();      // file table
     80200a9e:	00003097          	auipc	ra,0x3
-    80200aa2:	494080e7          	jalr	1172(ra) # 80203f32 <fileinit>
+    80200aa2:	498080e7          	jalr	1176(ra) # 80203f36 <fileinit>
     userinit();      // first user process
     80200aa6:	00001097          	auipc	ra,0x1
-    80200aaa:	2c6080e7          	jalr	710(ra) # 80201d6c <userinit>
+    80200aaa:	2c0080e7          	jalr	704(ra) # 80201d66 <userinit>
     printf("hart 0 init done\n");
     80200aae:	0000a517          	auipc	a0,0xa
     80200ab2:	92a50513          	addi	a0,a0,-1750 # 8020a3d8 <digits+0x58>
@@ -3777,7 +3777,7 @@ myproc(void) {
     80201a96:	eb91                	bnez	a5,80201aaa <forkret+0x36>
   usertrapret();
     80201a98:	00001097          	auipc	ra,0x1
-    80201a9c:	f36080e7          	jalr	-202(ra) # 802029ce <usertrapret>
+    80201a9c:	f30080e7          	jalr	-208(ra) # 802029c8 <usertrapret>
 }
     80201aa0:	60e2                	ld	ra,24(sp)
     80201aa2:	6442                	ld	s0,16(sp)
@@ -3789,7 +3789,7 @@ myproc(void) {
     80201aae:	5407ab23          	sw	zero,1366(a5) # 8020b000 <first.1>
     fat32_init();
     80201ab2:	00005097          	auipc	ra,0x5
-    80201ab6:	b42080e7          	jalr	-1214(ra) # 802065f4 <fat32_init>
+    80201ab6:	b02080e7          	jalr	-1278(ra) # 802065b4 <fat32_init>
     myproc()->cwd = ename("/");
     80201aba:	00000097          	auipc	ra,0x0
     80201abe:	f82080e7          	jalr	-126(ra) # 80201a3c <myproc>
@@ -3797,7 +3797,7 @@ myproc(void) {
     80201ac4:	00009517          	auipc	a0,0x9
     80201ac8:	b6c50513          	addi	a0,a0,-1172 # 8020a630 <digits+0x2b0>
     80201acc:	00006097          	auipc	ra,0x6
-    80201ad0:	d9a080e7          	jalr	-614(ra) # 80207866 <ename>
+    80201ad0:	d5a080e7          	jalr	-678(ra) # 80207826 <ename>
     80201ad4:	40a4b023          	sd	a0,1024(s1)
     80201ad8:	b7c1                	j	80201a98 <forkret+0x24>
 
@@ -4033,7 +4033,7 @@ allocpid() {
     80201cb2:	ff3492e3          	bne	s1,s3,80201c96 <allocproc+0x1e>
   return NULL;
     80201cb6:	4481                	li	s1,0
-    80201cb8:	a8bd                	j	80201d36 <allocproc+0xbe>
+    80201cb8:	a8a5                	j	80201d30 <allocproc+0xb8>
   p->pid = allocpid();
     80201cba:	00000097          	auipc	ra,0x0
     80201cbe:	e20080e7          	jalr	-480(ra) # 80201ada <allocpid>
@@ -4043,19 +4043,19 @@ allocpid() {
     80201cc8:	896080e7          	jalr	-1898(ra) # 8020055a <kalloc>
     80201ccc:	89aa                	mv	s3,a0
     80201cce:	f0a8                	sd	a0,96(s1)
-    80201cd0:	c93d                	beqz	a0,80201d46 <allocproc+0xce>
+    80201cd0:	c925                	beqz	a0,80201d40 <allocproc+0xc8>
   if ((p->pagetable = proc_pagetable(p)) == NULL ||
     80201cd2:	8526                	mv	a0,s1
     80201cd4:	00000097          	auipc	ra,0x0
     80201cd8:	e4c080e7          	jalr	-436(ra) # 80201b20 <proc_pagetable>
     80201cdc:	e8a8                	sd	a0,80(s1)
-    80201cde:	c93d                	beqz	a0,80201d54 <allocproc+0xdc>
+    80201cde:	c925                	beqz	a0,80201d4e <allocproc+0xd6>
       (p->kpagetable = proc_kpagetable()) == NULL) {
     80201ce0:	00000097          	auipc	ra,0x0
     80201ce4:	9ec080e7          	jalr	-1556(ra) # 802016cc <proc_kpagetable>
     80201ce8:	eca8                	sd	a0,88(s1)
   if ((p->pagetable = proc_pagetable(p)) == NULL ||
-    80201cea:	c52d                	beqz	a0,80201d54 <allocproc+0xdc>
+    80201cea:	c135                	beqz	a0,80201d4e <allocproc+0xd6>
   p->kstack = VKSTACK;
     80201cec:	0fb00793          	li	a5,251
     80201cf0:	07fa                	slli	a5,a5,0x1e
@@ -4085,12656 +4085,12634 @@ allocpid() {
   for( int i=0 ; i<VMA_MAX ; i++ )
     80201d28:	03078793          	addi	a5,a5,48
     80201d2c:	ff279ae3          	bne	a5,s2,80201d20 <allocproc+0xa8>
-   p->max_addr = p->sz;
-    80201d30:	64bc                	ld	a5,72(s1)
-    80201d32:	74f4b023          	sd	a5,1856(s1)
 }
-    80201d36:	8526                	mv	a0,s1
-    80201d38:	70a2                	ld	ra,40(sp)
-    80201d3a:	7402                	ld	s0,32(sp)
-    80201d3c:	64e2                	ld	s1,24(sp)
-    80201d3e:	6942                	ld	s2,16(sp)
-    80201d40:	69a2                	ld	s3,8(sp)
-    80201d42:	6145                	addi	sp,sp,48
-    80201d44:	8082                	ret
+    80201d30:	8526                	mv	a0,s1
+    80201d32:	70a2                	ld	ra,40(sp)
+    80201d34:	7402                	ld	s0,32(sp)
+    80201d36:	64e2                	ld	s1,24(sp)
+    80201d38:	6942                	ld	s2,16(sp)
+    80201d3a:	69a2                	ld	s3,8(sp)
+    80201d3c:	6145                	addi	sp,sp,48
+    80201d3e:	8082                	ret
     release(&p->lock);
-    80201d46:	8526                	mv	a0,s1
-    80201d48:	fffff097          	auipc	ra,0xfffff
-    80201d4c:	9d2080e7          	jalr	-1582(ra) # 8020071a <release>
+    80201d40:	8526                	mv	a0,s1
+    80201d42:	fffff097          	auipc	ra,0xfffff
+    80201d46:	9d8080e7          	jalr	-1576(ra) # 8020071a <release>
     return NULL;
-    80201d50:	84ce                	mv	s1,s3
-    80201d52:	b7d5                	j	80201d36 <allocproc+0xbe>
+    80201d4a:	84ce                	mv	s1,s3
+    80201d4c:	b7d5                	j	80201d30 <allocproc+0xb8>
     freeproc(p);
-    80201d54:	8526                	mv	a0,s1
-    80201d56:	00000097          	auipc	ra,0x0
-    80201d5a:	eb8080e7          	jalr	-328(ra) # 80201c0e <freeproc>
+    80201d4e:	8526                	mv	a0,s1
+    80201d50:	00000097          	auipc	ra,0x0
+    80201d54:	ebe080e7          	jalr	-322(ra) # 80201c0e <freeproc>
     release(&p->lock);
-    80201d5e:	8526                	mv	a0,s1
-    80201d60:	fffff097          	auipc	ra,0xfffff
-    80201d64:	9ba080e7          	jalr	-1606(ra) # 8020071a <release>
+    80201d58:	8526                	mv	a0,s1
+    80201d5a:	fffff097          	auipc	ra,0xfffff
+    80201d5e:	9c0080e7          	jalr	-1600(ra) # 8020071a <release>
     return NULL;
-    80201d68:	4481                	li	s1,0
-    80201d6a:	b7f1                	j	80201d36 <allocproc+0xbe>
+    80201d62:	4481                	li	s1,0
+    80201d64:	b7f1                	j	80201d30 <allocproc+0xb8>
 
-0000000080201d6c <userinit>:
+0000000080201d66 <userinit>:
 {
-    80201d6c:	1101                	addi	sp,sp,-32
-    80201d6e:	ec06                	sd	ra,24(sp)
-    80201d70:	e822                	sd	s0,16(sp)
-    80201d72:	e426                	sd	s1,8(sp)
-    80201d74:	e04a                	sd	s2,0(sp)
-    80201d76:	1000                	addi	s0,sp,32
+    80201d66:	1101                	addi	sp,sp,-32
+    80201d68:	ec06                	sd	ra,24(sp)
+    80201d6a:	e822                	sd	s0,16(sp)
+    80201d6c:	e426                	sd	s1,8(sp)
+    80201d6e:	e04a                	sd	s2,0(sp)
+    80201d70:	1000                	addi	s0,sp,32
   p = allocproc();
-    80201d78:	00000097          	auipc	ra,0x0
-    80201d7c:	f00080e7          	jalr	-256(ra) # 80201c78 <allocproc>
-    80201d80:	84aa                	mv	s1,a0
+    80201d72:	00000097          	auipc	ra,0x0
+    80201d76:	f06080e7          	jalr	-250(ra) # 80201c78 <allocproc>
+    80201d7a:	84aa                	mv	s1,a0
   initproc = p;
-    80201d82:	00014797          	auipc	a5,0x14
-    80201d86:	3ea7bb23          	sd	a0,1014(a5) # 80216178 <initproc>
+    80201d7c:	00014797          	auipc	a5,0x14
+    80201d80:	3ea7be23          	sd	a0,1020(a5) # 80216178 <initproc>
   uvminit(p->pagetable , p->kpagetable, initcode, sizeof(initcode));
-    80201d8a:	6905                	lui	s2,0x1
-    80201d8c:	cd090693          	addi	a3,s2,-816 # cd0 <_entry-0x801ff330>
-    80201d90:	00009617          	auipc	a2,0x9
-    80201d94:	27860613          	addi	a2,a2,632 # 8020b008 <initcode>
-    80201d98:	6d2c                	ld	a1,88(a0)
-    80201d9a:	6928                	ld	a0,80(a0)
-    80201d9c:	fffff097          	auipc	ra,0xfffff
-    80201da0:	178080e7          	jalr	376(ra) # 80200f14 <uvminit>
+    80201d84:	6905                	lui	s2,0x1
+    80201d86:	cd090693          	addi	a3,s2,-816 # cd0 <_entry-0x801ff330>
+    80201d8a:	00009617          	auipc	a2,0x9
+    80201d8e:	27e60613          	addi	a2,a2,638 # 8020b008 <initcode>
+    80201d92:	6d2c                	ld	a1,88(a0)
+    80201d94:	6928                	ld	a0,80(a0)
+    80201d96:	fffff097          	auipc	ra,0xfffff
+    80201d9a:	17e080e7          	jalr	382(ra) # 80200f14 <uvminit>
   p->sz = PGSIZE;
-    80201da4:	0524b423          	sd	s2,72(s1)
+    80201d9e:	0524b423          	sd	s2,72(s1)
   p->trapframe->epc = 0x0;      // user program counter
-    80201da8:	70bc                	ld	a5,96(s1)
-    80201daa:	0007bc23          	sd	zero,24(a5)
+    80201da2:	70bc                	ld	a5,96(s1)
+    80201da4:	0007bc23          	sd	zero,24(a5)
   p->trapframe->sp = PGSIZE;  // user stack pointer
-    80201dae:	70bc                	ld	a5,96(s1)
-    80201db0:	0327b823          	sd	s2,48(a5)
+    80201da8:	70bc                	ld	a5,96(s1)
+    80201daa:	0327b823          	sd	s2,48(a5)
   safestrcpy(p->name, "initcode", sizeof(p->name));
-    80201db4:	4641                	li	a2,16
-    80201db6:	00009597          	auipc	a1,0x9
-    80201dba:	88258593          	addi	a1,a1,-1918 # 8020a638 <digits+0x2b8>
-    80201dbe:	40848513          	addi	a0,s1,1032
-    80201dc2:	fffff097          	auipc	ra,0xfffff
-    80201dc6:	af2080e7          	jalr	-1294(ra) # 802008b4 <safestrcpy>
+    80201dae:	4641                	li	a2,16
+    80201db0:	00009597          	auipc	a1,0x9
+    80201db4:	88858593          	addi	a1,a1,-1912 # 8020a638 <digits+0x2b8>
+    80201db8:	40848513          	addi	a0,s1,1032
+    80201dbc:	fffff097          	auipc	ra,0xfffff
+    80201dc0:	af8080e7          	jalr	-1288(ra) # 802008b4 <safestrcpy>
   p->state = RUNNABLE;
-    80201dca:	4789                	li	a5,2
-    80201dcc:	cc9c                	sw	a5,24(s1)
+    80201dc4:	4789                	li	a5,2
+    80201dc6:	cc9c                	sw	a5,24(s1)
   p->tmask = 0;
-    80201dce:	4004ac23          	sw	zero,1048(s1)
+    80201dc8:	4004ac23          	sw	zero,1048(s1)
   release(&p->lock);
-    80201dd2:	8526                	mv	a0,s1
-    80201dd4:	fffff097          	auipc	ra,0xfffff
-    80201dd8:	946080e7          	jalr	-1722(ra) # 8020071a <release>
+    80201dcc:	8526                	mv	a0,s1
+    80201dce:	fffff097          	auipc	ra,0xfffff
+    80201dd2:	94c080e7          	jalr	-1716(ra) # 8020071a <release>
 }
-    80201ddc:	60e2                	ld	ra,24(sp)
-    80201dde:	6442                	ld	s0,16(sp)
-    80201de0:	64a2                	ld	s1,8(sp)
-    80201de2:	6902                	ld	s2,0(sp)
-    80201de4:	6105                	addi	sp,sp,32
-    80201de6:	8082                	ret
-
-0000000080201de8 <growproc>:
+    80201dd6:	60e2                	ld	ra,24(sp)
+    80201dd8:	6442                	ld	s0,16(sp)
+    80201dda:	64a2                	ld	s1,8(sp)
+    80201ddc:	6902                	ld	s2,0(sp)
+    80201dde:	6105                	addi	sp,sp,32
+    80201de0:	8082                	ret
+
+0000000080201de2 <growproc>:
 {
-    80201de8:	1101                	addi	sp,sp,-32
-    80201dea:	ec06                	sd	ra,24(sp)
-    80201dec:	e822                	sd	s0,16(sp)
-    80201dee:	e426                	sd	s1,8(sp)
-    80201df0:	e04a                	sd	s2,0(sp)
-    80201df2:	1000                	addi	s0,sp,32
-    80201df4:	84aa                	mv	s1,a0
+    80201de2:	1101                	addi	sp,sp,-32
+    80201de4:	ec06                	sd	ra,24(sp)
+    80201de6:	e822                	sd	s0,16(sp)
+    80201de8:	e426                	sd	s1,8(sp)
+    80201dea:	e04a                	sd	s2,0(sp)
+    80201dec:	1000                	addi	s0,sp,32
+    80201dee:	84aa                	mv	s1,a0
   struct proc *p = myproc();
-    80201df6:	00000097          	auipc	ra,0x0
-    80201dfa:	c46080e7          	jalr	-954(ra) # 80201a3c <myproc>
-    80201dfe:	892a                	mv	s2,a0
+    80201df0:	00000097          	auipc	ra,0x0
+    80201df4:	c4c080e7          	jalr	-948(ra) # 80201a3c <myproc>
+    80201df8:	892a                	mv	s2,a0
   sz = p->sz;
-    80201e00:	6530                	ld	a2,72(a0)
-    80201e02:	0006079b          	sext.w	a5,a2
+    80201dfa:	6530                	ld	a2,72(a0)
+    80201dfc:	0006079b          	sext.w	a5,a2
   if(n > 0){
-    80201e06:	00904f63          	bgtz	s1,80201e24 <growproc+0x3c>
+    80201e00:	00904f63          	bgtz	s1,80201e1e <growproc+0x3c>
   } else if(n < 0){
-    80201e0a:	0204ce63          	bltz	s1,80201e46 <growproc+0x5e>
+    80201e04:	0204ce63          	bltz	s1,80201e40 <growproc+0x5e>
   p->sz = sz;
-    80201e0e:	1782                	slli	a5,a5,0x20
-    80201e10:	9381                	srli	a5,a5,0x20
-    80201e12:	04f93423          	sd	a5,72(s2)
+    80201e08:	1782                	slli	a5,a5,0x20
+    80201e0a:	9381                	srli	a5,a5,0x20
+    80201e0c:	04f93423          	sd	a5,72(s2)
   return 0;
-    80201e16:	4501                	li	a0,0
+    80201e10:	4501                	li	a0,0
 }
-    80201e18:	60e2                	ld	ra,24(sp)
-    80201e1a:	6442                	ld	s0,16(sp)
-    80201e1c:	64a2                	ld	s1,8(sp)
-    80201e1e:	6902                	ld	s2,0(sp)
-    80201e20:	6105                	addi	sp,sp,32
-    80201e22:	8082                	ret
+    80201e12:	60e2                	ld	ra,24(sp)
+    80201e14:	6442                	ld	s0,16(sp)
+    80201e16:	64a2                	ld	s1,8(sp)
+    80201e18:	6902                	ld	s2,0(sp)
+    80201e1a:	6105                	addi	sp,sp,32
+    80201e1c:	8082                	ret
     if((sz = uvmalloc(p->pagetable, p->kpagetable, sz, sz + n)) == 0) {
-    80201e24:	00f486bb          	addw	a3,s1,a5
-    80201e28:	1682                	slli	a3,a3,0x20
-    80201e2a:	9281                	srli	a3,a3,0x20
-    80201e2c:	1602                	slli	a2,a2,0x20
-    80201e2e:	9201                	srli	a2,a2,0x20
-    80201e30:	6d2c                	ld	a1,88(a0)
-    80201e32:	6928                	ld	a0,80(a0)
-    80201e34:	fffff097          	auipc	ra,0xfffff
-    80201e38:	1d6080e7          	jalr	470(ra) # 8020100a <uvmalloc>
-    80201e3c:	0005079b          	sext.w	a5,a0
-    80201e40:	f7f9                	bnez	a5,80201e0e <growproc+0x26>
+    80201e1e:	00f486bb          	addw	a3,s1,a5
+    80201e22:	1682                	slli	a3,a3,0x20
+    80201e24:	9281                	srli	a3,a3,0x20
+    80201e26:	1602                	slli	a2,a2,0x20
+    80201e28:	9201                	srli	a2,a2,0x20
+    80201e2a:	6d2c                	ld	a1,88(a0)
+    80201e2c:	6928                	ld	a0,80(a0)
+    80201e2e:	fffff097          	auipc	ra,0xfffff
+    80201e32:	1dc080e7          	jalr	476(ra) # 8020100a <uvmalloc>
+    80201e36:	0005079b          	sext.w	a5,a0
+    80201e3a:	f7f9                	bnez	a5,80201e08 <growproc+0x26>
       return -1;
-    80201e42:	557d                	li	a0,-1
-    80201e44:	bfd1                	j	80201e18 <growproc+0x30>
+    80201e3c:	557d                	li	a0,-1
+    80201e3e:	bfd1                	j	80201e12 <growproc+0x30>
     sz = uvmdealloc(p->pagetable, p->kpagetable, sz, sz + n);
-    80201e46:	00f486bb          	addw	a3,s1,a5
-    80201e4a:	1682                	slli	a3,a3,0x20
-    80201e4c:	9281                	srli	a3,a3,0x20
-    80201e4e:	1602                	slli	a2,a2,0x20
-    80201e50:	9201                	srli	a2,a2,0x20
-    80201e52:	6d2c                	ld	a1,88(a0)
-    80201e54:	6928                	ld	a0,80(a0)
-    80201e56:	fffff097          	auipc	ra,0xfffff
-    80201e5a:	148080e7          	jalr	328(ra) # 80200f9e <uvmdealloc>
-    80201e5e:	0005079b          	sext.w	a5,a0
-    80201e62:	b775                	j	80201e0e <growproc+0x26>
-
-0000000080201e64 <fork>:
+    80201e40:	00f486bb          	addw	a3,s1,a5
+    80201e44:	1682                	slli	a3,a3,0x20
+    80201e46:	9281                	srli	a3,a3,0x20
+    80201e48:	1602                	slli	a2,a2,0x20
+    80201e4a:	9201                	srli	a2,a2,0x20
+    80201e4c:	6d2c                	ld	a1,88(a0)
+    80201e4e:	6928                	ld	a0,80(a0)
+    80201e50:	fffff097          	auipc	ra,0xfffff
+    80201e54:	14e080e7          	jalr	334(ra) # 80200f9e <uvmdealloc>
+    80201e58:	0005079b          	sext.w	a5,a0
+    80201e5c:	b775                	j	80201e08 <growproc+0x26>
+
+0000000080201e5e <fork>:
 {
-    80201e64:	7139                	addi	sp,sp,-64
-    80201e66:	fc06                	sd	ra,56(sp)
-    80201e68:	f822                	sd	s0,48(sp)
-    80201e6a:	f426                	sd	s1,40(sp)
-    80201e6c:	f04a                	sd	s2,32(sp)
-    80201e6e:	ec4e                	sd	s3,24(sp)
-    80201e70:	e852                	sd	s4,16(sp)
-    80201e72:	e456                	sd	s5,8(sp)
-    80201e74:	0080                	addi	s0,sp,64
+    80201e5e:	7139                	addi	sp,sp,-64
+    80201e60:	fc06                	sd	ra,56(sp)
+    80201e62:	f822                	sd	s0,48(sp)
+    80201e64:	f426                	sd	s1,40(sp)
+    80201e66:	f04a                	sd	s2,32(sp)
+    80201e68:	ec4e                	sd	s3,24(sp)
+    80201e6a:	e852                	sd	s4,16(sp)
+    80201e6c:	e456                	sd	s5,8(sp)
+    80201e6e:	0080                	addi	s0,sp,64
   struct proc *p = myproc();
-    80201e76:	00000097          	auipc	ra,0x0
-    80201e7a:	bc6080e7          	jalr	-1082(ra) # 80201a3c <myproc>
-    80201e7e:	8aaa                	mv	s5,a0
+    80201e70:	00000097          	auipc	ra,0x0
+    80201e74:	bcc080e7          	jalr	-1076(ra) # 80201a3c <myproc>
+    80201e78:	8aaa                	mv	s5,a0
   if((np = allocproc()) == NULL){
-    80201e80:	00000097          	auipc	ra,0x0
-    80201e84:	df8080e7          	jalr	-520(ra) # 80201c78 <allocproc>
-    80201e88:	c965                	beqz	a0,80201f78 <fork+0x114>
-    80201e8a:	8a2a                	mv	s4,a0
+    80201e7a:	00000097          	auipc	ra,0x0
+    80201e7e:	dfe080e7          	jalr	-514(ra) # 80201c78 <allocproc>
+    80201e82:	c965                	beqz	a0,80201f72 <fork+0x114>
+    80201e84:	8a2a                	mv	s4,a0
   if(uvmcopy(p->pagetable, np->pagetable, np->kpagetable, p->sz) < 0){
-    80201e8c:	048ab683          	ld	a3,72(s5)
-    80201e90:	6d30                	ld	a2,88(a0)
-    80201e92:	692c                	ld	a1,80(a0)
-    80201e94:	050ab503          	ld	a0,80(s5)
-    80201e98:	fffff097          	auipc	ra,0xfffff
-    80201e9c:	30e080e7          	jalr	782(ra) # 802011a6 <uvmcopy>
-    80201ea0:	04054e63          	bltz	a0,80201efc <fork+0x98>
+    80201e86:	048ab683          	ld	a3,72(s5)
+    80201e8a:	6d30                	ld	a2,88(a0)
+    80201e8c:	692c                	ld	a1,80(a0)
+    80201e8e:	050ab503          	ld	a0,80(s5)
+    80201e92:	fffff097          	auipc	ra,0xfffff
+    80201e96:	314080e7          	jalr	788(ra) # 802011a6 <uvmcopy>
+    80201e9a:	04054e63          	bltz	a0,80201ef6 <fork+0x98>
   np->sz = p->sz;
-    80201ea4:	048ab783          	ld	a5,72(s5)
-    80201ea8:	04fa3423          	sd	a5,72(s4)
+    80201e9e:	048ab783          	ld	a5,72(s5)
+    80201ea2:	04fa3423          	sd	a5,72(s4)
   np->parent = p;
-    80201eac:	035a3023          	sd	s5,32(s4)
+    80201ea6:	035a3023          	sd	s5,32(s4)
   np->tmask = p->tmask;
-    80201eb0:	418aa783          	lw	a5,1048(s5)
-    80201eb4:	40fa2c23          	sw	a5,1048(s4)
+    80201eaa:	418aa783          	lw	a5,1048(s5)
+    80201eae:	40fa2c23          	sw	a5,1048(s4)
   *(np->trapframe) = *(p->trapframe);
-    80201eb8:	060ab683          	ld	a3,96(s5)
-    80201ebc:	87b6                	mv	a5,a3
-    80201ebe:	060a3703          	ld	a4,96(s4)
-    80201ec2:	12068693          	addi	a3,a3,288
-    80201ec6:	0007b803          	ld	a6,0(a5)
-    80201eca:	6788                	ld	a0,8(a5)
-    80201ecc:	6b8c                	ld	a1,16(a5)
-    80201ece:	6f90                	ld	a2,24(a5)
-    80201ed0:	01073023          	sd	a6,0(a4) # 1000 <_entry-0x801ff000>
-    80201ed4:	e708                	sd	a0,8(a4)
-    80201ed6:	eb0c                	sd	a1,16(a4)
-    80201ed8:	ef10                	sd	a2,24(a4)
-    80201eda:	02078793          	addi	a5,a5,32
-    80201ede:	02070713          	addi	a4,a4,32
-    80201ee2:	fed792e3          	bne	a5,a3,80201ec6 <fork+0x62>
+    80201eb2:	060ab683          	ld	a3,96(s5)
+    80201eb6:	87b6                	mv	a5,a3
+    80201eb8:	060a3703          	ld	a4,96(s4)
+    80201ebc:	12068693          	addi	a3,a3,288
+    80201ec0:	0007b803          	ld	a6,0(a5)
+    80201ec4:	6788                	ld	a0,8(a5)
+    80201ec6:	6b8c                	ld	a1,16(a5)
+    80201ec8:	6f90                	ld	a2,24(a5)
+    80201eca:	01073023          	sd	a6,0(a4) # 1000 <_entry-0x801ff000>
+    80201ece:	e708                	sd	a0,8(a4)
+    80201ed0:	eb0c                	sd	a1,16(a4)
+    80201ed2:	ef10                	sd	a2,24(a4)
+    80201ed4:	02078793          	addi	a5,a5,32
+    80201ed8:	02070713          	addi	a4,a4,32
+    80201edc:	fed792e3          	bne	a5,a3,80201ec0 <fork+0x62>
   np->trapframe->a0 = 0;
-    80201ee6:	060a3783          	ld	a5,96(s4)
-    80201eea:	0607b823          	sd	zero,112(a5)
+    80201ee0:	060a3783          	ld	a5,96(s4)
+    80201ee4:	0607b823          	sd	zero,112(a5)
   for(i = 0; i < NOFILE; i++)
-    80201eee:	0d8a8493          	addi	s1,s5,216
-    80201ef2:	0d8a0913          	addi	s2,s4,216
-    80201ef6:	400a8993          	addi	s3,s5,1024
-    80201efa:	a03d                	j	80201f28 <fork+0xc4>
+    80201ee8:	0d8a8493          	addi	s1,s5,216
+    80201eec:	0d8a0913          	addi	s2,s4,216
+    80201ef0:	400a8993          	addi	s3,s5,1024
+    80201ef4:	a03d                	j	80201f22 <fork+0xc4>
     freeproc(np);
-    80201efc:	8552                	mv	a0,s4
-    80201efe:	00000097          	auipc	ra,0x0
-    80201f02:	d10080e7          	jalr	-752(ra) # 80201c0e <freeproc>
+    80201ef6:	8552                	mv	a0,s4
+    80201ef8:	00000097          	auipc	ra,0x0
+    80201efc:	d16080e7          	jalr	-746(ra) # 80201c0e <freeproc>
     release(&np->lock);
-    80201f06:	8552                	mv	a0,s4
-    80201f08:	fffff097          	auipc	ra,0xfffff
-    80201f0c:	812080e7          	jalr	-2030(ra) # 8020071a <release>
+    80201f00:	8552                	mv	a0,s4
+    80201f02:	fffff097          	auipc	ra,0xfffff
+    80201f06:	818080e7          	jalr	-2024(ra) # 8020071a <release>
     return -1;
-    80201f10:	54fd                	li	s1,-1
-    80201f12:	a889                	j	80201f64 <fork+0x100>
+    80201f0a:	54fd                	li	s1,-1
+    80201f0c:	a889                	j	80201f5e <fork+0x100>
       np->ofile[i] = filedup(p->ofile[i]);
-    80201f14:	00002097          	auipc	ra,0x2
-    80201f18:	0e0080e7          	jalr	224(ra) # 80203ff4 <filedup>
-    80201f1c:	00a93023          	sd	a0,0(s2)
+    80201f0e:	00002097          	auipc	ra,0x2
+    80201f12:	0ea080e7          	jalr	234(ra) # 80203ff8 <filedup>
+    80201f16:	00a93023          	sd	a0,0(s2)
   for(i = 0; i < NOFILE; i++)
-    80201f20:	04a1                	addi	s1,s1,8
-    80201f22:	0921                	addi	s2,s2,8
-    80201f24:	01348563          	beq	s1,s3,80201f2e <fork+0xca>
+    80201f1a:	04a1                	addi	s1,s1,8
+    80201f1c:	0921                	addi	s2,s2,8
+    80201f1e:	01348563          	beq	s1,s3,80201f28 <fork+0xca>
     if(p->ofile[i])
-    80201f28:	6088                	ld	a0,0(s1)
-    80201f2a:	f56d                	bnez	a0,80201f14 <fork+0xb0>
-    80201f2c:	bfd5                	j	80201f20 <fork+0xbc>
+    80201f22:	6088                	ld	a0,0(s1)
+    80201f24:	f56d                	bnez	a0,80201f0e <fork+0xb0>
+    80201f26:	bfd5                	j	80201f1a <fork+0xbc>
   np->cwd = edup(p->cwd);
-    80201f2e:	400ab503          	ld	a0,1024(s5)
-    80201f32:	00005097          	auipc	ra,0x5
-    80201f36:	f2e080e7          	jalr	-210(ra) # 80206e60 <edup>
-    80201f3a:	40aa3023          	sd	a0,1024(s4)
+    80201f28:	400ab503          	ld	a0,1024(s5)
+    80201f2c:	00005097          	auipc	ra,0x5
+    80201f30:	ef4080e7          	jalr	-268(ra) # 80206e20 <edup>
+    80201f34:	40aa3023          	sd	a0,1024(s4)
   safestrcpy(np->name, p->name, sizeof(p->name));
-    80201f3e:	4641                	li	a2,16
-    80201f40:	408a8593          	addi	a1,s5,1032
-    80201f44:	408a0513          	addi	a0,s4,1032
-    80201f48:	fffff097          	auipc	ra,0xfffff
-    80201f4c:	96c080e7          	jalr	-1684(ra) # 802008b4 <safestrcpy>
+    80201f38:	4641                	li	a2,16
+    80201f3a:	408a8593          	addi	a1,s5,1032
+    80201f3e:	408a0513          	addi	a0,s4,1032
+    80201f42:	fffff097          	auipc	ra,0xfffff
+    80201f46:	972080e7          	jalr	-1678(ra) # 802008b4 <safestrcpy>
   pid = np->pid;
-    80201f50:	038a2483          	lw	s1,56(s4)
+    80201f4a:	038a2483          	lw	s1,56(s4)
   np->state = RUNNABLE;
-    80201f54:	4789                	li	a5,2
-    80201f56:	00fa2c23          	sw	a5,24(s4)
+    80201f4e:	4789                	li	a5,2
+    80201f50:	00fa2c23          	sw	a5,24(s4)
   release(&np->lock);
-    80201f5a:	8552                	mv	a0,s4
-    80201f5c:	ffffe097          	auipc	ra,0xffffe
-    80201f60:	7be080e7          	jalr	1982(ra) # 8020071a <release>
+    80201f54:	8552                	mv	a0,s4
+    80201f56:	ffffe097          	auipc	ra,0xffffe
+    80201f5a:	7c4080e7          	jalr	1988(ra) # 8020071a <release>
 }
-    80201f64:	8526                	mv	a0,s1
-    80201f66:	70e2                	ld	ra,56(sp)
-    80201f68:	7442                	ld	s0,48(sp)
-    80201f6a:	74a2                	ld	s1,40(sp)
-    80201f6c:	7902                	ld	s2,32(sp)
-    80201f6e:	69e2                	ld	s3,24(sp)
-    80201f70:	6a42                	ld	s4,16(sp)
-    80201f72:	6aa2                	ld	s5,8(sp)
-    80201f74:	6121                	addi	sp,sp,64
-    80201f76:	8082                	ret
+    80201f5e:	8526                	mv	a0,s1
+    80201f60:	70e2                	ld	ra,56(sp)
+    80201f62:	7442                	ld	s0,48(sp)
+    80201f64:	74a2                	ld	s1,40(sp)
+    80201f66:	7902                	ld	s2,32(sp)
+    80201f68:	69e2                	ld	s3,24(sp)
+    80201f6a:	6a42                	ld	s4,16(sp)
+    80201f6c:	6aa2                	ld	s5,8(sp)
+    80201f6e:	6121                	addi	sp,sp,64
+    80201f70:	8082                	ret
     return -1;
-    80201f78:	54fd                	li	s1,-1
-    80201f7a:	b7ed                	j	80201f64 <fork+0x100>
+    80201f72:	54fd                	li	s1,-1
+    80201f74:	b7ed                	j	80201f5e <fork+0x100>
 
-0000000080201f7c <reparent>:
+0000000080201f76 <reparent>:
 {
-    80201f7c:	7179                	addi	sp,sp,-48
-    80201f7e:	f406                	sd	ra,40(sp)
-    80201f80:	f022                	sd	s0,32(sp)
-    80201f82:	ec26                	sd	s1,24(sp)
-    80201f84:	e84a                	sd	s2,16(sp)
-    80201f86:	e44e                	sd	s3,8(sp)
-    80201f88:	e052                	sd	s4,0(sp)
-    80201f8a:	1800                	addi	s0,sp,48
-    80201f8c:	892a                	mv	s2,a0
+    80201f76:	7179                	addi	sp,sp,-48
+    80201f78:	f406                	sd	ra,40(sp)
+    80201f7a:	f022                	sd	s0,32(sp)
+    80201f7c:	ec26                	sd	s1,24(sp)
+    80201f7e:	e84a                	sd	s2,16(sp)
+    80201f80:	e44e                	sd	s3,8(sp)
+    80201f82:	e052                	sd	s4,0(sp)
+    80201f84:	1800                	addi	s0,sp,48
+    80201f86:	892a                	mv	s2,a0
   for(pp = proc; pp < &proc[NPROC]; pp++){
-    80201f8e:	00014497          	auipc	s1,0x14
-    80201f92:	1f248493          	addi	s1,s1,498 # 80216180 <proc>
+    80201f88:	00014497          	auipc	s1,0x14
+    80201f8c:	1f848493          	addi	s1,s1,504 # 80216180 <proc>
       pp->parent = initproc;
-    80201f96:	00014a17          	auipc	s4,0x14
-    80201f9a:	0caa0a13          	addi	s4,s4,202 # 80216060 <pid_lock>
+    80201f90:	00014a17          	auipc	s4,0x14
+    80201f94:	0d0a0a13          	addi	s4,s4,208 # 80216060 <pid_lock>
   for(pp = proc; pp < &proc[NPROC]; pp++){
-    80201f9e:	0002b997          	auipc	s3,0x2b
-    80201fa2:	df298993          	addi	s3,s3,-526 # 8022cd90 <syscall_counts>
-    80201fa6:	a029                	j	80201fb0 <reparent+0x34>
-    80201fa8:	74848493          	addi	s1,s1,1864
-    80201fac:	03348363          	beq	s1,s3,80201fd2 <reparent+0x56>
+    80201f98:	0002b997          	auipc	s3,0x2b
+    80201f9c:	df898993          	addi	s3,s3,-520 # 8022cd90 <syscall_counts>
+    80201fa0:	a029                	j	80201faa <reparent+0x34>
+    80201fa2:	74848493          	addi	s1,s1,1864
+    80201fa6:	03348363          	beq	s1,s3,80201fcc <reparent+0x56>
     if(pp->parent == p){
-    80201fb0:	709c                	ld	a5,32(s1)
-    80201fb2:	ff279be3          	bne	a5,s2,80201fa8 <reparent+0x2c>
+    80201faa:	709c                	ld	a5,32(s1)
+    80201fac:	ff279be3          	bne	a5,s2,80201fa2 <reparent+0x2c>
       acquire(&pp->lock);
-    80201fb6:	8526                	mv	a0,s1
-    80201fb8:	ffffe097          	auipc	ra,0xffffe
-    80201fbc:	70e080e7          	jalr	1806(ra) # 802006c6 <acquire>
+    80201fb0:	8526                	mv	a0,s1
+    80201fb2:	ffffe097          	auipc	ra,0xffffe
+    80201fb6:	714080e7          	jalr	1812(ra) # 802006c6 <acquire>
       pp->parent = initproc;
-    80201fc0:	118a3783          	ld	a5,280(s4)
-    80201fc4:	f09c                	sd	a5,32(s1)
+    80201fba:	118a3783          	ld	a5,280(s4)
+    80201fbe:	f09c                	sd	a5,32(s1)
       release(&pp->lock);
-    80201fc6:	8526                	mv	a0,s1
-    80201fc8:	ffffe097          	auipc	ra,0xffffe
-    80201fcc:	752080e7          	jalr	1874(ra) # 8020071a <release>
-    80201fd0:	bfe1                	j	80201fa8 <reparent+0x2c>
+    80201fc0:	8526                	mv	a0,s1
+    80201fc2:	ffffe097          	auipc	ra,0xffffe
+    80201fc6:	758080e7          	jalr	1880(ra) # 8020071a <release>
+    80201fca:	bfe1                	j	80201fa2 <reparent+0x2c>
 }
-    80201fd2:	70a2                	ld	ra,40(sp)
-    80201fd4:	7402                	ld	s0,32(sp)
-    80201fd6:	64e2                	ld	s1,24(sp)
-    80201fd8:	6942                	ld	s2,16(sp)
-    80201fda:	69a2                	ld	s3,8(sp)
-    80201fdc:	6a02                	ld	s4,0(sp)
-    80201fde:	6145                	addi	sp,sp,48
-    80201fe0:	8082                	ret
-
-0000000080201fe2 <clone>:
+    80201fcc:	70a2                	ld	ra,40(sp)
+    80201fce:	7402                	ld	s0,32(sp)
+    80201fd0:	64e2                	ld	s1,24(sp)
+    80201fd2:	6942                	ld	s2,16(sp)
+    80201fd4:	69a2                	ld	s3,8(sp)
+    80201fd6:	6a02                	ld	s4,0(sp)
+    80201fd8:	6145                	addi	sp,sp,48
+    80201fda:	8082                	ret
+
+0000000080201fdc <clone>:
 int clone(int flags, void *stack, int *ptid, uint64 tls, int *ctid){
-    80201fe2:	7139                	addi	sp,sp,-64
-    80201fe4:	fc06                	sd	ra,56(sp)
-    80201fe6:	f822                	sd	s0,48(sp)
-    80201fe8:	f426                	sd	s1,40(sp)
-    80201fea:	f04a                	sd	s2,32(sp)
-    80201fec:	ec4e                	sd	s3,24(sp)
-    80201fee:	e852                	sd	s4,16(sp)
-    80201ff0:	e456                	sd	s5,8(sp)
-    80201ff2:	0080                	addi	s0,sp,64
-    80201ff4:	84aa                	mv	s1,a0
-    80201ff6:	892e                	mv	s2,a1
+    80201fdc:	7139                	addi	sp,sp,-64
+    80201fde:	fc06                	sd	ra,56(sp)
+    80201fe0:	f822                	sd	s0,48(sp)
+    80201fe2:	f426                	sd	s1,40(sp)
+    80201fe4:	f04a                	sd	s2,32(sp)
+    80201fe6:	ec4e                	sd	s3,24(sp)
+    80201fe8:	e852                	sd	s4,16(sp)
+    80201fea:	e456                	sd	s5,8(sp)
+    80201fec:	0080                	addi	s0,sp,64
+    80201fee:	84aa                	mv	s1,a0
+    80201ff0:	892e                	mv	s2,a1
   struct proc *p = myproc();
-    80201ff8:	00000097          	auipc	ra,0x0
-    80201ffc:	a44080e7          	jalr	-1468(ra) # 80201a3c <myproc>
-    80202000:	8aaa                	mv	s5,a0
+    80201ff2:	00000097          	auipc	ra,0x0
+    80201ff6:	a4a080e7          	jalr	-1462(ra) # 80201a3c <myproc>
+    80201ffa:	8aaa                	mv	s5,a0
   if((np = allocproc()) == NULL){
-    80202002:	00000097          	auipc	ra,0x0
-    80202006:	c76080e7          	jalr	-906(ra) # 80201c78 <allocproc>
-    8020200a:	10050763          	beqz	a0,80202118 <clone+0x136>
-    8020200e:	8a2a                	mv	s4,a0
+    80201ffc:	00000097          	auipc	ra,0x0
+    80202000:	c7c080e7          	jalr	-900(ra) # 80201c78 <allocproc>
+    80202004:	10050763          	beqz	a0,80202112 <clone+0x136>
+    80202008:	8a2a                	mv	s4,a0
   if(uvmcopy(p->pagetable, np->pagetable, np->kpagetable, p->sz) < 0){
-    80202010:	048ab683          	ld	a3,72(s5)
-    80202014:	6d30                	ld	a2,88(a0)
-    80202016:	692c                	ld	a1,80(a0)
-    80202018:	050ab503          	ld	a0,80(s5)
-    8020201c:	fffff097          	auipc	ra,0xfffff
-    80202020:	18a080e7          	jalr	394(ra) # 802011a6 <uvmcopy>
-    80202024:	06054c63          	bltz	a0,8020209c <clone+0xba>
+    8020200a:	048ab683          	ld	a3,72(s5)
+    8020200e:	6d30                	ld	a2,88(a0)
+    80202010:	692c                	ld	a1,80(a0)
+    80202012:	050ab503          	ld	a0,80(s5)
+    80202016:	fffff097          	auipc	ra,0xfffff
+    8020201a:	190080e7          	jalr	400(ra) # 802011a6 <uvmcopy>
+    8020201e:	06054c63          	bltz	a0,80202096 <clone+0xba>
   np->sz = p->sz;
-    80202028:	048ab783          	ld	a5,72(s5)
-    8020202c:	04fa3423          	sd	a5,72(s4)
+    80202022:	048ab783          	ld	a5,72(s5)
+    80202026:	04fa3423          	sd	a5,72(s4)
   if (flags & 17) {
-    80202030:	0114f793          	andi	a5,s1,17
+    8020202a:	0114f793          	andi	a5,s1,17
     np->parent = NULL;
-    80202034:	00f037b3          	snez	a5,a5
-    80202038:	40f007b3          	neg	a5,a5
-    8020203c:	00faf7b3          	and	a5,s5,a5
-    80202040:	02fa3023          	sd	a5,32(s4)
+    8020202e:	00f037b3          	snez	a5,a5
+    80202032:	40f007b3          	neg	a5,a5
+    80202036:	00faf7b3          	and	a5,s5,a5
+    8020203a:	02fa3023          	sd	a5,32(s4)
   np->tmask = p->tmask;
-    80202044:	418aa783          	lw	a5,1048(s5)
-    80202048:	40fa2c23          	sw	a5,1048(s4)
+    8020203e:	418aa783          	lw	a5,1048(s5)
+    80202042:	40fa2c23          	sw	a5,1048(s4)
   *(np->trapframe) = *(p->trapframe);
-    8020204c:	060ab683          	ld	a3,96(s5)
-    80202050:	87b6                	mv	a5,a3
-    80202052:	060a3703          	ld	a4,96(s4)
-    80202056:	12068693          	addi	a3,a3,288
-    8020205a:	0007b803          	ld	a6,0(a5)
-    8020205e:	6788                	ld	a0,8(a5)
-    80202060:	6b8c                	ld	a1,16(a5)
-    80202062:	6f90                	ld	a2,24(a5)
-    80202064:	01073023          	sd	a6,0(a4)
-    80202068:	e708                	sd	a0,8(a4)
-    8020206a:	eb0c                	sd	a1,16(a4)
-    8020206c:	ef10                	sd	a2,24(a4)
-    8020206e:	02078793          	addi	a5,a5,32
-    80202072:	02070713          	addi	a4,a4,32
-    80202076:	fed792e3          	bne	a5,a3,8020205a <clone+0x78>
+    80202046:	060ab683          	ld	a3,96(s5)
+    8020204a:	87b6                	mv	a5,a3
+    8020204c:	060a3703          	ld	a4,96(s4)
+    80202050:	12068693          	addi	a3,a3,288
+    80202054:	0007b803          	ld	a6,0(a5)
+    80202058:	6788                	ld	a0,8(a5)
+    8020205a:	6b8c                	ld	a1,16(a5)
+    8020205c:	6f90                	ld	a2,24(a5)
+    8020205e:	01073023          	sd	a6,0(a4)
+    80202062:	e708                	sd	a0,8(a4)
+    80202064:	eb0c                	sd	a1,16(a4)
+    80202066:	ef10                	sd	a2,24(a4)
+    80202068:	02078793          	addi	a5,a5,32
+    8020206c:	02070713          	addi	a4,a4,32
+    80202070:	fed792e3          	bne	a5,a3,80202054 <clone+0x78>
   np->trapframe->a0 = 0;
-    8020207a:	060a3783          	ld	a5,96(s4)
-    8020207e:	0607b823          	sd	zero,112(a5)
+    80202074:	060a3783          	ld	a5,96(s4)
+    80202078:	0607b823          	sd	zero,112(a5)
   if (stack != 0) {
-    80202082:	00090663          	beqz	s2,8020208e <clone+0xac>
+    8020207c:	00090663          	beqz	s2,80202088 <clone+0xac>
     np->trapframe->sp = (uint64)stack;
-    80202086:	060a3783          	ld	a5,96(s4)
-    8020208a:	0327b823          	sd	s2,48(a5)
+    80202080:	060a3783          	ld	a5,96(s4)
+    80202084:	0327b823          	sd	s2,48(a5)
   for(i = 0; i < NOFILE; i++)
-    8020208e:	0d8a8493          	addi	s1,s5,216
-    80202092:	0d8a0913          	addi	s2,s4,216
-    80202096:	400a8993          	addi	s3,s5,1024
-    8020209a:	a03d                	j	802020c8 <clone+0xe6>
+    80202088:	0d8a8493          	addi	s1,s5,216
+    8020208c:	0d8a0913          	addi	s2,s4,216
+    80202090:	400a8993          	addi	s3,s5,1024
+    80202094:	a03d                	j	802020c2 <clone+0xe6>
     freeproc(np);
-    8020209c:	8552                	mv	a0,s4
-    8020209e:	00000097          	auipc	ra,0x0
-    802020a2:	b70080e7          	jalr	-1168(ra) # 80201c0e <freeproc>
+    80202096:	8552                	mv	a0,s4
+    80202098:	00000097          	auipc	ra,0x0
+    8020209c:	b76080e7          	jalr	-1162(ra) # 80201c0e <freeproc>
     release(&np->lock);
-    802020a6:	8552                	mv	a0,s4
-    802020a8:	ffffe097          	auipc	ra,0xffffe
-    802020ac:	672080e7          	jalr	1650(ra) # 8020071a <release>
+    802020a0:	8552                	mv	a0,s4
+    802020a2:	ffffe097          	auipc	ra,0xffffe
+    802020a6:	678080e7          	jalr	1656(ra) # 8020071a <release>
     return -1;
-    802020b0:	54fd                	li	s1,-1
-    802020b2:	a889                	j	80202104 <clone+0x122>
+    802020aa:	54fd                	li	s1,-1
+    802020ac:	a889                	j	802020fe <clone+0x122>
       np->ofile[i] = filedup(p->ofile[i]);
-    802020b4:	00002097          	auipc	ra,0x2
-    802020b8:	f40080e7          	jalr	-192(ra) # 80203ff4 <filedup>
-    802020bc:	00a93023          	sd	a0,0(s2)
+    802020ae:	00002097          	auipc	ra,0x2
+    802020b2:	f4a080e7          	jalr	-182(ra) # 80203ff8 <filedup>
+    802020b6:	00a93023          	sd	a0,0(s2)
   for(i = 0; i < NOFILE; i++)
-    802020c0:	04a1                	addi	s1,s1,8
-    802020c2:	0921                	addi	s2,s2,8
-    802020c4:	01348563          	beq	s1,s3,802020ce <clone+0xec>
+    802020ba:	04a1                	addi	s1,s1,8
+    802020bc:	0921                	addi	s2,s2,8
+    802020be:	01348563          	beq	s1,s3,802020c8 <clone+0xec>
     if(p->ofile[i])
-    802020c8:	6088                	ld	a0,0(s1)
-    802020ca:	f56d                	bnez	a0,802020b4 <clone+0xd2>
-    802020cc:	bfd5                	j	802020c0 <clone+0xde>
+    802020c2:	6088                	ld	a0,0(s1)
+    802020c4:	f56d                	bnez	a0,802020ae <clone+0xd2>
+    802020c6:	bfd5                	j	802020ba <clone+0xde>
   np->cwd = edup(p->cwd);
-    802020ce:	400ab503          	ld	a0,1024(s5)
-    802020d2:	00005097          	auipc	ra,0x5
-    802020d6:	d8e080e7          	jalr	-626(ra) # 80206e60 <edup>
-    802020da:	40aa3023          	sd	a0,1024(s4)
+    802020c8:	400ab503          	ld	a0,1024(s5)
+    802020cc:	00005097          	auipc	ra,0x5
+    802020d0:	d54080e7          	jalr	-684(ra) # 80206e20 <edup>
+    802020d4:	40aa3023          	sd	a0,1024(s4)
   safestrcpy(np->name, p->name, sizeof(p->name));
-    802020de:	4641                	li	a2,16
-    802020e0:	408a8593          	addi	a1,s5,1032
-    802020e4:	408a0513          	addi	a0,s4,1032
-    802020e8:	ffffe097          	auipc	ra,0xffffe
-    802020ec:	7cc080e7          	jalr	1996(ra) # 802008b4 <safestrcpy>
+    802020d8:	4641                	li	a2,16
+    802020da:	408a8593          	addi	a1,s5,1032
+    802020de:	408a0513          	addi	a0,s4,1032
+    802020e2:	ffffe097          	auipc	ra,0xffffe
+    802020e6:	7d2080e7          	jalr	2002(ra) # 802008b4 <safestrcpy>
   pid = np->pid;
-    802020f0:	038a2483          	lw	s1,56(s4)
+    802020ea:	038a2483          	lw	s1,56(s4)
   np->state = RUNNABLE;
-    802020f4:	4789                	li	a5,2
-    802020f6:	00fa2c23          	sw	a5,24(s4)
+    802020ee:	4789                	li	a5,2
+    802020f0:	00fa2c23          	sw	a5,24(s4)
   release(&np->lock);
-    802020fa:	8552                	mv	a0,s4
-    802020fc:	ffffe097          	auipc	ra,0xffffe
-    80202100:	61e080e7          	jalr	1566(ra) # 8020071a <release>
+    802020f4:	8552                	mv	a0,s4
+    802020f6:	ffffe097          	auipc	ra,0xffffe
+    802020fa:	624080e7          	jalr	1572(ra) # 8020071a <release>
 }
-    80202104:	8526                	mv	a0,s1
-    80202106:	70e2                	ld	ra,56(sp)
-    80202108:	7442                	ld	s0,48(sp)
-    8020210a:	74a2                	ld	s1,40(sp)
-    8020210c:	7902                	ld	s2,32(sp)
-    8020210e:	69e2                	ld	s3,24(sp)
-    80202110:	6a42                	ld	s4,16(sp)
-    80202112:	6aa2                	ld	s5,8(sp)
-    80202114:	6121                	addi	sp,sp,64
-    80202116:	8082                	ret
+    802020fe:	8526                	mv	a0,s1
+    80202100:	70e2                	ld	ra,56(sp)
+    80202102:	7442                	ld	s0,48(sp)
+    80202104:	74a2                	ld	s1,40(sp)
+    80202106:	7902                	ld	s2,32(sp)
+    80202108:	69e2                	ld	s3,24(sp)
+    8020210a:	6a42                	ld	s4,16(sp)
+    8020210c:	6aa2                	ld	s5,8(sp)
+    8020210e:	6121                	addi	sp,sp,64
+    80202110:	8082                	ret
     return -1;
-    80202118:	54fd                	li	s1,-1
-    8020211a:	b7ed                	j	80202104 <clone+0x122>
+    80202112:	54fd                	li	s1,-1
+    80202114:	b7ed                	j	802020fe <clone+0x122>
 
-000000008020211c <scheduler>:
+0000000080202116 <scheduler>:
 {
-    8020211c:	715d                	addi	sp,sp,-80
-    8020211e:	e486                	sd	ra,72(sp)
-    80202120:	e0a2                	sd	s0,64(sp)
-    80202122:	fc26                	sd	s1,56(sp)
-    80202124:	f84a                	sd	s2,48(sp)
-    80202126:	f44e                	sd	s3,40(sp)
-    80202128:	f052                	sd	s4,32(sp)
-    8020212a:	ec56                	sd	s5,24(sp)
-    8020212c:	e85a                	sd	s6,16(sp)
-    8020212e:	e45e                	sd	s7,8(sp)
-    80202130:	e062                	sd	s8,0(sp)
-    80202132:	0880                	addi	s0,sp,80
-    80202134:	8792                	mv	a5,tp
+    80202116:	715d                	addi	sp,sp,-80
+    80202118:	e486                	sd	ra,72(sp)
+    8020211a:	e0a2                	sd	s0,64(sp)
+    8020211c:	fc26                	sd	s1,56(sp)
+    8020211e:	f84a                	sd	s2,48(sp)
+    80202120:	f44e                	sd	s3,40(sp)
+    80202122:	f052                	sd	s4,32(sp)
+    80202124:	ec56                	sd	s5,24(sp)
+    80202126:	e85a                	sd	s6,16(sp)
+    80202128:	e45e                	sd	s7,8(sp)
+    8020212a:	e062                	sd	s8,0(sp)
+    8020212c:	0880                	addi	s0,sp,80
+    8020212e:	8792                	mv	a5,tp
   int id = r_tp();
-    80202136:	2781                	sext.w	a5,a5
+    80202130:	2781                	sext.w	a5,a5
   c->proc = 0;
-    80202138:	00779b13          	slli	s6,a5,0x7
-    8020213c:	00014717          	auipc	a4,0x14
-    80202140:	f2470713          	addi	a4,a4,-220 # 80216060 <pid_lock>
-    80202144:	975a                	add	a4,a4,s6
-    80202146:	00073c23          	sd	zero,24(a4)
+    80202132:	00779b13          	slli	s6,a5,0x7
+    80202136:	00014717          	auipc	a4,0x14
+    8020213a:	f2a70713          	addi	a4,a4,-214 # 80216060 <pid_lock>
+    8020213e:	975a                	add	a4,a4,s6
+    80202140:	00073c23          	sd	zero,24(a4)
         swtch(&c->context, &p->context);
-    8020214a:	00014717          	auipc	a4,0x14
-    8020214e:	f3670713          	addi	a4,a4,-202 # 80216080 <cpus+0x8>
-    80202152:	9b3a                	add	s6,s6,a4
+    80202144:	00014717          	auipc	a4,0x14
+    80202148:	f3c70713          	addi	a4,a4,-196 # 80216080 <cpus+0x8>
+    8020214c:	9b3a                	add	s6,s6,a4
         c->proc = p;
-    80202154:	079e                	slli	a5,a5,0x7
-    80202156:	00014a97          	auipc	s5,0x14
-    8020215a:	f0aa8a93          	addi	s5,s5,-246 # 80216060 <pid_lock>
-    8020215e:	9abe                	add	s5,s5,a5
+    8020214e:	079e                	slli	a5,a5,0x7
+    80202150:	00014a97          	auipc	s5,0x14
+    80202154:	f10a8a93          	addi	s5,s5,-240 # 80216060 <pid_lock>
+    80202158:	9abe                	add	s5,s5,a5
         w_satp(MAKE_SATP(p->kpagetable));
-    80202160:	5a7d                	li	s4,-1
-    80202162:	1a7e                	slli	s4,s4,0x3f
+    8020215a:	5a7d                	li	s4,-1
+    8020215c:	1a7e                	slli	s4,s4,0x3f
         w_satp(MAKE_SATP(kernel_pagetable));
-    80202164:	0000bb97          	auipc	s7,0xb
-    80202168:	efcbbb83          	ld	s7,-260(s7) # 8020d060 <_GLOBAL_OFFSET_TABLE_+0x48>
-    8020216c:	a8a5                	j	802021e4 <scheduler+0xc8>
+    8020215e:	0000bb97          	auipc	s7,0xb
+    80202162:	f02bbb83          	ld	s7,-254(s7) # 8020d060 <_GLOBAL_OFFSET_TABLE_+0x48>
+    80202166:	a8a5                	j	802021de <scheduler+0xc8>
       release(&p->lock);
-    8020216e:	8526                	mv	a0,s1
-    80202170:	ffffe097          	auipc	ra,0xffffe
-    80202174:	5aa080e7          	jalr	1450(ra) # 8020071a <release>
+    80202168:	8526                	mv	a0,s1
+    8020216a:	ffffe097          	auipc	ra,0xffffe
+    8020216e:	5b0080e7          	jalr	1456(ra) # 8020071a <release>
     for(p = proc; p < &proc[NPROC]; p++) {
-    80202178:	74848493          	addi	s1,s1,1864
-    8020217c:	05248a63          	beq	s1,s2,802021d0 <scheduler+0xb4>
+    80202172:	74848493          	addi	s1,s1,1864
+    80202176:	05248a63          	beq	s1,s2,802021ca <scheduler+0xb4>
       acquire(&p->lock);
-    80202180:	8526                	mv	a0,s1
-    80202182:	ffffe097          	auipc	ra,0xffffe
-    80202186:	544080e7          	jalr	1348(ra) # 802006c6 <acquire>
+    8020217a:	8526                	mv	a0,s1
+    8020217c:	ffffe097          	auipc	ra,0xffffe
+    80202180:	54a080e7          	jalr	1354(ra) # 802006c6 <acquire>
       if(p->state == RUNNABLE) {
-    8020218a:	4c9c                	lw	a5,24(s1)
-    8020218c:	ff3791e3          	bne	a5,s3,8020216e <scheduler+0x52>
+    80202184:	4c9c                	lw	a5,24(s1)
+    80202186:	ff3791e3          	bne	a5,s3,80202168 <scheduler+0x52>
         p->state = RUNNING;
-    80202190:	478d                	li	a5,3
-    80202192:	cc9c                	sw	a5,24(s1)
+    8020218a:	478d                	li	a5,3
+    8020218c:	cc9c                	sw	a5,24(s1)
         c->proc = p;
-    80202194:	009abc23          	sd	s1,24(s5)
+    8020218e:	009abc23          	sd	s1,24(s5)
         w_satp(MAKE_SATP(p->kpagetable));
-    80202198:	6cbc                	ld	a5,88(s1)
-    8020219a:	83b1                	srli	a5,a5,0xc
-    8020219c:	0147e7b3          	or	a5,a5,s4
+    80202192:	6cbc                	ld	a5,88(s1)
+    80202194:	83b1                	srli	a5,a5,0xc
+    80202196:	0147e7b3          	or	a5,a5,s4
   asm volatile("csrw satp, %0" : : "r" (x));
-    802021a0:	18079073          	csrw	satp,a5
+    8020219a:	18079073          	csrw	satp,a5
   asm volatile("sfence.vma");
-    802021a4:	12000073          	sfence.vma
+    8020219e:	12000073          	sfence.vma
         swtch(&c->context, &p->context);
-    802021a8:	06848593          	addi	a1,s1,104
-    802021ac:	855a                	mv	a0,s6
-    802021ae:	00000097          	auipc	ra,0x0
-    802021b2:	77a080e7          	jalr	1914(ra) # 80202928 <swtch>
+    802021a2:	06848593          	addi	a1,s1,104
+    802021a6:	855a                	mv	a0,s6
+    802021a8:	00000097          	auipc	ra,0x0
+    802021ac:	77a080e7          	jalr	1914(ra) # 80202922 <swtch>
         w_satp(MAKE_SATP(kernel_pagetable));
-    802021b6:	000bb783          	ld	a5,0(s7)
-    802021ba:	83b1                	srli	a5,a5,0xc
-    802021bc:	0147e7b3          	or	a5,a5,s4
+    802021b0:	000bb783          	ld	a5,0(s7)
+    802021b4:	83b1                	srli	a5,a5,0xc
+    802021b6:	0147e7b3          	or	a5,a5,s4
   asm volatile("csrw satp, %0" : : "r" (x));
-    802021c0:	18079073          	csrw	satp,a5
+    802021ba:	18079073          	csrw	satp,a5
   asm volatile("sfence.vma");
-    802021c4:	12000073          	sfence.vma
+    802021be:	12000073          	sfence.vma
         c->proc = 0;
-    802021c8:	000abc23          	sd	zero,24(s5)
+    802021c2:	000abc23          	sd	zero,24(s5)
         found = 1;
-    802021cc:	4c05                	li	s8,1
-    802021ce:	b745                	j	8020216e <scheduler+0x52>
+    802021c6:	4c05                	li	s8,1
+    802021c8:	b745                	j	80202168 <scheduler+0x52>
     if(found == 0) {
-    802021d0:	000c1a63          	bnez	s8,802021e4 <scheduler+0xc8>
+    802021ca:	000c1a63          	bnez	s8,802021de <scheduler+0xc8>
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    802021d4:	100027f3          	csrr	a5,sstatus
+    802021ce:	100027f3          	csrr	a5,sstatus
   w_sstatus(r_sstatus() | SSTATUS_SIE);
-    802021d8:	0027e793          	ori	a5,a5,2
+    802021d2:	0027e793          	ori	a5,a5,2
   asm volatile("csrw sstatus, %0" : : "r" (x));
-    802021dc:	10079073          	csrw	sstatus,a5
+    802021d6:	10079073          	csrw	sstatus,a5
       asm volatile("wfi");
-    802021e0:	10500073          	wfi
+    802021da:	10500073          	wfi
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    802021e4:	100027f3          	csrr	a5,sstatus
+    802021de:	100027f3          	csrr	a5,sstatus
   w_sstatus(r_sstatus() | SSTATUS_SIE);
-    802021e8:	0027e793          	ori	a5,a5,2
+    802021e2:	0027e793          	ori	a5,a5,2
   asm volatile("csrw sstatus, %0" : : "r" (x));
-    802021ec:	10079073          	csrw	sstatus,a5
+    802021e6:	10079073          	csrw	sstatus,a5
     int found = 0;
-    802021f0:	4c01                	li	s8,0
+    802021ea:	4c01                	li	s8,0
     for(p = proc; p < &proc[NPROC]; p++) {
-    802021f2:	00014497          	auipc	s1,0x14
-    802021f6:	f8e48493          	addi	s1,s1,-114 # 80216180 <proc>
+    802021ec:	00014497          	auipc	s1,0x14
+    802021f0:	f9448493          	addi	s1,s1,-108 # 80216180 <proc>
       if(p->state == RUNNABLE) {
-    802021fa:	4989                	li	s3,2
+    802021f4:	4989                	li	s3,2
     for(p = proc; p < &proc[NPROC]; p++) {
-    802021fc:	0002b917          	auipc	s2,0x2b
-    80202200:	b9490913          	addi	s2,s2,-1132 # 8022cd90 <syscall_counts>
-    80202204:	bfb5                	j	80202180 <scheduler+0x64>
+    802021f6:	0002b917          	auipc	s2,0x2b
+    802021fa:	b9a90913          	addi	s2,s2,-1126 # 8022cd90 <syscall_counts>
+    802021fe:	bfb5                	j	8020217a <scheduler+0x64>
 
-0000000080202206 <sched>:
+0000000080202200 <sched>:
 {
-    80202206:	7179                	addi	sp,sp,-48
-    80202208:	f406                	sd	ra,40(sp)
-    8020220a:	f022                	sd	s0,32(sp)
-    8020220c:	ec26                	sd	s1,24(sp)
-    8020220e:	e84a                	sd	s2,16(sp)
-    80202210:	e44e                	sd	s3,8(sp)
-    80202212:	1800                	addi	s0,sp,48
+    80202200:	7179                	addi	sp,sp,-48
+    80202202:	f406                	sd	ra,40(sp)
+    80202204:	f022                	sd	s0,32(sp)
+    80202206:	ec26                	sd	s1,24(sp)
+    80202208:	e84a                	sd	s2,16(sp)
+    8020220a:	e44e                	sd	s3,8(sp)
+    8020220c:	1800                	addi	s0,sp,48
   struct proc *p = myproc();
-    80202214:	00000097          	auipc	ra,0x0
-    80202218:	828080e7          	jalr	-2008(ra) # 80201a3c <myproc>
-    8020221c:	84aa                	mv	s1,a0
+    8020220e:	00000097          	auipc	ra,0x0
+    80202212:	82e080e7          	jalr	-2002(ra) # 80201a3c <myproc>
+    80202216:	84aa                	mv	s1,a0
   if(!holding(&p->lock))
-    8020221e:	ffffe097          	auipc	ra,0xffffe
-    80202222:	47a080e7          	jalr	1146(ra) # 80200698 <holding>
-    80202226:	c93d                	beqz	a0,8020229c <sched+0x96>
+    80202218:	ffffe097          	auipc	ra,0xffffe
+    8020221c:	480080e7          	jalr	1152(ra) # 80200698 <holding>
+    80202220:	c93d                	beqz	a0,80202296 <sched+0x96>
   asm volatile("mv %0, tp" : "=r" (x) );
-    80202228:	8792                	mv	a5,tp
+    80202222:	8792                	mv	a5,tp
   if(mycpu()->noff != 1)
-    8020222a:	2781                	sext.w	a5,a5
-    8020222c:	079e                	slli	a5,a5,0x7
-    8020222e:	00014717          	auipc	a4,0x14
-    80202232:	e3270713          	addi	a4,a4,-462 # 80216060 <pid_lock>
-    80202236:	97ba                	add	a5,a5,a4
-    80202238:	0907a703          	lw	a4,144(a5)
-    8020223c:	4785                	li	a5,1
-    8020223e:	06f71763          	bne	a4,a5,802022ac <sched+0xa6>
+    80202224:	2781                	sext.w	a5,a5
+    80202226:	079e                	slli	a5,a5,0x7
+    80202228:	00014717          	auipc	a4,0x14
+    8020222c:	e3870713          	addi	a4,a4,-456 # 80216060 <pid_lock>
+    80202230:	97ba                	add	a5,a5,a4
+    80202232:	0907a703          	lw	a4,144(a5)
+    80202236:	4785                	li	a5,1
+    80202238:	06f71763          	bne	a4,a5,802022a6 <sched+0xa6>
   if(p->state == RUNNING)
-    80202242:	4c98                	lw	a4,24(s1)
-    80202244:	478d                	li	a5,3
-    80202246:	06f70b63          	beq	a4,a5,802022bc <sched+0xb6>
+    8020223c:	4c98                	lw	a4,24(s1)
+    8020223e:	478d                	li	a5,3
+    80202240:	06f70b63          	beq	a4,a5,802022b6 <sched+0xb6>
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    8020224a:	100027f3          	csrr	a5,sstatus
+    80202244:	100027f3          	csrr	a5,sstatus
   return (x & SSTATUS_SIE) != 0;
-    8020224e:	8b89                	andi	a5,a5,2
+    80202248:	8b89                	andi	a5,a5,2
   if(intr_get())
-    80202250:	efb5                	bnez	a5,802022cc <sched+0xc6>
+    8020224a:	efb5                	bnez	a5,802022c6 <sched+0xc6>
   asm volatile("mv %0, tp" : "=r" (x) );
-    80202252:	8792                	mv	a5,tp
+    8020224c:	8792                	mv	a5,tp
   intena = mycpu()->intena;
-    80202254:	00014917          	auipc	s2,0x14
-    80202258:	e0c90913          	addi	s2,s2,-500 # 80216060 <pid_lock>
-    8020225c:	2781                	sext.w	a5,a5
-    8020225e:	079e                	slli	a5,a5,0x7
-    80202260:	97ca                	add	a5,a5,s2
-    80202262:	0947a983          	lw	s3,148(a5)
-    80202266:	8792                	mv	a5,tp
+    8020224e:	00014917          	auipc	s2,0x14
+    80202252:	e1290913          	addi	s2,s2,-494 # 80216060 <pid_lock>
+    80202256:	2781                	sext.w	a5,a5
+    80202258:	079e                	slli	a5,a5,0x7
+    8020225a:	97ca                	add	a5,a5,s2
+    8020225c:	0947a983          	lw	s3,148(a5)
+    80202260:	8792                	mv	a5,tp
   swtch(&p->context, &mycpu()->context);
-    80202268:	2781                	sext.w	a5,a5
-    8020226a:	079e                	slli	a5,a5,0x7
-    8020226c:	00014597          	auipc	a1,0x14
-    80202270:	e1458593          	addi	a1,a1,-492 # 80216080 <cpus+0x8>
-    80202274:	95be                	add	a1,a1,a5
-    80202276:	06848513          	addi	a0,s1,104
-    8020227a:	00000097          	auipc	ra,0x0
-    8020227e:	6ae080e7          	jalr	1710(ra) # 80202928 <swtch>
-    80202282:	8792                	mv	a5,tp
+    80202262:	2781                	sext.w	a5,a5
+    80202264:	079e                	slli	a5,a5,0x7
+    80202266:	00014597          	auipc	a1,0x14
+    8020226a:	e1a58593          	addi	a1,a1,-486 # 80216080 <cpus+0x8>
+    8020226e:	95be                	add	a1,a1,a5
+    80202270:	06848513          	addi	a0,s1,104
+    80202274:	00000097          	auipc	ra,0x0
+    80202278:	6ae080e7          	jalr	1710(ra) # 80202922 <swtch>
+    8020227c:	8792                	mv	a5,tp
   mycpu()->intena = intena;
-    80202284:	2781                	sext.w	a5,a5
-    80202286:	079e                	slli	a5,a5,0x7
-    80202288:	993e                	add	s2,s2,a5
-    8020228a:	09392a23          	sw	s3,148(s2)
+    8020227e:	2781                	sext.w	a5,a5
+    80202280:	079e                	slli	a5,a5,0x7
+    80202282:	993e                	add	s2,s2,a5
+    80202284:	09392a23          	sw	s3,148(s2)
 }
-    8020228e:	70a2                	ld	ra,40(sp)
-    80202290:	7402                	ld	s0,32(sp)
-    80202292:	64e2                	ld	s1,24(sp)
-    80202294:	6942                	ld	s2,16(sp)
-    80202296:	69a2                	ld	s3,8(sp)
-    80202298:	6145                	addi	sp,sp,48
-    8020229a:	8082                	ret
+    80202288:	70a2                	ld	ra,40(sp)
+    8020228a:	7402                	ld	s0,32(sp)
+    8020228c:	64e2                	ld	s1,24(sp)
+    8020228e:	6942                	ld	s2,16(sp)
+    80202290:	69a2                	ld	s3,8(sp)
+    80202292:	6145                	addi	sp,sp,48
+    80202294:	8082                	ret
     panic("sched p->lock");
-    8020229c:	00008517          	auipc	a0,0x8
-    802022a0:	3ac50513          	addi	a0,a0,940 # 8020a648 <digits+0x2c8>
-    802022a4:	ffffe097          	auipc	ra,0xffffe
-    802022a8:	ea0080e7          	jalr	-352(ra) # 80200144 <panic>
+    80202296:	00008517          	auipc	a0,0x8
+    8020229a:	3b250513          	addi	a0,a0,946 # 8020a648 <digits+0x2c8>
+    8020229e:	ffffe097          	auipc	ra,0xffffe
+    802022a2:	ea6080e7          	jalr	-346(ra) # 80200144 <panic>
     panic("sched locks");
-    802022ac:	00008517          	auipc	a0,0x8
-    802022b0:	3ac50513          	addi	a0,a0,940 # 8020a658 <digits+0x2d8>
-    802022b4:	ffffe097          	auipc	ra,0xffffe
-    802022b8:	e90080e7          	jalr	-368(ra) # 80200144 <panic>
+    802022a6:	00008517          	auipc	a0,0x8
+    802022aa:	3b250513          	addi	a0,a0,946 # 8020a658 <digits+0x2d8>
+    802022ae:	ffffe097          	auipc	ra,0xffffe
+    802022b2:	e96080e7          	jalr	-362(ra) # 80200144 <panic>
     panic("sched running");
-    802022bc:	00008517          	auipc	a0,0x8
-    802022c0:	3ac50513          	addi	a0,a0,940 # 8020a668 <digits+0x2e8>
-    802022c4:	ffffe097          	auipc	ra,0xffffe
-    802022c8:	e80080e7          	jalr	-384(ra) # 80200144 <panic>
+    802022b6:	00008517          	auipc	a0,0x8
+    802022ba:	3b250513          	addi	a0,a0,946 # 8020a668 <digits+0x2e8>
+    802022be:	ffffe097          	auipc	ra,0xffffe
+    802022c2:	e86080e7          	jalr	-378(ra) # 80200144 <panic>
     panic("sched interruptible");
-    802022cc:	00008517          	auipc	a0,0x8
-    802022d0:	3ac50513          	addi	a0,a0,940 # 8020a678 <digits+0x2f8>
-    802022d4:	ffffe097          	auipc	ra,0xffffe
-    802022d8:	e70080e7          	jalr	-400(ra) # 80200144 <panic>
+    802022c6:	00008517          	auipc	a0,0x8
+    802022ca:	3b250513          	addi	a0,a0,946 # 8020a678 <digits+0x2f8>
+    802022ce:	ffffe097          	auipc	ra,0xffffe
+    802022d2:	e76080e7          	jalr	-394(ra) # 80200144 <panic>
 
-00000000802022dc <exit>:
+00000000802022d6 <exit>:
 {
-    802022dc:	7179                	addi	sp,sp,-48
-    802022de:	f406                	sd	ra,40(sp)
-    802022e0:	f022                	sd	s0,32(sp)
-    802022e2:	ec26                	sd	s1,24(sp)
-    802022e4:	e84a                	sd	s2,16(sp)
-    802022e6:	e44e                	sd	s3,8(sp)
-    802022e8:	e052                	sd	s4,0(sp)
-    802022ea:	1800                	addi	s0,sp,48
-    802022ec:	8a2a                	mv	s4,a0
+    802022d6:	7179                	addi	sp,sp,-48
+    802022d8:	f406                	sd	ra,40(sp)
+    802022da:	f022                	sd	s0,32(sp)
+    802022dc:	ec26                	sd	s1,24(sp)
+    802022de:	e84a                	sd	s2,16(sp)
+    802022e0:	e44e                	sd	s3,8(sp)
+    802022e2:	e052                	sd	s4,0(sp)
+    802022e4:	1800                	addi	s0,sp,48
+    802022e6:	8a2a                	mv	s4,a0
   struct proc *p = myproc();
-    802022ee:	fffff097          	auipc	ra,0xfffff
-    802022f2:	74e080e7          	jalr	1870(ra) # 80201a3c <myproc>
-    802022f6:	89aa                	mv	s3,a0
+    802022e8:	fffff097          	auipc	ra,0xfffff
+    802022ec:	754080e7          	jalr	1876(ra) # 80201a3c <myproc>
+    802022f0:	89aa                	mv	s3,a0
   if(p == initproc)
-    802022f8:	00014797          	auipc	a5,0x14
-    802022fc:	e807b783          	ld	a5,-384(a5) # 80216178 <initproc>
-    80202300:	0d850493          	addi	s1,a0,216
-    80202304:	40050913          	addi	s2,a0,1024
-    80202308:	02a79363          	bne	a5,a0,8020232e <exit+0x52>
+    802022f2:	00014797          	auipc	a5,0x14
+    802022f6:	e867b783          	ld	a5,-378(a5) # 80216178 <initproc>
+    802022fa:	0d850493          	addi	s1,a0,216
+    802022fe:	40050913          	addi	s2,a0,1024
+    80202302:	02a79363          	bne	a5,a0,80202328 <exit+0x52>
     panic("init exiting");
-    8020230c:	00008517          	auipc	a0,0x8
-    80202310:	38450513          	addi	a0,a0,900 # 8020a690 <digits+0x310>
-    80202314:	ffffe097          	auipc	ra,0xffffe
-    80202318:	e30080e7          	jalr	-464(ra) # 80200144 <panic>
+    80202306:	00008517          	auipc	a0,0x8
+    8020230a:	38a50513          	addi	a0,a0,906 # 8020a690 <digits+0x310>
+    8020230e:	ffffe097          	auipc	ra,0xffffe
+    80202312:	e36080e7          	jalr	-458(ra) # 80200144 <panic>
       fileclose(f);
-    8020231c:	00002097          	auipc	ra,0x2
-    80202320:	d2a080e7          	jalr	-726(ra) # 80204046 <fileclose>
+    80202316:	00002097          	auipc	ra,0x2
+    8020231a:	d34080e7          	jalr	-716(ra) # 8020404a <fileclose>
       p->ofile[fd] = 0;
-    80202324:	0004b023          	sd	zero,0(s1)
+    8020231e:	0004b023          	sd	zero,0(s1)
   for(int fd = 0; fd < NOFILE; fd++){
-    80202328:	04a1                	addi	s1,s1,8
-    8020232a:	01248563          	beq	s1,s2,80202334 <exit+0x58>
+    80202322:	04a1                	addi	s1,s1,8
+    80202324:	01248563          	beq	s1,s2,8020232e <exit+0x58>
     if(p->ofile[fd]){
-    8020232e:	6088                	ld	a0,0(s1)
-    80202330:	f575                	bnez	a0,8020231c <exit+0x40>
-    80202332:	bfdd                	j	80202328 <exit+0x4c>
+    80202328:	6088                	ld	a0,0(s1)
+    8020232a:	f575                	bnez	a0,80202316 <exit+0x40>
+    8020232c:	bfdd                	j	80202322 <exit+0x4c>
   eput(p->cwd);
-    80202334:	4009b503          	ld	a0,1024(s3)
-    80202338:	00005097          	auipc	ra,0x5
-    8020233c:	e0a080e7          	jalr	-502(ra) # 80207142 <eput>
+    8020232e:	4009b503          	ld	a0,1024(s3)
+    80202332:	00005097          	auipc	ra,0x5
+    80202336:	dd0080e7          	jalr	-560(ra) # 80207102 <eput>
   p->cwd = 0;
-    80202340:	4009b023          	sd	zero,1024(s3)
+    8020233a:	4009b023          	sd	zero,1024(s3)
   acquire(&initproc->lock);
-    80202344:	00014497          	auipc	s1,0x14
-    80202348:	d1c48493          	addi	s1,s1,-740 # 80216060 <pid_lock>
-    8020234c:	1184b503          	ld	a0,280(s1)
-    80202350:	ffffe097          	auipc	ra,0xffffe
-    80202354:	376080e7          	jalr	886(ra) # 802006c6 <acquire>
+    8020233e:	00014497          	auipc	s1,0x14
+    80202342:	d2248493          	addi	s1,s1,-734 # 80216060 <pid_lock>
+    80202346:	1184b503          	ld	a0,280(s1)
+    8020234a:	ffffe097          	auipc	ra,0xffffe
+    8020234e:	37c080e7          	jalr	892(ra) # 802006c6 <acquire>
   wakeup1(initproc);
-    80202358:	1184b503          	ld	a0,280(s1)
-    8020235c:	fffff097          	auipc	ra,0xfffff
-    80202360:	4f4080e7          	jalr	1268(ra) # 80201850 <wakeup1>
+    80202352:	1184b503          	ld	a0,280(s1)
+    80202356:	fffff097          	auipc	ra,0xfffff
+    8020235a:	4fa080e7          	jalr	1274(ra) # 80201850 <wakeup1>
   release(&initproc->lock);
-    80202364:	1184b503          	ld	a0,280(s1)
-    80202368:	ffffe097          	auipc	ra,0xffffe
-    8020236c:	3b2080e7          	jalr	946(ra) # 8020071a <release>
+    8020235e:	1184b503          	ld	a0,280(s1)
+    80202362:	ffffe097          	auipc	ra,0xffffe
+    80202366:	3b8080e7          	jalr	952(ra) # 8020071a <release>
   acquire(&p->lock);
-    80202370:	854e                	mv	a0,s3
-    80202372:	ffffe097          	auipc	ra,0xffffe
-    80202376:	354080e7          	jalr	852(ra) # 802006c6 <acquire>
+    8020236a:	854e                	mv	a0,s3
+    8020236c:	ffffe097          	auipc	ra,0xffffe
+    80202370:	35a080e7          	jalr	858(ra) # 802006c6 <acquire>
   struct proc *original_parent = p->parent;
-    8020237a:	0209b483          	ld	s1,32(s3)
+    80202374:	0209b483          	ld	s1,32(s3)
   release(&p->lock);
-    8020237e:	854e                	mv	a0,s3
-    80202380:	ffffe097          	auipc	ra,0xffffe
-    80202384:	39a080e7          	jalr	922(ra) # 8020071a <release>
+    80202378:	854e                	mv	a0,s3
+    8020237a:	ffffe097          	auipc	ra,0xffffe
+    8020237e:	3a0080e7          	jalr	928(ra) # 8020071a <release>
   acquire(&original_parent->lock);
-    80202388:	8526                	mv	a0,s1
-    8020238a:	ffffe097          	auipc	ra,0xffffe
-    8020238e:	33c080e7          	jalr	828(ra) # 802006c6 <acquire>
+    80202382:	8526                	mv	a0,s1
+    80202384:	ffffe097          	auipc	ra,0xffffe
+    80202388:	342080e7          	jalr	834(ra) # 802006c6 <acquire>
   acquire(&p->lock);
-    80202392:	854e                	mv	a0,s3
-    80202394:	ffffe097          	auipc	ra,0xffffe
-    80202398:	332080e7          	jalr	818(ra) # 802006c6 <acquire>
+    8020238c:	854e                	mv	a0,s3
+    8020238e:	ffffe097          	auipc	ra,0xffffe
+    80202392:	338080e7          	jalr	824(ra) # 802006c6 <acquire>
   reparent(p);
-    8020239c:	854e                	mv	a0,s3
-    8020239e:	00000097          	auipc	ra,0x0
-    802023a2:	bde080e7          	jalr	-1058(ra) # 80201f7c <reparent>
+    80202396:	854e                	mv	a0,s3
+    80202398:	00000097          	auipc	ra,0x0
+    8020239c:	bde080e7          	jalr	-1058(ra) # 80201f76 <reparent>
   wakeup1(original_parent);
-    802023a6:	8526                	mv	a0,s1
-    802023a8:	fffff097          	auipc	ra,0xfffff
-    802023ac:	4a8080e7          	jalr	1192(ra) # 80201850 <wakeup1>
+    802023a0:	8526                	mv	a0,s1
+    802023a2:	fffff097          	auipc	ra,0xfffff
+    802023a6:	4ae080e7          	jalr	1198(ra) # 80201850 <wakeup1>
   p->xstate = status;
-    802023b0:	0349aa23          	sw	s4,52(s3)
+    802023aa:	0349aa23          	sw	s4,52(s3)
   p->state = ZOMBIE;
-    802023b4:	4791                	li	a5,4
-    802023b6:	00f9ac23          	sw	a5,24(s3)
+    802023ae:	4791                	li	a5,4
+    802023b0:	00f9ac23          	sw	a5,24(s3)
   release(&original_parent->lock);
-    802023ba:	8526                	mv	a0,s1
-    802023bc:	ffffe097          	auipc	ra,0xffffe
-    802023c0:	35e080e7          	jalr	862(ra) # 8020071a <release>
+    802023b4:	8526                	mv	a0,s1
+    802023b6:	ffffe097          	auipc	ra,0xffffe
+    802023ba:	364080e7          	jalr	868(ra) # 8020071a <release>
   sched();
-    802023c4:	00000097          	auipc	ra,0x0
-    802023c8:	e42080e7          	jalr	-446(ra) # 80202206 <sched>
+    802023be:	00000097          	auipc	ra,0x0
+    802023c2:	e42080e7          	jalr	-446(ra) # 80202200 <sched>
   panic("zombie exit");
-    802023cc:	00008517          	auipc	a0,0x8
-    802023d0:	2d450513          	addi	a0,a0,724 # 8020a6a0 <digits+0x320>
-    802023d4:	ffffe097          	auipc	ra,0xffffe
-    802023d8:	d70080e7          	jalr	-656(ra) # 80200144 <panic>
+    802023c6:	00008517          	auipc	a0,0x8
+    802023ca:	2da50513          	addi	a0,a0,730 # 8020a6a0 <digits+0x320>
+    802023ce:	ffffe097          	auipc	ra,0xffffe
+    802023d2:	d76080e7          	jalr	-650(ra) # 80200144 <panic>
 
-00000000802023dc <yield>:
+00000000802023d6 <yield>:
 {
-    802023dc:	1101                	addi	sp,sp,-32
-    802023de:	ec06                	sd	ra,24(sp)
-    802023e0:	e822                	sd	s0,16(sp)
-    802023e2:	e426                	sd	s1,8(sp)
-    802023e4:	1000                	addi	s0,sp,32
+    802023d6:	1101                	addi	sp,sp,-32
+    802023d8:	ec06                	sd	ra,24(sp)
+    802023da:	e822                	sd	s0,16(sp)
+    802023dc:	e426                	sd	s1,8(sp)
+    802023de:	1000                	addi	s0,sp,32
   struct proc *p = myproc();
-    802023e6:	fffff097          	auipc	ra,0xfffff
-    802023ea:	656080e7          	jalr	1622(ra) # 80201a3c <myproc>
-    802023ee:	84aa                	mv	s1,a0
+    802023e0:	fffff097          	auipc	ra,0xfffff
+    802023e4:	65c080e7          	jalr	1628(ra) # 80201a3c <myproc>
+    802023e8:	84aa                	mv	s1,a0
   acquire(&p->lock);
-    802023f0:	ffffe097          	auipc	ra,0xffffe
-    802023f4:	2d6080e7          	jalr	726(ra) # 802006c6 <acquire>
+    802023ea:	ffffe097          	auipc	ra,0xffffe
+    802023ee:	2dc080e7          	jalr	732(ra) # 802006c6 <acquire>
   p->state = RUNNABLE;
-    802023f8:	4789                	li	a5,2
-    802023fa:	cc9c                	sw	a5,24(s1)
+    802023f2:	4789                	li	a5,2
+    802023f4:	cc9c                	sw	a5,24(s1)
   sched();
-    802023fc:	00000097          	auipc	ra,0x0
-    80202400:	e0a080e7          	jalr	-502(ra) # 80202206 <sched>
+    802023f6:	00000097          	auipc	ra,0x0
+    802023fa:	e0a080e7          	jalr	-502(ra) # 80202200 <sched>
   release(&p->lock);
-    80202404:	8526                	mv	a0,s1
-    80202406:	ffffe097          	auipc	ra,0xffffe
-    8020240a:	314080e7          	jalr	788(ra) # 8020071a <release>
+    802023fe:	8526                	mv	a0,s1
+    80202400:	ffffe097          	auipc	ra,0xffffe
+    80202404:	31a080e7          	jalr	794(ra) # 8020071a <release>
 }
-    8020240e:	60e2                	ld	ra,24(sp)
-    80202410:	6442                	ld	s0,16(sp)
-    80202412:	64a2                	ld	s1,8(sp)
-    80202414:	6105                	addi	sp,sp,32
-    80202416:	8082                	ret
+    80202408:	60e2                	ld	ra,24(sp)
+    8020240a:	6442                	ld	s0,16(sp)
+    8020240c:	64a2                	ld	s1,8(sp)
+    8020240e:	6105                	addi	sp,sp,32
+    80202410:	8082                	ret
 
-0000000080202418 <sleep>:
+0000000080202412 <sleep>:
 {
-    80202418:	7179                	addi	sp,sp,-48
-    8020241a:	f406                	sd	ra,40(sp)
-    8020241c:	f022                	sd	s0,32(sp)
-    8020241e:	ec26                	sd	s1,24(sp)
-    80202420:	e84a                	sd	s2,16(sp)
-    80202422:	e44e                	sd	s3,8(sp)
-    80202424:	1800                	addi	s0,sp,48
-    80202426:	89aa                	mv	s3,a0
-    80202428:	892e                	mv	s2,a1
+    80202412:	7179                	addi	sp,sp,-48
+    80202414:	f406                	sd	ra,40(sp)
+    80202416:	f022                	sd	s0,32(sp)
+    80202418:	ec26                	sd	s1,24(sp)
+    8020241a:	e84a                	sd	s2,16(sp)
+    8020241c:	e44e                	sd	s3,8(sp)
+    8020241e:	1800                	addi	s0,sp,48
+    80202420:	89aa                	mv	s3,a0
+    80202422:	892e                	mv	s2,a1
   struct proc *p = myproc();
-    8020242a:	fffff097          	auipc	ra,0xfffff
-    8020242e:	612080e7          	jalr	1554(ra) # 80201a3c <myproc>
-    80202432:	84aa                	mv	s1,a0
+    80202424:	fffff097          	auipc	ra,0xfffff
+    80202428:	618080e7          	jalr	1560(ra) # 80201a3c <myproc>
+    8020242c:	84aa                	mv	s1,a0
   if(lk != &p->lock){  //DOC: sleeplock0
-    80202434:	05250663          	beq	a0,s2,80202480 <sleep+0x68>
+    8020242e:	05250663          	beq	a0,s2,8020247a <sleep+0x68>
     acquire(&p->lock);  //DOC: sleeplock1
-    80202438:	ffffe097          	auipc	ra,0xffffe
-    8020243c:	28e080e7          	jalr	654(ra) # 802006c6 <acquire>
+    80202432:	ffffe097          	auipc	ra,0xffffe
+    80202436:	294080e7          	jalr	660(ra) # 802006c6 <acquire>
     release(lk);
-    80202440:	854a                	mv	a0,s2
-    80202442:	ffffe097          	auipc	ra,0xffffe
-    80202446:	2d8080e7          	jalr	728(ra) # 8020071a <release>
+    8020243a:	854a                	mv	a0,s2
+    8020243c:	ffffe097          	auipc	ra,0xffffe
+    80202440:	2de080e7          	jalr	734(ra) # 8020071a <release>
   p->chan = chan;
-    8020244a:	0334b423          	sd	s3,40(s1)
+    80202444:	0334b423          	sd	s3,40(s1)
   p->state = SLEEPING;
-    8020244e:	4785                	li	a5,1
-    80202450:	cc9c                	sw	a5,24(s1)
+    80202448:	4785                	li	a5,1
+    8020244a:	cc9c                	sw	a5,24(s1)
   sched();
-    80202452:	00000097          	auipc	ra,0x0
-    80202456:	db4080e7          	jalr	-588(ra) # 80202206 <sched>
+    8020244c:	00000097          	auipc	ra,0x0
+    80202450:	db4080e7          	jalr	-588(ra) # 80202200 <sched>
   p->chan = 0;
-    8020245a:	0204b423          	sd	zero,40(s1)
+    80202454:	0204b423          	sd	zero,40(s1)
     release(&p->lock);
-    8020245e:	8526                	mv	a0,s1
-    80202460:	ffffe097          	auipc	ra,0xffffe
-    80202464:	2ba080e7          	jalr	698(ra) # 8020071a <release>
+    80202458:	8526                	mv	a0,s1
+    8020245a:	ffffe097          	auipc	ra,0xffffe
+    8020245e:	2c0080e7          	jalr	704(ra) # 8020071a <release>
     acquire(lk);
-    80202468:	854a                	mv	a0,s2
-    8020246a:	ffffe097          	auipc	ra,0xffffe
-    8020246e:	25c080e7          	jalr	604(ra) # 802006c6 <acquire>
+    80202462:	854a                	mv	a0,s2
+    80202464:	ffffe097          	auipc	ra,0xffffe
+    80202468:	262080e7          	jalr	610(ra) # 802006c6 <acquire>
 }
-    80202472:	70a2                	ld	ra,40(sp)
-    80202474:	7402                	ld	s0,32(sp)
-    80202476:	64e2                	ld	s1,24(sp)
-    80202478:	6942                	ld	s2,16(sp)
-    8020247a:	69a2                	ld	s3,8(sp)
-    8020247c:	6145                	addi	sp,sp,48
-    8020247e:	8082                	ret
+    8020246c:	70a2                	ld	ra,40(sp)
+    8020246e:	7402                	ld	s0,32(sp)
+    80202470:	64e2                	ld	s1,24(sp)
+    80202472:	6942                	ld	s2,16(sp)
+    80202474:	69a2                	ld	s3,8(sp)
+    80202476:	6145                	addi	sp,sp,48
+    80202478:	8082                	ret
   p->chan = chan;
-    80202480:	03353423          	sd	s3,40(a0)
+    8020247a:	03353423          	sd	s3,40(a0)
   p->state = SLEEPING;
-    80202484:	4785                	li	a5,1
-    80202486:	cd1c                	sw	a5,24(a0)
+    8020247e:	4785                	li	a5,1
+    80202480:	cd1c                	sw	a5,24(a0)
   sched();
-    80202488:	00000097          	auipc	ra,0x0
-    8020248c:	d7e080e7          	jalr	-642(ra) # 80202206 <sched>
+    80202482:	00000097          	auipc	ra,0x0
+    80202486:	d7e080e7          	jalr	-642(ra) # 80202200 <sched>
   p->chan = 0;
-    80202490:	0204b423          	sd	zero,40(s1)
+    8020248a:	0204b423          	sd	zero,40(s1)
   if(lk != &p->lock){
-    80202494:	bff9                	j	80202472 <sleep+0x5a>
+    8020248e:	bff9                	j	8020246c <sleep+0x5a>
 
-0000000080202496 <wait>:
+0000000080202490 <wait>:
 {
-    80202496:	715d                	addi	sp,sp,-80
-    80202498:	e486                	sd	ra,72(sp)
-    8020249a:	e0a2                	sd	s0,64(sp)
-    8020249c:	fc26                	sd	s1,56(sp)
-    8020249e:	f84a                	sd	s2,48(sp)
-    802024a0:	f44e                	sd	s3,40(sp)
-    802024a2:	f052                	sd	s4,32(sp)
-    802024a4:	ec56                	sd	s5,24(sp)
-    802024a6:	e85a                	sd	s6,16(sp)
-    802024a8:	e45e                	sd	s7,8(sp)
-    802024aa:	0880                	addi	s0,sp,80
-    802024ac:	8b2a                	mv	s6,a0
+    80202490:	715d                	addi	sp,sp,-80
+    80202492:	e486                	sd	ra,72(sp)
+    80202494:	e0a2                	sd	s0,64(sp)
+    80202496:	fc26                	sd	s1,56(sp)
+    80202498:	f84a                	sd	s2,48(sp)
+    8020249a:	f44e                	sd	s3,40(sp)
+    8020249c:	f052                	sd	s4,32(sp)
+    8020249e:	ec56                	sd	s5,24(sp)
+    802024a0:	e85a                	sd	s6,16(sp)
+    802024a2:	e45e                	sd	s7,8(sp)
+    802024a4:	0880                	addi	s0,sp,80
+    802024a6:	8b2a                	mv	s6,a0
   struct proc *p = myproc();
-    802024ae:	fffff097          	auipc	ra,0xfffff
-    802024b2:	58e080e7          	jalr	1422(ra) # 80201a3c <myproc>
-    802024b6:	892a                	mv	s2,a0
+    802024a8:	fffff097          	auipc	ra,0xfffff
+    802024ac:	594080e7          	jalr	1428(ra) # 80201a3c <myproc>
+    802024b0:	892a                	mv	s2,a0
   acquire(&p->lock);
-    802024b8:	ffffe097          	auipc	ra,0xffffe
-    802024bc:	20e080e7          	jalr	526(ra) # 802006c6 <acquire>
+    802024b2:	ffffe097          	auipc	ra,0xffffe
+    802024b6:	214080e7          	jalr	532(ra) # 802006c6 <acquire>
     havekids = 0;
-    802024c0:	4b81                	li	s7,0
+    802024ba:	4b81                	li	s7,0
         if(np->state == ZOMBIE){
-    802024c2:	4a11                	li	s4,4
+    802024bc:	4a11                	li	s4,4
         havekids = 1;
-    802024c4:	4a85                	li	s5,1
+    802024be:	4a85                	li	s5,1
     for(np = proc; np < &proc[NPROC]; np++){
-    802024c6:	0002b997          	auipc	s3,0x2b
-    802024ca:	8ca98993          	addi	s3,s3,-1846 # 8022cd90 <syscall_counts>
+    802024c0:	0002b997          	auipc	s3,0x2b
+    802024c4:	8d098993          	addi	s3,s3,-1840 # 8022cd90 <syscall_counts>
     havekids = 0;
-    802024ce:	875e                	mv	a4,s7
+    802024c8:	875e                	mv	a4,s7
     for(np = proc; np < &proc[NPROC]; np++){
-    802024d0:	00014497          	auipc	s1,0x14
-    802024d4:	cb048493          	addi	s1,s1,-848 # 80216180 <proc>
-    802024d8:	a8ad                	j	80202552 <wait+0xbc>
+    802024ca:	00014497          	auipc	s1,0x14
+    802024ce:	cb648493          	addi	s1,s1,-842 # 80216180 <proc>
+    802024d2:	a8ad                	j	8020254c <wait+0xbc>
           (p->cutime) += (np->utime);
-    802024da:	43093783          	ld	a5,1072(s2)
-    802024de:	4204b703          	ld	a4,1056(s1)
-    802024e2:	97ba                	add	a5,a5,a4
-    802024e4:	42f93823          	sd	a5,1072(s2)
+    802024d4:	43093783          	ld	a5,1072(s2)
+    802024d8:	4204b703          	ld	a4,1056(s1)
+    802024dc:	97ba                	add	a5,a5,a4
+    802024de:	42f93823          	sd	a5,1072(s2)
           (p->cstime) += (np->stime);
-    802024e8:	43893783          	ld	a5,1080(s2)
-    802024ec:	4284b703          	ld	a4,1064(s1)
-    802024f0:	97ba                	add	a5,a5,a4
-    802024f2:	42f93c23          	sd	a5,1080(s2)
+    802024e2:	43893783          	ld	a5,1080(s2)
+    802024e6:	4284b703          	ld	a4,1064(s1)
+    802024ea:	97ba                	add	a5,a5,a4
+    802024ec:	42f93c23          	sd	a5,1080(s2)
           pid = np->pid;
-    802024f6:	0384a983          	lw	s3,56(s1)
+    802024f0:	0384a983          	lw	s3,56(s1)
           if(addr != 0 && copyout2(addr, (char *)&np->xstate, sizeof(np->xstate)) < 0) {
-    802024fa:	000b0c63          	beqz	s6,80202512 <wait+0x7c>
-    802024fe:	4611                	li	a2,4
-    80202500:	03448593          	addi	a1,s1,52
-    80202504:	855a                	mv	a0,s6
-    80202506:	fffff097          	auipc	ra,0xfffff
-    8020250a:	e6c080e7          	jalr	-404(ra) # 80201372 <copyout2>
-    8020250e:	02054263          	bltz	a0,80202532 <wait+0x9c>
+    802024f4:	000b0c63          	beqz	s6,8020250c <wait+0x7c>
+    802024f8:	4611                	li	a2,4
+    802024fa:	03448593          	addi	a1,s1,52
+    802024fe:	855a                	mv	a0,s6
+    80202500:	fffff097          	auipc	ra,0xfffff
+    80202504:	e72080e7          	jalr	-398(ra) # 80201372 <copyout2>
+    80202508:	02054263          	bltz	a0,8020252c <wait+0x9c>
           freeproc(np);
-    80202512:	8526                	mv	a0,s1
-    80202514:	fffff097          	auipc	ra,0xfffff
-    80202518:	6fa080e7          	jalr	1786(ra) # 80201c0e <freeproc>
+    8020250c:	8526                	mv	a0,s1
+    8020250e:	fffff097          	auipc	ra,0xfffff
+    80202512:	700080e7          	jalr	1792(ra) # 80201c0e <freeproc>
           release(&np->lock);
-    8020251c:	8526                	mv	a0,s1
-    8020251e:	ffffe097          	auipc	ra,0xffffe
-    80202522:	1fc080e7          	jalr	508(ra) # 8020071a <release>
+    80202516:	8526                	mv	a0,s1
+    80202518:	ffffe097          	auipc	ra,0xffffe
+    8020251c:	202080e7          	jalr	514(ra) # 8020071a <release>
           release(&p->lock);
-    80202526:	854a                	mv	a0,s2
-    80202528:	ffffe097          	auipc	ra,0xffffe
-    8020252c:	1f2080e7          	jalr	498(ra) # 8020071a <release>
+    80202520:	854a                	mv	a0,s2
+    80202522:	ffffe097          	auipc	ra,0xffffe
+    80202526:	1f8080e7          	jalr	504(ra) # 8020071a <release>
           return pid;
-    80202530:	a8a9                	j	8020258a <wait+0xf4>
+    8020252a:	a8a9                	j	80202584 <wait+0xf4>
             release(&np->lock);
-    80202532:	8526                	mv	a0,s1
-    80202534:	ffffe097          	auipc	ra,0xffffe
-    80202538:	1e6080e7          	jalr	486(ra) # 8020071a <release>
+    8020252c:	8526                	mv	a0,s1
+    8020252e:	ffffe097          	auipc	ra,0xffffe
+    80202532:	1ec080e7          	jalr	492(ra) # 8020071a <release>
             release(&p->lock);
-    8020253c:	854a                	mv	a0,s2
-    8020253e:	ffffe097          	auipc	ra,0xffffe
-    80202542:	1dc080e7          	jalr	476(ra) # 8020071a <release>
+    80202536:	854a                	mv	a0,s2
+    80202538:	ffffe097          	auipc	ra,0xffffe
+    8020253c:	1e2080e7          	jalr	482(ra) # 8020071a <release>
             return -1;
-    80202546:	59fd                	li	s3,-1
-    80202548:	a089                	j	8020258a <wait+0xf4>
+    80202540:	59fd                	li	s3,-1
+    80202542:	a089                	j	80202584 <wait+0xf4>
     for(np = proc; np < &proc[NPROC]; np++){
-    8020254a:	74848493          	addi	s1,s1,1864
-    8020254e:	03348463          	beq	s1,s3,80202576 <wait+0xe0>
+    80202544:	74848493          	addi	s1,s1,1864
+    80202548:	03348463          	beq	s1,s3,80202570 <wait+0xe0>
       if(np->parent == p){
-    80202552:	709c                	ld	a5,32(s1)
-    80202554:	ff279be3          	bne	a5,s2,8020254a <wait+0xb4>
+    8020254c:	709c                	ld	a5,32(s1)
+    8020254e:	ff279be3          	bne	a5,s2,80202544 <wait+0xb4>
         acquire(&np->lock);
-    80202558:	8526                	mv	a0,s1
-    8020255a:	ffffe097          	auipc	ra,0xffffe
-    8020255e:	16c080e7          	jalr	364(ra) # 802006c6 <acquire>
+    80202552:	8526                	mv	a0,s1
+    80202554:	ffffe097          	auipc	ra,0xffffe
+    80202558:	172080e7          	jalr	370(ra) # 802006c6 <acquire>
         if(np->state == ZOMBIE){
-    80202562:	4c9c                	lw	a5,24(s1)
-    80202564:	f7478be3          	beq	a5,s4,802024da <wait+0x44>
+    8020255c:	4c9c                	lw	a5,24(s1)
+    8020255e:	f7478be3          	beq	a5,s4,802024d4 <wait+0x44>
         release(&np->lock);
-    80202568:	8526                	mv	a0,s1
-    8020256a:	ffffe097          	auipc	ra,0xffffe
-    8020256e:	1b0080e7          	jalr	432(ra) # 8020071a <release>
+    80202562:	8526                	mv	a0,s1
+    80202564:	ffffe097          	auipc	ra,0xffffe
+    80202568:	1b6080e7          	jalr	438(ra) # 8020071a <release>
         havekids = 1;
-    80202572:	8756                	mv	a4,s5
-    80202574:	bfd9                	j	8020254a <wait+0xb4>
+    8020256c:	8756                	mv	a4,s5
+    8020256e:	bfd9                	j	80202544 <wait+0xb4>
     if(!havekids || p->killed){
-    80202576:	c701                	beqz	a4,8020257e <wait+0xe8>
-    80202578:	03092783          	lw	a5,48(s2)
-    8020257c:	c39d                	beqz	a5,802025a2 <wait+0x10c>
+    80202570:	c701                	beqz	a4,80202578 <wait+0xe8>
+    80202572:	03092783          	lw	a5,48(s2)
+    80202576:	c39d                	beqz	a5,8020259c <wait+0x10c>
       release(&p->lock);
-    8020257e:	854a                	mv	a0,s2
-    80202580:	ffffe097          	auipc	ra,0xffffe
-    80202584:	19a080e7          	jalr	410(ra) # 8020071a <release>
+    80202578:	854a                	mv	a0,s2
+    8020257a:	ffffe097          	auipc	ra,0xffffe
+    8020257e:	1a0080e7          	jalr	416(ra) # 8020071a <release>
       return -1;
-    80202588:	59fd                	li	s3,-1
+    80202582:	59fd                	li	s3,-1
 }
-    8020258a:	854e                	mv	a0,s3
-    8020258c:	60a6                	ld	ra,72(sp)
-    8020258e:	6406                	ld	s0,64(sp)
-    80202590:	74e2                	ld	s1,56(sp)
-    80202592:	7942                	ld	s2,48(sp)
-    80202594:	79a2                	ld	s3,40(sp)
-    80202596:	7a02                	ld	s4,32(sp)
-    80202598:	6ae2                	ld	s5,24(sp)
-    8020259a:	6b42                	ld	s6,16(sp)
-    8020259c:	6ba2                	ld	s7,8(sp)
-    8020259e:	6161                	addi	sp,sp,80
-    802025a0:	8082                	ret
+    80202584:	854e                	mv	a0,s3
+    80202586:	60a6                	ld	ra,72(sp)
+    80202588:	6406                	ld	s0,64(sp)
+    8020258a:	74e2                	ld	s1,56(sp)
+    8020258c:	7942                	ld	s2,48(sp)
+    8020258e:	79a2                	ld	s3,40(sp)
+    80202590:	7a02                	ld	s4,32(sp)
+    80202592:	6ae2                	ld	s5,24(sp)
+    80202594:	6b42                	ld	s6,16(sp)
+    80202596:	6ba2                	ld	s7,8(sp)
+    80202598:	6161                	addi	sp,sp,80
+    8020259a:	8082                	ret
     sleep(p, &p->lock);  //DOC: wait-sleep
-    802025a2:	85ca                	mv	a1,s2
-    802025a4:	854a                	mv	a0,s2
-    802025a6:	00000097          	auipc	ra,0x0
-    802025aa:	e72080e7          	jalr	-398(ra) # 80202418 <sleep>
+    8020259c:	85ca                	mv	a1,s2
+    8020259e:	854a                	mv	a0,s2
+    802025a0:	00000097          	auipc	ra,0x0
+    802025a4:	e72080e7          	jalr	-398(ra) # 80202412 <sleep>
     havekids = 0;
-    802025ae:	b705                	j	802024ce <wait+0x38>
+    802025a8:	b705                	j	802024c8 <wait+0x38>
 
-00000000802025b0 <wait4>:
+00000000802025aa <wait4>:
 {
-    802025b0:	7159                	addi	sp,sp,-112
-    802025b2:	f486                	sd	ra,104(sp)
-    802025b4:	f0a2                	sd	s0,96(sp)
-    802025b6:	eca6                	sd	s1,88(sp)
-    802025b8:	e8ca                	sd	s2,80(sp)
-    802025ba:	e4ce                	sd	s3,72(sp)
-    802025bc:	e0d2                	sd	s4,64(sp)
-    802025be:	fc56                	sd	s5,56(sp)
-    802025c0:	f85a                	sd	s6,48(sp)
-    802025c2:	f45e                	sd	s7,40(sp)
-    802025c4:	f062                	sd	s8,32(sp)
-    802025c6:	ec66                	sd	s9,24(sp)
-    802025c8:	1880                	addi	s0,sp,112
-    802025ca:	8a2a                	mv	s4,a0
-    802025cc:	8cae                	mv	s9,a1
-    802025ce:	8c32                	mv	s8,a2
+    802025aa:	7159                	addi	sp,sp,-112
+    802025ac:	f486                	sd	ra,104(sp)
+    802025ae:	f0a2                	sd	s0,96(sp)
+    802025b0:	eca6                	sd	s1,88(sp)
+    802025b2:	e8ca                	sd	s2,80(sp)
+    802025b4:	e4ce                	sd	s3,72(sp)
+    802025b6:	e0d2                	sd	s4,64(sp)
+    802025b8:	fc56                	sd	s5,56(sp)
+    802025ba:	f85a                	sd	s6,48(sp)
+    802025bc:	f45e                	sd	s7,40(sp)
+    802025be:	f062                	sd	s8,32(sp)
+    802025c0:	ec66                	sd	s9,24(sp)
+    802025c2:	1880                	addi	s0,sp,112
+    802025c4:	8a2a                	mv	s4,a0
+    802025c6:	8cae                	mv	s9,a1
+    802025c8:	8c32                	mv	s8,a2
   struct proc *p = myproc();
-    802025d0:	fffff097          	auipc	ra,0xfffff
-    802025d4:	46c080e7          	jalr	1132(ra) # 80201a3c <myproc>
-    802025d8:	892a                	mv	s2,a0
+    802025ca:	fffff097          	auipc	ra,0xfffff
+    802025ce:	472080e7          	jalr	1138(ra) # 80201a3c <myproc>
+    802025d2:	892a                	mv	s2,a0
   acquire(&p->lock);
-    802025da:	ffffe097          	auipc	ra,0xffffe
-    802025de:	0ec080e7          	jalr	236(ra) # 802006c6 <acquire>
+    802025d4:	ffffe097          	auipc	ra,0xffffe
+    802025d8:	0f2080e7          	jalr	242(ra) # 802006c6 <acquire>
       if(np->parent == p && (pid == -1 || np->pid == pid)){
-    802025e2:	5afd                	li	s5,-1
+    802025dc:	5afd                	li	s5,-1
         if(np->state == ZOMBIE){
-    802025e4:	4b11                	li	s6,4
+    802025de:	4b11                	li	s6,4
     for(np = proc; np < &proc[NPROC]; np++){
-    802025e6:	0002a997          	auipc	s3,0x2a
-    802025ea:	7aa98993          	addi	s3,s3,1962 # 8022cd90 <syscall_counts>
+    802025e0:	0002a997          	auipc	s3,0x2a
+    802025e4:	7b098993          	addi	s3,s3,1968 # 8022cd90 <syscall_counts>
     if(options & 1) {
-    802025ee:	001c7c13          	andi	s8,s8,1
+    802025e8:	001c7c13          	andi	s8,s8,1
     havekids = 0;
-    802025f2:	4701                	li	a4,0
+    802025ec:	4701                	li	a4,0
     for(np = proc; np < &proc[NPROC]; np++){
-    802025f4:	00014497          	auipc	s1,0x14
-    802025f8:	b8c48493          	addi	s1,s1,-1140 # 80216180 <proc>
+    802025ee:	00014497          	auipc	s1,0x14
+    802025f2:	b9248493          	addi	s1,s1,-1134 # 80216180 <proc>
         havekids = 1;
-    802025fc:	4b85                	li	s7,1
-    802025fe:	a01d                	j	80202624 <wait4+0x74>
+    802025f6:	4b85                	li	s7,1
+    802025f8:	a01d                	j	8020261e <wait4+0x74>
         acquire(&np->lock);
-    80202600:	8526                	mv	a0,s1
-    80202602:	ffffe097          	auipc	ra,0xffffe
-    80202606:	0c4080e7          	jalr	196(ra) # 802006c6 <acquire>
+    802025fa:	8526                	mv	a0,s1
+    802025fc:	ffffe097          	auipc	ra,0xffffe
+    80202600:	0ca080e7          	jalr	202(ra) # 802006c6 <acquire>
         if(np->state == ZOMBIE){
-    8020260a:	4c9c                	lw	a5,24(s1)
-    8020260c:	03678563          	beq	a5,s6,80202636 <wait4+0x86>
+    80202604:	4c9c                	lw	a5,24(s1)
+    80202606:	03678563          	beq	a5,s6,80202630 <wait4+0x86>
         release(&np->lock);
-    80202610:	8526                	mv	a0,s1
-    80202612:	ffffe097          	auipc	ra,0xffffe
-    80202616:	108080e7          	jalr	264(ra) # 8020071a <release>
+    8020260a:	8526                	mv	a0,s1
+    8020260c:	ffffe097          	auipc	ra,0xffffe
+    80202610:	10e080e7          	jalr	270(ra) # 8020071a <release>
         havekids = 1;
-    8020261a:	875e                	mv	a4,s7
+    80202614:	875e                	mv	a4,s7
     for(np = proc; np < &proc[NPROC]; np++){
-    8020261c:	74848493          	addi	s1,s1,1864
-    80202620:	09348863          	beq	s1,s3,802026b0 <wait4+0x100>
+    80202616:	74848493          	addi	s1,s1,1864
+    8020261a:	09348863          	beq	s1,s3,802026aa <wait4+0x100>
       if(np->parent == p && (pid == -1 || np->pid == pid)){
-    80202624:	709c                	ld	a5,32(s1)
-    80202626:	ff279be3          	bne	a5,s2,8020261c <wait4+0x6c>
-    8020262a:	fd5a0be3          	beq	s4,s5,80202600 <wait4+0x50>
-    8020262e:	5c9c                	lw	a5,56(s1)
-    80202630:	ff4796e3          	bne	a5,s4,8020261c <wait4+0x6c>
-    80202634:	b7f1                	j	80202600 <wait4+0x50>
+    8020261e:	709c                	ld	a5,32(s1)
+    80202620:	ff279be3          	bne	a5,s2,80202616 <wait4+0x6c>
+    80202624:	fd5a0be3          	beq	s4,s5,802025fa <wait4+0x50>
+    80202628:	5c9c                	lw	a5,56(s1)
+    8020262a:	ff4796e3          	bne	a5,s4,80202616 <wait4+0x6c>
+    8020262e:	b7f1                	j	802025fa <wait4+0x50>
           (p->cutime) += (np->utime);
-    80202636:	43093783          	ld	a5,1072(s2)
-    8020263a:	4204b703          	ld	a4,1056(s1)
-    8020263e:	97ba                	add	a5,a5,a4
-    80202640:	42f93823          	sd	a5,1072(s2)
+    80202630:	43093783          	ld	a5,1072(s2)
+    80202634:	4204b703          	ld	a4,1056(s1)
+    80202638:	97ba                	add	a5,a5,a4
+    8020263a:	42f93823          	sd	a5,1072(s2)
           (p->cstime) += (np->stime);
-    80202644:	43893783          	ld	a5,1080(s2)
-    80202648:	4284b703          	ld	a4,1064(s1)
-    8020264c:	97ba                	add	a5,a5,a4
-    8020264e:	42f93c23          	sd	a5,1080(s2)
+    8020263e:	43893783          	ld	a5,1080(s2)
+    80202642:	4284b703          	ld	a4,1064(s1)
+    80202646:	97ba                	add	a5,a5,a4
+    80202648:	42f93c23          	sd	a5,1080(s2)
           int wstatus = np->xstate << 8;
-    80202652:	58dc                	lw	a5,52(s1)
-    80202654:	0087979b          	slliw	a5,a5,0x8
-    80202658:	f8f42e23          	sw	a5,-100(s0)
+    8020264c:	58dc                	lw	a5,52(s1)
+    8020264e:	0087979b          	slliw	a5,a5,0x8
+    80202652:	f8f42e23          	sw	a5,-100(s0)
           if (status != 0 && copyout2((uint64)status, (char*)&wstatus, sizeof(status)) < 0) {
-    8020265c:	000c8c63          	beqz	s9,80202674 <wait4+0xc4>
-    80202660:	4621                	li	a2,8
-    80202662:	f9c40593          	addi	a1,s0,-100
-    80202666:	8566                	mv	a0,s9
-    80202668:	fffff097          	auipc	ra,0xfffff
-    8020266c:	d0a080e7          	jalr	-758(ra) # 80201372 <copyout2>
-    80202670:	02054463          	bltz	a0,80202698 <wait4+0xe8>
+    80202656:	000c8c63          	beqz	s9,8020266e <wait4+0xc4>
+    8020265a:	4621                	li	a2,8
+    8020265c:	f9c40593          	addi	a1,s0,-100
+    80202660:	8566                	mv	a0,s9
+    80202662:	fffff097          	auipc	ra,0xfffff
+    80202666:	d10080e7          	jalr	-752(ra) # 80201372 <copyout2>
+    8020266a:	02054463          	bltz	a0,80202692 <wait4+0xe8>
           int ret = np->pid;
-    80202674:	0384ab83          	lw	s7,56(s1)
+    8020266e:	0384ab83          	lw	s7,56(s1)
           freeproc(np);
-    80202678:	8526                	mv	a0,s1
-    8020267a:	fffff097          	auipc	ra,0xfffff
-    8020267e:	594080e7          	jalr	1428(ra) # 80201c0e <freeproc>
+    80202672:	8526                	mv	a0,s1
+    80202674:	fffff097          	auipc	ra,0xfffff
+    80202678:	59a080e7          	jalr	1434(ra) # 80201c0e <freeproc>
           release(&np->lock);
-    80202682:	8526                	mv	a0,s1
-    80202684:	ffffe097          	auipc	ra,0xffffe
-    80202688:	096080e7          	jalr	150(ra) # 8020071a <release>
+    8020267c:	8526                	mv	a0,s1
+    8020267e:	ffffe097          	auipc	ra,0xffffe
+    80202682:	09c080e7          	jalr	156(ra) # 8020071a <release>
           release(&p->lock);
-    8020268c:	854a                	mv	a0,s2
-    8020268e:	ffffe097          	auipc	ra,0xffffe
-    80202692:	08c080e7          	jalr	140(ra) # 8020071a <release>
+    80202686:	854a                	mv	a0,s2
+    80202688:	ffffe097          	auipc	ra,0xffffe
+    8020268c:	092080e7          	jalr	146(ra) # 8020071a <release>
           return ret;
-    80202696:	a80d                	j	802026c8 <wait4+0x118>
+    80202690:	a80d                	j	802026c2 <wait4+0x118>
             release(&np->lock);
-    80202698:	8526                	mv	a0,s1
-    8020269a:	ffffe097          	auipc	ra,0xffffe
-    8020269e:	080080e7          	jalr	128(ra) # 8020071a <release>
+    80202692:	8526                	mv	a0,s1
+    80202694:	ffffe097          	auipc	ra,0xffffe
+    80202698:	086080e7          	jalr	134(ra) # 8020071a <release>
             release(&p->lock);
-    802026a2:	854a                	mv	a0,s2
-    802026a4:	ffffe097          	auipc	ra,0xffffe
-    802026a8:	076080e7          	jalr	118(ra) # 8020071a <release>
+    8020269c:	854a                	mv	a0,s2
+    8020269e:	ffffe097          	auipc	ra,0xffffe
+    802026a2:	07c080e7          	jalr	124(ra) # 8020071a <release>
             return -1;
-    802026ac:	5bfd                	li	s7,-1
-    802026ae:	a829                	j	802026c8 <wait4+0x118>
+    802026a6:	5bfd                	li	s7,-1
+    802026a8:	a829                	j	802026c2 <wait4+0x118>
     if(!havekids || p->killed){
-    802026b0:	cb15                	beqz	a4,802026e4 <wait4+0x134>
-    802026b2:	03092b83          	lw	s7,48(s2)
-    802026b6:	020b9763          	bnez	s7,802026e4 <wait4+0x134>
+    802026aa:	cb15                	beqz	a4,802026de <wait4+0x134>
+    802026ac:	03092b83          	lw	s7,48(s2)
+    802026b0:	020b9763          	bnez	s7,802026de <wait4+0x134>
     if(options & 1) {
-    802026ba:	020c0c63          	beqz	s8,802026f2 <wait4+0x142>
+    802026b4:	020c0c63          	beqz	s8,802026ec <wait4+0x142>
       release(&p->lock);
-    802026be:	854a                	mv	a0,s2
-    802026c0:	ffffe097          	auipc	ra,0xffffe
-    802026c4:	05a080e7          	jalr	90(ra) # 8020071a <release>
+    802026b8:	854a                	mv	a0,s2
+    802026ba:	ffffe097          	auipc	ra,0xffffe
+    802026be:	060080e7          	jalr	96(ra) # 8020071a <release>
 }
-    802026c8:	855e                	mv	a0,s7
-    802026ca:	70a6                	ld	ra,104(sp)
-    802026cc:	7406                	ld	s0,96(sp)
-    802026ce:	64e6                	ld	s1,88(sp)
-    802026d0:	6946                	ld	s2,80(sp)
-    802026d2:	69a6                	ld	s3,72(sp)
-    802026d4:	6a06                	ld	s4,64(sp)
-    802026d6:	7ae2                	ld	s5,56(sp)
-    802026d8:	7b42                	ld	s6,48(sp)
-    802026da:	7ba2                	ld	s7,40(sp)
-    802026dc:	7c02                	ld	s8,32(sp)
-    802026de:	6ce2                	ld	s9,24(sp)
-    802026e0:	6165                	addi	sp,sp,112
-    802026e2:	8082                	ret
+    802026c2:	855e                	mv	a0,s7
+    802026c4:	70a6                	ld	ra,104(sp)
+    802026c6:	7406                	ld	s0,96(sp)
+    802026c8:	64e6                	ld	s1,88(sp)
+    802026ca:	6946                	ld	s2,80(sp)
+    802026cc:	69a6                	ld	s3,72(sp)
+    802026ce:	6a06                	ld	s4,64(sp)
+    802026d0:	7ae2                	ld	s5,56(sp)
+    802026d2:	7b42                	ld	s6,48(sp)
+    802026d4:	7ba2                	ld	s7,40(sp)
+    802026d6:	7c02                	ld	s8,32(sp)
+    802026d8:	6ce2                	ld	s9,24(sp)
+    802026da:	6165                	addi	sp,sp,112
+    802026dc:	8082                	ret
       release(&p->lock);
-    802026e4:	854a                	mv	a0,s2
-    802026e6:	ffffe097          	auipc	ra,0xffffe
-    802026ea:	034080e7          	jalr	52(ra) # 8020071a <release>
+    802026de:	854a                	mv	a0,s2
+    802026e0:	ffffe097          	auipc	ra,0xffffe
+    802026e4:	03a080e7          	jalr	58(ra) # 8020071a <release>
       return -1;
-    802026ee:	5bfd                	li	s7,-1
-    802026f0:	bfe1                	j	802026c8 <wait4+0x118>
+    802026e8:	5bfd                	li	s7,-1
+    802026ea:	bfe1                	j	802026c2 <wait4+0x118>
     sleep(p, &p->lock);  //DOC: wait-sleep
-    802026f2:	85ca                	mv	a1,s2
-    802026f4:	854a                	mv	a0,s2
-    802026f6:	00000097          	auipc	ra,0x0
-    802026fa:	d22080e7          	jalr	-734(ra) # 80202418 <sleep>
+    802026ec:	85ca                	mv	a1,s2
+    802026ee:	854a                	mv	a0,s2
+    802026f0:	00000097          	auipc	ra,0x0
+    802026f4:	d22080e7          	jalr	-734(ra) # 80202412 <sleep>
     havekids = 0;
-    802026fe:	bdd5                	j	802025f2 <wait4+0x42>
+    802026f8:	bdd5                	j	802025ec <wait4+0x42>
 
-0000000080202700 <wakeup>:
+00000000802026fa <wakeup>:
 {
-    80202700:	7139                	addi	sp,sp,-64
-    80202702:	fc06                	sd	ra,56(sp)
-    80202704:	f822                	sd	s0,48(sp)
-    80202706:	f426                	sd	s1,40(sp)
-    80202708:	f04a                	sd	s2,32(sp)
-    8020270a:	ec4e                	sd	s3,24(sp)
-    8020270c:	e852                	sd	s4,16(sp)
-    8020270e:	e456                	sd	s5,8(sp)
-    80202710:	0080                	addi	s0,sp,64
-    80202712:	8a2a                	mv	s4,a0
+    802026fa:	7139                	addi	sp,sp,-64
+    802026fc:	fc06                	sd	ra,56(sp)
+    802026fe:	f822                	sd	s0,48(sp)
+    80202700:	f426                	sd	s1,40(sp)
+    80202702:	f04a                	sd	s2,32(sp)
+    80202704:	ec4e                	sd	s3,24(sp)
+    80202706:	e852                	sd	s4,16(sp)
+    80202708:	e456                	sd	s5,8(sp)
+    8020270a:	0080                	addi	s0,sp,64
+    8020270c:	8a2a                	mv	s4,a0
   for(p = proc; p < &proc[NPROC]; p++) {
-    80202714:	00014497          	auipc	s1,0x14
-    80202718:	a6c48493          	addi	s1,s1,-1428 # 80216180 <proc>
+    8020270e:	00014497          	auipc	s1,0x14
+    80202712:	a7248493          	addi	s1,s1,-1422 # 80216180 <proc>
     if(p->state == SLEEPING && p->chan == chan) {
-    8020271c:	4985                	li	s3,1
+    80202716:	4985                	li	s3,1
       p->state = RUNNABLE;
-    8020271e:	4a89                	li	s5,2
+    80202718:	4a89                	li	s5,2
   for(p = proc; p < &proc[NPROC]; p++) {
-    80202720:	0002a917          	auipc	s2,0x2a
-    80202724:	67090913          	addi	s2,s2,1648 # 8022cd90 <syscall_counts>
-    80202728:	a811                	j	8020273c <wakeup+0x3c>
+    8020271a:	0002a917          	auipc	s2,0x2a
+    8020271e:	67690913          	addi	s2,s2,1654 # 8022cd90 <syscall_counts>
+    80202722:	a811                	j	80202736 <wakeup+0x3c>
     release(&p->lock);
-    8020272a:	8526                	mv	a0,s1
-    8020272c:	ffffe097          	auipc	ra,0xffffe
-    80202730:	fee080e7          	jalr	-18(ra) # 8020071a <release>
+    80202724:	8526                	mv	a0,s1
+    80202726:	ffffe097          	auipc	ra,0xffffe
+    8020272a:	ff4080e7          	jalr	-12(ra) # 8020071a <release>
   for(p = proc; p < &proc[NPROC]; p++) {
-    80202734:	74848493          	addi	s1,s1,1864
-    80202738:	03248063          	beq	s1,s2,80202758 <wakeup+0x58>
+    8020272e:	74848493          	addi	s1,s1,1864
+    80202732:	03248063          	beq	s1,s2,80202752 <wakeup+0x58>
     acquire(&p->lock);
-    8020273c:	8526                	mv	a0,s1
-    8020273e:	ffffe097          	auipc	ra,0xffffe
-    80202742:	f88080e7          	jalr	-120(ra) # 802006c6 <acquire>
+    80202736:	8526                	mv	a0,s1
+    80202738:	ffffe097          	auipc	ra,0xffffe
+    8020273c:	f8e080e7          	jalr	-114(ra) # 802006c6 <acquire>
     if(p->state == SLEEPING && p->chan == chan) {
-    80202746:	4c9c                	lw	a5,24(s1)
-    80202748:	ff3791e3          	bne	a5,s3,8020272a <wakeup+0x2a>
-    8020274c:	749c                	ld	a5,40(s1)
-    8020274e:	fd479ee3          	bne	a5,s4,8020272a <wakeup+0x2a>
+    80202740:	4c9c                	lw	a5,24(s1)
+    80202742:	ff3791e3          	bne	a5,s3,80202724 <wakeup+0x2a>
+    80202746:	749c                	ld	a5,40(s1)
+    80202748:	fd479ee3          	bne	a5,s4,80202724 <wakeup+0x2a>
       p->state = RUNNABLE;
-    80202752:	0154ac23          	sw	s5,24(s1)
-    80202756:	bfd1                	j	8020272a <wakeup+0x2a>
+    8020274c:	0154ac23          	sw	s5,24(s1)
+    80202750:	bfd1                	j	80202724 <wakeup+0x2a>
 }
-    80202758:	70e2                	ld	ra,56(sp)
-    8020275a:	7442                	ld	s0,48(sp)
-    8020275c:	74a2                	ld	s1,40(sp)
-    8020275e:	7902                	ld	s2,32(sp)
-    80202760:	69e2                	ld	s3,24(sp)
-    80202762:	6a42                	ld	s4,16(sp)
-    80202764:	6aa2                	ld	s5,8(sp)
-    80202766:	6121                	addi	sp,sp,64
-    80202768:	8082                	ret
-
-000000008020276a <kill>:
+    80202752:	70e2                	ld	ra,56(sp)
+    80202754:	7442                	ld	s0,48(sp)
+    80202756:	74a2                	ld	s1,40(sp)
+    80202758:	7902                	ld	s2,32(sp)
+    8020275a:	69e2                	ld	s3,24(sp)
+    8020275c:	6a42                	ld	s4,16(sp)
+    8020275e:	6aa2                	ld	s5,8(sp)
+    80202760:	6121                	addi	sp,sp,64
+    80202762:	8082                	ret
+
+0000000080202764 <kill>:
 // Kill the process with the given pid.
 // The victim won't exit until it tries to return
 // to user space (see usertrap() in trap.c).
 int
 kill(int pid)
 {
-    8020276a:	7179                	addi	sp,sp,-48
-    8020276c:	f406                	sd	ra,40(sp)
-    8020276e:	f022                	sd	s0,32(sp)
-    80202770:	ec26                	sd	s1,24(sp)
-    80202772:	e84a                	sd	s2,16(sp)
-    80202774:	e44e                	sd	s3,8(sp)
-    80202776:	1800                	addi	s0,sp,48
-    80202778:	892a                	mv	s2,a0
+    80202764:	7179                	addi	sp,sp,-48
+    80202766:	f406                	sd	ra,40(sp)
+    80202768:	f022                	sd	s0,32(sp)
+    8020276a:	ec26                	sd	s1,24(sp)
+    8020276c:	e84a                	sd	s2,16(sp)
+    8020276e:	e44e                	sd	s3,8(sp)
+    80202770:	1800                	addi	s0,sp,48
+    80202772:	892a                	mv	s2,a0
   struct proc *p;
 
   for(p = proc; p < &proc[NPROC]; p++){
-    8020277a:	00014497          	auipc	s1,0x14
-    8020277e:	a0648493          	addi	s1,s1,-1530 # 80216180 <proc>
-    80202782:	0002a997          	auipc	s3,0x2a
-    80202786:	60e98993          	addi	s3,s3,1550 # 8022cd90 <syscall_counts>
+    80202774:	00014497          	auipc	s1,0x14
+    80202778:	a0c48493          	addi	s1,s1,-1524 # 80216180 <proc>
+    8020277c:	0002a997          	auipc	s3,0x2a
+    80202780:	61498993          	addi	s3,s3,1556 # 8022cd90 <syscall_counts>
     acquire(&p->lock);
-    8020278a:	8526                	mv	a0,s1
-    8020278c:	ffffe097          	auipc	ra,0xffffe
-    80202790:	f3a080e7          	jalr	-198(ra) # 802006c6 <acquire>
+    80202784:	8526                	mv	a0,s1
+    80202786:	ffffe097          	auipc	ra,0xffffe
+    8020278a:	f40080e7          	jalr	-192(ra) # 802006c6 <acquire>
     if(p->pid == pid){
-    80202794:	5c9c                	lw	a5,56(s1)
-    80202796:	01278d63          	beq	a5,s2,802027b0 <kill+0x46>
+    8020278e:	5c9c                	lw	a5,56(s1)
+    80202790:	01278d63          	beq	a5,s2,802027aa <kill+0x46>
         p->state = RUNNABLE;
       }
       release(&p->lock);
       return 0;
     }
     release(&p->lock);
-    8020279a:	8526                	mv	a0,s1
-    8020279c:	ffffe097          	auipc	ra,0xffffe
-    802027a0:	f7e080e7          	jalr	-130(ra) # 8020071a <release>
+    80202794:	8526                	mv	a0,s1
+    80202796:	ffffe097          	auipc	ra,0xffffe
+    8020279a:	f84080e7          	jalr	-124(ra) # 8020071a <release>
   for(p = proc; p < &proc[NPROC]; p++){
-    802027a4:	74848493          	addi	s1,s1,1864
-    802027a8:	ff3491e3          	bne	s1,s3,8020278a <kill+0x20>
+    8020279e:	74848493          	addi	s1,s1,1864
+    802027a2:	ff3491e3          	bne	s1,s3,80202784 <kill+0x20>
   }
   return -1;
-    802027ac:	557d                	li	a0,-1
-    802027ae:	a821                	j	802027c6 <kill+0x5c>
+    802027a6:	557d                	li	a0,-1
+    802027a8:	a821                	j	802027c0 <kill+0x5c>
       p->killed = 1;
-    802027b0:	4785                	li	a5,1
-    802027b2:	d89c                	sw	a5,48(s1)
+    802027aa:	4785                	li	a5,1
+    802027ac:	d89c                	sw	a5,48(s1)
       if(p->state == SLEEPING){
-    802027b4:	4c98                	lw	a4,24(s1)
-    802027b6:	00f70f63          	beq	a4,a5,802027d4 <kill+0x6a>
+    802027ae:	4c98                	lw	a4,24(s1)
+    802027b0:	00f70f63          	beq	a4,a5,802027ce <kill+0x6a>
       release(&p->lock);
-    802027ba:	8526                	mv	a0,s1
-    802027bc:	ffffe097          	auipc	ra,0xffffe
-    802027c0:	f5e080e7          	jalr	-162(ra) # 8020071a <release>
+    802027b4:	8526                	mv	a0,s1
+    802027b6:	ffffe097          	auipc	ra,0xffffe
+    802027ba:	f64080e7          	jalr	-156(ra) # 8020071a <release>
       return 0;
-    802027c4:	4501                	li	a0,0
+    802027be:	4501                	li	a0,0
 }
-    802027c6:	70a2                	ld	ra,40(sp)
-    802027c8:	7402                	ld	s0,32(sp)
-    802027ca:	64e2                	ld	s1,24(sp)
-    802027cc:	6942                	ld	s2,16(sp)
-    802027ce:	69a2                	ld	s3,8(sp)
-    802027d0:	6145                	addi	sp,sp,48
-    802027d2:	8082                	ret
+    802027c0:	70a2                	ld	ra,40(sp)
+    802027c2:	7402                	ld	s0,32(sp)
+    802027c4:	64e2                	ld	s1,24(sp)
+    802027c6:	6942                	ld	s2,16(sp)
+    802027c8:	69a2                	ld	s3,8(sp)
+    802027ca:	6145                	addi	sp,sp,48
+    802027cc:	8082                	ret
         p->state = RUNNABLE;
-    802027d4:	4789                	li	a5,2
-    802027d6:	cc9c                	sw	a5,24(s1)
-    802027d8:	b7cd                	j	802027ba <kill+0x50>
+    802027ce:	4789                	li	a5,2
+    802027d0:	cc9c                	sw	a5,24(s1)
+    802027d2:	b7cd                	j	802027b4 <kill+0x50>
 
-00000000802027da <either_copyout>:
+00000000802027d4 <either_copyout>:
 // Copy to either a user address, or kernel address,
 // depending on usr_dst.
 // Returns 0 on success, -1 on error.
 int
 either_copyout(int user_dst, uint64 dst, void *src, uint64 len)
 {
-    802027da:	1101                	addi	sp,sp,-32
-    802027dc:	ec06                	sd	ra,24(sp)
-    802027de:	e822                	sd	s0,16(sp)
-    802027e0:	e426                	sd	s1,8(sp)
-    802027e2:	1000                	addi	s0,sp,32
-    802027e4:	84aa                	mv	s1,a0
-    802027e6:	852e                	mv	a0,a1
-    802027e8:	85b2                	mv	a1,a2
-    802027ea:	8636                	mv	a2,a3
+    802027d4:	1101                	addi	sp,sp,-32
+    802027d6:	ec06                	sd	ra,24(sp)
+    802027d8:	e822                	sd	s0,16(sp)
+    802027da:	e426                	sd	s1,8(sp)
+    802027dc:	1000                	addi	s0,sp,32
+    802027de:	84aa                	mv	s1,a0
+    802027e0:	852e                	mv	a0,a1
+    802027e2:	85b2                	mv	a1,a2
+    802027e4:	8636                	mv	a2,a3
   // struct proc *p = myproc();
   if(user_dst){
-    802027ec:	c891                	beqz	s1,80202800 <either_copyout+0x26>
+    802027e6:	c891                	beqz	s1,802027fa <either_copyout+0x26>
     // return copyout(p->pagetable, dst, src, len);
     return copyout2(dst, src, len);
-    802027ee:	fffff097          	auipc	ra,0xfffff
-    802027f2:	b84080e7          	jalr	-1148(ra) # 80201372 <copyout2>
+    802027e8:	fffff097          	auipc	ra,0xfffff
+    802027ec:	b8a080e7          	jalr	-1142(ra) # 80201372 <copyout2>
   } else {
     memmove((char *)dst, src, len);
     return 0;
   }
 }
-    802027f6:	60e2                	ld	ra,24(sp)
-    802027f8:	6442                	ld	s0,16(sp)
-    802027fa:	64a2                	ld	s1,8(sp)
-    802027fc:	6105                	addi	sp,sp,32
-    802027fe:	8082                	ret
+    802027f0:	60e2                	ld	ra,24(sp)
+    802027f2:	6442                	ld	s0,16(sp)
+    802027f4:	64a2                	ld	s1,8(sp)
+    802027f6:	6105                	addi	sp,sp,32
+    802027f8:	8082                	ret
     memmove((char *)dst, src, len);
-    80202800:	0006861b          	sext.w	a2,a3
-    80202804:	ffffe097          	auipc	ra,0xffffe
-    80202808:	fba080e7          	jalr	-70(ra) # 802007be <memmove>
+    802027fa:	0006861b          	sext.w	a2,a3
+    802027fe:	ffffe097          	auipc	ra,0xffffe
+    80202802:	fc0080e7          	jalr	-64(ra) # 802007be <memmove>
     return 0;
-    8020280c:	8526                	mv	a0,s1
-    8020280e:	b7e5                	j	802027f6 <either_copyout+0x1c>
+    80202806:	8526                	mv	a0,s1
+    80202808:	b7e5                	j	802027f0 <either_copyout+0x1c>
 
-0000000080202810 <either_copyin>:
+000000008020280a <either_copyin>:
 // Copy from either a user address, or kernel address,
 // depending on usr_src.
 // Returns 0 on success, -1 on error.
 int
 either_copyin(void *dst, int user_src, uint64 src, uint64 len)
 {
-    80202810:	1101                	addi	sp,sp,-32
-    80202812:	ec06                	sd	ra,24(sp)
-    80202814:	e822                	sd	s0,16(sp)
-    80202816:	e426                	sd	s1,8(sp)
-    80202818:	1000                	addi	s0,sp,32
-    8020281a:	84ae                	mv	s1,a1
-    8020281c:	85b2                	mv	a1,a2
-    8020281e:	8636                	mv	a2,a3
+    8020280a:	1101                	addi	sp,sp,-32
+    8020280c:	ec06                	sd	ra,24(sp)
+    8020280e:	e822                	sd	s0,16(sp)
+    80202810:	e426                	sd	s1,8(sp)
+    80202812:	1000                	addi	s0,sp,32
+    80202814:	84ae                	mv	s1,a1
+    80202816:	85b2                	mv	a1,a2
+    80202818:	8636                	mv	a2,a3
   // struct proc *p = myproc();
   if(user_src){
-    80202820:	c891                	beqz	s1,80202834 <either_copyin+0x24>
+    8020281a:	c891                	beqz	s1,8020282e <either_copyin+0x24>
     // return copyin(p->pagetable, dst, src, len);
     return copyin2(dst, src, len);
-    80202822:	fffff097          	auipc	ra,0xfffff
-    80202826:	c30080e7          	jalr	-976(ra) # 80201452 <copyin2>
+    8020281c:	fffff097          	auipc	ra,0xfffff
+    80202820:	c36080e7          	jalr	-970(ra) # 80201452 <copyin2>
   } else {
     memmove(dst, (char*)src, len);
     return 0;
   }
 }
-    8020282a:	60e2                	ld	ra,24(sp)
-    8020282c:	6442                	ld	s0,16(sp)
-    8020282e:	64a2                	ld	s1,8(sp)
-    80202830:	6105                	addi	sp,sp,32
-    80202832:	8082                	ret
+    80202824:	60e2                	ld	ra,24(sp)
+    80202826:	6442                	ld	s0,16(sp)
+    80202828:	64a2                	ld	s1,8(sp)
+    8020282a:	6105                	addi	sp,sp,32
+    8020282c:	8082                	ret
     memmove(dst, (char*)src, len);
-    80202834:	0006861b          	sext.w	a2,a3
-    80202838:	ffffe097          	auipc	ra,0xffffe
-    8020283c:	f86080e7          	jalr	-122(ra) # 802007be <memmove>
+    8020282e:	0006861b          	sext.w	a2,a3
+    80202832:	ffffe097          	auipc	ra,0xffffe
+    80202836:	f8c080e7          	jalr	-116(ra) # 802007be <memmove>
     return 0;
-    80202840:	8526                	mv	a0,s1
-    80202842:	b7e5                	j	8020282a <either_copyin+0x1a>
+    8020283a:	8526                	mv	a0,s1
+    8020283c:	b7e5                	j	80202824 <either_copyin+0x1a>
 
-0000000080202844 <procdump>:
+000000008020283e <procdump>:
 // Print a process listing to console.  For debugging.
 // Runs when user types ^P on console.
 // No lock to avoid wedging a stuck machine further.
 void
 procdump(void)
 {
-    80202844:	715d                	addi	sp,sp,-80
-    80202846:	e486                	sd	ra,72(sp)
-    80202848:	e0a2                	sd	s0,64(sp)
-    8020284a:	fc26                	sd	s1,56(sp)
-    8020284c:	f84a                	sd	s2,48(sp)
-    8020284e:	f44e                	sd	s3,40(sp)
-    80202850:	f052                	sd	s4,32(sp)
-    80202852:	ec56                	sd	s5,24(sp)
-    80202854:	e85a                	sd	s6,16(sp)
-    80202856:	e45e                	sd	s7,8(sp)
-    80202858:	0880                	addi	s0,sp,80
+    8020283e:	715d                	addi	sp,sp,-80
+    80202840:	e486                	sd	ra,72(sp)
+    80202842:	e0a2                	sd	s0,64(sp)
+    80202844:	fc26                	sd	s1,56(sp)
+    80202846:	f84a                	sd	s2,48(sp)
+    80202848:	f44e                	sd	s3,40(sp)
+    8020284a:	f052                	sd	s4,32(sp)
+    8020284c:	ec56                	sd	s5,24(sp)
+    8020284e:	e85a                	sd	s6,16(sp)
+    80202850:	e45e                	sd	s7,8(sp)
+    80202852:	0880                	addi	s0,sp,80
   [ZOMBIE]    "zombie"
   };
   struct proc *p;
   char *state;
 
   printf("\nPID\tSTATE\tNAME\tMEM\n");
-    8020285a:	00008517          	auipc	a0,0x8
-    8020285e:	e5e50513          	addi	a0,a0,-418 # 8020a6b8 <digits+0x338>
-    80202862:	ffffe097          	auipc	ra,0xffffe
-    80202866:	92c080e7          	jalr	-1748(ra) # 8020018e <printf>
+    80202854:	00008517          	auipc	a0,0x8
+    80202858:	e6450513          	addi	a0,a0,-412 # 8020a6b8 <digits+0x338>
+    8020285c:	ffffe097          	auipc	ra,0xffffe
+    80202860:	932080e7          	jalr	-1742(ra) # 8020018e <printf>
   for(p = proc; p < &proc[NPROC]; p++){
-    8020286a:	00014497          	auipc	s1,0x14
-    8020286e:	d1e48493          	addi	s1,s1,-738 # 80216588 <proc+0x408>
-    80202872:	0002b917          	auipc	s2,0x2b
-    80202876:	92690913          	addi	s2,s2,-1754 # 8022d198 <syscall_counts+0x408>
+    80202864:	00014497          	auipc	s1,0x14
+    80202868:	d2448493          	addi	s1,s1,-732 # 80216588 <proc+0x408>
+    8020286c:	0002b917          	auipc	s2,0x2b
+    80202870:	92c90913          	addi	s2,s2,-1748 # 8022d198 <syscall_counts+0x408>
     if(p->state == UNUSED)
       continue;
     if(p->state >= 0 && p->state < NELEM(states) && states[p->state])
-    8020287a:	4b11                	li	s6,4
+    80202874:	4b11                	li	s6,4
       state = states[p->state];
     else
       state = "???";
-    8020287c:	00008997          	auipc	s3,0x8
-    80202880:	e3498993          	addi	s3,s3,-460 # 8020a6b0 <digits+0x330>
+    80202876:	00008997          	auipc	s3,0x8
+    8020287a:	e3a98993          	addi	s3,s3,-454 # 8020a6b0 <digits+0x330>
     printf("%d\t%s\t%s\t%d", p->pid, state, p->name, p->sz);
-    80202884:	00008a97          	auipc	s5,0x8
-    80202888:	e4ca8a93          	addi	s5,s5,-436 # 8020a6d0 <digits+0x350>
+    8020287e:	00008a97          	auipc	s5,0x8
+    80202882:	e52a8a93          	addi	s5,s5,-430 # 8020a6d0 <digits+0x350>
     printf("\n");
-    8020288c:	00008a17          	auipc	s4,0x8
-    80202890:	84ca0a13          	addi	s4,s4,-1972 # 8020a0d8 <etext+0xd8>
+    80202886:	00008a17          	auipc	s4,0x8
+    8020288a:	852a0a13          	addi	s4,s4,-1966 # 8020a0d8 <etext+0xd8>
     if(p->state >= 0 && p->state < NELEM(states) && states[p->state])
-    80202894:	00009b97          	auipc	s7,0x9
-    80202898:	444b8b93          	addi	s7,s7,1092 # 8020bcd8 <states.0>
-    8020289c:	a01d                	j	802028c2 <procdump+0x7e>
+    8020288e:	00009b97          	auipc	s7,0x9
+    80202892:	44ab8b93          	addi	s7,s7,1098 # 8020bcd8 <states.0>
+    80202896:	a01d                	j	802028bc <procdump+0x7e>
     printf("%d\t%s\t%s\t%d", p->pid, state, p->name, p->sz);
-    8020289e:	c406b703          	ld	a4,-960(a3)
-    802028a2:	c306a583          	lw	a1,-976(a3)
-    802028a6:	8556                	mv	a0,s5
-    802028a8:	ffffe097          	auipc	ra,0xffffe
-    802028ac:	8e6080e7          	jalr	-1818(ra) # 8020018e <printf>
+    80202898:	c406b703          	ld	a4,-960(a3)
+    8020289c:	c306a583          	lw	a1,-976(a3)
+    802028a0:	8556                	mv	a0,s5
+    802028a2:	ffffe097          	auipc	ra,0xffffe
+    802028a6:	8ec080e7          	jalr	-1812(ra) # 8020018e <printf>
     printf("\n");
-    802028b0:	8552                	mv	a0,s4
-    802028b2:	ffffe097          	auipc	ra,0xffffe
-    802028b6:	8dc080e7          	jalr	-1828(ra) # 8020018e <printf>
+    802028aa:	8552                	mv	a0,s4
+    802028ac:	ffffe097          	auipc	ra,0xffffe
+    802028b0:	8e2080e7          	jalr	-1822(ra) # 8020018e <printf>
   for(p = proc; p < &proc[NPROC]; p++){
-    802028ba:	74848493          	addi	s1,s1,1864
-    802028be:	03248263          	beq	s1,s2,802028e2 <procdump+0x9e>
+    802028b4:	74848493          	addi	s1,s1,1864
+    802028b8:	03248263          	beq	s1,s2,802028dc <procdump+0x9e>
     if(p->state == UNUSED)
-    802028c2:	86a6                	mv	a3,s1
-    802028c4:	c104a783          	lw	a5,-1008(s1)
-    802028c8:	dbed                	beqz	a5,802028ba <procdump+0x76>
+    802028bc:	86a6                	mv	a3,s1
+    802028be:	c104a783          	lw	a5,-1008(s1)
+    802028c2:	dbed                	beqz	a5,802028b4 <procdump+0x76>
       state = "???";
-    802028ca:	864e                	mv	a2,s3
+    802028c4:	864e                	mv	a2,s3
     if(p->state >= 0 && p->state < NELEM(states) && states[p->state])
-    802028cc:	fcfb69e3          	bltu	s6,a5,8020289e <procdump+0x5a>
-    802028d0:	02079713          	slli	a4,a5,0x20
-    802028d4:	01d75793          	srli	a5,a4,0x1d
-    802028d8:	97de                	add	a5,a5,s7
-    802028da:	6390                	ld	a2,0(a5)
-    802028dc:	f269                	bnez	a2,8020289e <procdump+0x5a>
+    802028c6:	fcfb69e3          	bltu	s6,a5,80202898 <procdump+0x5a>
+    802028ca:	02079713          	slli	a4,a5,0x20
+    802028ce:	01d75793          	srli	a5,a4,0x1d
+    802028d2:	97de                	add	a5,a5,s7
+    802028d4:	6390                	ld	a2,0(a5)
+    802028d6:	f269                	bnez	a2,80202898 <procdump+0x5a>
       state = "???";
-    802028de:	864e                	mv	a2,s3
-    802028e0:	bf7d                	j	8020289e <procdump+0x5a>
+    802028d8:	864e                	mv	a2,s3
+    802028da:	bf7d                	j	80202898 <procdump+0x5a>
   }
 }
-    802028e2:	60a6                	ld	ra,72(sp)
-    802028e4:	6406                	ld	s0,64(sp)
-    802028e6:	74e2                	ld	s1,56(sp)
-    802028e8:	7942                	ld	s2,48(sp)
-    802028ea:	79a2                	ld	s3,40(sp)
-    802028ec:	7a02                	ld	s4,32(sp)
-    802028ee:	6ae2                	ld	s5,24(sp)
-    802028f0:	6b42                	ld	s6,16(sp)
-    802028f2:	6ba2                	ld	s7,8(sp)
-    802028f4:	6161                	addi	sp,sp,80
-    802028f6:	8082                	ret
-
-00000000802028f8 <procnum>:
+    802028dc:	60a6                	ld	ra,72(sp)
+    802028de:	6406                	ld	s0,64(sp)
+    802028e0:	74e2                	ld	s1,56(sp)
+    802028e2:	7942                	ld	s2,48(sp)
+    802028e4:	79a2                	ld	s3,40(sp)
+    802028e6:	7a02                	ld	s4,32(sp)
+    802028e8:	6ae2                	ld	s5,24(sp)
+    802028ea:	6b42                	ld	s6,16(sp)
+    802028ec:	6ba2                	ld	s7,8(sp)
+    802028ee:	6161                	addi	sp,sp,80
+    802028f0:	8082                	ret
+
+00000000802028f2 <procnum>:
 
 uint64
 procnum(void)
 {
-    802028f8:	1141                	addi	sp,sp,-16
-    802028fa:	e422                	sd	s0,8(sp)
-    802028fc:	0800                	addi	s0,sp,16
+    802028f2:	1141                	addi	sp,sp,-16
+    802028f4:	e422                	sd	s0,8(sp)
+    802028f6:	0800                	addi	s0,sp,16
   int num = 0;
   struct proc *p;
 
   for (p = proc; p < &proc[NPROC]; p++) {
-    802028fe:	00014797          	auipc	a5,0x14
-    80202902:	88278793          	addi	a5,a5,-1918 # 80216180 <proc>
+    802028f8:	00014797          	auipc	a5,0x14
+    802028fc:	88878793          	addi	a5,a5,-1912 # 80216180 <proc>
   int num = 0;
-    80202906:	4501                	li	a0,0
+    80202900:	4501                	li	a0,0
   for (p = proc; p < &proc[NPROC]; p++) {
-    80202908:	0002a697          	auipc	a3,0x2a
-    8020290c:	48868693          	addi	a3,a3,1160 # 8022cd90 <syscall_counts>
-    80202910:	a029                	j	8020291a <procnum+0x22>
-    80202912:	74878793          	addi	a5,a5,1864
-    80202916:	00d78663          	beq	a5,a3,80202922 <procnum+0x2a>
+    80202902:	0002a697          	auipc	a3,0x2a
+    80202906:	48e68693          	addi	a3,a3,1166 # 8022cd90 <syscall_counts>
+    8020290a:	a029                	j	80202914 <procnum+0x22>
+    8020290c:	74878793          	addi	a5,a5,1864
+    80202910:	00d78663          	beq	a5,a3,8020291c <procnum+0x2a>
     if (p->state != UNUSED) {
-    8020291a:	4f98                	lw	a4,24(a5)
-    8020291c:	db7d                	beqz	a4,80202912 <procnum+0x1a>
+    80202914:	4f98                	lw	a4,24(a5)
+    80202916:	db7d                	beqz	a4,8020290c <procnum+0x1a>
       num++;
-    8020291e:	2505                	addiw	a0,a0,1
-    80202920:	bfcd                	j	80202912 <procnum+0x1a>
+    80202918:	2505                	addiw	a0,a0,1
+    8020291a:	bfcd                	j	8020290c <procnum+0x1a>
     }
   }
 
   return num;
 }
-    80202922:	6422                	ld	s0,8(sp)
-    80202924:	0141                	addi	sp,sp,16
-    80202926:	8082                	ret
-
-0000000080202928 <swtch>:
-    80202928:	00153023          	sd	ra,0(a0)
-    8020292c:	00253423          	sd	sp,8(a0)
-    80202930:	e900                	sd	s0,16(a0)
-    80202932:	ed04                	sd	s1,24(a0)
-    80202934:	03253023          	sd	s2,32(a0)
-    80202938:	03353423          	sd	s3,40(a0)
-    8020293c:	03453823          	sd	s4,48(a0)
-    80202940:	03553c23          	sd	s5,56(a0)
-    80202944:	05653023          	sd	s6,64(a0)
-    80202948:	05753423          	sd	s7,72(a0)
-    8020294c:	05853823          	sd	s8,80(a0)
-    80202950:	05953c23          	sd	s9,88(a0)
-    80202954:	07a53023          	sd	s10,96(a0)
-    80202958:	07b53423          	sd	s11,104(a0)
-    8020295c:	0005b083          	ld	ra,0(a1)
-    80202960:	0085b103          	ld	sp,8(a1)
-    80202964:	6980                	ld	s0,16(a1)
-    80202966:	6d84                	ld	s1,24(a1)
-    80202968:	0205b903          	ld	s2,32(a1)
-    8020296c:	0285b983          	ld	s3,40(a1)
-    80202970:	0305ba03          	ld	s4,48(a1)
-    80202974:	0385ba83          	ld	s5,56(a1)
-    80202978:	0405bb03          	ld	s6,64(a1)
-    8020297c:	0485bb83          	ld	s7,72(a1)
-    80202980:	0505bc03          	ld	s8,80(a1)
-    80202984:	0585bc83          	ld	s9,88(a1)
-    80202988:	0605bd03          	ld	s10,96(a1)
-    8020298c:	0685bd83          	ld	s11,104(a1)
-    80202990:	8082                	ret
-
-0000000080202992 <trapinithart>:
+    8020291c:	6422                	ld	s0,8(sp)
+    8020291e:	0141                	addi	sp,sp,16
+    80202920:	8082                	ret
+
+0000000080202922 <swtch>:
+    80202922:	00153023          	sd	ra,0(a0)
+    80202926:	00253423          	sd	sp,8(a0)
+    8020292a:	e900                	sd	s0,16(a0)
+    8020292c:	ed04                	sd	s1,24(a0)
+    8020292e:	03253023          	sd	s2,32(a0)
+    80202932:	03353423          	sd	s3,40(a0)
+    80202936:	03453823          	sd	s4,48(a0)
+    8020293a:	03553c23          	sd	s5,56(a0)
+    8020293e:	05653023          	sd	s6,64(a0)
+    80202942:	05753423          	sd	s7,72(a0)
+    80202946:	05853823          	sd	s8,80(a0)
+    8020294a:	05953c23          	sd	s9,88(a0)
+    8020294e:	07a53023          	sd	s10,96(a0)
+    80202952:	07b53423          	sd	s11,104(a0)
+    80202956:	0005b083          	ld	ra,0(a1)
+    8020295a:	0085b103          	ld	sp,8(a1)
+    8020295e:	6980                	ld	s0,16(a1)
+    80202960:	6d84                	ld	s1,24(a1)
+    80202962:	0205b903          	ld	s2,32(a1)
+    80202966:	0285b983          	ld	s3,40(a1)
+    8020296a:	0305ba03          	ld	s4,48(a1)
+    8020296e:	0385ba83          	ld	s5,56(a1)
+    80202972:	0405bb03          	ld	s6,64(a1)
+    80202976:	0485bb83          	ld	s7,72(a1)
+    8020297a:	0505bc03          	ld	s8,80(a1)
+    8020297e:	0585bc83          	ld	s9,88(a1)
+    80202982:	0605bd03          	ld	s10,96(a1)
+    80202986:	0685bd83          	ld	s11,104(a1)
+    8020298a:	8082                	ret
+
+000000008020298c <trapinithart>:
 // }
 
 // set up to take exceptions and traps while in the kernel.
 void
 trapinithart(void)
 {
-    80202992:	1141                	addi	sp,sp,-16
-    80202994:	e406                	sd	ra,8(sp)
-    80202996:	e022                	sd	s0,0(sp)
-    80202998:	0800                	addi	s0,sp,16
+    8020298c:	1141                	addi	sp,sp,-16
+    8020298e:	e406                	sd	ra,8(sp)
+    80202990:	e022                	sd	s0,0(sp)
+    80202992:	0800                	addi	s0,sp,16
   asm volatile("csrw stvec, %0" : : "r" (x));
-    8020299a:	0000a797          	auipc	a5,0xa
-    8020299e:	6967b783          	ld	a5,1686(a5) # 8020d030 <_GLOBAL_OFFSET_TABLE_+0x18>
-    802029a2:	10579073          	csrw	stvec,a5
+    80202994:	0000a797          	auipc	a5,0xa
+    80202998:	69c7b783          	ld	a5,1692(a5) # 8020d030 <_GLOBAL_OFFSET_TABLE_+0x18>
+    8020299c:	10579073          	csrw	stvec,a5
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    802029a6:	100027f3          	csrr	a5,sstatus
+    802029a0:	100027f3          	csrr	a5,sstatus
   w_stvec((uint64)kernelvec);
   w_sstatus(r_sstatus() | SSTATUS_SIE);
-    802029aa:	0027e793          	ori	a5,a5,2
+    802029a4:	0027e793          	ori	a5,a5,2
   asm volatile("csrw sstatus, %0" : : "r" (x));
-    802029ae:	10079073          	csrw	sstatus,a5
+    802029a8:	10079073          	csrw	sstatus,a5
   asm volatile("csrr %0, sie" : "=r" (x) );
-    802029b2:	104027f3          	csrr	a5,sie
+    802029ac:	104027f3          	csrr	a5,sie
   // enable supervisor-mode timer interrupts.
   w_sie(r_sie() | SIE_SEIE | SIE_SSIE | SIE_STIE);
-    802029b6:	2227e793          	ori	a5,a5,546
+    802029b0:	2227e793          	ori	a5,a5,546
   asm volatile("csrw sie, %0" : : "r" (x));
-    802029ba:	10479073          	csrw	sie,a5
+    802029b4:	10479073          	csrw	sie,a5
   set_next_timeout();
-    802029be:	00003097          	auipc	ra,0x3
-    802029c2:	4d8080e7          	jalr	1240(ra) # 80205e96 <set_next_timeout>
+    802029b8:	00003097          	auipc	ra,0x3
+    802029bc:	49e080e7          	jalr	1182(ra) # 80205e56 <set_next_timeout>
   #ifdef DEBUG
   printf("trapinithart\n");
   #endif
 }
-    802029c6:	60a2                	ld	ra,8(sp)
-    802029c8:	6402                	ld	s0,0(sp)
-    802029ca:	0141                	addi	sp,sp,16
-    802029cc:	8082                	ret
+    802029c0:	60a2                	ld	ra,8(sp)
+    802029c2:	6402                	ld	s0,0(sp)
+    802029c4:	0141                	addi	sp,sp,16
+    802029c6:	8082                	ret
 
-00000000802029ce <usertrapret>:
+00000000802029c8 <usertrapret>:
 //
 // return to user space
 //
 void
 usertrapret(void)
 {
-    802029ce:	1141                	addi	sp,sp,-16
-    802029d0:	e406                	sd	ra,8(sp)
-    802029d2:	e022                	sd	s0,0(sp)
-    802029d4:	0800                	addi	s0,sp,16
+    802029c8:	1141                	addi	sp,sp,-16
+    802029ca:	e406                	sd	ra,8(sp)
+    802029cc:	e022                	sd	s0,0(sp)
+    802029ce:	0800                	addi	s0,sp,16
   struct proc *p = myproc();
-    802029d6:	fffff097          	auipc	ra,0xfffff
-    802029da:	066080e7          	jalr	102(ra) # 80201a3c <myproc>
+    802029d0:	fffff097          	auipc	ra,0xfffff
+    802029d4:	06c080e7          	jalr	108(ra) # 80201a3c <myproc>
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    802029de:	100027f3          	csrr	a5,sstatus
+    802029d8:	100027f3          	csrr	a5,sstatus
   w_sstatus(r_sstatus() & ~SSTATUS_SIE);
-    802029e2:	9bf5                	andi	a5,a5,-3
+    802029dc:	9bf5                	andi	a5,a5,-3
   asm volatile("csrw sstatus, %0" : : "r" (x));
-    802029e4:	10079073          	csrw	sstatus,a5
+    802029de:	10079073          	csrw	sstatus,a5
   // kerneltrap() to usertrap(), so turn off interrupts until
   // we're back in user space, where usertrap() is correct.
   intr_off();
 
   // send syscalls, interrupts, and exceptions to trampoline.S
   w_stvec(TRAMPOLINE + (uservec - trampoline));
-    802029e8:	0000a697          	auipc	a3,0xa
-    802029ec:	6386b683          	ld	a3,1592(a3) # 8020d020 <_GLOBAL_OFFSET_TABLE_+0x8>
-    802029f0:	0000a717          	auipc	a4,0xa
-    802029f4:	66073703          	ld	a4,1632(a4) # 8020d050 <_GLOBAL_OFFSET_TABLE_+0x38>
-    802029f8:	8f15                	sub	a4,a4,a3
-    802029fa:	040007b7          	lui	a5,0x4000
-    802029fe:	17fd                	addi	a5,a5,-1 # 3ffffff <_entry-0x7c200001>
-    80202a00:	07b2                	slli	a5,a5,0xc
-    80202a02:	973e                	add	a4,a4,a5
+    802029e2:	0000a697          	auipc	a3,0xa
+    802029e6:	63e6b683          	ld	a3,1598(a3) # 8020d020 <_GLOBAL_OFFSET_TABLE_+0x8>
+    802029ea:	0000a717          	auipc	a4,0xa
+    802029ee:	66673703          	ld	a4,1638(a4) # 8020d050 <_GLOBAL_OFFSET_TABLE_+0x38>
+    802029f2:	8f15                	sub	a4,a4,a3
+    802029f4:	040007b7          	lui	a5,0x4000
+    802029f8:	17fd                	addi	a5,a5,-1 # 3ffffff <_entry-0x7c200001>
+    802029fa:	07b2                	slli	a5,a5,0xc
+    802029fc:	973e                	add	a4,a4,a5
   asm volatile("csrw stvec, %0" : : "r" (x));
-    80202a04:	10571073          	csrw	stvec,a4
+    802029fe:	10571073          	csrw	stvec,a4
 
   // set up trapframe values that uservec will need when
   // the process next re-enters the kernel.
   p->trapframe->kernel_satp = r_satp();         // kernel page table
-    80202a08:	7138                	ld	a4,96(a0)
+    80202a02:	7138                	ld	a4,96(a0)
   asm volatile("csrr %0, satp" : "=r" (x) );
-    80202a0a:	18002673          	csrr	a2,satp
-    80202a0e:	e310                	sd	a2,0(a4)
+    80202a04:	18002673          	csrr	a2,satp
+    80202a08:	e310                	sd	a2,0(a4)
   p->trapframe->kernel_sp = p->kstack + PGSIZE; // process's kernel stack
-    80202a10:	7130                	ld	a2,96(a0)
-    80202a12:	6138                	ld	a4,64(a0)
-    80202a14:	6585                	lui	a1,0x1
-    80202a16:	972e                	add	a4,a4,a1
-    80202a18:	e618                	sd	a4,8(a2)
+    80202a0a:	7130                	ld	a2,96(a0)
+    80202a0c:	6138                	ld	a4,64(a0)
+    80202a0e:	6585                	lui	a1,0x1
+    80202a10:	972e                	add	a4,a4,a1
+    80202a12:	e618                	sd	a4,8(a2)
   p->trapframe->kernel_trap = (uint64)usertrap;
-    80202a1a:	7138                	ld	a4,96(a0)
-    80202a1c:	00000617          	auipc	a2,0x0
-    80202a20:	0f460613          	addi	a2,a2,244 # 80202b10 <usertrap>
-    80202a24:	eb10                	sd	a2,16(a4)
+    80202a14:	7138                	ld	a4,96(a0)
+    80202a16:	00000617          	auipc	a2,0x0
+    80202a1a:	0f460613          	addi	a2,a2,244 # 80202b0a <usertrap>
+    80202a1e:	eb10                	sd	a2,16(a4)
   p->trapframe->kernel_hartid = r_tp();         // hartid for cpuid()
-    80202a26:	7138                	ld	a4,96(a0)
+    80202a20:	7138                	ld	a4,96(a0)
   asm volatile("mv %0, tp" : "=r" (x) );
-    80202a28:	8612                	mv	a2,tp
-    80202a2a:	f310                	sd	a2,32(a4)
+    80202a22:	8612                	mv	a2,tp
+    80202a24:	f310                	sd	a2,32(a4)
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    80202a2c:	10002773          	csrr	a4,sstatus
+    80202a26:	10002773          	csrr	a4,sstatus
   // set up the registers that trampoline.S's sret will use
   // to get to user space.
   
   // set S Previous Privilege mode to User.
   unsigned long x = r_sstatus();
   x &= ~SSTATUS_SPP; // clear SPP to 0 for user mode
-    80202a30:	eff77713          	andi	a4,a4,-257
+    80202a2a:	eff77713          	andi	a4,a4,-257
   x |= SSTATUS_SPIE; // enable interrupts in user mode
-    80202a34:	02076713          	ori	a4,a4,32
+    80202a2e:	02076713          	ori	a4,a4,32
   asm volatile("csrw sstatus, %0" : : "r" (x));
-    80202a38:	10071073          	csrw	sstatus,a4
+    80202a32:	10071073          	csrw	sstatus,a4
   w_sstatus(x);
 
   // set S Exception Program Counter to the saved user pc.
   w_sepc(p->trapframe->epc);
-    80202a3c:	7138                	ld	a4,96(a0)
+    80202a36:	7138                	ld	a4,96(a0)
   asm volatile("csrw sepc, %0" : : "r" (x));
-    80202a3e:	6f18                	ld	a4,24(a4)
-    80202a40:	14171073          	csrw	sepc,a4
+    80202a38:	6f18                	ld	a4,24(a4)
+    80202a3a:	14171073          	csrw	sepc,a4
 
   // tell trampoline.S the user page table to switch to.
   // printf("[usertrapret]p->pagetable: %p\n", p->pagetable);
   uint64 satp = MAKE_SATP(p->pagetable);
-    80202a44:	692c                	ld	a1,80(a0)
-    80202a46:	81b1                	srli	a1,a1,0xc
+    80202a3e:	692c                	ld	a1,80(a0)
+    80202a40:	81b1                	srli	a1,a1,0xc
 
   // jump to trampoline.S at the top of memory, which 
   // switches to the user page table, restores user registers,
   // and switches to user mode with sret.
   uint64 fn = TRAMPOLINE + (userret - trampoline);
-    80202a48:	0000a717          	auipc	a4,0xa
-    80202a4c:	5e073703          	ld	a4,1504(a4) # 8020d028 <_GLOBAL_OFFSET_TABLE_+0x10>
-    80202a50:	8f15                	sub	a4,a4,a3
-    80202a52:	97ba                	add	a5,a5,a4
+    80202a42:	0000a717          	auipc	a4,0xa
+    80202a46:	5e673703          	ld	a4,1510(a4) # 8020d028 <_GLOBAL_OFFSET_TABLE_+0x10>
+    80202a4a:	8f15                	sub	a4,a4,a3
+    80202a4c:	97ba                	add	a5,a5,a4
   ((void (*)(uint64,uint64))fn)(TRAPFRAME, satp);
-    80202a54:	577d                	li	a4,-1
-    80202a56:	177e                	slli	a4,a4,0x3f
-    80202a58:	8dd9                	or	a1,a1,a4
-    80202a5a:	02000537          	lui	a0,0x2000
-    80202a5e:	157d                	addi	a0,a0,-1 # 1ffffff <_entry-0x7e200001>
-    80202a60:	0536                	slli	a0,a0,0xd
-    80202a62:	9782                	jalr	a5
+    80202a4e:	577d                	li	a4,-1
+    80202a50:	177e                	slli	a4,a4,0x3f
+    80202a52:	8dd9                	or	a1,a1,a4
+    80202a54:	02000537          	lui	a0,0x2000
+    80202a58:	157d                	addi	a0,a0,-1 # 1ffffff <_entry-0x7e200001>
+    80202a5a:	0536                	slli	a0,a0,0xd
+    80202a5c:	9782                	jalr	a5
 }
-    80202a64:	60a2                	ld	ra,8(sp)
-    80202a66:	6402                	ld	s0,0(sp)
-    80202a68:	0141                	addi	sp,sp,16
-    80202a6a:	8082                	ret
+    80202a5e:	60a2                	ld	ra,8(sp)
+    80202a60:	6402                	ld	s0,0(sp)
+    80202a62:	0141                	addi	sp,sp,16
+    80202a64:	8082                	ret
 
-0000000080202a6c <devintr>:
+0000000080202a66 <devintr>:
 // Check if it's an external/software interrupt, 
 // and handle it. 
 // returns  2 if timer interrupt, 
 //          1 if other device, 
 //          0 if not recognized. 
 int devintr(void) {
-    80202a6c:	1101                	addi	sp,sp,-32
-    80202a6e:	ec06                	sd	ra,24(sp)
-    80202a70:	e822                	sd	s0,16(sp)
-    80202a72:	e426                	sd	s1,8(sp)
-    80202a74:	1000                	addi	s0,sp,32
+    80202a66:	1101                	addi	sp,sp,-32
+    80202a68:	ec06                	sd	ra,24(sp)
+    80202a6a:	e822                	sd	s0,16(sp)
+    80202a6c:	e426                	sd	s1,8(sp)
+    80202a6e:	1000                	addi	s0,sp,32
   asm volatile("csrr %0, scause" : "=r" (x) );
-    80202a76:	14202773          	csrr	a4,scause
+    80202a70:	14202773          	csrr	a4,scause
 	uint64 scause = r_scause();
 
 	#ifdef QEMU 
 	// handle external interrupt 
 	if ((0x8000000000000000L & scause) && 9 == (scause & 0xff)) 
-    80202a7a:	00074d63          	bltz	a4,80202a94 <devintr+0x28>
+    80202a74:	00074d63          	bltz	a4,80202a8e <devintr+0x28>
 		sbi_set_mie();
 		#endif 
 
 		return 1;
 	}
 	else if (0x8000000000000005L == scause) {
-    80202a7e:	57fd                	li	a5,-1
-    80202a80:	17fe                	slli	a5,a5,0x3f
-    80202a82:	0795                	addi	a5,a5,5
+    80202a78:	57fd                	li	a5,-1
+    80202a7a:	17fe                	slli	a5,a5,0x3f
+    80202a7c:	0795                	addi	a5,a5,5
 		timer_tick();
 		return 2;
 	}
 	else { return 0;}
-    80202a84:	4501                	li	a0,0
+    80202a7e:	4501                	li	a0,0
 	else if (0x8000000000000005L == scause) {
-    80202a86:	06f70f63          	beq	a4,a5,80202b04 <devintr+0x98>
+    80202a80:	06f70f63          	beq	a4,a5,80202afe <devintr+0x98>
 }
-    80202a8a:	60e2                	ld	ra,24(sp)
-    80202a8c:	6442                	ld	s0,16(sp)
-    80202a8e:	64a2                	ld	s1,8(sp)
-    80202a90:	6105                	addi	sp,sp,32
-    80202a92:	8082                	ret
+    80202a84:	60e2                	ld	ra,24(sp)
+    80202a86:	6442                	ld	s0,16(sp)
+    80202a88:	64a2                	ld	s1,8(sp)
+    80202a8a:	6105                	addi	sp,sp,32
+    80202a8c:	8082                	ret
 	if ((0x8000000000000000L & scause) && 9 == (scause & 0xff)) 
-    80202a94:	0ff77793          	zext.b	a5,a4
-    80202a98:	46a5                	li	a3,9
-    80202a9a:	fed792e3          	bne	a5,a3,80202a7e <devintr+0x12>
+    80202a8e:	0ff77793          	zext.b	a5,a4
+    80202a92:	46a5                	li	a3,9
+    80202a94:	fed792e3          	bne	a5,a3,80202a78 <devintr+0x12>
 		int irq = plic_claim();
-    80202a9e:	00005097          	auipc	ra,0x5
-    80202aa2:	e5c080e7          	jalr	-420(ra) # 802078fa <plic_claim>
-    80202aa6:	84aa                	mv	s1,a0
+    80202a98:	00005097          	auipc	ra,0x5
+    80202a9c:	e22080e7          	jalr	-478(ra) # 802078ba <plic_claim>
+    80202aa0:	84aa                	mv	s1,a0
 		if (UART_IRQ == irq) {
-    80202aa8:	47a9                	li	a5,10
-    80202aaa:	02f50163          	beq	a0,a5,80202acc <devintr+0x60>
+    80202aa2:	47a9                	li	a5,10
+    80202aa4:	02f50163          	beq	a0,a5,80202ac6 <devintr+0x60>
 		else if (DISK_IRQ == irq) {
-    80202aae:	4785                	li	a5,1
-    80202ab0:	04f50563          	beq	a0,a5,80202afa <devintr+0x8e>
+    80202aa8:	4785                	li	a5,1
+    80202aaa:	04f50563          	beq	a0,a5,80202af4 <devintr+0x8e>
 		return 1;
-    80202ab4:	4505                	li	a0,1
+    80202aae:	4505                	li	a0,1
 		else if (irq) {
-    80202ab6:	d8f1                	beqz	s1,80202a8a <devintr+0x1e>
+    80202ab0:	d8f1                	beqz	s1,80202a84 <devintr+0x1e>
 			printf("unexpected interrupt irq = %d\n", irq);
-    80202ab8:	85a6                	mv	a1,s1
-    80202aba:	00008517          	auipc	a0,0x8
-    80202abe:	c4e50513          	addi	a0,a0,-946 # 8020a708 <digits+0x388>
-    80202ac2:	ffffd097          	auipc	ra,0xffffd
-    80202ac6:	6cc080e7          	jalr	1740(ra) # 8020018e <printf>
-    80202aca:	a821                	j	80202ae2 <devintr+0x76>
+    80202ab2:	85a6                	mv	a1,s1
+    80202ab4:	00008517          	auipc	a0,0x8
+    80202ab8:	c5450513          	addi	a0,a0,-940 # 8020a708 <digits+0x388>
+    80202abc:	ffffd097          	auipc	ra,0xffffd
+    80202ac0:	6d2080e7          	jalr	1746(ra) # 8020018e <printf>
+    80202ac4:	a821                	j	80202adc <devintr+0x76>
 	return SBI_CALL_0(SBI_CONSOLE_GETCHAR);
-    80202acc:	4501                	li	a0,0
-    80202ace:	4581                	li	a1,0
-    80202ad0:	4601                	li	a2,0
-    80202ad2:	4681                	li	a3,0
-    80202ad4:	4889                	li	a7,2
-    80202ad6:	00000073          	ecall
-    80202ada:	2501                	sext.w	a0,a0
+    80202ac6:	4501                	li	a0,0
+    80202ac8:	4581                	li	a1,0
+    80202aca:	4601                	li	a2,0
+    80202acc:	4681                	li	a3,0
+    80202ace:	4889                	li	a7,2
+    80202ad0:	00000073          	ecall
+    80202ad4:	2501                	sext.w	a0,a0
 			if (-1 != c) {
-    80202adc:	57fd                	li	a5,-1
-    80202ade:	00f51963          	bne	a0,a5,80202af0 <devintr+0x84>
+    80202ad6:	57fd                	li	a5,-1
+    80202ad8:	00f51963          	bne	a0,a5,80202aea <devintr+0x84>
 		if (irq) { plic_complete(irq);}
-    80202ae2:	8526                	mv	a0,s1
-    80202ae4:	00005097          	auipc	ra,0x5
-    80202ae8:	e40080e7          	jalr	-448(ra) # 80207924 <plic_complete>
+    80202adc:	8526                	mv	a0,s1
+    80202ade:	00005097          	auipc	ra,0x5
+    80202ae2:	e06080e7          	jalr	-506(ra) # 802078e4 <plic_complete>
 		return 1;
-    80202aec:	4505                	li	a0,1
-    80202aee:	bf71                	j	80202a8a <devintr+0x1e>
+    80202ae6:	4505                	li	a0,1
+    80202ae8:	bf71                	j	80202a84 <devintr+0x1e>
 				consoleintr(c);
-    80202af0:	00005097          	auipc	ra,0x5
-    80202af4:	048080e7          	jalr	72(ra) # 80207b38 <consoleintr>
-    80202af8:	b7ed                	j	80202ae2 <devintr+0x76>
+    80202aea:	00005097          	auipc	ra,0x5
+    80202aee:	00e080e7          	jalr	14(ra) # 80207af8 <consoleintr>
+    80202af2:	b7ed                	j	80202adc <devintr+0x76>
 			disk_intr();
-    80202afa:	00003097          	auipc	ra,0x3
-    80202afe:	45c080e7          	jalr	1116(ra) # 80205f56 <disk_intr>
-    80202b02:	b7c5                	j	80202ae2 <devintr+0x76>
+    80202af4:	00003097          	auipc	ra,0x3
+    80202af8:	422080e7          	jalr	1058(ra) # 80205f16 <disk_intr>
+    80202afc:	b7c5                	j	80202adc <devintr+0x76>
 		timer_tick();
-    80202b04:	00003097          	auipc	ra,0x3
-    80202b08:	3b8080e7          	jalr	952(ra) # 80205ebc <timer_tick>
+    80202afe:	00003097          	auipc	ra,0x3
+    80202b02:	37e080e7          	jalr	894(ra) # 80205e7c <timer_tick>
 		return 2;
-    80202b0c:	4509                	li	a0,2
-    80202b0e:	bfb5                	j	80202a8a <devintr+0x1e>
+    80202b06:	4509                	li	a0,2
+    80202b08:	bfb5                	j	80202a84 <devintr+0x1e>
 
-0000000080202b10 <usertrap>:
+0000000080202b0a <usertrap>:
 {
-    80202b10:	711d                	addi	sp,sp,-96
-    80202b12:	ec86                	sd	ra,88(sp)
-    80202b14:	e8a2                	sd	s0,80(sp)
-    80202b16:	e4a6                	sd	s1,72(sp)
-    80202b18:	e0ca                	sd	s2,64(sp)
-    80202b1a:	fc4e                	sd	s3,56(sp)
-    80202b1c:	f852                	sd	s4,48(sp)
-    80202b1e:	f456                	sd	s5,40(sp)
-    80202b20:	f05a                	sd	s6,32(sp)
-    80202b22:	ec5e                	sd	s7,24(sp)
-    80202b24:	e862                	sd	s8,16(sp)
-    80202b26:	e466                	sd	s9,8(sp)
-    80202b28:	1080                	addi	s0,sp,96
+    80202b0a:	711d                	addi	sp,sp,-96
+    80202b0c:	ec86                	sd	ra,88(sp)
+    80202b0e:	e8a2                	sd	s0,80(sp)
+    80202b10:	e4a6                	sd	s1,72(sp)
+    80202b12:	e0ca                	sd	s2,64(sp)
+    80202b14:	fc4e                	sd	s3,56(sp)
+    80202b16:	f852                	sd	s4,48(sp)
+    80202b18:	f456                	sd	s5,40(sp)
+    80202b1a:	f05a                	sd	s6,32(sp)
+    80202b1c:	ec5e                	sd	s7,24(sp)
+    80202b1e:	e862                	sd	s8,16(sp)
+    80202b20:	e466                	sd	s9,8(sp)
+    80202b22:	1080                	addi	s0,sp,96
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    80202b2a:	100029f3          	csrr	s3,sstatus
+    80202b24:	100029f3          	csrr	s3,sstatus
   if((r_sstatus() & SSTATUS_SPP) != 0)
-    80202b2e:	1009f993          	andi	s3,s3,256
-    80202b32:	04099763          	bnez	s3,80202b80 <usertrap+0x70>
+    80202b28:	1009f993          	andi	s3,s3,256
+    80202b2c:	04099763          	bnez	s3,80202b7a <usertrap+0x70>
   asm volatile("csrw stvec, %0" : : "r" (x));
-    80202b36:	0000a797          	auipc	a5,0xa
-    80202b3a:	4fa7b783          	ld	a5,1274(a5) # 8020d030 <_GLOBAL_OFFSET_TABLE_+0x18>
-    80202b3e:	10579073          	csrw	stvec,a5
+    80202b30:	0000a797          	auipc	a5,0xa
+    80202b34:	5007b783          	ld	a5,1280(a5) # 8020d030 <_GLOBAL_OFFSET_TABLE_+0x18>
+    80202b38:	10579073          	csrw	stvec,a5
   struct proc *p = myproc();
-    80202b42:	fffff097          	auipc	ra,0xfffff
-    80202b46:	efa080e7          	jalr	-262(ra) # 80201a3c <myproc>
-    80202b4a:	892a                	mv	s2,a0
+    80202b3c:	fffff097          	auipc	ra,0xfffff
+    80202b40:	f00080e7          	jalr	-256(ra) # 80201a3c <myproc>
+    80202b44:	892a                	mv	s2,a0
   p->trapframe->epc = r_sepc();
-    80202b4c:	713c                	ld	a5,96(a0)
+    80202b46:	713c                	ld	a5,96(a0)
   asm volatile("csrr %0, sepc" : "=r" (x) );
-    80202b4e:	14102773          	csrr	a4,sepc
-    80202b52:	ef98                	sd	a4,24(a5)
+    80202b48:	14102773          	csrr	a4,sepc
+    80202b4c:	ef98                	sd	a4,24(a5)
   asm volatile("csrr %0, scause" : "=r" (x) );
-    80202b54:	14202773          	csrr	a4,scause
+    80202b4e:	14202773          	csrr	a4,scause
   if(r_scause() == 8){
-    80202b58:	47a1                	li	a5,8
-    80202b5a:	02f70b63          	beq	a4,a5,80202b90 <usertrap+0x80>
-    80202b5e:	14202773          	csrr	a4,scause
+    80202b52:	47a1                	li	a5,8
+    80202b54:	02f70b63          	beq	a4,a5,80202b8a <usertrap+0x80>
+    80202b58:	14202773          	csrr	a4,scause
   else if (r_scause() == 15||r_scause()==13) {
-    80202b62:	47bd                	li	a5,15
-    80202b64:	00f70763          	beq	a4,a5,80202b72 <usertrap+0x62>
-    80202b68:	14202773          	csrr	a4,scause
-    80202b6c:	47b5                	li	a5,13
-    80202b6e:	1af71763          	bne	a4,a5,80202d1c <usertrap+0x20c>
+    80202b5c:	47bd                	li	a5,15
+    80202b5e:	00f70763          	beq	a4,a5,80202b6c <usertrap+0x62>
+    80202b62:	14202773          	csrr	a4,scause
+    80202b66:	47b5                	li	a5,13
+    80202b68:	1af71c63          	bne	a4,a5,80202d20 <usertrap+0x216>
   asm volatile("csrr %0, stval" : "=r" (x) );
-    80202b72:	143025f3          	csrr	a1,stval
+    80202b6c:	143025f3          	csrr	a1,stval
       for (int i = 0; i < VMA_MAX; i++) {
-    80202b76:	44090793          	addi	a5,s2,1088
-    80202b7a:	4481                	li	s1,0
-    80202b7c:	4641                	li	a2,16
-    80202b7e:	a895                	j	80202bf2 <usertrap+0xe2>
+    80202b70:	44090793          	addi	a5,s2,1088
+    80202b74:	4481                	li	s1,0
+    80202b76:	4641                	li	a2,16
+    80202b78:	a895                	j	80202bec <usertrap+0xe2>
     panic("usertrap: not from user mode");
-    80202b80:	00008517          	auipc	a0,0x8
-    80202b84:	ba850513          	addi	a0,a0,-1112 # 8020a728 <digits+0x3a8>
-    80202b88:	ffffd097          	auipc	ra,0xffffd
-    80202b8c:	5bc080e7          	jalr	1468(ra) # 80200144 <panic>
+    80202b7a:	00008517          	auipc	a0,0x8
+    80202b7e:	bae50513          	addi	a0,a0,-1106 # 8020a728 <digits+0x3a8>
+    80202b82:	ffffd097          	auipc	ra,0xffffd
+    80202b86:	5c2080e7          	jalr	1474(ra) # 80200144 <panic>
     if(p->killed)
-    80202b90:	591c                	lw	a5,48(a0)
-    80202b92:	e7a9                	bnez	a5,80202bdc <usertrap+0xcc>
+    80202b8a:	591c                	lw	a5,48(a0)
+    80202b8c:	e7a9                	bnez	a5,80202bd6 <usertrap+0xcc>
     p->trapframe->epc += 4;
-    80202b94:	06093703          	ld	a4,96(s2)
-    80202b98:	6f1c                	ld	a5,24(a4)
-    80202b9a:	0791                	addi	a5,a5,4
-    80202b9c:	ef1c                	sd	a5,24(a4)
+    80202b8e:	06093703          	ld	a4,96(s2)
+    80202b92:	6f1c                	ld	a5,24(a4)
+    80202b94:	0791                	addi	a5,a5,4
+    80202b96:	ef1c                	sd	a5,24(a4)
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    80202b9e:	100027f3          	csrr	a5,sstatus
+    80202b98:	100027f3          	csrr	a5,sstatus
   w_sstatus(r_sstatus() | SSTATUS_SIE);
-    80202ba2:	0027e793          	ori	a5,a5,2
+    80202b9c:	0027e793          	ori	a5,a5,2
   asm volatile("csrw sstatus, %0" : : "r" (x));
-    80202ba6:	10079073          	csrw	sstatus,a5
+    80202ba0:	10079073          	csrw	sstatus,a5
     syscall();
-    80202baa:	00001097          	auipc	ra,0x1
-    80202bae:	80e080e7          	jalr	-2034(ra) # 802033b8 <syscall>
+    80202ba4:	00001097          	auipc	ra,0x1
+    80202ba8:	818080e7          	jalr	-2024(ra) # 802033bc <syscall>
   if(p->killed)
-    80202bb2:	03092783          	lw	a5,48(s2)
-    80202bb6:	1a079b63          	bnez	a5,80202d6c <usertrap+0x25c>
+    80202bac:	03092783          	lw	a5,48(s2)
+    80202bb0:	1c079063          	bnez	a5,80202d70 <usertrap+0x266>
   usertrapret();
-    80202bba:	00000097          	auipc	ra,0x0
-    80202bbe:	e14080e7          	jalr	-492(ra) # 802029ce <usertrapret>
+    80202bb4:	00000097          	auipc	ra,0x0
+    80202bb8:	e14080e7          	jalr	-492(ra) # 802029c8 <usertrapret>
 }
-    80202bc2:	60e6                	ld	ra,88(sp)
-    80202bc4:	6446                	ld	s0,80(sp)
-    80202bc6:	64a6                	ld	s1,72(sp)
-    80202bc8:	6906                	ld	s2,64(sp)
-    80202bca:	79e2                	ld	s3,56(sp)
-    80202bcc:	7a42                	ld	s4,48(sp)
-    80202bce:	7aa2                	ld	s5,40(sp)
-    80202bd0:	7b02                	ld	s6,32(sp)
-    80202bd2:	6be2                	ld	s7,24(sp)
-    80202bd4:	6c42                	ld	s8,16(sp)
-    80202bd6:	6ca2                	ld	s9,8(sp)
-    80202bd8:	6125                	addi	sp,sp,96
-    80202bda:	8082                	ret
+    80202bbc:	60e6                	ld	ra,88(sp)
+    80202bbe:	6446                	ld	s0,80(sp)
+    80202bc0:	64a6                	ld	s1,72(sp)
+    80202bc2:	6906                	ld	s2,64(sp)
+    80202bc4:	79e2                	ld	s3,56(sp)
+    80202bc6:	7a42                	ld	s4,48(sp)
+    80202bc8:	7aa2                	ld	s5,40(sp)
+    80202bca:	7b02                	ld	s6,32(sp)
+    80202bcc:	6be2                	ld	s7,24(sp)
+    80202bce:	6c42                	ld	s8,16(sp)
+    80202bd0:	6ca2                	ld	s9,8(sp)
+    80202bd2:	6125                	addi	sp,sp,96
+    80202bd4:	8082                	ret
       exit(-1);
-    80202bdc:	557d                	li	a0,-1
-    80202bde:	fffff097          	auipc	ra,0xfffff
-    80202be2:	6fe080e7          	jalr	1790(ra) # 802022dc <exit>
-    80202be6:	b77d                	j	80202b94 <usertrap+0x84>
+    80202bd6:	557d                	li	a0,-1
+    80202bd8:	fffff097          	auipc	ra,0xfffff
+    80202bdc:	6fe080e7          	jalr	1790(ra) # 802022d6 <exit>
+    80202be0:	b77d                	j	80202b8e <usertrap+0x84>
       for (int i = 0; i < VMA_MAX; i++) {
-    80202be8:	2485                	addiw	s1,s1,1
-    80202bea:	03078793          	addi	a5,a5,48
-    80202bee:	fcc482e3          	beq	s1,a2,80202bb2 <usertrap+0xa2>
+    80202be2:	2485                	addiw	s1,s1,1
+    80202be4:	03078793          	addi	a5,a5,48
+    80202be8:	fcc482e3          	beq	s1,a2,80202bac <usertrap+0xa2>
         if (vma->valid && va >= vma->addr && va < vma->addr+vma->len) {
-    80202bf2:	4398                	lw	a4,0(a5)
-    80202bf4:	db75                	beqz	a4,80202be8 <usertrap+0xd8>
-    80202bf6:	6798                	ld	a4,8(a5)
-    80202bf8:	fee5e8e3          	bltu	a1,a4,80202be8 <usertrap+0xd8>
-    80202bfc:	4b94                	lw	a3,16(a5)
-    80202bfe:	9736                	add	a4,a4,a3
-    80202c00:	fee5f4e3          	bgeu	a1,a4,80202be8 <usertrap+0xd8>
+    80202bec:	4398                	lw	a4,0(a5)
+    80202bee:	db75                	beqz	a4,80202be2 <usertrap+0xd8>
+    80202bf0:	6798                	ld	a4,8(a5)
+    80202bf2:	fee5e8e3          	bltu	a1,a4,80202be2 <usertrap+0xd8>
+    80202bf6:	4b94                	lw	a3,16(a5)
+    80202bf8:	9736                	add	a4,a4,a3
+    80202bfa:	fee5f4e3          	bgeu	a1,a4,80202be2 <usertrap+0xd8>
           va = PGROUNDDOWN(va);
-    80202c04:	77fd                	lui	a5,0xfffff
-    80202c06:	00f5fa33          	and	s4,a1,a5
+    80202bfe:	77fd                	lui	a5,0xfffff
+    80202c00:	00f5fa33          	and	s4,a1,a5
           uint64 len = PGROUNDUP(vma->len);
-    80202c0a:	6785                	lui	a5,0x1
-    80202c0c:	37fd                	addiw	a5,a5,-1 # fff <_entry-0x801ff001>
-    80202c0e:	00f68abb          	addw	s5,a3,a5
-    80202c12:	77fd                	lui	a5,0xfffff
-    80202c14:	00fafab3          	and	s5,s5,a5
-    80202c18:	2a81                	sext.w	s5,s5
+    80202c04:	6785                	lui	a5,0x1
+    80202c06:	37fd                	addiw	a5,a5,-1 # fff <_entry-0x801ff001>
+    80202c08:	00f68abb          	addw	s5,a3,a5
+    80202c0c:	77fd                	lui	a5,0xfffff
+    80202c0e:	00fafab3          	and	s5,s5,a5
+    80202c12:	2a81                	sext.w	s5,s5
           uint64 pa = (uint64)kalloc();
-    80202c1a:	ffffe097          	auipc	ra,0xffffe
-    80202c1e:	940080e7          	jalr	-1728(ra) # 8020055a <kalloc>
-    80202c22:	8caa                	mv	s9,a0
+    80202c14:	ffffe097          	auipc	ra,0xffffe
+    80202c18:	946080e7          	jalr	-1722(ra) # 8020055a <kalloc>
+    80202c1c:	8caa                	mv	s9,a0
           for(int j = 1; j<len/PGSIZE; j++){
-    80202c24:	00cadb13          	srli	s6,s5,0xc
-    80202c28:	6789                	lui	a5,0x2
-    80202c2a:	02faee63          	bltu	s5,a5,80202c66 <usertrap+0x156>
+    80202c1e:	00cadb13          	srli	s6,s5,0xc
+    80202c22:	6789                	lui	a5,0x2
+    80202c24:	02faee63          	bltu	s5,a5,80202c60 <usertrap+0x156>
             printf("allocating %d\n", j);
-    80202c2e:	00008c17          	auipc	s8,0x8
-    80202c32:	b1ac0c13          	addi	s8,s8,-1254 # 8020a748 <digits+0x3c8>
+    80202c28:	00008c17          	auipc	s8,0x8
+    80202c2c:	b20c0c13          	addi	s8,s8,-1248 # 8020a748 <digits+0x3c8>
             memset((void *)pa_next , 0, len);
-    80202c36:	000a8b9b          	sext.w	s7,s5
+    80202c30:	000a8b9b          	sext.w	s7,s5
             printf("allocating %d\n", j);
-    80202c3a:	0019859b          	addiw	a1,s3,1
-    80202c3e:	8562                	mv	a0,s8
-    80202c40:	ffffd097          	auipc	ra,0xffffd
-    80202c44:	54e080e7          	jalr	1358(ra) # 8020018e <printf>
+    80202c34:	0019859b          	addiw	a1,s3,1
+    80202c38:	8562                	mv	a0,s8
+    80202c3a:	ffffd097          	auipc	ra,0xffffd
+    80202c3e:	554080e7          	jalr	1364(ra) # 8020018e <printf>
             uint64 pa_next = (uint64)kalloc();
-    80202c48:	ffffe097          	auipc	ra,0xffffe
-    80202c4c:	912080e7          	jalr	-1774(ra) # 8020055a <kalloc>
+    80202c42:	ffffe097          	auipc	ra,0xffffe
+    80202c46:	918080e7          	jalr	-1768(ra) # 8020055a <kalloc>
             memset((void *)pa_next , 0, len);
-    80202c50:	865e                	mv	a2,s7
-    80202c52:	4581                	li	a1,0
-    80202c54:	ffffe097          	auipc	ra,0xffffe
-    80202c58:	b0e080e7          	jalr	-1266(ra) # 80200762 <memset>
+    80202c4a:	865e                	mv	a2,s7
+    80202c4c:	4581                	li	a1,0
+    80202c4e:	ffffe097          	auipc	ra,0xffffe
+    80202c52:	b14080e7          	jalr	-1260(ra) # 80200762 <memset>
           for(int j = 1; j<len/PGSIZE; j++){
-    80202c5c:	00298793          	addi	a5,s3,2
-    80202c60:	0985                	addi	s3,s3,1
-    80202c62:	fd67ece3          	bltu	a5,s6,80202c3a <usertrap+0x12a>
+    80202c56:	00298793          	addi	a5,s3,2
+    80202c5a:	0985                	addi	s3,s3,1
+    80202c5c:	fd67ece3          	bltu	a5,s6,80202c34 <usertrap+0x12a>
           memset((void *)pa, 0, len);
-    80202c66:	000a8b1b          	sext.w	s6,s5
-    80202c6a:	865a                	mv	a2,s6
-    80202c6c:	4581                	li	a1,0
-    80202c6e:	8566                	mv	a0,s9
-    80202c70:	ffffe097          	auipc	ra,0xffffe
-    80202c74:	af2080e7          	jalr	-1294(ra) # 80200762 <memset>
+    80202c60:	000a8b1b          	sext.w	s6,s5
+    80202c64:	865a                	mv	a2,s6
+    80202c66:	4581                	li	a1,0
+    80202c68:	8566                	mv	a0,s9
+    80202c6a:	ffffe097          	auipc	ra,0xffffe
+    80202c6e:	af8080e7          	jalr	-1288(ra) # 80200762 <memset>
           if (vma->prot & PROT_READ)
-    80202c78:	00149793          	slli	a5,s1,0x1
-    80202c7c:	97a6                	add	a5,a5,s1
-    80202c7e:	0792                	slli	a5,a5,0x4
-    80202c80:	97ca                	add	a5,a5,s2
-    80202c82:	4547a783          	lw	a5,1108(a5) # 2454 <_entry-0x801fdbac>
-    80202c86:	0017f693          	andi	a3,a5,1
+    80202c72:	00149793          	slli	a5,s1,0x1
+    80202c76:	97a6                	add	a5,a5,s1
+    80202c78:	0792                	slli	a5,a5,0x4
+    80202c7a:	97ca                	add	a5,a5,s2
+    80202c7c:	4547a783          	lw	a5,1108(a5) # 2454 <_entry-0x801fdbac>
+    80202c80:	0017f693          	andi	a3,a5,1
           int perm = PTE_U;
-    80202c8a:	4741                	li	a4,16
+    80202c84:	4741                	li	a4,16
           if (vma->prot & PROT_READ)
-    80202c8c:	c291                	beqz	a3,80202c90 <usertrap+0x180>
+    80202c86:	c291                	beqz	a3,80202c8a <usertrap+0x180>
             perm |= PTE_R;
-    80202c8e:	4749                	li	a4,18
+    80202c88:	4749                	li	a4,18
           if (vma->prot & PROT_WRITE)
-    80202c90:	0027f693          	andi	a3,a5,2
-    80202c94:	c299                	beqz	a3,80202c9a <usertrap+0x18a>
+    80202c8a:	0027f693          	andi	a3,a5,2
+    80202c8e:	c299                	beqz	a3,80202c94 <usertrap+0x18a>
             perm |= PTE_W;
-    80202c96:	00476713          	ori	a4,a4,4
+    80202c90:	00476713          	ori	a4,a4,4
           if (vma->prot & PROT_EXEC)
-    80202c9a:	8b91                	andi	a5,a5,4
-    80202c9c:	c399                	beqz	a5,80202ca2 <usertrap+0x192>
+    80202c94:	8b91                	andi	a5,a5,4
+    80202c96:	c399                	beqz	a5,80202c9c <usertrap+0x192>
             perm |= PTE_X;
-    80202c9e:	00876713          	ori	a4,a4,8
+    80202c98:	00876713          	ori	a4,a4,8
           mappages(p->pagetable, va, len, pa, perm);
-    80202ca2:	86e6                	mv	a3,s9
-    80202ca4:	8656                	mv	a2,s5
-    80202ca6:	85d2                	mv	a1,s4
-    80202ca8:	05093503          	ld	a0,80(s2)
-    80202cac:	ffffe097          	auipc	ra,0xffffe
-    80202cb0:	fbc080e7          	jalr	-68(ra) # 80200c68 <mappages>
+    80202c9c:	86e6                	mv	a3,s9
+    80202c9e:	8656                	mv	a2,s5
+    80202ca0:	85d2                	mv	a1,s4
+    80202ca2:	05093503          	ld	a0,80(s2)
+    80202ca6:	ffffe097          	auipc	ra,0xffffe
+    80202caa:	fc2080e7          	jalr	-62(ra) # 80200c68 <mappages>
           mappages(p->kpagetable, va, len, pa, PTE_W|PTE_R|PTE_X);
-    80202cb4:	4739                	li	a4,14
-    80202cb6:	86e6                	mv	a3,s9
-    80202cb8:	8656                	mv	a2,s5
-    80202cba:	85d2                	mv	a1,s4
-    80202cbc:	05893503          	ld	a0,88(s2)
-    80202cc0:	ffffe097          	auipc	ra,0xffffe
-    80202cc4:	fa8080e7          	jalr	-88(ra) # 80200c68 <mappages>
+    80202cae:	4739                	li	a4,14
+    80202cb0:	86e6                	mv	a3,s9
+    80202cb2:	8656                	mv	a2,s5
+    80202cb4:	85d2                	mv	a1,s4
+    80202cb6:	05893503          	ld	a0,88(s2)
+    80202cba:	ffffe097          	auipc	ra,0xffffe
+    80202cbe:	fae080e7          	jalr	-82(ra) # 80200c68 <mappages>
           elock(vma->f->ep);
-    80202cc8:	00149a93          	slli	s5,s1,0x1
-    80202ccc:	009a89b3          	add	s3,s5,s1
-    80202cd0:	0992                	slli	s3,s3,0x4
-    80202cd2:	99ca                	add	s3,s3,s2
-    80202cd4:	4609b783          	ld	a5,1120(s3)
-    80202cd8:	6f88                	ld	a0,24(a5)
-    80202cda:	00004097          	auipc	ra,0x4
-    80202cde:	3e4080e7          	jalr	996(ra) # 802070be <elock>
+    80202cc2:	00149b93          	slli	s7,s1,0x1
+    80202cc6:	009b89b3          	add	s3,s7,s1
+    80202cca:	0992                	slli	s3,s3,0x4
+    80202ccc:	99ca                	add	s3,s3,s2
+    80202cce:	4609b783          	ld	a5,1120(s3)
+    80202cd2:	6f88                	ld	a0,24(a5)
+    80202cd4:	00004097          	auipc	ra,0x4
+    80202cd8:	3aa080e7          	jalr	938(ra) # 8020707e <elock>
           eread(vma->f->ep, 0, pa, vma->off + va - vma->addr, len);
-    80202ce2:	45c9a783          	lw	a5,1116(s3)
-    80202ce6:	014787bb          	addw	a5,a5,s4
-    80202cea:	4489b683          	ld	a3,1096(s3)
-    80202cee:	4609b503          	ld	a0,1120(s3)
-    80202cf2:	875a                	mv	a4,s6
-    80202cf4:	40d786bb          	subw	a3,a5,a3
-    80202cf8:	8666                	mv	a2,s9
-    80202cfa:	4581                	li	a1,0
-    80202cfc:	6d08                	ld	a0,24(a0)
-    80202cfe:	00004097          	auipc	ra,0x4
-    80202d02:	abc080e7          	jalr	-1348(ra) # 802067ba <eread>
+    80202cdc:	45c9a783          	lw	a5,1116(s3)
+    80202ce0:	014787bb          	addw	a5,a5,s4
+    80202ce4:	4489b683          	ld	a3,1096(s3)
+    80202ce8:	4609b503          	ld	a0,1120(s3)
+    80202cec:	875a                	mv	a4,s6
+    80202cee:	40d786bb          	subw	a3,a5,a3
+    80202cf2:	8666                	mv	a2,s9
+    80202cf4:	4581                	li	a1,0
+    80202cf6:	6d08                	ld	a0,24(a0)
+    80202cf8:	00004097          	auipc	ra,0x4
+    80202cfc:	a82080e7          	jalr	-1406(ra) # 8020677a <eread>
           eunlock(vma->f->ep);
-    80202d06:	4609b783          	ld	a5,1120(s3)
-    80202d0a:	6f88                	ld	a0,24(a5)
-    80202d0c:	00004097          	auipc	ra,0x4
-    80202d10:	3e8080e7          	jalr	1000(ra) # 802070f4 <eunlock>
+    80202d00:	4609b783          	ld	a5,1120(s3)
+    80202d04:	6f88                	ld	a0,24(a5)
+    80202d06:	00004097          	auipc	ra,0x4
+    80202d0a:	3ae080e7          	jalr	942(ra) # 802070b4 <eunlock>
           vma->alloc = 1;
-    80202d14:	4705                	li	a4,1
-    80202d16:	46e9a623          	sw	a4,1132(s3)
+    80202d0e:	4705                	li	a4,1
+    80202d10:	46e9a623          	sw	a4,1132(s3)
+          p->sz+=len;
+    80202d14:	04893783          	ld	a5,72(s2)
+    80202d18:	97d6                	add	a5,a5,s5
+    80202d1a:	04f93423          	sd	a5,72(s2)
           break;
-    80202d1a:	bd61                	j	80202bb2 <usertrap+0xa2>
+    80202d1e:	b579                	j	80202bac <usertrap+0xa2>
   else if((which_dev = devintr()) != 0){
-    80202d1c:	00000097          	auipc	ra,0x0
-    80202d20:	d50080e7          	jalr	-688(ra) # 80202a6c <devintr>
-    80202d24:	84aa                	mv	s1,a0
-    80202d26:	c509                	beqz	a0,80202d30 <usertrap+0x220>
+    80202d20:	00000097          	auipc	ra,0x0
+    80202d24:	d46080e7          	jalr	-698(ra) # 80202a66 <devintr>
+    80202d28:	84aa                	mv	s1,a0
+    80202d2a:	c509                	beqz	a0,80202d34 <usertrap+0x22a>
   if(p->killed)
-    80202d28:	03092783          	lw	a5,48(s2)
-    80202d2c:	c7b1                	beqz	a5,80202d78 <usertrap+0x268>
-    80202d2e:	a081                	j	80202d6e <usertrap+0x25e>
+    80202d2c:	03092783          	lw	a5,48(s2)
+    80202d30:	c7b1                	beqz	a5,80202d7c <usertrap+0x272>
+    80202d32:	a081                	j	80202d72 <usertrap+0x268>
   asm volatile("csrr %0, scause" : "=r" (x) );
-    80202d30:	142025f3          	csrr	a1,scause
+    80202d34:	142025f3          	csrr	a1,scause
     printf("\nusertrap(): unexpected scause %p pid=%d %s\n", r_scause(), p->pid, p->name);
-    80202d34:	40890693          	addi	a3,s2,1032
-    80202d38:	03892603          	lw	a2,56(s2)
-    80202d3c:	00008517          	auipc	a0,0x8
-    80202d40:	a1c50513          	addi	a0,a0,-1508 # 8020a758 <digits+0x3d8>
-    80202d44:	ffffd097          	auipc	ra,0xffffd
-    80202d48:	44a080e7          	jalr	1098(ra) # 8020018e <printf>
+    80202d38:	40890693          	addi	a3,s2,1032
+    80202d3c:	03892603          	lw	a2,56(s2)
+    80202d40:	00008517          	auipc	a0,0x8
+    80202d44:	a1850513          	addi	a0,a0,-1512 # 8020a758 <digits+0x3d8>
+    80202d48:	ffffd097          	auipc	ra,0xffffd
+    80202d4c:	446080e7          	jalr	1094(ra) # 8020018e <printf>
   asm volatile("csrr %0, sepc" : "=r" (x) );
-    80202d4c:	141025f3          	csrr	a1,sepc
+    80202d50:	141025f3          	csrr	a1,sepc
   asm volatile("csrr %0, stval" : "=r" (x) );
-    80202d50:	14302673          	csrr	a2,stval
+    80202d54:	14302673          	csrr	a2,stval
     printf("            sepc=%p stval=%p\n", r_sepc(), r_stval());
-    80202d54:	00008517          	auipc	a0,0x8
-    80202d58:	a3450513          	addi	a0,a0,-1484 # 8020a788 <digits+0x408>
-    80202d5c:	ffffd097          	auipc	ra,0xffffd
-    80202d60:	432080e7          	jalr	1074(ra) # 8020018e <printf>
+    80202d58:	00008517          	auipc	a0,0x8
+    80202d5c:	a3050513          	addi	a0,a0,-1488 # 8020a788 <digits+0x408>
+    80202d60:	ffffd097          	auipc	ra,0xffffd
+    80202d64:	42e080e7          	jalr	1070(ra) # 8020018e <printf>
     p->killed = 1;
-    80202d64:	4785                	li	a5,1
-    80202d66:	02f92823          	sw	a5,48(s2)
+    80202d68:	4785                	li	a5,1
+    80202d6a:	02f92823          	sw	a5,48(s2)
   if(p->killed)
-    80202d6a:	a011                	j	80202d6e <usertrap+0x25e>
-    80202d6c:	4481                	li	s1,0
+    80202d6e:	a011                	j	80202d72 <usertrap+0x268>
+    80202d70:	4481                	li	s1,0
     exit(-1);
-    80202d6e:	557d                	li	a0,-1
-    80202d70:	fffff097          	auipc	ra,0xfffff
-    80202d74:	56c080e7          	jalr	1388(ra) # 802022dc <exit>
+    80202d72:	557d                	li	a0,-1
+    80202d74:	fffff097          	auipc	ra,0xfffff
+    80202d78:	562080e7          	jalr	1378(ra) # 802022d6 <exit>
   if(which_dev == 2){
-    80202d78:	4789                	li	a5,2
-    80202d7a:	e4f490e3          	bne	s1,a5,80202bba <usertrap+0xaa>
+    80202d7c:	4789                	li	a5,2
+    80202d7e:	e2f49be3          	bne	s1,a5,80202bb4 <usertrap+0xaa>
     (p->utime) += 1;
-    80202d7e:	42093783          	ld	a5,1056(s2)
-    80202d82:	0785                	addi	a5,a5,1
-    80202d84:	42f93023          	sd	a5,1056(s2)
+    80202d82:	42093783          	ld	a5,1056(s2)
+    80202d86:	0785                	addi	a5,a5,1
+    80202d88:	42f93023          	sd	a5,1056(s2)
     yield();
-    80202d88:	fffff097          	auipc	ra,0xfffff
-    80202d8c:	654080e7          	jalr	1620(ra) # 802023dc <yield>
-    80202d90:	b52d                	j	80202bba <usertrap+0xaa>
+    80202d8c:	fffff097          	auipc	ra,0xfffff
+    80202d90:	64a080e7          	jalr	1610(ra) # 802023d6 <yield>
+    80202d94:	b505                	j	80202bb4 <usertrap+0xaa>
 
-0000000080202d92 <kerneltrap>:
+0000000080202d96 <kerneltrap>:
 kerneltrap() {
-    80202d92:	7179                	addi	sp,sp,-48
-    80202d94:	f406                	sd	ra,40(sp)
-    80202d96:	f022                	sd	s0,32(sp)
-    80202d98:	ec26                	sd	s1,24(sp)
-    80202d9a:	e84a                	sd	s2,16(sp)
-    80202d9c:	e44e                	sd	s3,8(sp)
-    80202d9e:	1800                	addi	s0,sp,48
+    80202d96:	7179                	addi	sp,sp,-48
+    80202d98:	f406                	sd	ra,40(sp)
+    80202d9a:	f022                	sd	s0,32(sp)
+    80202d9c:	ec26                	sd	s1,24(sp)
+    80202d9e:	e84a                	sd	s2,16(sp)
+    80202da0:	e44e                	sd	s3,8(sp)
+    80202da2:	1800                	addi	s0,sp,48
   asm volatile("csrr %0, sepc" : "=r" (x) );
-    80202da0:	14102973          	csrr	s2,sepc
+    80202da4:	14102973          	csrr	s2,sepc
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    80202da4:	100024f3          	csrr	s1,sstatus
+    80202da8:	100024f3          	csrr	s1,sstatus
   asm volatile("csrr %0, scause" : "=r" (x) );
-    80202da8:	142029f3          	csrr	s3,scause
+    80202dac:	142029f3          	csrr	s3,scause
   if((sstatus & SSTATUS_SPP) == 0)
-    80202dac:	1004f793          	andi	a5,s1,256
-    80202db0:	cb85                	beqz	a5,80202de0 <kerneltrap+0x4e>
+    80202db0:	1004f793          	andi	a5,s1,256
+    80202db4:	cb85                	beqz	a5,80202de4 <kerneltrap+0x4e>
   asm volatile("csrr %0, sstatus" : "=r" (x) );
-    80202db2:	100027f3          	csrr	a5,sstatus
+    80202db6:	100027f3          	csrr	a5,sstatus
   return (x & SSTATUS_SIE) != 0;
-    80202db6:	8b89                	andi	a5,a5,2
+    80202dba:	8b89                	andi	a5,a5,2
   if(intr_get() != 0)
-    80202db8:	ef85                	bnez	a5,80202df0 <kerneltrap+0x5e>
+    80202dbc:	ef85                	bnez	a5,80202df4 <kerneltrap+0x5e>
   if((which_dev = devintr()) == 0){
-    80202dba:	00000097          	auipc	ra,0x0
-    80202dbe:	cb2080e7          	jalr	-846(ra) # 80202a6c <devintr>
-    80202dc2:	cd1d                	beqz	a0,80202e00 <kerneltrap+0x6e>
+    80202dbe:	00000097          	auipc	ra,0x0
+    80202dc2:	ca8080e7          	jalr	-856(ra) # 80202a66 <devintr>
+    80202dc6:	cd1d                	beqz	a0,80202e04 <kerneltrap+0x6e>
   if(which_dev == 2 && myproc() != 0 && myproc()->state == RUNNING) {
-    80202dc4:	4789                	li	a5,2
-    80202dc6:	08f50b63          	beq	a0,a5,80202e5c <kerneltrap+0xca>
+    80202dc8:	4789                	li	a5,2
+    80202dca:	08f50b63          	beq	a0,a5,80202e60 <kerneltrap+0xca>
   asm volatile("csrw sepc, %0" : : "r" (x));
-    80202dca:	14191073          	csrw	sepc,s2
+    80202dce:	14191073          	csrw	sepc,s2
   asm volatile("csrw sstatus, %0" : : "r" (x));
-    80202dce:	10049073          	csrw	sstatus,s1
+    80202dd2:	10049073          	csrw	sstatus,s1
 }
-    80202dd2:	70a2                	ld	ra,40(sp)
-    80202dd4:	7402                	ld	s0,32(sp)
-    80202dd6:	64e2                	ld	s1,24(sp)
-    80202dd8:	6942                	ld	s2,16(sp)
-    80202dda:	69a2                	ld	s3,8(sp)
-    80202ddc:	6145                	addi	sp,sp,48
-    80202dde:	8082                	ret
+    80202dd6:	70a2                	ld	ra,40(sp)
+    80202dd8:	7402                	ld	s0,32(sp)
+    80202dda:	64e2                	ld	s1,24(sp)
+    80202ddc:	6942                	ld	s2,16(sp)
+    80202dde:	69a2                	ld	s3,8(sp)
+    80202de0:	6145                	addi	sp,sp,48
+    80202de2:	8082                	ret
     panic("kerneltrap: not from supervisor mode");
-    80202de0:	00008517          	auipc	a0,0x8
-    80202de4:	9c850513          	addi	a0,a0,-1592 # 8020a7a8 <digits+0x428>
-    80202de8:	ffffd097          	auipc	ra,0xffffd
-    80202dec:	35c080e7          	jalr	860(ra) # 80200144 <panic>
+    80202de4:	00008517          	auipc	a0,0x8
+    80202de8:	9c450513          	addi	a0,a0,-1596 # 8020a7a8 <digits+0x428>
+    80202dec:	ffffd097          	auipc	ra,0xffffd
+    80202df0:	358080e7          	jalr	856(ra) # 80200144 <panic>
     panic("kerneltrap: interrupts enabled");
-    80202df0:	00008517          	auipc	a0,0x8
-    80202df4:	9e050513          	addi	a0,a0,-1568 # 8020a7d0 <digits+0x450>
-    80202df8:	ffffd097          	auipc	ra,0xffffd
-    80202dfc:	34c080e7          	jalr	844(ra) # 80200144 <panic>
+    80202df4:	00008517          	auipc	a0,0x8
+    80202df8:	9dc50513          	addi	a0,a0,-1572 # 8020a7d0 <digits+0x450>
+    80202dfc:	ffffd097          	auipc	ra,0xffffd
+    80202e00:	348080e7          	jalr	840(ra) # 80200144 <panic>
     printf("\nscause %p\n", scause);
-    80202e00:	85ce                	mv	a1,s3
-    80202e02:	00008517          	auipc	a0,0x8
-    80202e06:	9ee50513          	addi	a0,a0,-1554 # 8020a7f0 <digits+0x470>
-    80202e0a:	ffffd097          	auipc	ra,0xffffd
-    80202e0e:	384080e7          	jalr	900(ra) # 8020018e <printf>
+    80202e04:	85ce                	mv	a1,s3
+    80202e06:	00008517          	auipc	a0,0x8
+    80202e0a:	9ea50513          	addi	a0,a0,-1558 # 8020a7f0 <digits+0x470>
+    80202e0e:	ffffd097          	auipc	ra,0xffffd
+    80202e12:	380080e7          	jalr	896(ra) # 8020018e <printf>
   asm volatile("csrr %0, sepc" : "=r" (x) );
-    80202e12:	141025f3          	csrr	a1,sepc
+    80202e16:	141025f3          	csrr	a1,sepc
   asm volatile("csrr %0, stval" : "=r" (x) );
-    80202e16:	14302673          	csrr	a2,stval
+    80202e1a:	14302673          	csrr	a2,stval
   asm volatile("mv %0, tp" : "=r" (x) );
-    80202e1a:	8692                	mv	a3,tp
+    80202e1e:	8692                	mv	a3,tp
     printf("sepc=%p stval=%p hart=%d\n", r_sepc(), r_stval(), r_tp());
-    80202e1c:	00008517          	auipc	a0,0x8
-    80202e20:	9e450513          	addi	a0,a0,-1564 # 8020a800 <digits+0x480>
-    80202e24:	ffffd097          	auipc	ra,0xffffd
-    80202e28:	36a080e7          	jalr	874(ra) # 8020018e <printf>
+    80202e20:	00008517          	auipc	a0,0x8
+    80202e24:	9e050513          	addi	a0,a0,-1568 # 8020a800 <digits+0x480>
+    80202e28:	ffffd097          	auipc	ra,0xffffd
+    80202e2c:	366080e7          	jalr	870(ra) # 8020018e <printf>
     struct proc *p = myproc();
-    80202e2c:	fffff097          	auipc	ra,0xfffff
-    80202e30:	c10080e7          	jalr	-1008(ra) # 80201a3c <myproc>
+    80202e30:	fffff097          	auipc	ra,0xfffff
+    80202e34:	c0c080e7          	jalr	-1012(ra) # 80201a3c <myproc>
     if (p != 0) {
-    80202e34:	cd01                	beqz	a0,80202e4c <kerneltrap+0xba>
+    80202e38:	cd01                	beqz	a0,80202e50 <kerneltrap+0xba>
       printf("pid: %d, name: %s\n", p->pid, p->name);
-    80202e36:	40850613          	addi	a2,a0,1032
-    80202e3a:	5d0c                	lw	a1,56(a0)
-    80202e3c:	00008517          	auipc	a0,0x8
-    80202e40:	9e450513          	addi	a0,a0,-1564 # 8020a820 <digits+0x4a0>
-    80202e44:	ffffd097          	auipc	ra,0xffffd
-    80202e48:	34a080e7          	jalr	842(ra) # 8020018e <printf>
+    80202e3a:	40850613          	addi	a2,a0,1032
+    80202e3e:	5d0c                	lw	a1,56(a0)
+    80202e40:	00008517          	auipc	a0,0x8
+    80202e44:	9e050513          	addi	a0,a0,-1568 # 8020a820 <digits+0x4a0>
+    80202e48:	ffffd097          	auipc	ra,0xffffd
+    80202e4c:	346080e7          	jalr	838(ra) # 8020018e <printf>
     panic("kerneltrap");
-    80202e4c:	00008517          	auipc	a0,0x8
-    80202e50:	9ec50513          	addi	a0,a0,-1556 # 8020a838 <digits+0x4b8>
-    80202e54:	ffffd097          	auipc	ra,0xffffd
-    80202e58:	2f0080e7          	jalr	752(ra) # 80200144 <panic>
+    80202e50:	00008517          	auipc	a0,0x8
+    80202e54:	9e850513          	addi	a0,a0,-1560 # 8020a838 <digits+0x4b8>
+    80202e58:	ffffd097          	auipc	ra,0xffffd
+    80202e5c:	2ec080e7          	jalr	748(ra) # 80200144 <panic>
   if(which_dev == 2 && myproc() != 0 && myproc()->state == RUNNING) {
-    80202e5c:	fffff097          	auipc	ra,0xfffff
-    80202e60:	be0080e7          	jalr	-1056(ra) # 80201a3c <myproc>
-    80202e64:	d13d                	beqz	a0,80202dca <kerneltrap+0x38>
-    80202e66:	fffff097          	auipc	ra,0xfffff
-    80202e6a:	bd6080e7          	jalr	-1066(ra) # 80201a3c <myproc>
-    80202e6e:	4d18                	lw	a4,24(a0)
-    80202e70:	478d                	li	a5,3
-    80202e72:	f4f71ce3          	bne	a4,a5,80202dca <kerneltrap+0x38>
+    80202e60:	fffff097          	auipc	ra,0xfffff
+    80202e64:	bdc080e7          	jalr	-1060(ra) # 80201a3c <myproc>
+    80202e68:	d13d                	beqz	a0,80202dce <kerneltrap+0x38>
+    80202e6a:	fffff097          	auipc	ra,0xfffff
+    80202e6e:	bd2080e7          	jalr	-1070(ra) # 80201a3c <myproc>
+    80202e72:	4d18                	lw	a4,24(a0)
+    80202e74:	478d                	li	a5,3
+    80202e76:	f4f71ce3          	bne	a4,a5,80202dce <kerneltrap+0x38>
     (myproc()->stime) += 1;
-    80202e76:	fffff097          	auipc	ra,0xfffff
-    80202e7a:	bc6080e7          	jalr	-1082(ra) # 80201a3c <myproc>
-    80202e7e:	42853783          	ld	a5,1064(a0)
-    80202e82:	0785                	addi	a5,a5,1
-    80202e84:	42f53423          	sd	a5,1064(a0)
+    80202e7a:	fffff097          	auipc	ra,0xfffff
+    80202e7e:	bc2080e7          	jalr	-1086(ra) # 80201a3c <myproc>
+    80202e82:	42853783          	ld	a5,1064(a0)
+    80202e86:	0785                	addi	a5,a5,1
+    80202e88:	42f53423          	sd	a5,1064(a0)
     yield();
-    80202e88:	fffff097          	auipc	ra,0xfffff
-    80202e8c:	554080e7          	jalr	1364(ra) # 802023dc <yield>
-    80202e90:	bf2d                	j	80202dca <kerneltrap+0x38>
+    80202e8c:	fffff097          	auipc	ra,0xfffff
+    80202e90:	54a080e7          	jalr	1354(ra) # 802023d6 <yield>
+    80202e94:	bf2d                	j	80202dce <kerneltrap+0x38>
 
-0000000080202e92 <trapframedump>:
+0000000080202e96 <trapframedump>:
 
 void trapframedump(struct trapframe *tf)
 {
-    80202e92:	1101                	addi	sp,sp,-32
-    80202e94:	ec06                	sd	ra,24(sp)
-    80202e96:	e822                	sd	s0,16(sp)
-    80202e98:	e426                	sd	s1,8(sp)
-    80202e9a:	1000                	addi	s0,sp,32
-    80202e9c:	84aa                	mv	s1,a0
+    80202e96:	1101                	addi	sp,sp,-32
+    80202e98:	ec06                	sd	ra,24(sp)
+    80202e9a:	e822                	sd	s0,16(sp)
+    80202e9c:	e426                	sd	s1,8(sp)
+    80202e9e:	1000                	addi	s0,sp,32
+    80202ea0:	84aa                	mv	s1,a0
   printf("a0: %p\t", tf->a0);
-    80202e9e:	792c                	ld	a1,112(a0)
-    80202ea0:	00008517          	auipc	a0,0x8
-    80202ea4:	9a850513          	addi	a0,a0,-1624 # 8020a848 <digits+0x4c8>
-    80202ea8:	ffffd097          	auipc	ra,0xffffd
-    80202eac:	2e6080e7          	jalr	742(ra) # 8020018e <printf>
+    80202ea2:	792c                	ld	a1,112(a0)
+    80202ea4:	00008517          	auipc	a0,0x8
+    80202ea8:	9a450513          	addi	a0,a0,-1628 # 8020a848 <digits+0x4c8>
+    80202eac:	ffffd097          	auipc	ra,0xffffd
+    80202eb0:	2e2080e7          	jalr	738(ra) # 8020018e <printf>
   printf("a1: %p\t", tf->a1);
-    80202eb0:	7cac                	ld	a1,120(s1)
-    80202eb2:	00008517          	auipc	a0,0x8
-    80202eb6:	99e50513          	addi	a0,a0,-1634 # 8020a850 <digits+0x4d0>
-    80202eba:	ffffd097          	auipc	ra,0xffffd
-    80202ebe:	2d4080e7          	jalr	724(ra) # 8020018e <printf>
+    80202eb4:	7cac                	ld	a1,120(s1)
+    80202eb6:	00008517          	auipc	a0,0x8
+    80202eba:	99a50513          	addi	a0,a0,-1638 # 8020a850 <digits+0x4d0>
+    80202ebe:	ffffd097          	auipc	ra,0xffffd
+    80202ec2:	2d0080e7          	jalr	720(ra) # 8020018e <printf>
   printf("a2: %p\t", tf->a2);
-    80202ec2:	60cc                	ld	a1,128(s1)
-    80202ec4:	00008517          	auipc	a0,0x8
-    80202ec8:	99450513          	addi	a0,a0,-1644 # 8020a858 <digits+0x4d8>
-    80202ecc:	ffffd097          	auipc	ra,0xffffd
-    80202ed0:	2c2080e7          	jalr	706(ra) # 8020018e <printf>
+    80202ec6:	60cc                	ld	a1,128(s1)
+    80202ec8:	00008517          	auipc	a0,0x8
+    80202ecc:	99050513          	addi	a0,a0,-1648 # 8020a858 <digits+0x4d8>
+    80202ed0:	ffffd097          	auipc	ra,0xffffd
+    80202ed4:	2be080e7          	jalr	702(ra) # 8020018e <printf>
   printf("a3: %p\n", tf->a3);
-    80202ed4:	64cc                	ld	a1,136(s1)
-    80202ed6:	00008517          	auipc	a0,0x8
-    80202eda:	98a50513          	addi	a0,a0,-1654 # 8020a860 <digits+0x4e0>
-    80202ede:	ffffd097          	auipc	ra,0xffffd
-    80202ee2:	2b0080e7          	jalr	688(ra) # 8020018e <printf>
+    80202ed8:	64cc                	ld	a1,136(s1)
+    80202eda:	00008517          	auipc	a0,0x8
+    80202ede:	98650513          	addi	a0,a0,-1658 # 8020a860 <digits+0x4e0>
+    80202ee2:	ffffd097          	auipc	ra,0xffffd
+    80202ee6:	2ac080e7          	jalr	684(ra) # 8020018e <printf>
   printf("a4: %p\t", tf->a4);
-    80202ee6:	68cc                	ld	a1,144(s1)
-    80202ee8:	00008517          	auipc	a0,0x8
-    80202eec:	98050513          	addi	a0,a0,-1664 # 8020a868 <digits+0x4e8>
-    80202ef0:	ffffd097          	auipc	ra,0xffffd
-    80202ef4:	29e080e7          	jalr	670(ra) # 8020018e <printf>
+    80202eea:	68cc                	ld	a1,144(s1)
+    80202eec:	00008517          	auipc	a0,0x8
+    80202ef0:	97c50513          	addi	a0,a0,-1668 # 8020a868 <digits+0x4e8>
+    80202ef4:	ffffd097          	auipc	ra,0xffffd
+    80202ef8:	29a080e7          	jalr	666(ra) # 8020018e <printf>
   printf("a5: %p\t", tf->a5);
-    80202ef8:	6ccc                	ld	a1,152(s1)
-    80202efa:	00008517          	auipc	a0,0x8
-    80202efe:	97650513          	addi	a0,a0,-1674 # 8020a870 <digits+0x4f0>
-    80202f02:	ffffd097          	auipc	ra,0xffffd
-    80202f06:	28c080e7          	jalr	652(ra) # 8020018e <printf>
+    80202efc:	6ccc                	ld	a1,152(s1)
+    80202efe:	00008517          	auipc	a0,0x8
+    80202f02:	97250513          	addi	a0,a0,-1678 # 8020a870 <digits+0x4f0>
+    80202f06:	ffffd097          	auipc	ra,0xffffd
+    80202f0a:	288080e7          	jalr	648(ra) # 8020018e <printf>
   printf("a6: %p\t", tf->a6);
-    80202f0a:	70cc                	ld	a1,160(s1)
-    80202f0c:	00008517          	auipc	a0,0x8
-    80202f10:	96c50513          	addi	a0,a0,-1684 # 8020a878 <digits+0x4f8>
-    80202f14:	ffffd097          	auipc	ra,0xffffd
-    80202f18:	27a080e7          	jalr	634(ra) # 8020018e <printf>
+    80202f0e:	70cc                	ld	a1,160(s1)
+    80202f10:	00008517          	auipc	a0,0x8
+    80202f14:	96850513          	addi	a0,a0,-1688 # 8020a878 <digits+0x4f8>
+    80202f18:	ffffd097          	auipc	ra,0xffffd
+    80202f1c:	276080e7          	jalr	630(ra) # 8020018e <printf>
   printf("a7: %p\n", tf->a7);
-    80202f1c:	74cc                	ld	a1,168(s1)
-    80202f1e:	00008517          	auipc	a0,0x8
-    80202f22:	96250513          	addi	a0,a0,-1694 # 8020a880 <digits+0x500>
-    80202f26:	ffffd097          	auipc	ra,0xffffd
-    80202f2a:	268080e7          	jalr	616(ra) # 8020018e <printf>
+    80202f20:	74cc                	ld	a1,168(s1)
+    80202f22:	00008517          	auipc	a0,0x8
+    80202f26:	95e50513          	addi	a0,a0,-1698 # 8020a880 <digits+0x500>
+    80202f2a:	ffffd097          	auipc	ra,0xffffd
+    80202f2e:	264080e7          	jalr	612(ra) # 8020018e <printf>
   printf("t0: %p\t", tf->t0);
-    80202f2e:	64ac                	ld	a1,72(s1)
-    80202f30:	00008517          	auipc	a0,0x8
-    80202f34:	95850513          	addi	a0,a0,-1704 # 8020a888 <digits+0x508>
-    80202f38:	ffffd097          	auipc	ra,0xffffd
-    80202f3c:	256080e7          	jalr	598(ra) # 8020018e <printf>
+    80202f32:	64ac                	ld	a1,72(s1)
+    80202f34:	00008517          	auipc	a0,0x8
+    80202f38:	95450513          	addi	a0,a0,-1708 # 8020a888 <digits+0x508>
+    80202f3c:	ffffd097          	auipc	ra,0xffffd
+    80202f40:	252080e7          	jalr	594(ra) # 8020018e <printf>
   printf("t1: %p\t", tf->t1);
-    80202f40:	68ac                	ld	a1,80(s1)
-    80202f42:	00008517          	auipc	a0,0x8
-    80202f46:	94e50513          	addi	a0,a0,-1714 # 8020a890 <digits+0x510>
-    80202f4a:	ffffd097          	auipc	ra,0xffffd
-    80202f4e:	244080e7          	jalr	580(ra) # 8020018e <printf>
+    80202f44:	68ac                	ld	a1,80(s1)
+    80202f46:	00008517          	auipc	a0,0x8
+    80202f4a:	94a50513          	addi	a0,a0,-1718 # 8020a890 <digits+0x510>
+    80202f4e:	ffffd097          	auipc	ra,0xffffd
+    80202f52:	240080e7          	jalr	576(ra) # 8020018e <printf>
   printf("t2: %p\t", tf->t2);
-    80202f52:	6cac                	ld	a1,88(s1)
-    80202f54:	00008517          	auipc	a0,0x8
-    80202f58:	94450513          	addi	a0,a0,-1724 # 8020a898 <digits+0x518>
-    80202f5c:	ffffd097          	auipc	ra,0xffffd
-    80202f60:	232080e7          	jalr	562(ra) # 8020018e <printf>
+    80202f56:	6cac                	ld	a1,88(s1)
+    80202f58:	00008517          	auipc	a0,0x8
+    80202f5c:	94050513          	addi	a0,a0,-1728 # 8020a898 <digits+0x518>
+    80202f60:	ffffd097          	auipc	ra,0xffffd
+    80202f64:	22e080e7          	jalr	558(ra) # 8020018e <printf>
   printf("t3: %p\n", tf->t3);
-    80202f64:	1004b583          	ld	a1,256(s1)
-    80202f68:	00008517          	auipc	a0,0x8
-    80202f6c:	93850513          	addi	a0,a0,-1736 # 8020a8a0 <digits+0x520>
-    80202f70:	ffffd097          	auipc	ra,0xffffd
-    80202f74:	21e080e7          	jalr	542(ra) # 8020018e <printf>
+    80202f68:	1004b583          	ld	a1,256(s1)
+    80202f6c:	00008517          	auipc	a0,0x8
+    80202f70:	93450513          	addi	a0,a0,-1740 # 8020a8a0 <digits+0x520>
+    80202f74:	ffffd097          	auipc	ra,0xffffd
+    80202f78:	21a080e7          	jalr	538(ra) # 8020018e <printf>
   printf("t4: %p\t", tf->t4);
-    80202f78:	1084b583          	ld	a1,264(s1)
-    80202f7c:	00008517          	auipc	a0,0x8
-    80202f80:	92c50513          	addi	a0,a0,-1748 # 8020a8a8 <digits+0x528>
-    80202f84:	ffffd097          	auipc	ra,0xffffd
-    80202f88:	20a080e7          	jalr	522(ra) # 8020018e <printf>
+    80202f7c:	1084b583          	ld	a1,264(s1)
+    80202f80:	00008517          	auipc	a0,0x8
+    80202f84:	92850513          	addi	a0,a0,-1752 # 8020a8a8 <digits+0x528>
+    80202f88:	ffffd097          	auipc	ra,0xffffd
+    80202f8c:	206080e7          	jalr	518(ra) # 8020018e <printf>
   printf("t5: %p\t", tf->t5);
-    80202f8c:	1104b583          	ld	a1,272(s1)
-    80202f90:	00008517          	auipc	a0,0x8
-    80202f94:	92050513          	addi	a0,a0,-1760 # 8020a8b0 <digits+0x530>
-    80202f98:	ffffd097          	auipc	ra,0xffffd
-    80202f9c:	1f6080e7          	jalr	502(ra) # 8020018e <printf>
+    80202f90:	1104b583          	ld	a1,272(s1)
+    80202f94:	00008517          	auipc	a0,0x8
+    80202f98:	91c50513          	addi	a0,a0,-1764 # 8020a8b0 <digits+0x530>
+    80202f9c:	ffffd097          	auipc	ra,0xffffd
+    80202fa0:	1f2080e7          	jalr	498(ra) # 8020018e <printf>
   printf("t6: %p\t", tf->t6);
-    80202fa0:	1184b583          	ld	a1,280(s1)
-    80202fa4:	00008517          	auipc	a0,0x8
-    80202fa8:	91450513          	addi	a0,a0,-1772 # 8020a8b8 <digits+0x538>
-    80202fac:	ffffd097          	auipc	ra,0xffffd
-    80202fb0:	1e2080e7          	jalr	482(ra) # 8020018e <printf>
+    80202fa4:	1184b583          	ld	a1,280(s1)
+    80202fa8:	00008517          	auipc	a0,0x8
+    80202fac:	91050513          	addi	a0,a0,-1776 # 8020a8b8 <digits+0x538>
+    80202fb0:	ffffd097          	auipc	ra,0xffffd
+    80202fb4:	1de080e7          	jalr	478(ra) # 8020018e <printf>
   printf("s0: %p\n", tf->s0);
-    80202fb4:	70ac                	ld	a1,96(s1)
-    80202fb6:	00008517          	auipc	a0,0x8
-    80202fba:	90a50513          	addi	a0,a0,-1782 # 8020a8c0 <digits+0x540>
-    80202fbe:	ffffd097          	auipc	ra,0xffffd
-    80202fc2:	1d0080e7          	jalr	464(ra) # 8020018e <printf>
+    80202fb8:	70ac                	ld	a1,96(s1)
+    80202fba:	00008517          	auipc	a0,0x8
+    80202fbe:	90650513          	addi	a0,a0,-1786 # 8020a8c0 <digits+0x540>
+    80202fc2:	ffffd097          	auipc	ra,0xffffd
+    80202fc6:	1cc080e7          	jalr	460(ra) # 8020018e <printf>
   printf("s1: %p\t", tf->s1);
-    80202fc6:	74ac                	ld	a1,104(s1)
-    80202fc8:	00008517          	auipc	a0,0x8
-    80202fcc:	90050513          	addi	a0,a0,-1792 # 8020a8c8 <digits+0x548>
-    80202fd0:	ffffd097          	auipc	ra,0xffffd
-    80202fd4:	1be080e7          	jalr	446(ra) # 8020018e <printf>
+    80202fca:	74ac                	ld	a1,104(s1)
+    80202fcc:	00008517          	auipc	a0,0x8
+    80202fd0:	8fc50513          	addi	a0,a0,-1796 # 8020a8c8 <digits+0x548>
+    80202fd4:	ffffd097          	auipc	ra,0xffffd
+    80202fd8:	1ba080e7          	jalr	442(ra) # 8020018e <printf>
   printf("s2: %p\t", tf->s2);
-    80202fd8:	78cc                	ld	a1,176(s1)
-    80202fda:	00008517          	auipc	a0,0x8
-    80202fde:	8f650513          	addi	a0,a0,-1802 # 8020a8d0 <digits+0x550>
-    80202fe2:	ffffd097          	auipc	ra,0xffffd
-    80202fe6:	1ac080e7          	jalr	428(ra) # 8020018e <printf>
+    80202fdc:	78cc                	ld	a1,176(s1)
+    80202fde:	00008517          	auipc	a0,0x8
+    80202fe2:	8f250513          	addi	a0,a0,-1806 # 8020a8d0 <digits+0x550>
+    80202fe6:	ffffd097          	auipc	ra,0xffffd
+    80202fea:	1a8080e7          	jalr	424(ra) # 8020018e <printf>
   printf("s3: %p\t", tf->s3);
-    80202fea:	7ccc                	ld	a1,184(s1)
-    80202fec:	00008517          	auipc	a0,0x8
-    80202ff0:	8ec50513          	addi	a0,a0,-1812 # 8020a8d8 <digits+0x558>
-    80202ff4:	ffffd097          	auipc	ra,0xffffd
-    80202ff8:	19a080e7          	jalr	410(ra) # 8020018e <printf>
+    80202fee:	7ccc                	ld	a1,184(s1)
+    80202ff0:	00008517          	auipc	a0,0x8
+    80202ff4:	8e850513          	addi	a0,a0,-1816 # 8020a8d8 <digits+0x558>
+    80202ff8:	ffffd097          	auipc	ra,0xffffd
+    80202ffc:	196080e7          	jalr	406(ra) # 8020018e <printf>
   printf("s4: %p\n", tf->s4);
-    80202ffc:	60ec                	ld	a1,192(s1)
-    80202ffe:	00008517          	auipc	a0,0x8
-    80203002:	8e250513          	addi	a0,a0,-1822 # 8020a8e0 <digits+0x560>
-    80203006:	ffffd097          	auipc	ra,0xffffd
-    8020300a:	188080e7          	jalr	392(ra) # 8020018e <printf>
+    80203000:	60ec                	ld	a1,192(s1)
+    80203002:	00008517          	auipc	a0,0x8
+    80203006:	8de50513          	addi	a0,a0,-1826 # 8020a8e0 <digits+0x560>
+    8020300a:	ffffd097          	auipc	ra,0xffffd
+    8020300e:	184080e7          	jalr	388(ra) # 8020018e <printf>
   printf("s5: %p\t", tf->s5);
-    8020300e:	64ec                	ld	a1,200(s1)
-    80203010:	00008517          	auipc	a0,0x8
-    80203014:	8d850513          	addi	a0,a0,-1832 # 8020a8e8 <digits+0x568>
-    80203018:	ffffd097          	auipc	ra,0xffffd
-    8020301c:	176080e7          	jalr	374(ra) # 8020018e <printf>
+    80203012:	64ec                	ld	a1,200(s1)
+    80203014:	00008517          	auipc	a0,0x8
+    80203018:	8d450513          	addi	a0,a0,-1836 # 8020a8e8 <digits+0x568>
+    8020301c:	ffffd097          	auipc	ra,0xffffd
+    80203020:	172080e7          	jalr	370(ra) # 8020018e <printf>
   printf("s6: %p\t", tf->s6);
-    80203020:	68ec                	ld	a1,208(s1)
-    80203022:	00008517          	auipc	a0,0x8
-    80203026:	8ce50513          	addi	a0,a0,-1842 # 8020a8f0 <digits+0x570>
-    8020302a:	ffffd097          	auipc	ra,0xffffd
-    8020302e:	164080e7          	jalr	356(ra) # 8020018e <printf>
+    80203024:	68ec                	ld	a1,208(s1)
+    80203026:	00008517          	auipc	a0,0x8
+    8020302a:	8ca50513          	addi	a0,a0,-1846 # 8020a8f0 <digits+0x570>
+    8020302e:	ffffd097          	auipc	ra,0xffffd
+    80203032:	160080e7          	jalr	352(ra) # 8020018e <printf>
   printf("s7: %p\t", tf->s7);
-    80203032:	6cec                	ld	a1,216(s1)
-    80203034:	00008517          	auipc	a0,0x8
-    80203038:	8c450513          	addi	a0,a0,-1852 # 8020a8f8 <digits+0x578>
-    8020303c:	ffffd097          	auipc	ra,0xffffd
-    80203040:	152080e7          	jalr	338(ra) # 8020018e <printf>
+    80203036:	6cec                	ld	a1,216(s1)
+    80203038:	00008517          	auipc	a0,0x8
+    8020303c:	8c050513          	addi	a0,a0,-1856 # 8020a8f8 <digits+0x578>
+    80203040:	ffffd097          	auipc	ra,0xffffd
+    80203044:	14e080e7          	jalr	334(ra) # 8020018e <printf>
   printf("s8: %p\n", tf->s8);
-    80203044:	70ec                	ld	a1,224(s1)
-    80203046:	00008517          	auipc	a0,0x8
-    8020304a:	8ba50513          	addi	a0,a0,-1862 # 8020a900 <digits+0x580>
-    8020304e:	ffffd097          	auipc	ra,0xffffd
-    80203052:	140080e7          	jalr	320(ra) # 8020018e <printf>
+    80203048:	70ec                	ld	a1,224(s1)
+    8020304a:	00008517          	auipc	a0,0x8
+    8020304e:	8b650513          	addi	a0,a0,-1866 # 8020a900 <digits+0x580>
+    80203052:	ffffd097          	auipc	ra,0xffffd
+    80203056:	13c080e7          	jalr	316(ra) # 8020018e <printf>
   printf("s9: %p\t", tf->s9);
-    80203056:	74ec                	ld	a1,232(s1)
-    80203058:	00008517          	auipc	a0,0x8
-    8020305c:	8b050513          	addi	a0,a0,-1872 # 8020a908 <digits+0x588>
-    80203060:	ffffd097          	auipc	ra,0xffffd
-    80203064:	12e080e7          	jalr	302(ra) # 8020018e <printf>
+    8020305a:	74ec                	ld	a1,232(s1)
+    8020305c:	00008517          	auipc	a0,0x8
+    80203060:	8ac50513          	addi	a0,a0,-1876 # 8020a908 <digits+0x588>
+    80203064:	ffffd097          	auipc	ra,0xffffd
+    80203068:	12a080e7          	jalr	298(ra) # 8020018e <printf>
   printf("s10: %p\t", tf->s10);
-    80203068:	78ec                	ld	a1,240(s1)
-    8020306a:	00008517          	auipc	a0,0x8
-    8020306e:	8a650513          	addi	a0,a0,-1882 # 8020a910 <digits+0x590>
-    80203072:	ffffd097          	auipc	ra,0xffffd
-    80203076:	11c080e7          	jalr	284(ra) # 8020018e <printf>
+    8020306c:	78ec                	ld	a1,240(s1)
+    8020306e:	00008517          	auipc	a0,0x8
+    80203072:	8a250513          	addi	a0,a0,-1886 # 8020a910 <digits+0x590>
+    80203076:	ffffd097          	auipc	ra,0xffffd
+    8020307a:	118080e7          	jalr	280(ra) # 8020018e <printf>
   printf("s11: %p\t", tf->s11);
-    8020307a:	7cec                	ld	a1,248(s1)
-    8020307c:	00008517          	auipc	a0,0x8
-    80203080:	8a450513          	addi	a0,a0,-1884 # 8020a920 <digits+0x5a0>
-    80203084:	ffffd097          	auipc	ra,0xffffd
-    80203088:	10a080e7          	jalr	266(ra) # 8020018e <printf>
+    8020307e:	7cec                	ld	a1,248(s1)
+    80203080:	00008517          	auipc	a0,0x8
+    80203084:	8a050513          	addi	a0,a0,-1888 # 8020a920 <digits+0x5a0>
+    80203088:	ffffd097          	auipc	ra,0xffffd
+    8020308c:	106080e7          	jalr	262(ra) # 8020018e <printf>
   printf("ra: %p\n", tf->ra);
-    8020308c:	748c                	ld	a1,40(s1)
-    8020308e:	00007517          	auipc	a0,0x7
-    80203092:	58250513          	addi	a0,a0,1410 # 8020a610 <digits+0x290>
-    80203096:	ffffd097          	auipc	ra,0xffffd
-    8020309a:	0f8080e7          	jalr	248(ra) # 8020018e <printf>
+    80203090:	748c                	ld	a1,40(s1)
+    80203092:	00007517          	auipc	a0,0x7
+    80203096:	57e50513          	addi	a0,a0,1406 # 8020a610 <digits+0x290>
+    8020309a:	ffffd097          	auipc	ra,0xffffd
+    8020309e:	0f4080e7          	jalr	244(ra) # 8020018e <printf>
   printf("sp: %p\t", tf->sp);
-    8020309e:	788c                	ld	a1,48(s1)
-    802030a0:	00008517          	auipc	a0,0x8
-    802030a4:	89050513          	addi	a0,a0,-1904 # 8020a930 <digits+0x5b0>
-    802030a8:	ffffd097          	auipc	ra,0xffffd
-    802030ac:	0e6080e7          	jalr	230(ra) # 8020018e <printf>
+    802030a2:	788c                	ld	a1,48(s1)
+    802030a4:	00008517          	auipc	a0,0x8
+    802030a8:	88c50513          	addi	a0,a0,-1908 # 8020a930 <digits+0x5b0>
+    802030ac:	ffffd097          	auipc	ra,0xffffd
+    802030b0:	0e2080e7          	jalr	226(ra) # 8020018e <printf>
   printf("gp: %p\t", tf->gp);
-    802030b0:	7c8c                	ld	a1,56(s1)
-    802030b2:	00008517          	auipc	a0,0x8
-    802030b6:	88650513          	addi	a0,a0,-1914 # 8020a938 <digits+0x5b8>
-    802030ba:	ffffd097          	auipc	ra,0xffffd
-    802030be:	0d4080e7          	jalr	212(ra) # 8020018e <printf>
+    802030b4:	7c8c                	ld	a1,56(s1)
+    802030b6:	00008517          	auipc	a0,0x8
+    802030ba:	88250513          	addi	a0,a0,-1918 # 8020a938 <digits+0x5b8>
+    802030be:	ffffd097          	auipc	ra,0xffffd
+    802030c2:	0d0080e7          	jalr	208(ra) # 8020018e <printf>
   printf("tp: %p\t", tf->tp);
-    802030c2:	60ac                	ld	a1,64(s1)
-    802030c4:	00008517          	auipc	a0,0x8
-    802030c8:	87c50513          	addi	a0,a0,-1924 # 8020a940 <digits+0x5c0>
-    802030cc:	ffffd097          	auipc	ra,0xffffd
-    802030d0:	0c2080e7          	jalr	194(ra) # 8020018e <printf>
+    802030c6:	60ac                	ld	a1,64(s1)
+    802030c8:	00008517          	auipc	a0,0x8
+    802030cc:	87850513          	addi	a0,a0,-1928 # 8020a940 <digits+0x5c0>
+    802030d0:	ffffd097          	auipc	ra,0xffffd
+    802030d4:	0be080e7          	jalr	190(ra) # 8020018e <printf>
   printf("epc: %p\n", tf->epc);
-    802030d4:	6c8c                	ld	a1,24(s1)
-    802030d6:	00008517          	auipc	a0,0x8
-    802030da:	87250513          	addi	a0,a0,-1934 # 8020a948 <digits+0x5c8>
-    802030de:	ffffd097          	auipc	ra,0xffffd
-    802030e2:	0b0080e7          	jalr	176(ra) # 8020018e <printf>
+    802030d8:	6c8c                	ld	a1,24(s1)
+    802030da:	00008517          	auipc	a0,0x8
+    802030de:	86e50513          	addi	a0,a0,-1938 # 8020a948 <digits+0x5c8>
+    802030e2:	ffffd097          	auipc	ra,0xffffd
+    802030e6:	0ac080e7          	jalr	172(ra) # 8020018e <printf>
 }
-    802030e6:	60e2                	ld	ra,24(sp)
-    802030e8:	6442                	ld	s0,16(sp)
-    802030ea:	64a2                	ld	s1,8(sp)
-    802030ec:	6105                	addi	sp,sp,32
-    802030ee:	8082                	ret
+    802030ea:	60e2                	ld	ra,24(sp)
+    802030ec:	6442                	ld	s0,16(sp)
+    802030ee:	64a2                	ld	s1,8(sp)
+    802030f0:	6105                	addi	sp,sp,32
+    802030f2:	8082                	ret
 
-00000000802030f0 <argraw>:
+00000000802030f4 <argraw>:
   return strlen(buf);
 }
 
 static uint64
 argraw(int n)
 {
-    802030f0:	1101                	addi	sp,sp,-32
-    802030f2:	ec06                	sd	ra,24(sp)
-    802030f4:	e822                	sd	s0,16(sp)
-    802030f6:	e426                	sd	s1,8(sp)
-    802030f8:	1000                	addi	s0,sp,32
-    802030fa:	84aa                	mv	s1,a0
+    802030f4:	1101                	addi	sp,sp,-32
+    802030f6:	ec06                	sd	ra,24(sp)
+    802030f8:	e822                	sd	s0,16(sp)
+    802030fa:	e426                	sd	s1,8(sp)
+    802030fc:	1000                	addi	s0,sp,32
+    802030fe:	84aa                	mv	s1,a0
   struct proc *p = myproc();
-    802030fc:	fffff097          	auipc	ra,0xfffff
-    80203100:	940080e7          	jalr	-1728(ra) # 80201a3c <myproc>
+    80203100:	fffff097          	auipc	ra,0xfffff
+    80203104:	93c080e7          	jalr	-1732(ra) # 80201a3c <myproc>
   switch (n) {
-    80203104:	4795                	li	a5,5
-    80203106:	0497e163          	bltu	a5,s1,80203148 <argraw+0x58>
-    8020310a:	048a                	slli	s1,s1,0x2
-    8020310c:	00008717          	auipc	a4,0x8
-    80203110:	9b470713          	addi	a4,a4,-1612 # 8020aac0 <digits+0x740>
-    80203114:	94ba                	add	s1,s1,a4
-    80203116:	409c                	lw	a5,0(s1)
-    80203118:	97ba                	add	a5,a5,a4
-    8020311a:	8782                	jr	a5
+    80203108:	4795                	li	a5,5
+    8020310a:	0497e163          	bltu	a5,s1,8020314c <argraw+0x58>
+    8020310e:	048a                	slli	s1,s1,0x2
+    80203110:	00008717          	auipc	a4,0x8
+    80203114:	9b070713          	addi	a4,a4,-1616 # 8020aac0 <digits+0x740>
+    80203118:	94ba                	add	s1,s1,a4
+    8020311a:	409c                	lw	a5,0(s1)
+    8020311c:	97ba                	add	a5,a5,a4
+    8020311e:	8782                	jr	a5
   case 0:
     return p->trapframe->a0;
-    8020311c:	713c                	ld	a5,96(a0)
-    8020311e:	7ba8                	ld	a0,112(a5)
+    80203120:	713c                	ld	a5,96(a0)
+    80203122:	7ba8                	ld	a0,112(a5)
   case 5:
     return p->trapframe->a5;
   }
   panic("argraw");
   return -1;
 }
-    80203120:	60e2                	ld	ra,24(sp)
-    80203122:	6442                	ld	s0,16(sp)
-    80203124:	64a2                	ld	s1,8(sp)
-    80203126:	6105                	addi	sp,sp,32
-    80203128:	8082                	ret
+    80203124:	60e2                	ld	ra,24(sp)
+    80203126:	6442                	ld	s0,16(sp)
+    80203128:	64a2                	ld	s1,8(sp)
+    8020312a:	6105                	addi	sp,sp,32
+    8020312c:	8082                	ret
     return p->trapframe->a1;
-    8020312a:	713c                	ld	a5,96(a0)
-    8020312c:	7fa8                	ld	a0,120(a5)
-    8020312e:	bfcd                	j	80203120 <argraw+0x30>
+    8020312e:	713c                	ld	a5,96(a0)
+    80203130:	7fa8                	ld	a0,120(a5)
+    80203132:	bfcd                	j	80203124 <argraw+0x30>
     return p->trapframe->a2;
-    80203130:	713c                	ld	a5,96(a0)
-    80203132:	63c8                	ld	a0,128(a5)
-    80203134:	b7f5                	j	80203120 <argraw+0x30>
+    80203134:	713c                	ld	a5,96(a0)
+    80203136:	63c8                	ld	a0,128(a5)
+    80203138:	b7f5                	j	80203124 <argraw+0x30>
     return p->trapframe->a3;
-    80203136:	713c                	ld	a5,96(a0)
-    80203138:	67c8                	ld	a0,136(a5)
-    8020313a:	b7dd                	j	80203120 <argraw+0x30>
+    8020313a:	713c                	ld	a5,96(a0)
+    8020313c:	67c8                	ld	a0,136(a5)
+    8020313e:	b7dd                	j	80203124 <argraw+0x30>
     return p->trapframe->a4;
-    8020313c:	713c                	ld	a5,96(a0)
-    8020313e:	6bc8                	ld	a0,144(a5)
-    80203140:	b7c5                	j	80203120 <argraw+0x30>
+    80203140:	713c                	ld	a5,96(a0)
+    80203142:	6bc8                	ld	a0,144(a5)
+    80203144:	b7c5                	j	80203124 <argraw+0x30>
     return p->trapframe->a5;
-    80203142:	713c                	ld	a5,96(a0)
-    80203144:	6fc8                	ld	a0,152(a5)
-    80203146:	bfe9                	j	80203120 <argraw+0x30>
+    80203146:	713c                	ld	a5,96(a0)
+    80203148:	6fc8                	ld	a0,152(a5)
+    8020314a:	bfe9                	j	80203124 <argraw+0x30>
   panic("argraw");
-    80203148:	00008517          	auipc	a0,0x8
-    8020314c:	81050513          	addi	a0,a0,-2032 # 8020a958 <digits+0x5d8>
-    80203150:	ffffd097          	auipc	ra,0xffffd
-    80203154:	ff4080e7          	jalr	-12(ra) # 80200144 <panic>
+    8020314c:	00008517          	auipc	a0,0x8
+    80203150:	80c50513          	addi	a0,a0,-2036 # 8020a958 <digits+0x5d8>
+    80203154:	ffffd097          	auipc	ra,0xffffd
+    80203158:	ff0080e7          	jalr	-16(ra) # 80200144 <panic>
 
-0000000080203158 <sys_stat_syscall>:
+000000008020315c <sys_stat_syscall>:
 
   return 0;
 }
 
 
 uint64 sys_stat_syscall(void) {
-    80203158:	7179                	addi	sp,sp,-48
-    8020315a:	f406                	sd	ra,40(sp)
-    8020315c:	f022                	sd	s0,32(sp)
-    8020315e:	ec26                	sd	s1,24(sp)
-    80203160:	e84a                	sd	s2,16(sp)
-    80203162:	e44e                	sd	s3,8(sp)
-    80203164:	e052                	sd	s4,0(sp)
-    80203166:	1800                	addi	s0,sp,48
+    8020315c:	7179                	addi	sp,sp,-48
+    8020315e:	f406                	sd	ra,40(sp)
+    80203160:	f022                	sd	s0,32(sp)
+    80203162:	ec26                	sd	s1,24(sp)
+    80203164:	e84a                	sd	s2,16(sp)
+    80203166:	e44e                	sd	s3,8(sp)
+    80203168:	e052                	sd	s4,0(sp)
+    8020316a:	1800                	addi	s0,sp,48
   printf("Name\t\tCount\n");
-    80203168:	00007517          	auipc	a0,0x7
-    8020316c:	7f850513          	addi	a0,a0,2040 # 8020a960 <digits+0x5e0>
-    80203170:	ffffd097          	auipc	ra,0xffffd
-    80203174:	01e080e7          	jalr	30(ra) # 8020018e <printf>
+    8020316c:	00007517          	auipc	a0,0x7
+    80203170:	7f450513          	addi	a0,a0,2036 # 8020a960 <digits+0x5e0>
+    80203174:	ffffd097          	auipc	ra,0xffffd
+    80203178:	01a080e7          	jalr	26(ra) # 8020018e <printf>
   for (int i = 0; i < NELEM(syscalls); i++) {
-    80203178:	0002a497          	auipc	s1,0x2a
-    8020317c:	c1848493          	addi	s1,s1,-1000 # 8022cd90 <syscall_counts>
-    80203180:	00009917          	auipc	s2,0x9
-    80203184:	50090913          	addi	s2,s2,1280 # 8020c680 <sysnames>
-    80203188:	0002a997          	auipc	s3,0x2a
-    8020318c:	0c898993          	addi	s3,s3,200 # 8022d250 <bcache>
+    8020317c:	0002a497          	auipc	s1,0x2a
+    80203180:	c1448493          	addi	s1,s1,-1004 # 8022cd90 <syscall_counts>
+    80203184:	00009917          	auipc	s2,0x9
+    80203188:	4fc90913          	addi	s2,s2,1276 # 8020c680 <sysnames>
+    8020318c:	0002a997          	auipc	s3,0x2a
+    80203190:	0c498993          	addi	s3,s3,196 # 8022d250 <bcache>
     if (syscall_counts[i] > 0) {
       printf("%s\t\t%d\n", sysnames[i], syscall_counts[i]);
-    80203190:	00007a17          	auipc	s4,0x7
-    80203194:	7e0a0a13          	addi	s4,s4,2016 # 8020a970 <digits+0x5f0>
-    80203198:	a029                	j	802031a2 <sys_stat_syscall+0x4a>
+    80203194:	00007a17          	auipc	s4,0x7
+    80203198:	7dca0a13          	addi	s4,s4,2012 # 8020a970 <digits+0x5f0>
+    8020319c:	a029                	j	802031a6 <sys_stat_syscall+0x4a>
   for (int i = 0; i < NELEM(syscalls); i++) {
-    8020319a:	0491                	addi	s1,s1,4
-    8020319c:	0921                	addi	s2,s2,8
-    8020319e:	01348d63          	beq	s1,s3,802031b8 <sys_stat_syscall+0x60>
+    8020319e:	0491                	addi	s1,s1,4
+    802031a0:	0921                	addi	s2,s2,8
+    802031a2:	01348d63          	beq	s1,s3,802031bc <sys_stat_syscall+0x60>
     if (syscall_counts[i] > 0) {
-    802031a2:	4090                	lw	a2,0(s1)
-    802031a4:	fec05be3          	blez	a2,8020319a <sys_stat_syscall+0x42>
+    802031a6:	4090                	lw	a2,0(s1)
+    802031a8:	fec05be3          	blez	a2,8020319e <sys_stat_syscall+0x42>
       printf("%s\t\t%d\n", sysnames[i], syscall_counts[i]);
-    802031a8:	00093583          	ld	a1,0(s2)
-    802031ac:	8552                	mv	a0,s4
-    802031ae:	ffffd097          	auipc	ra,0xffffd
-    802031b2:	fe0080e7          	jalr	-32(ra) # 8020018e <printf>
-    802031b6:	b7d5                	j	8020319a <sys_stat_syscall+0x42>
+    802031ac:	00093583          	ld	a1,0(s2)
+    802031b0:	8552                	mv	a0,s4
+    802031b2:	ffffd097          	auipc	ra,0xffffd
+    802031b6:	fdc080e7          	jalr	-36(ra) # 8020018e <printf>
+    802031ba:	b7d5                	j	8020319e <sys_stat_syscall+0x42>
     }
   }
   return 0;
 }
-    802031b8:	4501                	li	a0,0
-    802031ba:	70a2                	ld	ra,40(sp)
-    802031bc:	7402                	ld	s0,32(sp)
-    802031be:	64e2                	ld	s1,24(sp)
-    802031c0:	6942                	ld	s2,16(sp)
-    802031c2:	69a2                	ld	s3,8(sp)
-    802031c4:	6a02                	ld	s4,0(sp)
-    802031c6:	6145                	addi	sp,sp,48
-    802031c8:	8082                	ret
-
-00000000802031ca <sys_uname>:
+    802031bc:	4501                	li	a0,0
+    802031be:	70a2                	ld	ra,40(sp)
+    802031c0:	7402                	ld	s0,32(sp)
+    802031c2:	64e2                	ld	s1,24(sp)
+    802031c4:	6942                	ld	s2,16(sp)
+    802031c6:	69a2                	ld	s3,8(sp)
+    802031c8:	6a02                	ld	s4,0(sp)
+    802031ca:	6145                	addi	sp,sp,48
+    802031cc:	8082                	ret
+
+00000000802031ce <sys_uname>:
 
 uint64 sys_uname(void) {
-    802031ca:	7125                	addi	sp,sp,-416
-    802031cc:	ef06                	sd	ra,408(sp)
-    802031ce:	eb22                	sd	s0,400(sp)
-    802031d0:	1300                	addi	s0,sp,416
+    802031ce:	7125                	addi	sp,sp,-416
+    802031d0:	ef06                	sd	ra,408(sp)
+    802031d2:	eb22                	sd	s0,400(sp)
+    802031d4:	1300                	addi	s0,sp,416
   *ip = argraw(n);
-    802031d2:	4501                	li	a0,0
-    802031d4:	00000097          	auipc	ra,0x0
-    802031d8:	f1c080e7          	jalr	-228(ra) # 802030f0 <argraw>
+    802031d6:	4501                	li	a0,0
+    802031d8:	00000097          	auipc	ra,0x0
+    802031dc:	f1c080e7          	jalr	-228(ra) # 802030f4 <argraw>
   uint64 uts;
   if (argaddr(0, &uts) < 0) {
     return -1;
   }
   
   struct utsname info={
-    802031dc:	00008797          	auipc	a5,0x8
-    802031e0:	8fc78793          	addi	a5,a5,-1796 # 8020aad8 <digits+0x758>
-    802031e4:	e6840713          	addi	a4,s0,-408
-    802031e8:	00008697          	auipc	a3,0x8
-    802031ec:	a7068693          	addi	a3,a3,-1424 # 8020ac58 <digits+0x8d8>
-    802031f0:	0007b883          	ld	a7,0(a5)
-    802031f4:	0087b803          	ld	a6,8(a5)
-    802031f8:	6b8c                	ld	a1,16(a5)
-    802031fa:	6f90                	ld	a2,24(a5)
-    802031fc:	01173023          	sd	a7,0(a4)
-    80203200:	01073423          	sd	a6,8(a4)
-    80203204:	eb0c                	sd	a1,16(a4)
-    80203206:	ef10                	sd	a2,24(a4)
-    80203208:	02078793          	addi	a5,a5,32
-    8020320c:	02070713          	addi	a4,a4,32
-    80203210:	fed790e3          	bne	a5,a3,802031f0 <sys_uname+0x26>
-    80203214:	4394                	lw	a3,0(a5)
-    80203216:	c314                	sw	a3,0(a4)
-    80203218:	0047d783          	lhu	a5,4(a5)
-    8020321c:	00f71223          	sh	a5,4(a4)
+    802031e0:	00008797          	auipc	a5,0x8
+    802031e4:	8f878793          	addi	a5,a5,-1800 # 8020aad8 <digits+0x758>
+    802031e8:	e6840713          	addi	a4,s0,-408
+    802031ec:	00008697          	auipc	a3,0x8
+    802031f0:	a6c68693          	addi	a3,a3,-1428 # 8020ac58 <digits+0x8d8>
+    802031f4:	0007b883          	ld	a7,0(a5)
+    802031f8:	0087b803          	ld	a6,8(a5)
+    802031fc:	6b8c                	ld	a1,16(a5)
+    802031fe:	6f90                	ld	a2,24(a5)
+    80203200:	01173023          	sd	a7,0(a4)
+    80203204:	01073423          	sd	a6,8(a4)
+    80203208:	eb0c                	sd	a1,16(a4)
+    8020320a:	ef10                	sd	a2,24(a4)
+    8020320c:	02078793          	addi	a5,a5,32
+    80203210:	02070713          	addi	a4,a4,32
+    80203214:	fed790e3          	bne	a5,a3,802031f4 <sys_uname+0x26>
+    80203218:	4394                	lw	a3,0(a5)
+    8020321a:	c314                	sw	a3,0(a4)
+    8020321c:	0047d783          	lhu	a5,4(a5)
+    80203220:	00f71223          	sh	a5,4(a4)
     "0.0.1",
     "riscv64",
     "localdomain"
   };
 
   if (copyout2(uts, (char *)&info, sizeof(info)) < 0) {
-    80203220:	18600613          	li	a2,390
-    80203224:	e6840593          	addi	a1,s0,-408
-    80203228:	ffffe097          	auipc	ra,0xffffe
-    8020322c:	14a080e7          	jalr	330(ra) # 80201372 <copyout2>
+    80203224:	18600613          	li	a2,390
+    80203228:	e6840593          	addi	a1,s0,-408
+    8020322c:	ffffe097          	auipc	ra,0xffffe
+    80203230:	146080e7          	jalr	326(ra) # 80201372 <copyout2>
     return -1;
   }
 
   return 0;
-    80203230:	957d                	srai	a0,a0,0x3f
-    80203232:	60fa                	ld	ra,408(sp)
-    80203234:	645a                	ld	s0,400(sp)
-    80203236:	611d                	addi	sp,sp,416
-    80203238:	8082                	ret
+    80203234:	957d                	srai	a0,a0,0x3f
+    80203236:	60fa                	ld	ra,408(sp)
+    80203238:	645a                	ld	s0,400(sp)
+    8020323a:	611d                	addi	sp,sp,416
+    8020323c:	8082                	ret
 
-000000008020323a <sys_sysinfo>:
+000000008020323e <sys_sysinfo>:
 {
-    8020323a:	7179                	addi	sp,sp,-48
-    8020323c:	f406                	sd	ra,40(sp)
-    8020323e:	f022                	sd	s0,32(sp)
-    80203240:	ec26                	sd	s1,24(sp)
-    80203242:	1800                	addi	s0,sp,48
+    8020323e:	7179                	addi	sp,sp,-48
+    80203240:	f406                	sd	ra,40(sp)
+    80203242:	f022                	sd	s0,32(sp)
+    80203244:	ec26                	sd	s1,24(sp)
+    80203246:	1800                	addi	s0,sp,48
   *ip = argraw(n);
-    80203244:	4501                	li	a0,0
-    80203246:	00000097          	auipc	ra,0x0
-    8020324a:	eaa080e7          	jalr	-342(ra) # 802030f0 <argraw>
-    8020324e:	84aa                	mv	s1,a0
+    80203248:	4501                	li	a0,0
+    8020324a:	00000097          	auipc	ra,0x0
+    8020324e:	eaa080e7          	jalr	-342(ra) # 802030f4 <argraw>
+    80203252:	84aa                	mv	s1,a0
   info.freemem = freemem_amount();
-    80203250:	ffffd097          	auipc	ra,0xffffd
-    80203254:	370080e7          	jalr	880(ra) # 802005c0 <freemem_amount>
-    80203258:	fca43823          	sd	a0,-48(s0)
+    80203254:	ffffd097          	auipc	ra,0xffffd
+    80203258:	36c080e7          	jalr	876(ra) # 802005c0 <freemem_amount>
+    8020325c:	fca43823          	sd	a0,-48(s0)
   info.nproc = procnum();
-    8020325c:	fffff097          	auipc	ra,0xfffff
-    80203260:	69c080e7          	jalr	1692(ra) # 802028f8 <procnum>
-    80203264:	fca43c23          	sd	a0,-40(s0)
+    80203260:	fffff097          	auipc	ra,0xfffff
+    80203264:	692080e7          	jalr	1682(ra) # 802028f2 <procnum>
+    80203268:	fca43c23          	sd	a0,-40(s0)
   if (copyout2(addr, (char *)&info, sizeof(info)) < 0) {
-    80203268:	4641                	li	a2,16
-    8020326a:	fd040593          	addi	a1,s0,-48
-    8020326e:	8526                	mv	a0,s1
-    80203270:	ffffe097          	auipc	ra,0xffffe
-    80203274:	102080e7          	jalr	258(ra) # 80201372 <copyout2>
+    8020326c:	4641                	li	a2,16
+    8020326e:	fd040593          	addi	a1,s0,-48
+    80203272:	8526                	mv	a0,s1
+    80203274:	ffffe097          	auipc	ra,0xffffe
+    80203278:	0fe080e7          	jalr	254(ra) # 80201372 <copyout2>
 }
-    80203278:	957d                	srai	a0,a0,0x3f
-    8020327a:	70a2                	ld	ra,40(sp)
-    8020327c:	7402                	ld	s0,32(sp)
-    8020327e:	64e2                	ld	s1,24(sp)
-    80203280:	6145                	addi	sp,sp,48
-    80203282:	8082                	ret
-
-0000000080203284 <fetchaddr>:
+    8020327c:	957d                	srai	a0,a0,0x3f
+    8020327e:	70a2                	ld	ra,40(sp)
+    80203280:	7402                	ld	s0,32(sp)
+    80203282:	64e2                	ld	s1,24(sp)
+    80203284:	6145                	addi	sp,sp,48
+    80203286:	8082                	ret
+
+0000000080203288 <fetchaddr>:
 {
-    80203284:	1101                	addi	sp,sp,-32
-    80203286:	ec06                	sd	ra,24(sp)
-    80203288:	e822                	sd	s0,16(sp)
-    8020328a:	e426                	sd	s1,8(sp)
-    8020328c:	e04a                	sd	s2,0(sp)
-    8020328e:	1000                	addi	s0,sp,32
-    80203290:	84aa                	mv	s1,a0
-    80203292:	892e                	mv	s2,a1
+    80203288:	1101                	addi	sp,sp,-32
+    8020328a:	ec06                	sd	ra,24(sp)
+    8020328c:	e822                	sd	s0,16(sp)
+    8020328e:	e426                	sd	s1,8(sp)
+    80203290:	e04a                	sd	s2,0(sp)
+    80203292:	1000                	addi	s0,sp,32
+    80203294:	84aa                	mv	s1,a0
+    80203296:	892e                	mv	s2,a1
   struct proc *p = myproc();
-    80203294:	ffffe097          	auipc	ra,0xffffe
-    80203298:	7a8080e7          	jalr	1960(ra) # 80201a3c <myproc>
+    80203298:	ffffe097          	auipc	ra,0xffffe
+    8020329c:	7a4080e7          	jalr	1956(ra) # 80201a3c <myproc>
   if(addr >= p->sz || addr+sizeof(uint64) > p->sz)
-    8020329c:	653c                	ld	a5,72(a0)
-    8020329e:	02f4f763          	bgeu	s1,a5,802032cc <fetchaddr+0x48>
-    802032a2:	00848713          	addi	a4,s1,8
-    802032a6:	02e7e563          	bltu	a5,a4,802032d0 <fetchaddr+0x4c>
+    802032a0:	653c                	ld	a5,72(a0)
+    802032a2:	02f4f763          	bgeu	s1,a5,802032d0 <fetchaddr+0x48>
+    802032a6:	00848713          	addi	a4,s1,8
+    802032aa:	02e7e563          	bltu	a5,a4,802032d4 <fetchaddr+0x4c>
   if(copyin2((char *)ip, addr, sizeof(*ip)) != 0)
-    802032aa:	4621                	li	a2,8
-    802032ac:	85a6                	mv	a1,s1
-    802032ae:	854a                	mv	a0,s2
-    802032b0:	ffffe097          	auipc	ra,0xffffe
-    802032b4:	1a2080e7          	jalr	418(ra) # 80201452 <copyin2>
-    802032b8:	00a03533          	snez	a0,a0
-    802032bc:	40a00533          	neg	a0,a0
+    802032ae:	4621                	li	a2,8
+    802032b0:	85a6                	mv	a1,s1
+    802032b2:	854a                	mv	a0,s2
+    802032b4:	ffffe097          	auipc	ra,0xffffe
+    802032b8:	19e080e7          	jalr	414(ra) # 80201452 <copyin2>
+    802032bc:	00a03533          	snez	a0,a0
+    802032c0:	40a00533          	neg	a0,a0
 }
-    802032c0:	60e2                	ld	ra,24(sp)
-    802032c2:	6442                	ld	s0,16(sp)
-    802032c4:	64a2                	ld	s1,8(sp)
-    802032c6:	6902                	ld	s2,0(sp)
-    802032c8:	6105                	addi	sp,sp,32
-    802032ca:	8082                	ret
+    802032c4:	60e2                	ld	ra,24(sp)
+    802032c6:	6442                	ld	s0,16(sp)
+    802032c8:	64a2                	ld	s1,8(sp)
+    802032ca:	6902                	ld	s2,0(sp)
+    802032cc:	6105                	addi	sp,sp,32
+    802032ce:	8082                	ret
     return -1;
-    802032cc:	557d                	li	a0,-1
-    802032ce:	bfcd                	j	802032c0 <fetchaddr+0x3c>
     802032d0:	557d                	li	a0,-1
-    802032d2:	b7fd                	j	802032c0 <fetchaddr+0x3c>
+    802032d2:	bfcd                	j	802032c4 <fetchaddr+0x3c>
+    802032d4:	557d                	li	a0,-1
+    802032d6:	b7fd                	j	802032c4 <fetchaddr+0x3c>
 
-00000000802032d4 <fetchstr>:
+00000000802032d8 <fetchstr>:
 {
-    802032d4:	1101                	addi	sp,sp,-32
-    802032d6:	ec06                	sd	ra,24(sp)
-    802032d8:	e822                	sd	s0,16(sp)
-    802032da:	e426                	sd	s1,8(sp)
-    802032dc:	1000                	addi	s0,sp,32
-    802032de:	84ae                	mv	s1,a1
+    802032d8:	1101                	addi	sp,sp,-32
+    802032da:	ec06                	sd	ra,24(sp)
+    802032dc:	e822                	sd	s0,16(sp)
+    802032de:	e426                	sd	s1,8(sp)
+    802032e0:	1000                	addi	s0,sp,32
+    802032e2:	84ae                	mv	s1,a1
   int err = copyinstr2(buf, addr, max);
-    802032e0:	85aa                	mv	a1,a0
-    802032e2:	8526                	mv	a0,s1
-    802032e4:	ffffe097          	auipc	ra,0xffffe
-    802032e8:	270080e7          	jalr	624(ra) # 80201554 <copyinstr2>
+    802032e4:	85aa                	mv	a1,a0
+    802032e6:	8526                	mv	a0,s1
+    802032e8:	ffffe097          	auipc	ra,0xffffe
+    802032ec:	26c080e7          	jalr	620(ra) # 80201554 <copyinstr2>
   if(err < 0)
-    802032ec:	00054763          	bltz	a0,802032fa <fetchstr+0x26>
+    802032f0:	00054763          	bltz	a0,802032fe <fetchstr+0x26>
   return strlen(buf);
-    802032f0:	8526                	mv	a0,s1
-    802032f2:	ffffd097          	auipc	ra,0xffffd
-    802032f6:	5f4080e7          	jalr	1524(ra) # 802008e6 <strlen>
+    802032f4:	8526                	mv	a0,s1
+    802032f6:	ffffd097          	auipc	ra,0xffffd
+    802032fa:	5f0080e7          	jalr	1520(ra) # 802008e6 <strlen>
 }
-    802032fa:	60e2                	ld	ra,24(sp)
-    802032fc:	6442                	ld	s0,16(sp)
-    802032fe:	64a2                	ld	s1,8(sp)
-    80203300:	6105                	addi	sp,sp,32
-    80203302:	8082                	ret
+    802032fe:	60e2                	ld	ra,24(sp)
+    80203300:	6442                	ld	s0,16(sp)
+    80203302:	64a2                	ld	s1,8(sp)
+    80203304:	6105                	addi	sp,sp,32
+    80203306:	8082                	ret
 
-0000000080203304 <argint>:
+0000000080203308 <argint>:
 {
-    80203304:	1101                	addi	sp,sp,-32
-    80203306:	ec06                	sd	ra,24(sp)
-    80203308:	e822                	sd	s0,16(sp)
-    8020330a:	e426                	sd	s1,8(sp)
-    8020330c:	1000                	addi	s0,sp,32
-    8020330e:	84ae                	mv	s1,a1
+    80203308:	1101                	addi	sp,sp,-32
+    8020330a:	ec06                	sd	ra,24(sp)
+    8020330c:	e822                	sd	s0,16(sp)
+    8020330e:	e426                	sd	s1,8(sp)
+    80203310:	1000                	addi	s0,sp,32
+    80203312:	84ae                	mv	s1,a1
   *ip = argraw(n);
-    80203310:	00000097          	auipc	ra,0x0
-    80203314:	de0080e7          	jalr	-544(ra) # 802030f0 <argraw>
-    80203318:	c088                	sw	a0,0(s1)
+    80203314:	00000097          	auipc	ra,0x0
+    80203318:	de0080e7          	jalr	-544(ra) # 802030f4 <argraw>
+    8020331c:	c088                	sw	a0,0(s1)
 }
-    8020331a:	4501                	li	a0,0
-    8020331c:	60e2                	ld	ra,24(sp)
-    8020331e:	6442                	ld	s0,16(sp)
-    80203320:	64a2                	ld	s1,8(sp)
-    80203322:	6105                	addi	sp,sp,32
-    80203324:	8082                	ret
-
-0000000080203326 <sys_test_proc>:
+    8020331e:	4501                	li	a0,0
+    80203320:	60e2                	ld	ra,24(sp)
+    80203322:	6442                	ld	s0,16(sp)
+    80203324:	64a2                	ld	s1,8(sp)
+    80203326:	6105                	addi	sp,sp,32
+    80203328:	8082                	ret
+
+000000008020332a <sys_test_proc>:
 sys_test_proc(void) {
-    80203326:	1101                	addi	sp,sp,-32
-    80203328:	ec06                	sd	ra,24(sp)
-    8020332a:	e822                	sd	s0,16(sp)
-    8020332c:	1000                	addi	s0,sp,32
+    8020332a:	1101                	addi	sp,sp,-32
+    8020332c:	ec06                	sd	ra,24(sp)
+    8020332e:	e822                	sd	s0,16(sp)
+    80203330:	1000                	addi	s0,sp,32
     argint(0, &n);
-    8020332e:	fec40593          	addi	a1,s0,-20
-    80203332:	4501                	li	a0,0
-    80203334:	00000097          	auipc	ra,0x0
-    80203338:	fd0080e7          	jalr	-48(ra) # 80203304 <argint>
+    80203332:	fec40593          	addi	a1,s0,-20
+    80203336:	4501                	li	a0,0
+    80203338:	00000097          	auipc	ra,0x0
+    8020333c:	fd0080e7          	jalr	-48(ra) # 80203308 <argint>
     printf("hello world from proc %d, hart %d, arg %d\n", myproc()->pid, r_tp(), n);
-    8020333c:	ffffe097          	auipc	ra,0xffffe
-    80203340:	700080e7          	jalr	1792(ra) # 80201a3c <myproc>
-    80203344:	8612                	mv	a2,tp
-    80203346:	fec42683          	lw	a3,-20(s0)
-    8020334a:	5d0c                	lw	a1,56(a0)
-    8020334c:	00007517          	auipc	a0,0x7
-    80203350:	62c50513          	addi	a0,a0,1580 # 8020a978 <digits+0x5f8>
-    80203354:	ffffd097          	auipc	ra,0xffffd
-    80203358:	e3a080e7          	jalr	-454(ra) # 8020018e <printf>
+    80203340:	ffffe097          	auipc	ra,0xffffe
+    80203344:	6fc080e7          	jalr	1788(ra) # 80201a3c <myproc>
+    80203348:	8612                	mv	a2,tp
+    8020334a:	fec42683          	lw	a3,-20(s0)
+    8020334e:	5d0c                	lw	a1,56(a0)
+    80203350:	00007517          	auipc	a0,0x7
+    80203354:	62850513          	addi	a0,a0,1576 # 8020a978 <digits+0x5f8>
+    80203358:	ffffd097          	auipc	ra,0xffffd
+    8020335c:	e36080e7          	jalr	-458(ra) # 8020018e <printf>
 }
-    8020335c:	4501                	li	a0,0
-    8020335e:	60e2                	ld	ra,24(sp)
-    80203360:	6442                	ld	s0,16(sp)
-    80203362:	6105                	addi	sp,sp,32
-    80203364:	8082                	ret
+    80203360:	4501                	li	a0,0
+    80203362:	60e2                	ld	ra,24(sp)
+    80203364:	6442                	ld	s0,16(sp)
+    80203366:	6105                	addi	sp,sp,32
+    80203368:	8082                	ret
 
-0000000080203366 <argaddr>:
+000000008020336a <argaddr>:
 {
-    80203366:	1101                	addi	sp,sp,-32
-    80203368:	ec06                	sd	ra,24(sp)
-    8020336a:	e822                	sd	s0,16(sp)
-    8020336c:	e426                	sd	s1,8(sp)
-    8020336e:	1000                	addi	s0,sp,32
-    80203370:	84ae                	mv	s1,a1
+    8020336a:	1101                	addi	sp,sp,-32
+    8020336c:	ec06                	sd	ra,24(sp)
+    8020336e:	e822                	sd	s0,16(sp)
+    80203370:	e426                	sd	s1,8(sp)
+    80203372:	1000                	addi	s0,sp,32
+    80203374:	84ae                	mv	s1,a1
   *ip = argraw(n);
-    80203372:	00000097          	auipc	ra,0x0
-    80203376:	d7e080e7          	jalr	-642(ra) # 802030f0 <argraw>
-    8020337a:	e088                	sd	a0,0(s1)
+    80203376:	00000097          	auipc	ra,0x0
+    8020337a:	d7e080e7          	jalr	-642(ra) # 802030f4 <argraw>
+    8020337e:	e088                	sd	a0,0(s1)
 }
-    8020337c:	4501                	li	a0,0
-    8020337e:	60e2                	ld	ra,24(sp)
-    80203380:	6442                	ld	s0,16(sp)
-    80203382:	64a2                	ld	s1,8(sp)
-    80203384:	6105                	addi	sp,sp,32
-    80203386:	8082                	ret
-
-0000000080203388 <argstr>:
+    80203380:	4501                	li	a0,0
+    80203382:	60e2                	ld	ra,24(sp)
+    80203384:	6442                	ld	s0,16(sp)
+    80203386:	64a2                	ld	s1,8(sp)
+    80203388:	6105                	addi	sp,sp,32
+    8020338a:	8082                	ret
+
+000000008020338c <argstr>:
 {
-    80203388:	1101                	addi	sp,sp,-32
-    8020338a:	ec06                	sd	ra,24(sp)
-    8020338c:	e822                	sd	s0,16(sp)
-    8020338e:	e426                	sd	s1,8(sp)
-    80203390:	e04a                	sd	s2,0(sp)
-    80203392:	1000                	addi	s0,sp,32
-    80203394:	84ae                	mv	s1,a1
-    80203396:	8932                	mv	s2,a2
+    8020338c:	1101                	addi	sp,sp,-32
+    8020338e:	ec06                	sd	ra,24(sp)
+    80203390:	e822                	sd	s0,16(sp)
+    80203392:	e426                	sd	s1,8(sp)
+    80203394:	e04a                	sd	s2,0(sp)
+    80203396:	1000                	addi	s0,sp,32
+    80203398:	84ae                	mv	s1,a1
+    8020339a:	8932                	mv	s2,a2
   *ip = argraw(n);
-    80203398:	00000097          	auipc	ra,0x0
-    8020339c:	d58080e7          	jalr	-680(ra) # 802030f0 <argraw>
+    8020339c:	00000097          	auipc	ra,0x0
+    802033a0:	d58080e7          	jalr	-680(ra) # 802030f4 <argraw>
   return fetchstr(addr, buf, max);
-    802033a0:	864a                	mv	a2,s2
-    802033a2:	85a6                	mv	a1,s1
-    802033a4:	00000097          	auipc	ra,0x0
-    802033a8:	f30080e7          	jalr	-208(ra) # 802032d4 <fetchstr>
+    802033a4:	864a                	mv	a2,s2
+    802033a6:	85a6                	mv	a1,s1
+    802033a8:	00000097          	auipc	ra,0x0
+    802033ac:	f30080e7          	jalr	-208(ra) # 802032d8 <fetchstr>
 }
-    802033ac:	60e2                	ld	ra,24(sp)
-    802033ae:	6442                	ld	s0,16(sp)
-    802033b0:	64a2                	ld	s1,8(sp)
-    802033b2:	6902                	ld	s2,0(sp)
-    802033b4:	6105                	addi	sp,sp,32
-    802033b6:	8082                	ret
-
-00000000802033b8 <syscall>:
+    802033b0:	60e2                	ld	ra,24(sp)
+    802033b2:	6442                	ld	s0,16(sp)
+    802033b4:	64a2                	ld	s1,8(sp)
+    802033b6:	6902                	ld	s2,0(sp)
+    802033b8:	6105                	addi	sp,sp,32
+    802033ba:	8082                	ret
+
+00000000802033bc <syscall>:
 {
-    802033b8:	7179                	addi	sp,sp,-48
-    802033ba:	f406                	sd	ra,40(sp)
-    802033bc:	f022                	sd	s0,32(sp)
-    802033be:	ec26                	sd	s1,24(sp)
-    802033c0:	e84a                	sd	s2,16(sp)
-    802033c2:	e44e                	sd	s3,8(sp)
-    802033c4:	1800                	addi	s0,sp,48
+    802033bc:	7179                	addi	sp,sp,-48
+    802033be:	f406                	sd	ra,40(sp)
+    802033c0:	f022                	sd	s0,32(sp)
+    802033c2:	ec26                	sd	s1,24(sp)
+    802033c4:	e84a                	sd	s2,16(sp)
+    802033c6:	e44e                	sd	s3,8(sp)
+    802033c8:	1800                	addi	s0,sp,48
   struct proc *p = myproc();
-    802033c6:	ffffe097          	auipc	ra,0xffffe
-    802033ca:	676080e7          	jalr	1654(ra) # 80201a3c <myproc>
-    802033ce:	84aa                	mv	s1,a0
+    802033ca:	ffffe097          	auipc	ra,0xffffe
+    802033ce:	672080e7          	jalr	1650(ra) # 80201a3c <myproc>
+    802033d2:	84aa                	mv	s1,a0
   num = p->trapframe->a7;
-    802033d0:	06053983          	ld	s3,96(a0)
-    802033d4:	0a89b783          	ld	a5,168(s3)
-    802033d8:	0007891b          	sext.w	s2,a5
+    802033d4:	06053983          	ld	s3,96(a0)
+    802033d8:	0a89b783          	ld	a5,168(s3)
+    802033dc:	0007891b          	sext.w	s2,a5
   if(num > 0 && num < NELEM(syscalls) && syscalls[num]) {
-    802033dc:	37fd                	addiw	a5,a5,-1
-    802033de:	12e00713          	li	a4,302
-    802033e2:	06f76163          	bltu	a4,a5,80203444 <syscall+0x8c>
-    802033e6:	00391713          	slli	a4,s2,0x3
-    802033ea:	00009797          	auipc	a5,0x9
-    802033ee:	91678793          	addi	a5,a5,-1770 # 8020bd00 <syscalls>
-    802033f2:	97ba                	add	a5,a5,a4
-    802033f4:	639c                	ld	a5,0(a5)
-    802033f6:	c7b9                	beqz	a5,80203444 <syscall+0x8c>
+    802033e0:	37fd                	addiw	a5,a5,-1
+    802033e2:	12e00713          	li	a4,302
+    802033e6:	06f76163          	bltu	a4,a5,80203448 <syscall+0x8c>
+    802033ea:	00391713          	slli	a4,s2,0x3
+    802033ee:	00009797          	auipc	a5,0x9
+    802033f2:	91278793          	addi	a5,a5,-1774 # 8020bd00 <syscalls>
+    802033f6:	97ba                	add	a5,a5,a4
+    802033f8:	639c                	ld	a5,0(a5)
+    802033fa:	c7b9                	beqz	a5,80203448 <syscall+0x8c>
     p->trapframe->a0 = syscalls[num]();
-    802033f8:	9782                	jalr	a5
-    802033fa:	06a9b823          	sd	a0,112(s3)
+    802033fc:	9782                	jalr	a5
+    802033fe:	06a9b823          	sd	a0,112(s3)
     syscall_counts[num]++;
-    802033fe:	00291713          	slli	a4,s2,0x2
-    80203402:	0002a797          	auipc	a5,0x2a
-    80203406:	98e78793          	addi	a5,a5,-1650 # 8022cd90 <syscall_counts>
-    8020340a:	97ba                	add	a5,a5,a4
-    8020340c:	4398                	lw	a4,0(a5)
-    8020340e:	2705                	addiw	a4,a4,1
-    80203410:	c398                	sw	a4,0(a5)
+    80203402:	00291713          	slli	a4,s2,0x2
+    80203406:	0002a797          	auipc	a5,0x2a
+    8020340a:	98a78793          	addi	a5,a5,-1654 # 8022cd90 <syscall_counts>
+    8020340e:	97ba                	add	a5,a5,a4
+    80203410:	4398                	lw	a4,0(a5)
+    80203412:	2705                	addiw	a4,a4,1
+    80203414:	c398                	sw	a4,0(a5)
     if ((p->tmask & (1 << num)) != 0) {
-    80203412:	4184a783          	lw	a5,1048(s1)
-    80203416:	4127d7bb          	sraw	a5,a5,s2
-    8020341a:	8b85                	andi	a5,a5,1
-    8020341c:	c3b9                	beqz	a5,80203462 <syscall+0xaa>
+    80203416:	4184a783          	lw	a5,1048(s1)
+    8020341a:	4127d7bb          	sraw	a5,a5,s2
+    8020341e:	8b85                	andi	a5,a5,1
+    80203420:	c3b9                	beqz	a5,80203466 <syscall+0xaa>
       printf("pid %d: %s -> %d\n", p->pid, sysnames[num], p->trapframe->a0);
-    8020341e:	70b8                	ld	a4,96(s1)
-    80203420:	090e                	slli	s2,s2,0x3
-    80203422:	00009797          	auipc	a5,0x9
-    80203426:	25e78793          	addi	a5,a5,606 # 8020c680 <sysnames>
-    8020342a:	97ca                	add	a5,a5,s2
-    8020342c:	7b34                	ld	a3,112(a4)
-    8020342e:	6390                	ld	a2,0(a5)
-    80203430:	5c8c                	lw	a1,56(s1)
-    80203432:	00007517          	auipc	a0,0x7
-    80203436:	57650513          	addi	a0,a0,1398 # 8020a9a8 <digits+0x628>
-    8020343a:	ffffd097          	auipc	ra,0xffffd
-    8020343e:	d54080e7          	jalr	-684(ra) # 8020018e <printf>
-    80203442:	a005                	j	80203462 <syscall+0xaa>
+    80203422:	70b8                	ld	a4,96(s1)
+    80203424:	090e                	slli	s2,s2,0x3
+    80203426:	00009797          	auipc	a5,0x9
+    8020342a:	25a78793          	addi	a5,a5,602 # 8020c680 <sysnames>
+    8020342e:	97ca                	add	a5,a5,s2
+    80203430:	7b34                	ld	a3,112(a4)
+    80203432:	6390                	ld	a2,0(a5)
+    80203434:	5c8c                	lw	a1,56(s1)
+    80203436:	00007517          	auipc	a0,0x7
+    8020343a:	57250513          	addi	a0,a0,1394 # 8020a9a8 <digits+0x628>
+    8020343e:	ffffd097          	auipc	ra,0xffffd
+    80203442:	d50080e7          	jalr	-688(ra) # 8020018e <printf>
+    80203446:	a005                	j	80203466 <syscall+0xaa>
     printf("pid %d %s: unknown sys call %d\n",
-    80203444:	86ca                	mv	a3,s2
-    80203446:	40848613          	addi	a2,s1,1032
-    8020344a:	5c8c                	lw	a1,56(s1)
-    8020344c:	00007517          	auipc	a0,0x7
-    80203450:	57450513          	addi	a0,a0,1396 # 8020a9c0 <digits+0x640>
-    80203454:	ffffd097          	auipc	ra,0xffffd
-    80203458:	d3a080e7          	jalr	-710(ra) # 8020018e <printf>
+    80203448:	86ca                	mv	a3,s2
+    8020344a:	40848613          	addi	a2,s1,1032
+    8020344e:	5c8c                	lw	a1,56(s1)
+    80203450:	00007517          	auipc	a0,0x7
+    80203454:	57050513          	addi	a0,a0,1392 # 8020a9c0 <digits+0x640>
+    80203458:	ffffd097          	auipc	ra,0xffffd
+    8020345c:	d36080e7          	jalr	-714(ra) # 8020018e <printf>
     p->trapframe->a0 = -1;
-    8020345c:	70bc                	ld	a5,96(s1)
-    8020345e:	577d                	li	a4,-1
-    80203460:	fbb8                	sd	a4,112(a5)
+    80203460:	70bc                	ld	a5,96(s1)
+    80203462:	577d                	li	a4,-1
+    80203464:	fbb8                	sd	a4,112(a5)
 }
-    80203462:	70a2                	ld	ra,40(sp)
-    80203464:	7402                	ld	s0,32(sp)
-    80203466:	64e2                	ld	s1,24(sp)
-    80203468:	6942                	ld	s2,16(sp)
-    8020346a:	69a2                	ld	s3,8(sp)
-    8020346c:	6145                	addi	sp,sp,48
-    8020346e:	8082                	ret
-
-0000000080203470 <sys_exec>:
+    80203466:	70a2                	ld	ra,40(sp)
+    80203468:	7402                	ld	s0,32(sp)
+    8020346a:	64e2                	ld	s1,24(sp)
+    8020346c:	6942                	ld	s2,16(sp)
+    8020346e:	69a2                	ld	s3,8(sp)
+    80203470:	6145                	addi	sp,sp,48
+    80203472:	8082                	ret
+
+0000000080203474 <sys_exec>:
   uint64 tv_nsec;
 };
 
 uint64
 sys_exec(void)
 {
-    80203470:	d9010113          	addi	sp,sp,-624
-    80203474:	26113423          	sd	ra,616(sp)
-    80203478:	26813023          	sd	s0,608(sp)
-    8020347c:	24913c23          	sd	s1,600(sp)
-    80203480:	25213823          	sd	s2,592(sp)
-    80203484:	25313423          	sd	s3,584(sp)
-    80203488:	25413023          	sd	s4,576(sp)
-    8020348c:	23513c23          	sd	s5,568(sp)
-    80203490:	23613823          	sd	s6,560(sp)
-    80203494:	23713423          	sd	s7,552(sp)
-    80203498:	1c80                	addi	s0,sp,624
+    80203474:	d9010113          	addi	sp,sp,-624
+    80203478:	26113423          	sd	ra,616(sp)
+    8020347c:	26813023          	sd	s0,608(sp)
+    80203480:	24913c23          	sd	s1,600(sp)
+    80203484:	25213823          	sd	s2,592(sp)
+    80203488:	25313423          	sd	s3,584(sp)
+    8020348c:	25413023          	sd	s4,576(sp)
+    80203490:	23513c23          	sd	s5,568(sp)
+    80203494:	23613823          	sd	s6,560(sp)
+    80203498:	23713423          	sd	s7,552(sp)
+    8020349c:	1c80                	addi	s0,sp,624
   char path[FAT32_MAX_PATH], *argv[MAXARG];
   int i;
   uint64 uargv, uarg;
 
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || argaddr(1, &uargv) < 0){
-    8020349a:	10400613          	li	a2,260
-    8020349e:	ea840593          	addi	a1,s0,-344
-    802034a2:	4501                	li	a0,0
-    802034a4:	00000097          	auipc	ra,0x0
-    802034a8:	ee4080e7          	jalr	-284(ra) # 80203388 <argstr>
+    8020349e:	10400613          	li	a2,260
+    802034a2:	ea840593          	addi	a1,s0,-344
+    802034a6:	4501                	li	a0,0
+    802034a8:	00000097          	auipc	ra,0x0
+    802034ac:	ee4080e7          	jalr	-284(ra) # 8020338c <argstr>
     return -1;
-    802034ac:	597d                	li	s2,-1
+    802034b0:	597d                	li	s2,-1
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || argaddr(1, &uargv) < 0){
-    802034ae:	0c054c63          	bltz	a0,80203586 <sys_exec+0x116>
-    802034b2:	da040593          	addi	a1,s0,-608
-    802034b6:	4505                	li	a0,1
-    802034b8:	00000097          	auipc	ra,0x0
-    802034bc:	eae080e7          	jalr	-338(ra) # 80203366 <argaddr>
-    802034c0:	0c054363          	bltz	a0,80203586 <sys_exec+0x116>
+    802034b2:	0c054c63          	bltz	a0,8020358a <sys_exec+0x116>
+    802034b6:	da040593          	addi	a1,s0,-608
+    802034ba:	4505                	li	a0,1
+    802034bc:	00000097          	auipc	ra,0x0
+    802034c0:	eae080e7          	jalr	-338(ra) # 8020336a <argaddr>
+    802034c4:	0c054363          	bltz	a0,8020358a <sys_exec+0x116>
   }
   memset(argv, 0, sizeof(argv));
-    802034c4:	da840a13          	addi	s4,s0,-600
-    802034c8:	10000613          	li	a2,256
-    802034cc:	4581                	li	a1,0
-    802034ce:	8552                	mv	a0,s4
-    802034d0:	ffffd097          	auipc	ra,0xffffd
-    802034d4:	292080e7          	jalr	658(ra) # 80200762 <memset>
+    802034c8:	da840a13          	addi	s4,s0,-600
+    802034cc:	10000613          	li	a2,256
+    802034d0:	4581                	li	a1,0
+    802034d2:	8552                	mv	a0,s4
+    802034d4:	ffffd097          	auipc	ra,0xffffd
+    802034d8:	28e080e7          	jalr	654(ra) # 80200762 <memset>
   for(i=0;; i++){
     if(i >= NELEM(argv)){
-    802034d8:	84d2                	mv	s1,s4
+    802034dc:	84d2                	mv	s1,s4
   memset(argv, 0, sizeof(argv));
-    802034da:	89d2                	mv	s3,s4
-    802034dc:	4901                	li	s2,0
+    802034de:	89d2                	mv	s3,s4
+    802034e0:	4901                	li	s2,0
       goto bad;
     }
     if(fetchaddr(uargv+sizeof(uint64)*i, (uint64*)&uarg) < 0){
-    802034de:	d9840a93          	addi	s5,s0,-616
+    802034e2:	d9840a93          	addi	s5,s0,-616
     if(i >= NELEM(argv)){
-    802034e2:	02000b13          	li	s6,32
-    802034e6:	00090b9b          	sext.w	s7,s2
+    802034e6:	02000b13          	li	s6,32
+    802034ea:	00090b9b          	sext.w	s7,s2
     if(fetchaddr(uargv+sizeof(uint64)*i, (uint64*)&uarg) < 0){
-    802034ea:	00391513          	slli	a0,s2,0x3
-    802034ee:	85d6                	mv	a1,s5
-    802034f0:	da043783          	ld	a5,-608(s0)
-    802034f4:	953e                	add	a0,a0,a5
-    802034f6:	00000097          	auipc	ra,0x0
-    802034fa:	d8e080e7          	jalr	-626(ra) # 80203284 <fetchaddr>
-    802034fe:	02054a63          	bltz	a0,80203532 <sys_exec+0xc2>
+    802034ee:	00391513          	slli	a0,s2,0x3
+    802034f2:	85d6                	mv	a1,s5
+    802034f4:	da043783          	ld	a5,-608(s0)
+    802034f8:	953e                	add	a0,a0,a5
+    802034fa:	00000097          	auipc	ra,0x0
+    802034fe:	d8e080e7          	jalr	-626(ra) # 80203288 <fetchaddr>
+    80203502:	02054a63          	bltz	a0,80203536 <sys_exec+0xc2>
       goto bad;
     }
     if(uarg == 0){
-    80203502:	d9843783          	ld	a5,-616(s0)
-    80203506:	c3b9                	beqz	a5,8020354c <sys_exec+0xdc>
+    80203506:	d9843783          	ld	a5,-616(s0)
+    8020350a:	c3b9                	beqz	a5,80203550 <sys_exec+0xdc>
       argv[i] = 0;
       break;
     }
     argv[i] = kalloc();
-    80203508:	ffffd097          	auipc	ra,0xffffd
-    8020350c:	052080e7          	jalr	82(ra) # 8020055a <kalloc>
-    80203510:	85aa                	mv	a1,a0
-    80203512:	00a9b023          	sd	a0,0(s3)
+    8020350c:	ffffd097          	auipc	ra,0xffffd
+    80203510:	04e080e7          	jalr	78(ra) # 8020055a <kalloc>
+    80203514:	85aa                	mv	a1,a0
+    80203516:	00a9b023          	sd	a0,0(s3)
     if(argv[i] == 0)
-    80203516:	cd11                	beqz	a0,80203532 <sys_exec+0xc2>
+    8020351a:	cd11                	beqz	a0,80203536 <sys_exec+0xc2>
       goto bad;
     if(fetchstr(uarg, argv[i], PGSIZE) < 0)
-    80203518:	6605                	lui	a2,0x1
-    8020351a:	d9843503          	ld	a0,-616(s0)
-    8020351e:	00000097          	auipc	ra,0x0
-    80203522:	db6080e7          	jalr	-586(ra) # 802032d4 <fetchstr>
-    80203526:	00054663          	bltz	a0,80203532 <sys_exec+0xc2>
+    8020351c:	6605                	lui	a2,0x1
+    8020351e:	d9843503          	ld	a0,-616(s0)
+    80203522:	00000097          	auipc	ra,0x0
+    80203526:	db6080e7          	jalr	-586(ra) # 802032d8 <fetchstr>
+    8020352a:	00054663          	bltz	a0,80203536 <sys_exec+0xc2>
     if(i >= NELEM(argv)){
-    8020352a:	0905                	addi	s2,s2,1
-    8020352c:	09a1                	addi	s3,s3,8
-    8020352e:	fb691ce3          	bne	s2,s6,802034e6 <sys_exec+0x76>
+    8020352e:	0905                	addi	s2,s2,1
+    80203530:	09a1                	addi	s3,s3,8
+    80203532:	fb691ce3          	bne	s2,s6,802034ea <sys_exec+0x76>
     kfree(argv[i]);
 
   return ret;
 
  bad:
   for(i = 0; i < NELEM(argv) && argv[i] != 0; i++)
-    80203532:	100a0a13          	addi	s4,s4,256
-    80203536:	6088                	ld	a0,0(s1)
-    80203538:	c531                	beqz	a0,80203584 <sys_exec+0x114>
+    80203536:	100a0a13          	addi	s4,s4,256
+    8020353a:	6088                	ld	a0,0(s1)
+    8020353c:	c531                	beqz	a0,80203588 <sys_exec+0x114>
     kfree(argv[i]);
-    8020353a:	ffffd097          	auipc	ra,0xffffd
-    8020353e:	f06080e7          	jalr	-250(ra) # 80200440 <kfree>
+    8020353e:	ffffd097          	auipc	ra,0xffffd
+    80203542:	f02080e7          	jalr	-254(ra) # 80200440 <kfree>
   for(i = 0; i < NELEM(argv) && argv[i] != 0; i++)
-    80203542:	04a1                	addi	s1,s1,8
-    80203544:	ff4499e3          	bne	s1,s4,80203536 <sys_exec+0xc6>
+    80203546:	04a1                	addi	s1,s1,8
+    80203548:	ff4499e3          	bne	s1,s4,8020353a <sys_exec+0xc6>
   return -1;
-    80203548:	597d                	li	s2,-1
-    8020354a:	a835                	j	80203586 <sys_exec+0x116>
+    8020354c:	597d                	li	s2,-1
+    8020354e:	a835                	j	8020358a <sys_exec+0x116>
       argv[i] = 0;
-    8020354c:	0b8e                	slli	s7,s7,0x3
-    8020354e:	fb0b8793          	addi	a5,s7,-80
-    80203552:	00878bb3          	add	s7,a5,s0
-    80203556:	de0bbc23          	sd	zero,-520(s7)
+    80203550:	0b8e                	slli	s7,s7,0x3
+    80203552:	fb0b8793          	addi	a5,s7,-80
+    80203556:	00878bb3          	add	s7,a5,s0
+    8020355a:	de0bbc23          	sd	zero,-520(s7)
   int ret = exec(path, argv);
-    8020355a:	da840593          	addi	a1,s0,-600
-    8020355e:	ea840513          	addi	a0,s0,-344
-    80203562:	00001097          	auipc	ra,0x1
-    80203566:	214080e7          	jalr	532(ra) # 80204776 <exec>
-    8020356a:	892a                	mv	s2,a0
+    8020355e:	da840593          	addi	a1,s0,-600
+    80203562:	ea840513          	addi	a0,s0,-344
+    80203566:	00001097          	auipc	ra,0x1
+    8020356a:	214080e7          	jalr	532(ra) # 8020477a <exec>
+    8020356e:	892a                	mv	s2,a0
   for(i = 0; i < NELEM(argv) && argv[i] != 0; i++)
-    8020356c:	100a0a13          	addi	s4,s4,256
-    80203570:	6088                	ld	a0,0(s1)
-    80203572:	c911                	beqz	a0,80203586 <sys_exec+0x116>
+    80203570:	100a0a13          	addi	s4,s4,256
+    80203574:	6088                	ld	a0,0(s1)
+    80203576:	c911                	beqz	a0,8020358a <sys_exec+0x116>
     kfree(argv[i]);
-    80203574:	ffffd097          	auipc	ra,0xffffd
-    80203578:	ecc080e7          	jalr	-308(ra) # 80200440 <kfree>
+    80203578:	ffffd097          	auipc	ra,0xffffd
+    8020357c:	ec8080e7          	jalr	-312(ra) # 80200440 <kfree>
   for(i = 0; i < NELEM(argv) && argv[i] != 0; i++)
-    8020357c:	04a1                	addi	s1,s1,8
-    8020357e:	ff4499e3          	bne	s1,s4,80203570 <sys_exec+0x100>
-    80203582:	a011                	j	80203586 <sys_exec+0x116>
+    80203580:	04a1                	addi	s1,s1,8
+    80203582:	ff4499e3          	bne	s1,s4,80203574 <sys_exec+0x100>
+    80203586:	a011                	j	8020358a <sys_exec+0x116>
   return -1;
-    80203584:	597d                	li	s2,-1
+    80203588:	597d                	li	s2,-1
 }
-    80203586:	854a                	mv	a0,s2
-    80203588:	26813083          	ld	ra,616(sp)
-    8020358c:	26013403          	ld	s0,608(sp)
-    80203590:	25813483          	ld	s1,600(sp)
-    80203594:	25013903          	ld	s2,592(sp)
-    80203598:	24813983          	ld	s3,584(sp)
-    8020359c:	24013a03          	ld	s4,576(sp)
-    802035a0:	23813a83          	ld	s5,568(sp)
-    802035a4:	23013b03          	ld	s6,560(sp)
-    802035a8:	22813b83          	ld	s7,552(sp)
-    802035ac:	27010113          	addi	sp,sp,624
-    802035b0:	8082                	ret
-
-00000000802035b2 <sys_exit>:
+    8020358a:	854a                	mv	a0,s2
+    8020358c:	26813083          	ld	ra,616(sp)
+    80203590:	26013403          	ld	s0,608(sp)
+    80203594:	25813483          	ld	s1,600(sp)
+    80203598:	25013903          	ld	s2,592(sp)
+    8020359c:	24813983          	ld	s3,584(sp)
+    802035a0:	24013a03          	ld	s4,576(sp)
+    802035a4:	23813a83          	ld	s5,568(sp)
+    802035a8:	23013b03          	ld	s6,560(sp)
+    802035ac:	22813b83          	ld	s7,552(sp)
+    802035b0:	27010113          	addi	sp,sp,624
+    802035b4:	8082                	ret
+
+00000000802035b6 <sys_exit>:
 
 uint64
 sys_exit(void)
 {
-    802035b2:	1101                	addi	sp,sp,-32
-    802035b4:	ec06                	sd	ra,24(sp)
-    802035b6:	e822                	sd	s0,16(sp)
-    802035b8:	1000                	addi	s0,sp,32
+    802035b6:	1101                	addi	sp,sp,-32
+    802035b8:	ec06                	sd	ra,24(sp)
+    802035ba:	e822                	sd	s0,16(sp)
+    802035bc:	1000                	addi	s0,sp,32
   int n;
   if(argint(0, &n) < 0)
-    802035ba:	fec40593          	addi	a1,s0,-20
-    802035be:	4501                	li	a0,0
-    802035c0:	00000097          	auipc	ra,0x0
-    802035c4:	d44080e7          	jalr	-700(ra) # 80203304 <argint>
+    802035be:	fec40593          	addi	a1,s0,-20
+    802035c2:	4501                	li	a0,0
+    802035c4:	00000097          	auipc	ra,0x0
+    802035c8:	d44080e7          	jalr	-700(ra) # 80203308 <argint>
     return -1;
-    802035c8:	57fd                	li	a5,-1
+    802035cc:	57fd                	li	a5,-1
   if(argint(0, &n) < 0)
-    802035ca:	00054963          	bltz	a0,802035dc <sys_exit+0x2a>
+    802035ce:	00054963          	bltz	a0,802035e0 <sys_exit+0x2a>
   exit(n);
-    802035ce:	fec42503          	lw	a0,-20(s0)
-    802035d2:	fffff097          	auipc	ra,0xfffff
-    802035d6:	d0a080e7          	jalr	-758(ra) # 802022dc <exit>
+    802035d2:	fec42503          	lw	a0,-20(s0)
+    802035d6:	fffff097          	auipc	ra,0xfffff
+    802035da:	d00080e7          	jalr	-768(ra) # 802022d6 <exit>
   return 0;  // not reached
-    802035da:	4781                	li	a5,0
+    802035de:	4781                	li	a5,0
 }
-    802035dc:	853e                	mv	a0,a5
-    802035de:	60e2                	ld	ra,24(sp)
-    802035e0:	6442                	ld	s0,16(sp)
-    802035e2:	6105                	addi	sp,sp,32
-    802035e4:	8082                	ret
+    802035e0:	853e                	mv	a0,a5
+    802035e2:	60e2                	ld	ra,24(sp)
+    802035e4:	6442                	ld	s0,16(sp)
+    802035e6:	6105                	addi	sp,sp,32
+    802035e8:	8082                	ret
 
-00000000802035e6 <sys_getpid>:
+00000000802035ea <sys_getpid>:
 
 uint64
 sys_getpid(void)
 {
-    802035e6:	1141                	addi	sp,sp,-16
-    802035e8:	e406                	sd	ra,8(sp)
-    802035ea:	e022                	sd	s0,0(sp)
-    802035ec:	0800                	addi	s0,sp,16
+    802035ea:	1141                	addi	sp,sp,-16
+    802035ec:	e406                	sd	ra,8(sp)
+    802035ee:	e022                	sd	s0,0(sp)
+    802035f0:	0800                	addi	s0,sp,16
   return myproc()->pid;
-    802035ee:	ffffe097          	auipc	ra,0xffffe
-    802035f2:	44e080e7          	jalr	1102(ra) # 80201a3c <myproc>
+    802035f2:	ffffe097          	auipc	ra,0xffffe
+    802035f6:	44a080e7          	jalr	1098(ra) # 80201a3c <myproc>
 }
-    802035f6:	5d08                	lw	a0,56(a0)
-    802035f8:	60a2                	ld	ra,8(sp)
-    802035fa:	6402                	ld	s0,0(sp)
-    802035fc:	0141                	addi	sp,sp,16
-    802035fe:	8082                	ret
+    802035fa:	5d08                	lw	a0,56(a0)
+    802035fc:	60a2                	ld	ra,8(sp)
+    802035fe:	6402                	ld	s0,0(sp)
+    80203600:	0141                	addi	sp,sp,16
+    80203602:	8082                	ret
 
-0000000080203600 <sys_fork>:
+0000000080203604 <sys_fork>:
 
 uint64
 sys_fork(void)
 {
-    80203600:	1141                	addi	sp,sp,-16
-    80203602:	e406                	sd	ra,8(sp)
-    80203604:	e022                	sd	s0,0(sp)
-    80203606:	0800                	addi	s0,sp,16
+    80203604:	1141                	addi	sp,sp,-16
+    80203606:	e406                	sd	ra,8(sp)
+    80203608:	e022                	sd	s0,0(sp)
+    8020360a:	0800                	addi	s0,sp,16
   return fork();
-    80203608:	fffff097          	auipc	ra,0xfffff
-    8020360c:	85c080e7          	jalr	-1956(ra) # 80201e64 <fork>
+    8020360c:	fffff097          	auipc	ra,0xfffff
+    80203610:	852080e7          	jalr	-1966(ra) # 80201e5e <fork>
 }
-    80203610:	60a2                	ld	ra,8(sp)
-    80203612:	6402                	ld	s0,0(sp)
-    80203614:	0141                	addi	sp,sp,16
-    80203616:	8082                	ret
+    80203614:	60a2                	ld	ra,8(sp)
+    80203616:	6402                	ld	s0,0(sp)
+    80203618:	0141                	addi	sp,sp,16
+    8020361a:	8082                	ret
 
-0000000080203618 <sys_clone>:
+000000008020361c <sys_clone>:
 
 uint64
 sys_clone(void)
 {
-    80203618:	7139                	addi	sp,sp,-64
-    8020361a:	fc06                	sd	ra,56(sp)
-    8020361c:	f822                	sd	s0,48(sp)
-    8020361e:	0080                	addi	s0,sp,64
+    8020361c:	7139                	addi	sp,sp,-64
+    8020361e:	fc06                	sd	ra,56(sp)
+    80203620:	f822                	sd	s0,48(sp)
+    80203622:	0080                	addi	s0,sp,64
   int flags;
   void *stack;
   int *ptid;
   uint64 tls;
   int *ctid;
   if(argint(0, &flags) < 0 || argaddr(1, (uint64*)&stack) < 0 || argaddr(2, (uint64*)&ptid) < 0 || argaddr(3, &tls) < 0 || argaddr(4, (uint64*)&ctid) < 0){
-    80203620:	fec40593          	addi	a1,s0,-20
-    80203624:	4501                	li	a0,0
-    80203626:	00000097          	auipc	ra,0x0
-    8020362a:	cde080e7          	jalr	-802(ra) # 80203304 <argint>
+    80203624:	fec40593          	addi	a1,s0,-20
+    80203628:	4501                	li	a0,0
+    8020362a:	00000097          	auipc	ra,0x0
+    8020362e:	cde080e7          	jalr	-802(ra) # 80203308 <argint>
     return -1;
-    8020362e:	57fd                	li	a5,-1
+    80203632:	57fd                	li	a5,-1
   if(argint(0, &flags) < 0 || argaddr(1, (uint64*)&stack) < 0 || argaddr(2, (uint64*)&ptid) < 0 || argaddr(3, &tls) < 0 || argaddr(4, (uint64*)&ctid) < 0){
-    80203630:	06054963          	bltz	a0,802036a2 <sys_clone+0x8a>
-    80203634:	fe040593          	addi	a1,s0,-32
-    80203638:	4505                	li	a0,1
-    8020363a:	00000097          	auipc	ra,0x0
-    8020363e:	d2c080e7          	jalr	-724(ra) # 80203366 <argaddr>
+    80203634:	06054963          	bltz	a0,802036a6 <sys_clone+0x8a>
+    80203638:	fe040593          	addi	a1,s0,-32
+    8020363c:	4505                	li	a0,1
+    8020363e:	00000097          	auipc	ra,0x0
+    80203642:	d2c080e7          	jalr	-724(ra) # 8020336a <argaddr>
     return -1;
-    80203642:	57fd                	li	a5,-1
+    80203646:	57fd                	li	a5,-1
   if(argint(0, &flags) < 0 || argaddr(1, (uint64*)&stack) < 0 || argaddr(2, (uint64*)&ptid) < 0 || argaddr(3, &tls) < 0 || argaddr(4, (uint64*)&ctid) < 0){
-    80203644:	04054f63          	bltz	a0,802036a2 <sys_clone+0x8a>
-    80203648:	fd840593          	addi	a1,s0,-40
-    8020364c:	4509                	li	a0,2
-    8020364e:	00000097          	auipc	ra,0x0
-    80203652:	d18080e7          	jalr	-744(ra) # 80203366 <argaddr>
+    80203648:	04054f63          	bltz	a0,802036a6 <sys_clone+0x8a>
+    8020364c:	fd840593          	addi	a1,s0,-40
+    80203650:	4509                	li	a0,2
+    80203652:	00000097          	auipc	ra,0x0
+    80203656:	d18080e7          	jalr	-744(ra) # 8020336a <argaddr>
     return -1;
-    80203656:	57fd                	li	a5,-1
+    8020365a:	57fd                	li	a5,-1
   if(argint(0, &flags) < 0 || argaddr(1, (uint64*)&stack) < 0 || argaddr(2, (uint64*)&ptid) < 0 || argaddr(3, &tls) < 0 || argaddr(4, (uint64*)&ctid) < 0){
-    80203658:	04054563          	bltz	a0,802036a2 <sys_clone+0x8a>
-    8020365c:	fd040593          	addi	a1,s0,-48
-    80203660:	450d                	li	a0,3
-    80203662:	00000097          	auipc	ra,0x0
-    80203666:	d04080e7          	jalr	-764(ra) # 80203366 <argaddr>
+    8020365c:	04054563          	bltz	a0,802036a6 <sys_clone+0x8a>
+    80203660:	fd040593          	addi	a1,s0,-48
+    80203664:	450d                	li	a0,3
+    80203666:	00000097          	auipc	ra,0x0
+    8020366a:	d04080e7          	jalr	-764(ra) # 8020336a <argaddr>
     return -1;
-    8020366a:	57fd                	li	a5,-1
+    8020366e:	57fd                	li	a5,-1
   if(argint(0, &flags) < 0 || argaddr(1, (uint64*)&stack) < 0 || argaddr(2, (uint64*)&ptid) < 0 || argaddr(3, &tls) < 0 || argaddr(4, (uint64*)&ctid) < 0){
-    8020366c:	02054b63          	bltz	a0,802036a2 <sys_clone+0x8a>
-    80203670:	fc840593          	addi	a1,s0,-56
-    80203674:	4511                	li	a0,4
-    80203676:	00000097          	auipc	ra,0x0
-    8020367a:	cf0080e7          	jalr	-784(ra) # 80203366 <argaddr>
+    80203670:	02054b63          	bltz	a0,802036a6 <sys_clone+0x8a>
+    80203674:	fc840593          	addi	a1,s0,-56
+    80203678:	4511                	li	a0,4
+    8020367a:	00000097          	auipc	ra,0x0
+    8020367e:	cf0080e7          	jalr	-784(ra) # 8020336a <argaddr>
     return -1;
-    8020367e:	57fd                	li	a5,-1
+    80203682:	57fd                	li	a5,-1
   if(argint(0, &flags) < 0 || argaddr(1, (uint64*)&stack) < 0 || argaddr(2, (uint64*)&ptid) < 0 || argaddr(3, &tls) < 0 || argaddr(4, (uint64*)&ctid) < 0){
-    80203680:	02054163          	bltz	a0,802036a2 <sys_clone+0x8a>
+    80203684:	02054163          	bltz	a0,802036a6 <sys_clone+0x8a>
   }
   return clone(flags, stack, ptid, tls, ctid);
-    80203684:	fc843703          	ld	a4,-56(s0)
-    80203688:	fd043683          	ld	a3,-48(s0)
-    8020368c:	fd843603          	ld	a2,-40(s0)
-    80203690:	fe043583          	ld	a1,-32(s0)
-    80203694:	fec42503          	lw	a0,-20(s0)
-    80203698:	fffff097          	auipc	ra,0xfffff
-    8020369c:	94a080e7          	jalr	-1718(ra) # 80201fe2 <clone>
-    802036a0:	87aa                	mv	a5,a0
+    80203688:	fc843703          	ld	a4,-56(s0)
+    8020368c:	fd043683          	ld	a3,-48(s0)
+    80203690:	fd843603          	ld	a2,-40(s0)
+    80203694:	fe043583          	ld	a1,-32(s0)
+    80203698:	fec42503          	lw	a0,-20(s0)
+    8020369c:	fffff097          	auipc	ra,0xfffff
+    802036a0:	940080e7          	jalr	-1728(ra) # 80201fdc <clone>
+    802036a4:	87aa                	mv	a5,a0
 }
-    802036a2:	853e                	mv	a0,a5
-    802036a4:	70e2                	ld	ra,56(sp)
-    802036a6:	7442                	ld	s0,48(sp)
-    802036a8:	6121                	addi	sp,sp,64
-    802036aa:	8082                	ret
+    802036a6:	853e                	mv	a0,a5
+    802036a8:	70e2                	ld	ra,56(sp)
+    802036aa:	7442                	ld	s0,48(sp)
+    802036ac:	6121                	addi	sp,sp,64
+    802036ae:	8082                	ret
 
-00000000802036ac <sys_wait>:
+00000000802036b0 <sys_wait>:
 
 uint64
 sys_wait(void)
 {
-    802036ac:	1101                	addi	sp,sp,-32
-    802036ae:	ec06                	sd	ra,24(sp)
-    802036b0:	e822                	sd	s0,16(sp)
-    802036b2:	1000                	addi	s0,sp,32
+    802036b0:	1101                	addi	sp,sp,-32
+    802036b2:	ec06                	sd	ra,24(sp)
+    802036b4:	e822                	sd	s0,16(sp)
+    802036b6:	1000                	addi	s0,sp,32
   uint64 p;
   if(argaddr(0, &p) < 0)
-    802036b4:	fe840593          	addi	a1,s0,-24
-    802036b8:	4501                	li	a0,0
-    802036ba:	00000097          	auipc	ra,0x0
-    802036be:	cac080e7          	jalr	-852(ra) # 80203366 <argaddr>
-    802036c2:	87aa                	mv	a5,a0
+    802036b8:	fe840593          	addi	a1,s0,-24
+    802036bc:	4501                	li	a0,0
+    802036be:	00000097          	auipc	ra,0x0
+    802036c2:	cac080e7          	jalr	-852(ra) # 8020336a <argaddr>
+    802036c6:	87aa                	mv	a5,a0
     return -1;
-    802036c4:	557d                	li	a0,-1
+    802036c8:	557d                	li	a0,-1
   if(argaddr(0, &p) < 0)
-    802036c6:	0007c863          	bltz	a5,802036d6 <sys_wait+0x2a>
+    802036ca:	0007c863          	bltz	a5,802036da <sys_wait+0x2a>
   return wait(p);
-    802036ca:	fe843503          	ld	a0,-24(s0)
-    802036ce:	fffff097          	auipc	ra,0xfffff
-    802036d2:	dc8080e7          	jalr	-568(ra) # 80202496 <wait>
+    802036ce:	fe843503          	ld	a0,-24(s0)
+    802036d2:	fffff097          	auipc	ra,0xfffff
+    802036d6:	dbe080e7          	jalr	-578(ra) # 80202490 <wait>
 }
-    802036d6:	60e2                	ld	ra,24(sp)
-    802036d8:	6442                	ld	s0,16(sp)
-    802036da:	6105                	addi	sp,sp,32
-    802036dc:	8082                	ret
+    802036da:	60e2                	ld	ra,24(sp)
+    802036dc:	6442                	ld	s0,16(sp)
+    802036de:	6105                	addi	sp,sp,32
+    802036e0:	8082                	ret
 
-00000000802036de <sys_wait4>:
+00000000802036e2 <sys_wait4>:
 
 uint64
 sys_wait4(void)
 {
-    802036de:	7179                	addi	sp,sp,-48
-    802036e0:	f406                	sd	ra,40(sp)
-    802036e2:	f022                	sd	s0,32(sp)
-    802036e4:	1800                	addi	s0,sp,48
+    802036e2:	7179                	addi	sp,sp,-48
+    802036e4:	f406                	sd	ra,40(sp)
+    802036e6:	f022                	sd	s0,32(sp)
+    802036e8:	1800                	addi	s0,sp,48
   int pid;
   int *status;
   int options;
   if(argint(0, &pid) < 0 || argaddr(1, (uint64*)&status) < 0 || argint(2, &options) < 0){
-    802036e6:	fec40593          	addi	a1,s0,-20
-    802036ea:	4501                	li	a0,0
-    802036ec:	00000097          	auipc	ra,0x0
-    802036f0:	c18080e7          	jalr	-1000(ra) # 80203304 <argint>
+    802036ea:	fec40593          	addi	a1,s0,-20
+    802036ee:	4501                	li	a0,0
+    802036f0:	00000097          	auipc	ra,0x0
+    802036f4:	c18080e7          	jalr	-1000(ra) # 80203308 <argint>
     return -1;
-    802036f4:	57fd                	li	a5,-1
+    802036f8:	57fd                	li	a5,-1
   if(argint(0, &pid) < 0 || argaddr(1, (uint64*)&status) < 0 || argint(2, &options) < 0){
-    802036f6:	04054163          	bltz	a0,80203738 <sys_wait4+0x5a>
-    802036fa:	fe040593          	addi	a1,s0,-32
-    802036fe:	4505                	li	a0,1
-    80203700:	00000097          	auipc	ra,0x0
-    80203704:	c66080e7          	jalr	-922(ra) # 80203366 <argaddr>
+    802036fa:	04054163          	bltz	a0,8020373c <sys_wait4+0x5a>
+    802036fe:	fe040593          	addi	a1,s0,-32
+    80203702:	4505                	li	a0,1
+    80203704:	00000097          	auipc	ra,0x0
+    80203708:	c66080e7          	jalr	-922(ra) # 8020336a <argaddr>
     return -1;
-    80203708:	57fd                	li	a5,-1
+    8020370c:	57fd                	li	a5,-1
   if(argint(0, &pid) < 0 || argaddr(1, (uint64*)&status) < 0 || argint(2, &options) < 0){
-    8020370a:	02054763          	bltz	a0,80203738 <sys_wait4+0x5a>
-    8020370e:	fdc40593          	addi	a1,s0,-36
-    80203712:	4509                	li	a0,2
-    80203714:	00000097          	auipc	ra,0x0
-    80203718:	bf0080e7          	jalr	-1040(ra) # 80203304 <argint>
+    8020370e:	02054763          	bltz	a0,8020373c <sys_wait4+0x5a>
+    80203712:	fdc40593          	addi	a1,s0,-36
+    80203716:	4509                	li	a0,2
+    80203718:	00000097          	auipc	ra,0x0
+    8020371c:	bf0080e7          	jalr	-1040(ra) # 80203308 <argint>
     return -1;
-    8020371c:	57fd                	li	a5,-1
+    80203720:	57fd                	li	a5,-1
   if(argint(0, &pid) < 0 || argaddr(1, (uint64*)&status) < 0 || argint(2, &options) < 0){
-    8020371e:	00054d63          	bltz	a0,80203738 <sys_wait4+0x5a>
+    80203722:	00054d63          	bltz	a0,8020373c <sys_wait4+0x5a>
   }
   return wait4(pid, status, options);
-    80203722:	fdc42603          	lw	a2,-36(s0)
-    80203726:	fe043583          	ld	a1,-32(s0)
-    8020372a:	fec42503          	lw	a0,-20(s0)
-    8020372e:	fffff097          	auipc	ra,0xfffff
-    80203732:	e82080e7          	jalr	-382(ra) # 802025b0 <wait4>
-    80203736:	87aa                	mv	a5,a0
+    80203726:	fdc42603          	lw	a2,-36(s0)
+    8020372a:	fe043583          	ld	a1,-32(s0)
+    8020372e:	fec42503          	lw	a0,-20(s0)
+    80203732:	fffff097          	auipc	ra,0xfffff
+    80203736:	e78080e7          	jalr	-392(ra) # 802025aa <wait4>
+    8020373a:	87aa                	mv	a5,a0
 }
-    80203738:	853e                	mv	a0,a5
-    8020373a:	70a2                	ld	ra,40(sp)
-    8020373c:	7402                	ld	s0,32(sp)
-    8020373e:	6145                	addi	sp,sp,48
-    80203740:	8082                	ret
+    8020373c:	853e                	mv	a0,a5
+    8020373e:	70a2                	ld	ra,40(sp)
+    80203740:	7402                	ld	s0,32(sp)
+    80203742:	6145                	addi	sp,sp,48
+    80203744:	8082                	ret
 
-0000000080203742 <sys_sbrk>:
+0000000080203746 <sys_sbrk>:
 
 uint64
 sys_sbrk(void)
 {
-    80203742:	7179                	addi	sp,sp,-48
-    80203744:	f406                	sd	ra,40(sp)
-    80203746:	f022                	sd	s0,32(sp)
-    80203748:	ec26                	sd	s1,24(sp)
-    8020374a:	1800                	addi	s0,sp,48
+    80203746:	7179                	addi	sp,sp,-48
+    80203748:	f406                	sd	ra,40(sp)
+    8020374a:	f022                	sd	s0,32(sp)
+    8020374c:	ec26                	sd	s1,24(sp)
+    8020374e:	1800                	addi	s0,sp,48
   int addr;
   int n;
 
   if(argint(0, &n) < 0)
-    8020374c:	fdc40593          	addi	a1,s0,-36
-    80203750:	4501                	li	a0,0
-    80203752:	00000097          	auipc	ra,0x0
-    80203756:	bb2080e7          	jalr	-1102(ra) # 80203304 <argint>
-    8020375a:	87aa                	mv	a5,a0
+    80203750:	fdc40593          	addi	a1,s0,-36
+    80203754:	4501                	li	a0,0
+    80203756:	00000097          	auipc	ra,0x0
+    8020375a:	bb2080e7          	jalr	-1102(ra) # 80203308 <argint>
+    8020375e:	87aa                	mv	a5,a0
     return -1;
-    8020375c:	557d                	li	a0,-1
+    80203760:	557d                	li	a0,-1
   if(argint(0, &n) < 0)
-    8020375e:	0207c063          	bltz	a5,8020377e <sys_sbrk+0x3c>
+    80203762:	0207c063          	bltz	a5,80203782 <sys_sbrk+0x3c>
   addr = myproc()->sz;
-    80203762:	ffffe097          	auipc	ra,0xffffe
-    80203766:	2da080e7          	jalr	730(ra) # 80201a3c <myproc>
-    8020376a:	4524                	lw	s1,72(a0)
+    80203766:	ffffe097          	auipc	ra,0xffffe
+    8020376a:	2d6080e7          	jalr	726(ra) # 80201a3c <myproc>
+    8020376e:	4524                	lw	s1,72(a0)
   if(growproc(n) < 0)
-    8020376c:	fdc42503          	lw	a0,-36(s0)
-    80203770:	ffffe097          	auipc	ra,0xffffe
-    80203774:	678080e7          	jalr	1656(ra) # 80201de8 <growproc>
-    80203778:	00054863          	bltz	a0,80203788 <sys_sbrk+0x46>
+    80203770:	fdc42503          	lw	a0,-36(s0)
+    80203774:	ffffe097          	auipc	ra,0xffffe
+    80203778:	66e080e7          	jalr	1646(ra) # 80201de2 <growproc>
+    8020377c:	00054863          	bltz	a0,8020378c <sys_sbrk+0x46>
     return -1;
   return addr;
-    8020377c:	8526                	mv	a0,s1
+    80203780:	8526                	mv	a0,s1
 }
-    8020377e:	70a2                	ld	ra,40(sp)
-    80203780:	7402                	ld	s0,32(sp)
-    80203782:	64e2                	ld	s1,24(sp)
-    80203784:	6145                	addi	sp,sp,48
-    80203786:	8082                	ret
+    80203782:	70a2                	ld	ra,40(sp)
+    80203784:	7402                	ld	s0,32(sp)
+    80203786:	64e2                	ld	s1,24(sp)
+    80203788:	6145                	addi	sp,sp,48
+    8020378a:	8082                	ret
     return -1;
-    80203788:	557d                	li	a0,-1
-    8020378a:	bfd5                	j	8020377e <sys_sbrk+0x3c>
+    8020378c:	557d                	li	a0,-1
+    8020378e:	bfd5                	j	80203782 <sys_sbrk+0x3c>
 
-000000008020378c <sys_sleep>:
+0000000080203790 <sys_sleep>:
 
 uint64
 sys_sleep(void)
 {
-    8020378c:	7139                	addi	sp,sp,-64
-    8020378e:	fc06                	sd	ra,56(sp)
-    80203790:	f822                	sd	s0,48(sp)
-    80203792:	f426                	sd	s1,40(sp)
-    80203794:	f04a                	sd	s2,32(sp)
-    80203796:	ec4e                	sd	s3,24(sp)
-    80203798:	0080                	addi	s0,sp,64
+    80203790:	7139                	addi	sp,sp,-64
+    80203792:	fc06                	sd	ra,56(sp)
+    80203794:	f822                	sd	s0,48(sp)
+    80203796:	f426                	sd	s1,40(sp)
+    80203798:	f04a                	sd	s2,32(sp)
+    8020379a:	ec4e                	sd	s3,24(sp)
+    8020379c:	0080                	addi	s0,sp,64
   int n;
   uint ticks0;
 
   if(argint(0, &n) < 0)
-    8020379a:	fcc40593          	addi	a1,s0,-52
-    8020379e:	4501                	li	a0,0
-    802037a0:	00000097          	auipc	ra,0x0
-    802037a4:	b64080e7          	jalr	-1180(ra) # 80203304 <argint>
+    8020379e:	fcc40593          	addi	a1,s0,-52
+    802037a2:	4501                	li	a0,0
+    802037a4:	00000097          	auipc	ra,0x0
+    802037a8:	b64080e7          	jalr	-1180(ra) # 80203308 <argint>
     return -1;
-    802037a8:	57fd                	li	a5,-1
+    802037ac:	57fd                	li	a5,-1
   if(argint(0, &n) < 0)
-    802037aa:	06054763          	bltz	a0,80203818 <sys_sleep+0x8c>
+    802037ae:	06054763          	bltz	a0,8020381c <sys_sleep+0x8c>
   acquire(&tickslock);
-    802037ae:	0000a517          	auipc	a0,0xa
-    802037b2:	89a53503          	ld	a0,-1894(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    802037b6:	ffffd097          	auipc	ra,0xffffd
-    802037ba:	f10080e7          	jalr	-240(ra) # 802006c6 <acquire>
+    802037b2:	0000a517          	auipc	a0,0xa
+    802037b6:	89653503          	ld	a0,-1898(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    802037ba:	ffffd097          	auipc	ra,0xffffd
+    802037be:	f0c080e7          	jalr	-244(ra) # 802006c6 <acquire>
   ticks0 = ticks;
-    802037be:	0000a797          	auipc	a5,0xa
-    802037c2:	89a7b783          	ld	a5,-1894(a5) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
-    802037c6:	0007a903          	lw	s2,0(a5)
+    802037c2:	0000a797          	auipc	a5,0xa
+    802037c6:	8967b783          	ld	a5,-1898(a5) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
+    802037ca:	0007a903          	lw	s2,0(a5)
   while(ticks - ticks0 < n){
-    802037ca:	fcc42783          	lw	a5,-52(s0)
-    802037ce:	cf85                	beqz	a5,80203806 <sys_sleep+0x7a>
+    802037ce:	fcc42783          	lw	a5,-52(s0)
+    802037d2:	cf85                	beqz	a5,8020380a <sys_sleep+0x7a>
     if(myproc()->killed){
       release(&tickslock);
       return -1;
     }
     sleep(&ticks, &tickslock);
-    802037d0:	0000a997          	auipc	s3,0xa
-    802037d4:	8789b983          	ld	s3,-1928(s3) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    802037d8:	0000a497          	auipc	s1,0xa
-    802037dc:	8804b483          	ld	s1,-1920(s1) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
+    802037d4:	0000a997          	auipc	s3,0xa
+    802037d8:	8749b983          	ld	s3,-1932(s3) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    802037dc:	0000a497          	auipc	s1,0xa
+    802037e0:	87c4b483          	ld	s1,-1924(s1) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
     if(myproc()->killed){
-    802037e0:	ffffe097          	auipc	ra,0xffffe
-    802037e4:	25c080e7          	jalr	604(ra) # 80201a3c <myproc>
-    802037e8:	591c                	lw	a5,48(a0)
-    802037ea:	ef9d                	bnez	a5,80203828 <sys_sleep+0x9c>
+    802037e4:	ffffe097          	auipc	ra,0xffffe
+    802037e8:	258080e7          	jalr	600(ra) # 80201a3c <myproc>
+    802037ec:	591c                	lw	a5,48(a0)
+    802037ee:	ef9d                	bnez	a5,8020382c <sys_sleep+0x9c>
     sleep(&ticks, &tickslock);
-    802037ec:	85ce                	mv	a1,s3
-    802037ee:	8526                	mv	a0,s1
-    802037f0:	fffff097          	auipc	ra,0xfffff
-    802037f4:	c28080e7          	jalr	-984(ra) # 80202418 <sleep>
+    802037f0:	85ce                	mv	a1,s3
+    802037f2:	8526                	mv	a0,s1
+    802037f4:	fffff097          	auipc	ra,0xfffff
+    802037f8:	c1e080e7          	jalr	-994(ra) # 80202412 <sleep>
   while(ticks - ticks0 < n){
-    802037f8:	409c                	lw	a5,0(s1)
-    802037fa:	412787bb          	subw	a5,a5,s2
-    802037fe:	fcc42703          	lw	a4,-52(s0)
-    80203802:	fce7efe3          	bltu	a5,a4,802037e0 <sys_sleep+0x54>
+    802037fc:	409c                	lw	a5,0(s1)
+    802037fe:	412787bb          	subw	a5,a5,s2
+    80203802:	fcc42703          	lw	a4,-52(s0)
+    80203806:	fce7efe3          	bltu	a5,a4,802037e4 <sys_sleep+0x54>
   }
   release(&tickslock);
-    80203806:	0000a517          	auipc	a0,0xa
-    8020380a:	84253503          	ld	a0,-1982(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    8020380e:	ffffd097          	auipc	ra,0xffffd
-    80203812:	f0c080e7          	jalr	-244(ra) # 8020071a <release>
+    8020380a:	0000a517          	auipc	a0,0xa
+    8020380e:	83e53503          	ld	a0,-1986(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    80203812:	ffffd097          	auipc	ra,0xffffd
+    80203816:	f08080e7          	jalr	-248(ra) # 8020071a <release>
   return 0;
-    80203816:	4781                	li	a5,0
+    8020381a:	4781                	li	a5,0
 }
-    80203818:	853e                	mv	a0,a5
-    8020381a:	70e2                	ld	ra,56(sp)
-    8020381c:	7442                	ld	s0,48(sp)
-    8020381e:	74a2                	ld	s1,40(sp)
-    80203820:	7902                	ld	s2,32(sp)
-    80203822:	69e2                	ld	s3,24(sp)
-    80203824:	6121                	addi	sp,sp,64
-    80203826:	8082                	ret
+    8020381c:	853e                	mv	a0,a5
+    8020381e:	70e2                	ld	ra,56(sp)
+    80203820:	7442                	ld	s0,48(sp)
+    80203822:	74a2                	ld	s1,40(sp)
+    80203824:	7902                	ld	s2,32(sp)
+    80203826:	69e2                	ld	s3,24(sp)
+    80203828:	6121                	addi	sp,sp,64
+    8020382a:	8082                	ret
       release(&tickslock);
-    80203828:	0000a517          	auipc	a0,0xa
-    8020382c:	82053503          	ld	a0,-2016(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    80203830:	ffffd097          	auipc	ra,0xffffd
-    80203834:	eea080e7          	jalr	-278(ra) # 8020071a <release>
+    8020382c:	0000a517          	auipc	a0,0xa
+    80203830:	81c53503          	ld	a0,-2020(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    80203834:	ffffd097          	auipc	ra,0xffffd
+    80203838:	ee6080e7          	jalr	-282(ra) # 8020071a <release>
       return -1;
-    80203838:	57fd                	li	a5,-1
-    8020383a:	bff9                	j	80203818 <sys_sleep+0x8c>
+    8020383c:	57fd                	li	a5,-1
+    8020383e:	bff9                	j	8020381c <sys_sleep+0x8c>
 
-000000008020383c <sys_kill>:
+0000000080203840 <sys_kill>:
 
 uint64
 sys_kill(void)
 {
-    8020383c:	1101                	addi	sp,sp,-32
-    8020383e:	ec06                	sd	ra,24(sp)
-    80203840:	e822                	sd	s0,16(sp)
-    80203842:	1000                	addi	s0,sp,32
+    80203840:	1101                	addi	sp,sp,-32
+    80203842:	ec06                	sd	ra,24(sp)
+    80203844:	e822                	sd	s0,16(sp)
+    80203846:	1000                	addi	s0,sp,32
   int pid;
 
   if(argint(0, &pid) < 0)
-    80203844:	fec40593          	addi	a1,s0,-20
-    80203848:	4501                	li	a0,0
-    8020384a:	00000097          	auipc	ra,0x0
-    8020384e:	aba080e7          	jalr	-1350(ra) # 80203304 <argint>
-    80203852:	87aa                	mv	a5,a0
+    80203848:	fec40593          	addi	a1,s0,-20
+    8020384c:	4501                	li	a0,0
+    8020384e:	00000097          	auipc	ra,0x0
+    80203852:	aba080e7          	jalr	-1350(ra) # 80203308 <argint>
+    80203856:	87aa                	mv	a5,a0
     return -1;
-    80203854:	557d                	li	a0,-1
+    80203858:	557d                	li	a0,-1
   if(argint(0, &pid) < 0)
-    80203856:	0007c863          	bltz	a5,80203866 <sys_kill+0x2a>
+    8020385a:	0007c863          	bltz	a5,8020386a <sys_kill+0x2a>
   return kill(pid);
-    8020385a:	fec42503          	lw	a0,-20(s0)
-    8020385e:	fffff097          	auipc	ra,0xfffff
-    80203862:	f0c080e7          	jalr	-244(ra) # 8020276a <kill>
+    8020385e:	fec42503          	lw	a0,-20(s0)
+    80203862:	fffff097          	auipc	ra,0xfffff
+    80203866:	f02080e7          	jalr	-254(ra) # 80202764 <kill>
 }
-    80203866:	60e2                	ld	ra,24(sp)
-    80203868:	6442                	ld	s0,16(sp)
-    8020386a:	6105                	addi	sp,sp,32
-    8020386c:	8082                	ret
+    8020386a:	60e2                	ld	ra,24(sp)
+    8020386c:	6442                	ld	s0,16(sp)
+    8020386e:	6105                	addi	sp,sp,32
+    80203870:	8082                	ret
 
-000000008020386e <sys_uptime>:
+0000000080203872 <sys_uptime>:
 
 // return how many clock tick interrupts have occurred
 // since start.
 uint64
 sys_uptime(void)
 {
-    8020386e:	1101                	addi	sp,sp,-32
-    80203870:	ec06                	sd	ra,24(sp)
-    80203872:	e822                	sd	s0,16(sp)
-    80203874:	e426                	sd	s1,8(sp)
-    80203876:	1000                	addi	s0,sp,32
+    80203872:	1101                	addi	sp,sp,-32
+    80203874:	ec06                	sd	ra,24(sp)
+    80203876:	e822                	sd	s0,16(sp)
+    80203878:	e426                	sd	s1,8(sp)
+    8020387a:	1000                	addi	s0,sp,32
   uint xticks;
 
   acquire(&tickslock);
-    80203878:	00009517          	auipc	a0,0x9
-    8020387c:	7d053503          	ld	a0,2000(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    80203880:	ffffd097          	auipc	ra,0xffffd
-    80203884:	e46080e7          	jalr	-442(ra) # 802006c6 <acquire>
+    8020387c:	00009517          	auipc	a0,0x9
+    80203880:	7cc53503          	ld	a0,1996(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    80203884:	ffffd097          	auipc	ra,0xffffd
+    80203888:	e42080e7          	jalr	-446(ra) # 802006c6 <acquire>
   xticks = ticks;
-    80203888:	00009797          	auipc	a5,0x9
-    8020388c:	7d07b783          	ld	a5,2000(a5) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
-    80203890:	4384                	lw	s1,0(a5)
+    8020388c:	00009797          	auipc	a5,0x9
+    80203890:	7cc7b783          	ld	a5,1996(a5) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
+    80203894:	4384                	lw	s1,0(a5)
   release(&tickslock);
-    80203892:	00009517          	auipc	a0,0x9
-    80203896:	7b653503          	ld	a0,1974(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    8020389a:	ffffd097          	auipc	ra,0xffffd
-    8020389e:	e80080e7          	jalr	-384(ra) # 8020071a <release>
+    80203896:	00009517          	auipc	a0,0x9
+    8020389a:	7b253503          	ld	a0,1970(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    8020389e:	ffffd097          	auipc	ra,0xffffd
+    802038a2:	e7c080e7          	jalr	-388(ra) # 8020071a <release>
   return xticks;
 }
-    802038a2:	02049513          	slli	a0,s1,0x20
-    802038a6:	9101                	srli	a0,a0,0x20
-    802038a8:	60e2                	ld	ra,24(sp)
-    802038aa:	6442                	ld	s0,16(sp)
-    802038ac:	64a2                	ld	s1,8(sp)
-    802038ae:	6105                	addi	sp,sp,32
-    802038b0:	8082                	ret
+    802038a6:	02049513          	slli	a0,s1,0x20
+    802038aa:	9101                	srli	a0,a0,0x20
+    802038ac:	60e2                	ld	ra,24(sp)
+    802038ae:	6442                	ld	s0,16(sp)
+    802038b0:	64a2                	ld	s1,8(sp)
+    802038b2:	6105                	addi	sp,sp,32
+    802038b4:	8082                	ret
 
-00000000802038b2 <sys_trace>:
+00000000802038b6 <sys_trace>:
 
 uint64
 sys_trace(void)
 {
-    802038b2:	1101                	addi	sp,sp,-32
-    802038b4:	ec06                	sd	ra,24(sp)
-    802038b6:	e822                	sd	s0,16(sp)
-    802038b8:	1000                	addi	s0,sp,32
+    802038b6:	1101                	addi	sp,sp,-32
+    802038b8:	ec06                	sd	ra,24(sp)
+    802038ba:	e822                	sd	s0,16(sp)
+    802038bc:	1000                	addi	s0,sp,32
   int mask;
   if(argint(0, &mask) < 0) {
-    802038ba:	fec40593          	addi	a1,s0,-20
-    802038be:	4501                	li	a0,0
-    802038c0:	00000097          	auipc	ra,0x0
-    802038c4:	a44080e7          	jalr	-1468(ra) # 80203304 <argint>
+    802038be:	fec40593          	addi	a1,s0,-20
+    802038c2:	4501                	li	a0,0
+    802038c4:	00000097          	auipc	ra,0x0
+    802038c8:	a44080e7          	jalr	-1468(ra) # 80203308 <argint>
     return -1;
-    802038c8:	57fd                	li	a5,-1
+    802038cc:	57fd                	li	a5,-1
   if(argint(0, &mask) < 0) {
-    802038ca:	00054b63          	bltz	a0,802038e0 <sys_trace+0x2e>
+    802038ce:	00054b63          	bltz	a0,802038e4 <sys_trace+0x2e>
   }
   myproc()->tmask = mask;
-    802038ce:	ffffe097          	auipc	ra,0xffffe
-    802038d2:	16e080e7          	jalr	366(ra) # 80201a3c <myproc>
-    802038d6:	fec42783          	lw	a5,-20(s0)
-    802038da:	40f52c23          	sw	a5,1048(a0)
+    802038d2:	ffffe097          	auipc	ra,0xffffe
+    802038d6:	16a080e7          	jalr	362(ra) # 80201a3c <myproc>
+    802038da:	fec42783          	lw	a5,-20(s0)
+    802038de:	40f52c23          	sw	a5,1048(a0)
   return 0;
-    802038de:	4781                	li	a5,0
+    802038e2:	4781                	li	a5,0
 }
-    802038e0:	853e                	mv	a0,a5
-    802038e2:	60e2                	ld	ra,24(sp)
-    802038e4:	6442                	ld	s0,16(sp)
-    802038e6:	6105                	addi	sp,sp,32
-    802038e8:	8082                	ret
+    802038e4:	853e                	mv	a0,a5
+    802038e6:	60e2                	ld	ra,24(sp)
+    802038e8:	6442                	ld	s0,16(sp)
+    802038ea:	6105                	addi	sp,sp,32
+    802038ec:	8082                	ret
 
-00000000802038ea <sys_times>:
+00000000802038ee <sys_times>:
 
 uint64
 sys_times(void)
 {
-    802038ea:	7139                	addi	sp,sp,-64
-    802038ec:	fc06                	sd	ra,56(sp)
-    802038ee:	f822                	sd	s0,48(sp)
-    802038f0:	0080                	addi	s0,sp,64
+    802038ee:	7139                	addi	sp,sp,-64
+    802038f0:	fc06                	sd	ra,56(sp)
+    802038f2:	f822                	sd	s0,48(sp)
+    802038f4:	0080                	addi	s0,sp,64
   struct tms t;
 
   uint64 addr;
   if(argaddr(0, &addr) < 0) {
-    802038f2:	fc840593          	addi	a1,s0,-56
-    802038f6:	4501                	li	a0,0
-    802038f8:	00000097          	auipc	ra,0x0
-    802038fc:	a6e080e7          	jalr	-1426(ra) # 80203366 <argaddr>
+    802038f6:	fc840593          	addi	a1,s0,-56
+    802038fa:	4501                	li	a0,0
+    802038fc:	00000097          	auipc	ra,0x0
+    80203900:	a6e080e7          	jalr	-1426(ra) # 8020336a <argaddr>
     return -1;
-    80203900:	57fd                	li	a5,-1
+    80203904:	57fd                	li	a5,-1
   if(argaddr(0, &addr) < 0) {
-    80203902:	06054663          	bltz	a0,8020396e <sys_times+0x84>
+    80203906:	06054663          	bltz	a0,80203972 <sys_times+0x84>
   }
 
   t.tms_utime = myproc()->utime;
-    80203906:	ffffe097          	auipc	ra,0xffffe
-    8020390a:	136080e7          	jalr	310(ra) # 80201a3c <myproc>
-    8020390e:	42053783          	ld	a5,1056(a0)
-    80203912:	fcf43823          	sd	a5,-48(s0)
+    8020390a:	ffffe097          	auipc	ra,0xffffe
+    8020390e:	132080e7          	jalr	306(ra) # 80201a3c <myproc>
+    80203912:	42053783          	ld	a5,1056(a0)
+    80203916:	fcf43823          	sd	a5,-48(s0)
   t.tms_stime = myproc()->stime;
-    80203916:	ffffe097          	auipc	ra,0xffffe
-    8020391a:	126080e7          	jalr	294(ra) # 80201a3c <myproc>
-    8020391e:	42853783          	ld	a5,1064(a0)
-    80203922:	fcf43c23          	sd	a5,-40(s0)
+    8020391a:	ffffe097          	auipc	ra,0xffffe
+    8020391e:	122080e7          	jalr	290(ra) # 80201a3c <myproc>
+    80203922:	42853783          	ld	a5,1064(a0)
+    80203926:	fcf43c23          	sd	a5,-40(s0)
   t.tms_cutime = myproc()->cutime;
-    80203926:	ffffe097          	auipc	ra,0xffffe
-    8020392a:	116080e7          	jalr	278(ra) # 80201a3c <myproc>
-    8020392e:	43053783          	ld	a5,1072(a0)
-    80203932:	fef43023          	sd	a5,-32(s0)
+    8020392a:	ffffe097          	auipc	ra,0xffffe
+    8020392e:	112080e7          	jalr	274(ra) # 80201a3c <myproc>
+    80203932:	43053783          	ld	a5,1072(a0)
+    80203936:	fef43023          	sd	a5,-32(s0)
   t.tms_cstime = myproc()->cstime;
-    80203936:	ffffe097          	auipc	ra,0xffffe
-    8020393a:	106080e7          	jalr	262(ra) # 80201a3c <myproc>
-    8020393e:	43853783          	ld	a5,1080(a0)
-    80203942:	fef43423          	sd	a5,-24(s0)
+    8020393a:	ffffe097          	auipc	ra,0xffffe
+    8020393e:	102080e7          	jalr	258(ra) # 80201a3c <myproc>
+    80203942:	43853783          	ld	a5,1080(a0)
+    80203946:	fef43423          	sd	a5,-24(s0)
 
   if(copyout2(addr, (char *)&t, sizeof(t)) < 0) {
-    80203946:	02000613          	li	a2,32
-    8020394a:	fd040593          	addi	a1,s0,-48
-    8020394e:	fc843503          	ld	a0,-56(s0)
-    80203952:	ffffe097          	auipc	ra,0xffffe
-    80203956:	a20080e7          	jalr	-1504(ra) # 80201372 <copyout2>
+    8020394a:	02000613          	li	a2,32
+    8020394e:	fd040593          	addi	a1,s0,-48
+    80203952:	fc843503          	ld	a0,-56(s0)
+    80203956:	ffffe097          	auipc	ra,0xffffe
+    8020395a:	a1c080e7          	jalr	-1508(ra) # 80201372 <copyout2>
     return -1;
-    8020395a:	57fd                	li	a5,-1
+    8020395e:	57fd                	li	a5,-1
   if(copyout2(addr, (char *)&t, sizeof(t)) < 0) {
-    8020395c:	00054963          	bltz	a0,8020396e <sys_times+0x84>
+    80203960:	00054963          	bltz	a0,80203972 <sys_times+0x84>
   }
 
   uint xticks;
   xticks = sys_uptime();
-    80203960:	00000097          	auipc	ra,0x0
-    80203964:	f0e080e7          	jalr	-242(ra) # 8020386e <sys_uptime>
+    80203964:	00000097          	auipc	ra,0x0
+    80203968:	f0e080e7          	jalr	-242(ra) # 80203872 <sys_uptime>
   return xticks;
-    80203968:	02051793          	slli	a5,a0,0x20
-    8020396c:	9381                	srli	a5,a5,0x20
+    8020396c:	02051793          	slli	a5,a0,0x20
+    80203970:	9381                	srli	a5,a5,0x20
 }
-    8020396e:	853e                	mv	a0,a5
-    80203970:	70e2                	ld	ra,56(sp)
-    80203972:	7442                	ld	s0,48(sp)
-    80203974:	6121                	addi	sp,sp,64
-    80203976:	8082                	ret
+    80203972:	853e                	mv	a0,a5
+    80203974:	70e2                	ld	ra,56(sp)
+    80203976:	7442                	ld	s0,48(sp)
+    80203978:	6121                	addi	sp,sp,64
+    8020397a:	8082                	ret
 
-0000000080203978 <sys_getppid>:
+000000008020397c <sys_getppid>:
 
 uint64
 sys_getppid(void)
 {
-    80203978:	1141                	addi	sp,sp,-16
-    8020397a:	e406                	sd	ra,8(sp)
-    8020397c:	e022                	sd	s0,0(sp)
-    8020397e:	0800                	addi	s0,sp,16
+    8020397c:	1141                	addi	sp,sp,-16
+    8020397e:	e406                	sd	ra,8(sp)
+    80203980:	e022                	sd	s0,0(sp)
+    80203982:	0800                	addi	s0,sp,16
   return myproc()->parent->pid;
-    80203980:	ffffe097          	auipc	ra,0xffffe
-    80203984:	0bc080e7          	jalr	188(ra) # 80201a3c <myproc>
-    80203988:	711c                	ld	a5,32(a0)
+    80203984:	ffffe097          	auipc	ra,0xffffe
+    80203988:	0b8080e7          	jalr	184(ra) # 80201a3c <myproc>
+    8020398c:	711c                	ld	a5,32(a0)
 }
-    8020398a:	5f88                	lw	a0,56(a5)
-    8020398c:	60a2                	ld	ra,8(sp)
-    8020398e:	6402                	ld	s0,0(sp)
-    80203990:	0141                	addi	sp,sp,16
-    80203992:	8082                	ret
+    8020398e:	5f88                	lw	a0,56(a5)
+    80203990:	60a2                	ld	ra,8(sp)
+    80203992:	6402                	ld	s0,0(sp)
+    80203994:	0141                	addi	sp,sp,16
+    80203996:	8082                	ret
 
-0000000080203994 <sys_gettimeofday>:
+0000000080203998 <sys_gettimeofday>:
 
 uint64
 sys_gettimeofday(void){
-    80203994:	7179                	addi	sp,sp,-48
-    80203996:	f406                	sd	ra,40(sp)
-    80203998:	f022                	sd	s0,32(sp)
-    8020399a:	1800                	addi	s0,sp,48
+    80203998:	7179                	addi	sp,sp,-48
+    8020399a:	f406                	sd	ra,40(sp)
+    8020399c:	f022                	sd	s0,32(sp)
+    8020399e:	1800                	addi	s0,sp,48
   struct timespec *ts;
   if(argaddr(0, (uint64*)&ts) < 0){
-    8020399c:	fe840593          	addi	a1,s0,-24
-    802039a0:	4501                	li	a0,0
-    802039a2:	00000097          	auipc	ra,0x0
-    802039a6:	9c4080e7          	jalr	-1596(ra) # 80203366 <argaddr>
-    802039aa:	87aa                	mv	a5,a0
+    802039a0:	fe840593          	addi	a1,s0,-24
+    802039a4:	4501                	li	a0,0
+    802039a6:	00000097          	auipc	ra,0x0
+    802039aa:	9c4080e7          	jalr	-1596(ra) # 8020336a <argaddr>
+    802039ae:	87aa                	mv	a5,a0
     return -1;
-    802039ac:	557d                	li	a0,-1
+    802039b0:	557d                	li	a0,-1
   if(argaddr(0, (uint64*)&ts) < 0){
-    802039ae:	0207ca63          	bltz	a5,802039e2 <sys_gettimeofday+0x4e>
+    802039b2:	0207ca63          	bltz	a5,802039e6 <sys_gettimeofday+0x4e>
   asm volatile("rdtime %0" : "=r" (x) );
-    802039b2:	c01027f3          	rdtime	a5
+    802039b6:	c01027f3          	rdtime	a5
   }
   
   struct timespec tp;
   uint64 i = 12500000;
   uint64 time = r_time();
   tp.tv_sec = time / i;
-    802039b6:	00bec737          	lui	a4,0xbec
-    802039ba:	c2070713          	addi	a4,a4,-992 # bebc20 <_entry-0x7f6143e0>
-    802039be:	02e7d6b3          	divu	a3,a5,a4
-    802039c2:	fcd43c23          	sd	a3,-40(s0)
+    802039ba:	00bec737          	lui	a4,0xbec
+    802039be:	c2070713          	addi	a4,a4,-992 # bebc20 <_entry-0x7f6143e0>
+    802039c2:	02e7d6b3          	divu	a3,a5,a4
+    802039c6:	fcd43c23          	sd	a3,-40(s0)
   tp.tv_nsec = time % i;
-    802039c6:	02e7f7b3          	remu	a5,a5,a4
-    802039ca:	fef43023          	sd	a5,-32(s0)
+    802039ca:	02e7f7b3          	remu	a5,a5,a4
+    802039ce:	fef43023          	sd	a5,-32(s0)
 
   if(copyout2((uint64)ts, (char *)&tp, sizeof(tp)) < 0){
-    802039ce:	4641                	li	a2,16
-    802039d0:	fd840593          	addi	a1,s0,-40
-    802039d4:	fe843503          	ld	a0,-24(s0)
-    802039d8:	ffffe097          	auipc	ra,0xffffe
-    802039dc:	99a080e7          	jalr	-1638(ra) # 80201372 <copyout2>
-    802039e0:	957d                	srai	a0,a0,0x3f
+    802039d2:	4641                	li	a2,16
+    802039d4:	fd840593          	addi	a1,s0,-40
+    802039d8:	fe843503          	ld	a0,-24(s0)
+    802039dc:	ffffe097          	auipc	ra,0xffffe
+    802039e0:	996080e7          	jalr	-1642(ra) # 80201372 <copyout2>
+    802039e4:	957d                	srai	a0,a0,0x3f
     return -1;
   }
   
   return 0;
 }
-    802039e2:	70a2                	ld	ra,40(sp)
-    802039e4:	7402                	ld	s0,32(sp)
-    802039e6:	6145                	addi	sp,sp,48
-    802039e8:	8082                	ret
+    802039e6:	70a2                	ld	ra,40(sp)
+    802039e8:	7402                	ld	s0,32(sp)
+    802039ea:	6145                	addi	sp,sp,48
+    802039ec:	8082                	ret
 
-00000000802039ea <sys_nanosleep>:
+00000000802039ee <sys_nanosleep>:
 
 
 uint64
 sys_nanosleep(void){
-    802039ea:	7139                	addi	sp,sp,-64
-    802039ec:	fc06                	sd	ra,56(sp)
-    802039ee:	f822                	sd	s0,48(sp)
-    802039f0:	f426                	sd	s1,40(sp)
-    802039f2:	f04a                	sd	s2,32(sp)
-    802039f4:	ec4e                	sd	s3,24(sp)
-    802039f6:	e852                	sd	s4,16(sp)
-    802039f8:	0080                	addi	s0,sp,64
+    802039ee:	7139                	addi	sp,sp,-64
+    802039f0:	fc06                	sd	ra,56(sp)
+    802039f2:	f822                	sd	s0,48(sp)
+    802039f4:	f426                	sd	s1,40(sp)
+    802039f6:	f04a                	sd	s2,32(sp)
+    802039f8:	ec4e                	sd	s3,24(sp)
+    802039fa:	e852                	sd	s4,16(sp)
+    802039fc:	0080                	addi	s0,sp,64
   struct timespec *rqtp, *rmtp;
   if(argaddr(0, (uint64*)&rqtp) < 0 || argaddr(1, (uint64*)&rmtp) < 0){
-    802039fa:	fc840593          	addi	a1,s0,-56
-    802039fe:	4501                	li	a0,0
-    80203a00:	00000097          	auipc	ra,0x0
-    80203a04:	966080e7          	jalr	-1690(ra) # 80203366 <argaddr>
+    802039fe:	fc840593          	addi	a1,s0,-56
+    80203a02:	4501                	li	a0,0
+    80203a04:	00000097          	auipc	ra,0x0
+    80203a08:	966080e7          	jalr	-1690(ra) # 8020336a <argaddr>
     return -1;
-    80203a08:	57fd                	li	a5,-1
+    80203a0c:	57fd                	li	a5,-1
   if(argaddr(0, (uint64*)&rqtp) < 0 || argaddr(1, (uint64*)&rmtp) < 0){
-    80203a0a:	08054563          	bltz	a0,80203a94 <sys_nanosleep+0xaa>
-    80203a0e:	fc040593          	addi	a1,s0,-64
-    80203a12:	4505                	li	a0,1
-    80203a14:	00000097          	auipc	ra,0x0
-    80203a18:	952080e7          	jalr	-1710(ra) # 80203366 <argaddr>
+    80203a0e:	08054563          	bltz	a0,80203a98 <sys_nanosleep+0xaa>
+    80203a12:	fc040593          	addi	a1,s0,-64
+    80203a16:	4505                	li	a0,1
+    80203a18:	00000097          	auipc	ra,0x0
+    80203a1c:	952080e7          	jalr	-1710(ra) # 8020336a <argaddr>
     return -1;
-    80203a1c:	57fd                	li	a5,-1
+    80203a20:	57fd                	li	a5,-1
   if(argaddr(0, (uint64*)&rqtp) < 0 || argaddr(1, (uint64*)&rmtp) < 0){
-    80203a1e:	06054b63          	bltz	a0,80203a94 <sys_nanosleep+0xaa>
+    80203a22:	06054b63          	bltz	a0,80203a98 <sys_nanosleep+0xaa>
   }
 
 
   uint64 n = (rqtp->tv_sec) * 12500000 + rqtp->tv_nsec;
-    80203a22:	fc843703          	ld	a4,-56(s0)
-    80203a26:	6304                	ld	s1,0(a4)
-    80203a28:	00bec7b7          	lui	a5,0xbec
-    80203a2c:	c2078793          	addi	a5,a5,-992 # bebc20 <_entry-0x7f6143e0>
-    80203a30:	02f484b3          	mul	s1,s1,a5
-    80203a34:	671c                	ld	a5,8(a4)
-    80203a36:	94be                	add	s1,s1,a5
-    80203a38:	c0102973          	rdtime	s2
+    80203a26:	fc843703          	ld	a4,-56(s0)
+    80203a2a:	6304                	ld	s1,0(a4)
+    80203a2c:	00bec7b7          	lui	a5,0xbec
+    80203a30:	c2078793          	addi	a5,a5,-992 # bebc20 <_entry-0x7f6143e0>
+    80203a34:	02f484b3          	mul	s1,s1,a5
+    80203a38:	671c                	ld	a5,8(a4)
+    80203a3a:	94be                	add	s1,s1,a5
+    80203a3c:	c0102973          	rdtime	s2
   uint64 time0 = r_time();
   uint64 time = time0;
   acquire(&tickslock);
-    80203a3c:	00009517          	auipc	a0,0x9
-    80203a40:	60c53503          	ld	a0,1548(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    80203a44:	ffffd097          	auipc	ra,0xffffd
-    80203a48:	c82080e7          	jalr	-894(ra) # 802006c6 <acquire>
+    80203a40:	00009517          	auipc	a0,0x9
+    80203a44:	60853503          	ld	a0,1544(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    80203a48:	ffffd097          	auipc	ra,0xffffd
+    80203a4c:	c7e080e7          	jalr	-898(ra) # 802006c6 <acquire>
   while(time - time0 < n){
-    80203a4c:	c89d                	beqz	s1,80203a82 <sys_nanosleep+0x98>
+    80203a50:	c89d                	beqz	s1,80203a86 <sys_nanosleep+0x98>
     if(myproc()->killed){
       release(&tickslock);
       return -1;
     }
     sleep(&ticks, &tickslock);
-    80203a4e:	00009a17          	auipc	s4,0x9
-    80203a52:	5faa3a03          	ld	s4,1530(s4) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    80203a56:	00009997          	auipc	s3,0x9
-    80203a5a:	6029b983          	ld	s3,1538(s3) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
+    80203a52:	00009a17          	auipc	s4,0x9
+    80203a56:	5f6a3a03          	ld	s4,1526(s4) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    80203a5a:	00009997          	auipc	s3,0x9
+    80203a5e:	5fe9b983          	ld	s3,1534(s3) # 8020d058 <_GLOBAL_OFFSET_TABLE_+0x40>
     if(myproc()->killed){
-    80203a5e:	ffffe097          	auipc	ra,0xffffe
-    80203a62:	fde080e7          	jalr	-34(ra) # 80201a3c <myproc>
-    80203a66:	591c                	lw	a5,48(a0)
-    80203a68:	ef9d                	bnez	a5,80203aa6 <sys_nanosleep+0xbc>
+    80203a62:	ffffe097          	auipc	ra,0xffffe
+    80203a66:	fda080e7          	jalr	-38(ra) # 80201a3c <myproc>
+    80203a6a:	591c                	lw	a5,48(a0)
+    80203a6c:	ef9d                	bnez	a5,80203aaa <sys_nanosleep+0xbc>
     sleep(&ticks, &tickslock);
-    80203a6a:	85d2                	mv	a1,s4
-    80203a6c:	854e                	mv	a0,s3
-    80203a6e:	fffff097          	auipc	ra,0xfffff
-    80203a72:	9aa080e7          	jalr	-1622(ra) # 80202418 <sleep>
-    80203a76:	c01027f3          	rdtime	a5
+    80203a6e:	85d2                	mv	a1,s4
+    80203a70:	854e                	mv	a0,s3
+    80203a72:	fffff097          	auipc	ra,0xfffff
+    80203a76:	9a0080e7          	jalr	-1632(ra) # 80202412 <sleep>
+    80203a7a:	c01027f3          	rdtime	a5
   while(time - time0 < n){
-    80203a7a:	412787b3          	sub	a5,a5,s2
-    80203a7e:	fe97e0e3          	bltu	a5,s1,80203a5e <sys_nanosleep+0x74>
+    80203a7e:	412787b3          	sub	a5,a5,s2
+    80203a82:	fe97e0e3          	bltu	a5,s1,80203a62 <sys_nanosleep+0x74>
     time = r_time();
   }
   release(&tickslock);
-    80203a82:	00009517          	auipc	a0,0x9
-    80203a86:	5c653503          	ld	a0,1478(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    80203a8a:	ffffd097          	auipc	ra,0xffffd
-    80203a8e:	c90080e7          	jalr	-880(ra) # 8020071a <release>
+    80203a86:	00009517          	auipc	a0,0x9
+    80203a8a:	5c253503          	ld	a0,1474(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    80203a8e:	ffffd097          	auipc	ra,0xffffd
+    80203a92:	c8c080e7          	jalr	-884(ra) # 8020071a <release>
   return 0;
-    80203a92:	4781                	li	a5,0
+    80203a96:	4781                	li	a5,0
 
 }
-    80203a94:	853e                	mv	a0,a5
-    80203a96:	70e2                	ld	ra,56(sp)
-    80203a98:	7442                	ld	s0,48(sp)
-    80203a9a:	74a2                	ld	s1,40(sp)
-    80203a9c:	7902                	ld	s2,32(sp)
-    80203a9e:	69e2                	ld	s3,24(sp)
-    80203aa0:	6a42                	ld	s4,16(sp)
-    80203aa2:	6121                	addi	sp,sp,64
-    80203aa4:	8082                	ret
+    80203a98:	853e                	mv	a0,a5
+    80203a9a:	70e2                	ld	ra,56(sp)
+    80203a9c:	7442                	ld	s0,48(sp)
+    80203a9e:	74a2                	ld	s1,40(sp)
+    80203aa0:	7902                	ld	s2,32(sp)
+    80203aa2:	69e2                	ld	s3,24(sp)
+    80203aa4:	6a42                	ld	s4,16(sp)
+    80203aa6:	6121                	addi	sp,sp,64
+    80203aa8:	8082                	ret
       release(&tickslock);
-    80203aa6:	00009517          	auipc	a0,0x9
-    80203aaa:	5a253503          	ld	a0,1442(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
-    80203aae:	ffffd097          	auipc	ra,0xffffd
-    80203ab2:	c6c080e7          	jalr	-916(ra) # 8020071a <release>
+    80203aaa:	00009517          	auipc	a0,0x9
+    80203aae:	59e53503          	ld	a0,1438(a0) # 8020d048 <_GLOBAL_OFFSET_TABLE_+0x30>
+    80203ab2:	ffffd097          	auipc	ra,0xffffd
+    80203ab6:	c68080e7          	jalr	-920(ra) # 8020071a <release>
       return -1;
-    80203ab6:	57fd                	li	a5,-1
-    80203ab8:	bff1                	j	80203a94 <sys_nanosleep+0xaa>
+    80203aba:	57fd                	li	a5,-1
+    80203abc:	bff1                	j	80203a98 <sys_nanosleep+0xaa>
 
-0000000080203aba <sys_sched_yield>:
+0000000080203abe <sys_sched_yield>:
 
 uint64
 sys_sched_yield(void){
-    80203aba:	1141                	addi	sp,sp,-16
-    80203abc:	e406                	sd	ra,8(sp)
-    80203abe:	e022                	sd	s0,0(sp)
-    80203ac0:	0800                	addi	s0,sp,16
+    80203abe:	1141                	addi	sp,sp,-16
+    80203ac0:	e406                	sd	ra,8(sp)
+    80203ac2:	e022                	sd	s0,0(sp)
+    80203ac4:	0800                	addi	s0,sp,16
   yield();
-    80203ac2:	fffff097          	auipc	ra,0xfffff
-    80203ac6:	91a080e7          	jalr	-1766(ra) # 802023dc <yield>
+    80203ac6:	fffff097          	auipc	ra,0xfffff
+    80203aca:	910080e7          	jalr	-1776(ra) # 802023d6 <yield>
   return 0;
 }
-    80203aca:	4501                	li	a0,0
-    80203acc:	60a2                	ld	ra,8(sp)
-    80203ace:	6402                	ld	s0,0(sp)
-    80203ad0:	0141                	addi	sp,sp,16
-    80203ad2:	8082                	ret
+    80203ace:	4501                	li	a0,0
+    80203ad0:	60a2                	ld	ra,8(sp)
+    80203ad2:	6402                	ld	s0,0(sp)
+    80203ad4:	0141                	addi	sp,sp,16
+    80203ad6:	8082                	ret
 
-0000000080203ad4 <sys_brk>:
+0000000080203ad8 <sys_brk>:
 
 uint64
 sys_brk(void)
 {
-    80203ad4:	1101                	addi	sp,sp,-32
-    80203ad6:	ec06                	sd	ra,24(sp)
-    80203ad8:	e822                	sd	s0,16(sp)
-    80203ada:	1000                	addi	s0,sp,32
+    80203ad8:	1101                	addi	sp,sp,-32
+    80203ada:	ec06                	sd	ra,24(sp)
+    80203adc:	e822                	sd	s0,16(sp)
+    80203ade:	1000                	addi	s0,sp,32
   int origin_addr;
   int new_addr;
   int n;
 
   if(argint(0, &new_addr) < 0)
-    80203adc:	fec40593          	addi	a1,s0,-20
-    80203ae0:	4501                	li	a0,0
-    80203ae2:	00000097          	auipc	ra,0x0
-    80203ae6:	822080e7          	jalr	-2014(ra) # 80203304 <argint>
-    80203aea:	02054c63          	bltz	a0,80203b22 <sys_brk+0x4e>
+    80203ae0:	fec40593          	addi	a1,s0,-20
+    80203ae4:	4501                	li	a0,0
+    80203ae6:	00000097          	auipc	ra,0x0
+    80203aea:	822080e7          	jalr	-2014(ra) # 80203308 <argint>
+    80203aee:	02054c63          	bltz	a0,80203b26 <sys_brk+0x4e>
     return -1;
   if(new_addr == 0)
-    80203aee:	fec42783          	lw	a5,-20(s0)
-    80203af2:	c395                	beqz	a5,80203b16 <sys_brk+0x42>
+    80203af2:	fec42783          	lw	a5,-20(s0)
+    80203af6:	c395                	beqz	a5,80203b1a <sys_brk+0x42>
     return myproc()->sz;
   origin_addr = myproc()->sz;
-    80203af4:	ffffe097          	auipc	ra,0xffffe
-    80203af8:	f48080e7          	jalr	-184(ra) # 80201a3c <myproc>
-    80203afc:	653c                	ld	a5,72(a0)
+    80203af8:	ffffe097          	auipc	ra,0xffffe
+    80203afc:	f44080e7          	jalr	-188(ra) # 80201a3c <myproc>
+    80203b00:	653c                	ld	a5,72(a0)
   n = new_addr - origin_addr;
-    80203afe:	fec42503          	lw	a0,-20(s0)
+    80203b02:	fec42503          	lw	a0,-20(s0)
   if(growproc(n) < 0)
-    80203b02:	9d1d                	subw	a0,a0,a5
-    80203b04:	ffffe097          	auipc	ra,0xffffe
-    80203b08:	2e4080e7          	jalr	740(ra) # 80201de8 <growproc>
-    80203b0c:	957d                	srai	a0,a0,0x3f
+    80203b06:	9d1d                	subw	a0,a0,a5
+    80203b08:	ffffe097          	auipc	ra,0xffffe
+    80203b0c:	2da080e7          	jalr	730(ra) # 80201de2 <growproc>
+    80203b10:	957d                	srai	a0,a0,0x3f
     return -1;
   return 0;
-    80203b0e:	60e2                	ld	ra,24(sp)
-    80203b10:	6442                	ld	s0,16(sp)
-    80203b12:	6105                	addi	sp,sp,32
-    80203b14:	8082                	ret
+    80203b12:	60e2                	ld	ra,24(sp)
+    80203b14:	6442                	ld	s0,16(sp)
+    80203b16:	6105                	addi	sp,sp,32
+    80203b18:	8082                	ret
     return myproc()->sz;
-    80203b16:	ffffe097          	auipc	ra,0xffffe
-    80203b1a:	f26080e7          	jalr	-218(ra) # 80201a3c <myproc>
-    80203b1e:	6528                	ld	a0,72(a0)
-    80203b20:	b7fd                	j	80203b0e <sys_brk+0x3a>
+    80203b1a:	ffffe097          	auipc	ra,0xffffe
+    80203b1e:	f22080e7          	jalr	-222(ra) # 80201a3c <myproc>
+    80203b22:	6528                	ld	a0,72(a0)
+    80203b24:	b7fd                	j	80203b12 <sys_brk+0x3a>
     return -1;
-    80203b22:	557d                	li	a0,-1
-    80203b24:	b7ed                	j	80203b0e <sys_brk+0x3a>
+    80203b26:	557d                	li	a0,-1
+    80203b28:	b7ed                	j	80203b12 <sys_brk+0x3a>
 
-0000000080203b26 <binit>:
+0000000080203b2a <binit>:
   struct buf head;
 } bcache;
 
 void
 binit(void)
 {
-    80203b26:	7139                	addi	sp,sp,-64
-    80203b28:	fc06                	sd	ra,56(sp)
-    80203b2a:	f822                	sd	s0,48(sp)
-    80203b2c:	f426                	sd	s1,40(sp)
-    80203b2e:	f04a                	sd	s2,32(sp)
-    80203b30:	ec4e                	sd	s3,24(sp)
-    80203b32:	e852                	sd	s4,16(sp)
-    80203b34:	e456                	sd	s5,8(sp)
-    80203b36:	0080                	addi	s0,sp,64
+    80203b2a:	7139                	addi	sp,sp,-64
+    80203b2c:	fc06                	sd	ra,56(sp)
+    80203b2e:	f822                	sd	s0,48(sp)
+    80203b30:	f426                	sd	s1,40(sp)
+    80203b32:	f04a                	sd	s2,32(sp)
+    80203b34:	ec4e                	sd	s3,24(sp)
+    80203b36:	e852                	sd	s4,16(sp)
+    80203b38:	e456                	sd	s5,8(sp)
+    80203b3a:	0080                	addi	s0,sp,64
   struct buf *b;
 
   initlock(&bcache.lock, "bcache");
-    80203b38:	00007597          	auipc	a1,0x7
-    80203b3c:	12858593          	addi	a1,a1,296 # 8020ac60 <digits+0x8e0>
-    80203b40:	00029517          	auipc	a0,0x29
-    80203b44:	71050513          	addi	a0,a0,1808 # 8022d250 <bcache>
-    80203b48:	ffffd097          	auipc	ra,0xffffd
-    80203b4c:	b3a080e7          	jalr	-1222(ra) # 80200682 <initlock>
+    80203b3c:	00007597          	auipc	a1,0x7
+    80203b40:	12458593          	addi	a1,a1,292 # 8020ac60 <digits+0x8e0>
+    80203b44:	00029517          	auipc	a0,0x29
+    80203b48:	70c50513          	addi	a0,a0,1804 # 8022d250 <bcache>
+    80203b4c:	ffffd097          	auipc	ra,0xffffd
+    80203b50:	b36080e7          	jalr	-1226(ra) # 80200682 <initlock>
 
   // Create linked list of buffers
   bcache.head.prev = &bcache.head;
-    80203b50:	0002d797          	auipc	a5,0x2d
-    80203b54:	70078793          	addi	a5,a5,1792 # 80231250 <bcache+0x4000>
-    80203b58:	0002e717          	auipc	a4,0x2e
-    80203b5c:	d6070713          	addi	a4,a4,-672 # 802318b8 <bcache+0x4668>
-    80203b60:	6ae7b823          	sd	a4,1712(a5)
+    80203b54:	0002d797          	auipc	a5,0x2d
+    80203b58:	6fc78793          	addi	a5,a5,1788 # 80231250 <bcache+0x4000>
+    80203b5c:	0002e717          	auipc	a4,0x2e
+    80203b60:	d5c70713          	addi	a4,a4,-676 # 802318b8 <bcache+0x4668>
+    80203b64:	6ae7b823          	sd	a4,1712(a5)
   bcache.head.next = &bcache.head;
-    80203b64:	6ae7bc23          	sd	a4,1720(a5)
+    80203b68:	6ae7bc23          	sd	a4,1720(a5)
   for(b = bcache.buf; b < bcache.buf+NBUF; b++){
-    80203b68:	00029497          	auipc	s1,0x29
-    80203b6c:	70048493          	addi	s1,s1,1792 # 8022d268 <bcache+0x18>
+    80203b6c:	00029497          	auipc	s1,0x29
+    80203b70:	6fc48493          	addi	s1,s1,1788 # 8022d268 <bcache+0x18>
     b->refcnt = 0;
     b->sectorno = ~0;
-    80203b70:	5a7d                	li	s4,-1
+    80203b74:	5a7d                	li	s4,-1
     b->dev = ~0;
     b->next = bcache.head.next;
-    80203b72:	893e                	mv	s2,a5
+    80203b76:	893e                	mv	s2,a5
     b->prev = &bcache.head;
-    80203b74:	89ba                	mv	s3,a4
+    80203b78:	89ba                	mv	s3,a4
     initsleeplock(&b->lock, "buffer");
-    80203b76:	00007a97          	auipc	s5,0x7
-    80203b7a:	0f2a8a93          	addi	s5,s5,242 # 8020ac68 <digits+0x8e8>
+    80203b7a:	00007a97          	auipc	s5,0x7
+    80203b7e:	0eea8a93          	addi	s5,s5,238 # 8020ac68 <digits+0x8e8>
     b->refcnt = 0;
-    80203b7e:	0404a023          	sw	zero,64(s1)
+    80203b82:	0404a023          	sw	zero,64(s1)
     b->sectorno = ~0;
-    80203b82:	0144a623          	sw	s4,12(s1)
+    80203b86:	0144a623          	sw	s4,12(s1)
     b->dev = ~0;
-    80203b86:	0144a423          	sw	s4,8(s1)
+    80203b8a:	0144a423          	sw	s4,8(s1)
     b->next = bcache.head.next;
-    80203b8a:	6b893783          	ld	a5,1720(s2)
-    80203b8e:	e8bc                	sd	a5,80(s1)
+    80203b8e:	6b893783          	ld	a5,1720(s2)
+    80203b92:	e8bc                	sd	a5,80(s1)
     b->prev = &bcache.head;
-    80203b90:	0534b423          	sd	s3,72(s1)
+    80203b94:	0534b423          	sd	s3,72(s1)
     initsleeplock(&b->lock, "buffer");
-    80203b94:	85d6                	mv	a1,s5
-    80203b96:	01048513          	addi	a0,s1,16
-    80203b9a:	00000097          	auipc	ra,0x0
-    80203b9e:	26e080e7          	jalr	622(ra) # 80203e08 <initsleeplock>
+    80203b98:	85d6                	mv	a1,s5
+    80203b9a:	01048513          	addi	a0,s1,16
+    80203b9e:	00000097          	auipc	ra,0x0
+    80203ba2:	26e080e7          	jalr	622(ra) # 80203e0c <initsleeplock>
     bcache.head.next->prev = b;
-    80203ba2:	6b893783          	ld	a5,1720(s2)
-    80203ba6:	e7a4                	sd	s1,72(a5)
+    80203ba6:	6b893783          	ld	a5,1720(s2)
+    80203baa:	e7a4                	sd	s1,72(a5)
     bcache.head.next = b;
-    80203ba8:	6a993c23          	sd	s1,1720(s2)
+    80203bac:	6a993c23          	sd	s1,1720(s2)
   for(b = bcache.buf; b < bcache.buf+NBUF; b++){
-    80203bac:	25848493          	addi	s1,s1,600
-    80203bb0:	fd3497e3          	bne	s1,s3,80203b7e <binit+0x58>
+    80203bb0:	25848493          	addi	s1,s1,600
+    80203bb4:	fd3497e3          	bne	s1,s3,80203b82 <binit+0x58>
   }
   #ifdef DEBUG
   printf("binit\n");
   #endif
 }
-    80203bb4:	70e2                	ld	ra,56(sp)
-    80203bb6:	7442                	ld	s0,48(sp)
-    80203bb8:	74a2                	ld	s1,40(sp)
-    80203bba:	7902                	ld	s2,32(sp)
-    80203bbc:	69e2                	ld	s3,24(sp)
-    80203bbe:	6a42                	ld	s4,16(sp)
-    80203bc0:	6aa2                	ld	s5,8(sp)
-    80203bc2:	6121                	addi	sp,sp,64
-    80203bc4:	8082                	ret
-
-0000000080203bc6 <bread>:
+    80203bb8:	70e2                	ld	ra,56(sp)
+    80203bba:	7442                	ld	s0,48(sp)
+    80203bbc:	74a2                	ld	s1,40(sp)
+    80203bbe:	7902                	ld	s2,32(sp)
+    80203bc0:	69e2                	ld	s3,24(sp)
+    80203bc2:	6a42                	ld	s4,16(sp)
+    80203bc4:	6aa2                	ld	s5,8(sp)
+    80203bc6:	6121                	addi	sp,sp,64
+    80203bc8:	8082                	ret
+
+0000000080203bca <bread>:
   panic("bget: no buffers");
 }
 
 // Return a locked buf with the contents of the indicated block.
 struct buf* 
 bread(uint dev, uint sectorno) {
-    80203bc6:	7179                	addi	sp,sp,-48
-    80203bc8:	f406                	sd	ra,40(sp)
-    80203bca:	f022                	sd	s0,32(sp)
-    80203bcc:	ec26                	sd	s1,24(sp)
-    80203bce:	e84a                	sd	s2,16(sp)
-    80203bd0:	e44e                	sd	s3,8(sp)
-    80203bd2:	1800                	addi	s0,sp,48
-    80203bd4:	892a                	mv	s2,a0
-    80203bd6:	89ae                	mv	s3,a1
+    80203bca:	7179                	addi	sp,sp,-48
+    80203bcc:	f406                	sd	ra,40(sp)
+    80203bce:	f022                	sd	s0,32(sp)
+    80203bd0:	ec26                	sd	s1,24(sp)
+    80203bd2:	e84a                	sd	s2,16(sp)
+    80203bd4:	e44e                	sd	s3,8(sp)
+    80203bd6:	1800                	addi	s0,sp,48
+    80203bd8:	892a                	mv	s2,a0
+    80203bda:	89ae                	mv	s3,a1
   acquire(&bcache.lock);
-    80203bd8:	00029517          	auipc	a0,0x29
-    80203bdc:	67850513          	addi	a0,a0,1656 # 8022d250 <bcache>
-    80203be0:	ffffd097          	auipc	ra,0xffffd
-    80203be4:	ae6080e7          	jalr	-1306(ra) # 802006c6 <acquire>
+    80203bdc:	00029517          	auipc	a0,0x29
+    80203be0:	67450513          	addi	a0,a0,1652 # 8022d250 <bcache>
+    80203be4:	ffffd097          	auipc	ra,0xffffd
+    80203be8:	ae2080e7          	jalr	-1310(ra) # 802006c6 <acquire>
   for(b = bcache.head.next; b != &bcache.head; b = b->next){
-    80203be8:	0002e497          	auipc	s1,0x2e
-    80203bec:	d204b483          	ld	s1,-736(s1) # 80231908 <bcache+0x46b8>
-    80203bf0:	0002e797          	auipc	a5,0x2e
-    80203bf4:	cc878793          	addi	a5,a5,-824 # 802318b8 <bcache+0x4668>
-    80203bf8:	02f48f63          	beq	s1,a5,80203c36 <bread+0x70>
-    80203bfc:	873e                	mv	a4,a5
-    80203bfe:	a021                	j	80203c06 <bread+0x40>
-    80203c00:	68a4                	ld	s1,80(s1)
-    80203c02:	02e48a63          	beq	s1,a4,80203c36 <bread+0x70>
+    80203bec:	0002e497          	auipc	s1,0x2e
+    80203bf0:	d1c4b483          	ld	s1,-740(s1) # 80231908 <bcache+0x46b8>
+    80203bf4:	0002e797          	auipc	a5,0x2e
+    80203bf8:	cc478793          	addi	a5,a5,-828 # 802318b8 <bcache+0x4668>
+    80203bfc:	02f48f63          	beq	s1,a5,80203c3a <bread+0x70>
+    80203c00:	873e                	mv	a4,a5
+    80203c02:	a021                	j	80203c0a <bread+0x40>
+    80203c04:	68a4                	ld	s1,80(s1)
+    80203c06:	02e48a63          	beq	s1,a4,80203c3a <bread+0x70>
     if(b->dev == dev && b->sectorno == sectorno){
-    80203c06:	449c                	lw	a5,8(s1)
-    80203c08:	ff279ce3          	bne	a5,s2,80203c00 <bread+0x3a>
-    80203c0c:	44dc                	lw	a5,12(s1)
-    80203c0e:	ff3799e3          	bne	a5,s3,80203c00 <bread+0x3a>
+    80203c0a:	449c                	lw	a5,8(s1)
+    80203c0c:	ff279ce3          	bne	a5,s2,80203c04 <bread+0x3a>
+    80203c10:	44dc                	lw	a5,12(s1)
+    80203c12:	ff3799e3          	bne	a5,s3,80203c04 <bread+0x3a>
       b->refcnt++;
-    80203c12:	40bc                	lw	a5,64(s1)
-    80203c14:	2785                	addiw	a5,a5,1
-    80203c16:	c0bc                	sw	a5,64(s1)
+    80203c16:	40bc                	lw	a5,64(s1)
+    80203c18:	2785                	addiw	a5,a5,1
+    80203c1a:	c0bc                	sw	a5,64(s1)
       release(&bcache.lock);
-    80203c18:	00029517          	auipc	a0,0x29
-    80203c1c:	63850513          	addi	a0,a0,1592 # 8022d250 <bcache>
-    80203c20:	ffffd097          	auipc	ra,0xffffd
-    80203c24:	afa080e7          	jalr	-1286(ra) # 8020071a <release>
+    80203c1c:	00029517          	auipc	a0,0x29
+    80203c20:	63450513          	addi	a0,a0,1588 # 8022d250 <bcache>
+    80203c24:	ffffd097          	auipc	ra,0xffffd
+    80203c28:	af6080e7          	jalr	-1290(ra) # 8020071a <release>
       acquiresleep(&b->lock);
-    80203c28:	01048513          	addi	a0,s1,16
-    80203c2c:	00000097          	auipc	ra,0x0
-    80203c30:	216080e7          	jalr	534(ra) # 80203e42 <acquiresleep>
+    80203c2c:	01048513          	addi	a0,s1,16
+    80203c30:	00000097          	auipc	ra,0x0
+    80203c34:	216080e7          	jalr	534(ra) # 80203e46 <acquiresleep>
       return b;
-    80203c34:	a8b9                	j	80203c92 <bread+0xcc>
+    80203c38:	a8b9                	j	80203c96 <bread+0xcc>
   for(b = bcache.head.prev; b != &bcache.head; b = b->prev){
-    80203c36:	0002e497          	auipc	s1,0x2e
-    80203c3a:	cca4b483          	ld	s1,-822(s1) # 80231900 <bcache+0x46b0>
-    80203c3e:	0002e797          	auipc	a5,0x2e
-    80203c42:	c7a78793          	addi	a5,a5,-902 # 802318b8 <bcache+0x4668>
-    80203c46:	00f48863          	beq	s1,a5,80203c56 <bread+0x90>
-    80203c4a:	873e                	mv	a4,a5
+    80203c3a:	0002e497          	auipc	s1,0x2e
+    80203c3e:	cc64b483          	ld	s1,-826(s1) # 80231900 <bcache+0x46b0>
+    80203c42:	0002e797          	auipc	a5,0x2e
+    80203c46:	c7678793          	addi	a5,a5,-906 # 802318b8 <bcache+0x4668>
+    80203c4a:	00f48863          	beq	s1,a5,80203c5a <bread+0x90>
+    80203c4e:	873e                	mv	a4,a5
     if(b->refcnt == 0) {
-    80203c4c:	40bc                	lw	a5,64(s1)
-    80203c4e:	cf81                	beqz	a5,80203c66 <bread+0xa0>
+    80203c50:	40bc                	lw	a5,64(s1)
+    80203c52:	cf81                	beqz	a5,80203c6a <bread+0xa0>
   for(b = bcache.head.prev; b != &bcache.head; b = b->prev){
-    80203c50:	64a4                	ld	s1,72(s1)
-    80203c52:	fee49de3          	bne	s1,a4,80203c4c <bread+0x86>
+    80203c54:	64a4                	ld	s1,72(s1)
+    80203c56:	fee49de3          	bne	s1,a4,80203c50 <bread+0x86>
   panic("bget: no buffers");
-    80203c56:	00007517          	auipc	a0,0x7
-    80203c5a:	01a50513          	addi	a0,a0,26 # 8020ac70 <digits+0x8f0>
-    80203c5e:	ffffc097          	auipc	ra,0xffffc
-    80203c62:	4e6080e7          	jalr	1254(ra) # 80200144 <panic>
+    80203c5a:	00007517          	auipc	a0,0x7
+    80203c5e:	01650513          	addi	a0,a0,22 # 8020ac70 <digits+0x8f0>
+    80203c62:	ffffc097          	auipc	ra,0xffffc
+    80203c66:	4e2080e7          	jalr	1250(ra) # 80200144 <panic>
       b->dev = dev;
-    80203c66:	0124a423          	sw	s2,8(s1)
+    80203c6a:	0124a423          	sw	s2,8(s1)
       b->sectorno = sectorno;
-    80203c6a:	0134a623          	sw	s3,12(s1)
+    80203c6e:	0134a623          	sw	s3,12(s1)
       b->valid = 0;
-    80203c6e:	0004a023          	sw	zero,0(s1)
+    80203c72:	0004a023          	sw	zero,0(s1)
       b->refcnt = 1;
-    80203c72:	4785                	li	a5,1
-    80203c74:	c0bc                	sw	a5,64(s1)
+    80203c76:	4785                	li	a5,1
+    80203c78:	c0bc                	sw	a5,64(s1)
       release(&bcache.lock);
-    80203c76:	00029517          	auipc	a0,0x29
-    80203c7a:	5da50513          	addi	a0,a0,1498 # 8022d250 <bcache>
-    80203c7e:	ffffd097          	auipc	ra,0xffffd
-    80203c82:	a9c080e7          	jalr	-1380(ra) # 8020071a <release>
+    80203c7a:	00029517          	auipc	a0,0x29
+    80203c7e:	5d650513          	addi	a0,a0,1494 # 8022d250 <bcache>
+    80203c82:	ffffd097          	auipc	ra,0xffffd
+    80203c86:	a98080e7          	jalr	-1384(ra) # 8020071a <release>
       acquiresleep(&b->lock);
-    80203c86:	01048513          	addi	a0,s1,16
-    80203c8a:	00000097          	auipc	ra,0x0
-    80203c8e:	1b8080e7          	jalr	440(ra) # 80203e42 <acquiresleep>
+    80203c8a:	01048513          	addi	a0,s1,16
+    80203c8e:	00000097          	auipc	ra,0x0
+    80203c92:	1b8080e7          	jalr	440(ra) # 80203e46 <acquiresleep>
   struct buf *b;
 
   b = bget(dev, sectorno);
   if (!b->valid) {
-    80203c92:	409c                	lw	a5,0(s1)
-    80203c94:	cb89                	beqz	a5,80203ca6 <bread+0xe0>
+    80203c96:	409c                	lw	a5,0(s1)
+    80203c98:	cb89                	beqz	a5,80203caa <bread+0xe0>
     disk_read(b);
     b->valid = 1;
   }
 
   return b;
 }
-    80203c96:	8526                	mv	a0,s1
-    80203c98:	70a2                	ld	ra,40(sp)
-    80203c9a:	7402                	ld	s0,32(sp)
-    80203c9c:	64e2                	ld	s1,24(sp)
-    80203c9e:	6942                	ld	s2,16(sp)
-    80203ca0:	69a2                	ld	s3,8(sp)
-    80203ca2:	6145                	addi	sp,sp,48
-    80203ca4:	8082                	ret
+    80203c9a:	8526                	mv	a0,s1
+    80203c9c:	70a2                	ld	ra,40(sp)
+    80203c9e:	7402                	ld	s0,32(sp)
+    80203ca0:	64e2                	ld	s1,24(sp)
+    80203ca2:	6942                	ld	s2,16(sp)
+    80203ca4:	69a2                	ld	s3,8(sp)
+    80203ca6:	6145                	addi	sp,sp,48
+    80203ca8:	8082                	ret
     disk_read(b);
-    80203ca6:	8526                	mv	a0,s1
-    80203ca8:	00002097          	auipc	ra,0x2
-    80203cac:	27a080e7          	jalr	634(ra) # 80205f22 <disk_read>
+    80203caa:	8526                	mv	a0,s1
+    80203cac:	00002097          	auipc	ra,0x2
+    80203cb0:	236080e7          	jalr	566(ra) # 80205ee2 <disk_read>
     b->valid = 1;
-    80203cb0:	4785                	li	a5,1
-    80203cb2:	c09c                	sw	a5,0(s1)
+    80203cb4:	4785                	li	a5,1
+    80203cb6:	c09c                	sw	a5,0(s1)
   return b;
-    80203cb4:	b7cd                	j	80203c96 <bread+0xd0>
+    80203cb8:	b7cd                	j	80203c9a <bread+0xd0>
 
-0000000080203cb6 <bwrite>:
+0000000080203cba <bwrite>:
 
 // Write b's contents to disk.  Must be locked.
 void 
 bwrite(struct buf *b) {
-    80203cb6:	1101                	addi	sp,sp,-32
-    80203cb8:	ec06                	sd	ra,24(sp)
-    80203cba:	e822                	sd	s0,16(sp)
-    80203cbc:	e426                	sd	s1,8(sp)
-    80203cbe:	1000                	addi	s0,sp,32
-    80203cc0:	84aa                	mv	s1,a0
+    80203cba:	1101                	addi	sp,sp,-32
+    80203cbc:	ec06                	sd	ra,24(sp)
+    80203cbe:	e822                	sd	s0,16(sp)
+    80203cc0:	e426                	sd	s1,8(sp)
+    80203cc2:	1000                	addi	s0,sp,32
+    80203cc4:	84aa                	mv	s1,a0
   if(!holdingsleep(&b->lock))
-    80203cc2:	0541                	addi	a0,a0,16
-    80203cc4:	00000097          	auipc	ra,0x0
-    80203cc8:	218080e7          	jalr	536(ra) # 80203edc <holdingsleep>
-    80203ccc:	c919                	beqz	a0,80203ce2 <bwrite+0x2c>
+    80203cc6:	0541                	addi	a0,a0,16
+    80203cc8:	00000097          	auipc	ra,0x0
+    80203ccc:	218080e7          	jalr	536(ra) # 80203ee0 <holdingsleep>
+    80203cd0:	c919                	beqz	a0,80203ce6 <bwrite+0x2c>
     panic("bwrite");
   disk_write(b);
-    80203cce:	8526                	mv	a0,s1
-    80203cd0:	00002097          	auipc	ra,0x2
-    80203cd4:	26c080e7          	jalr	620(ra) # 80205f3c <disk_write>
+    80203cd2:	8526                	mv	a0,s1
+    80203cd4:	00002097          	auipc	ra,0x2
+    80203cd8:	228080e7          	jalr	552(ra) # 80205efc <disk_write>
 }
-    80203cd8:	60e2                	ld	ra,24(sp)
-    80203cda:	6442                	ld	s0,16(sp)
-    80203cdc:	64a2                	ld	s1,8(sp)
-    80203cde:	6105                	addi	sp,sp,32
-    80203ce0:	8082                	ret
+    80203cdc:	60e2                	ld	ra,24(sp)
+    80203cde:	6442                	ld	s0,16(sp)
+    80203ce0:	64a2                	ld	s1,8(sp)
+    80203ce2:	6105                	addi	sp,sp,32
+    80203ce4:	8082                	ret
     panic("bwrite");
-    80203ce2:	00007517          	auipc	a0,0x7
-    80203ce6:	fa650513          	addi	a0,a0,-90 # 8020ac88 <digits+0x908>
-    80203cea:	ffffc097          	auipc	ra,0xffffc
-    80203cee:	45a080e7          	jalr	1114(ra) # 80200144 <panic>
+    80203ce6:	00007517          	auipc	a0,0x7
+    80203cea:	fa250513          	addi	a0,a0,-94 # 8020ac88 <digits+0x908>
+    80203cee:	ffffc097          	auipc	ra,0xffffc
+    80203cf2:	456080e7          	jalr	1110(ra) # 80200144 <panic>
 
-0000000080203cf2 <brelse>:
+0000000080203cf6 <brelse>:
 
 // Release a locked buffer.
 // Move to the head of the most-recently-used list.
 void
 brelse(struct buf *b)
 {
-    80203cf2:	1101                	addi	sp,sp,-32
-    80203cf4:	ec06                	sd	ra,24(sp)
-    80203cf6:	e822                	sd	s0,16(sp)
-    80203cf8:	e426                	sd	s1,8(sp)
-    80203cfa:	e04a                	sd	s2,0(sp)
-    80203cfc:	1000                	addi	s0,sp,32
-    80203cfe:	84aa                	mv	s1,a0
+    80203cf6:	1101                	addi	sp,sp,-32
+    80203cf8:	ec06                	sd	ra,24(sp)
+    80203cfa:	e822                	sd	s0,16(sp)
+    80203cfc:	e426                	sd	s1,8(sp)
+    80203cfe:	e04a                	sd	s2,0(sp)
+    80203d00:	1000                	addi	s0,sp,32
+    80203d02:	84aa                	mv	s1,a0
   if(!holdingsleep(&b->lock))
-    80203d00:	01050913          	addi	s2,a0,16
-    80203d04:	854a                	mv	a0,s2
-    80203d06:	00000097          	auipc	ra,0x0
-    80203d0a:	1d6080e7          	jalr	470(ra) # 80203edc <holdingsleep>
-    80203d0e:	c92d                	beqz	a0,80203d80 <brelse+0x8e>
+    80203d04:	01050913          	addi	s2,a0,16
+    80203d08:	854a                	mv	a0,s2
+    80203d0a:	00000097          	auipc	ra,0x0
+    80203d0e:	1d6080e7          	jalr	470(ra) # 80203ee0 <holdingsleep>
+    80203d12:	c92d                	beqz	a0,80203d84 <brelse+0x8e>
     panic("brelse");
 
   releasesleep(&b->lock);
-    80203d10:	854a                	mv	a0,s2
-    80203d12:	00000097          	auipc	ra,0x0
-    80203d16:	186080e7          	jalr	390(ra) # 80203e98 <releasesleep>
+    80203d14:	854a                	mv	a0,s2
+    80203d16:	00000097          	auipc	ra,0x0
+    80203d1a:	186080e7          	jalr	390(ra) # 80203e9c <releasesleep>
 
   acquire(&bcache.lock);
-    80203d1a:	00029517          	auipc	a0,0x29
-    80203d1e:	53650513          	addi	a0,a0,1334 # 8022d250 <bcache>
-    80203d22:	ffffd097          	auipc	ra,0xffffd
-    80203d26:	9a4080e7          	jalr	-1628(ra) # 802006c6 <acquire>
+    80203d1e:	00029517          	auipc	a0,0x29
+    80203d22:	53250513          	addi	a0,a0,1330 # 8022d250 <bcache>
+    80203d26:	ffffd097          	auipc	ra,0xffffd
+    80203d2a:	9a0080e7          	jalr	-1632(ra) # 802006c6 <acquire>
   b->refcnt--;
-    80203d2a:	40bc                	lw	a5,64(s1)
-    80203d2c:	37fd                	addiw	a5,a5,-1
-    80203d2e:	0007871b          	sext.w	a4,a5
-    80203d32:	c0bc                	sw	a5,64(s1)
+    80203d2e:	40bc                	lw	a5,64(s1)
+    80203d30:	37fd                	addiw	a5,a5,-1
+    80203d32:	0007871b          	sext.w	a4,a5
+    80203d36:	c0bc                	sw	a5,64(s1)
   if (b->refcnt == 0) {
-    80203d34:	eb05                	bnez	a4,80203d64 <brelse+0x72>
+    80203d38:	eb05                	bnez	a4,80203d68 <brelse+0x72>
     // no one is waiting for it.
     b->next->prev = b->prev;
-    80203d36:	68bc                	ld	a5,80(s1)
-    80203d38:	64b8                	ld	a4,72(s1)
-    80203d3a:	e7b8                	sd	a4,72(a5)
+    80203d3a:	68bc                	ld	a5,80(s1)
+    80203d3c:	64b8                	ld	a4,72(s1)
+    80203d3e:	e7b8                	sd	a4,72(a5)
     b->prev->next = b->next;
-    80203d3c:	64bc                	ld	a5,72(s1)
-    80203d3e:	68b8                	ld	a4,80(s1)
-    80203d40:	ebb8                	sd	a4,80(a5)
+    80203d40:	64bc                	ld	a5,72(s1)
+    80203d42:	68b8                	ld	a4,80(s1)
+    80203d44:	ebb8                	sd	a4,80(a5)
     b->next = bcache.head.next;
-    80203d42:	0002d797          	auipc	a5,0x2d
-    80203d46:	50e78793          	addi	a5,a5,1294 # 80231250 <bcache+0x4000>
-    80203d4a:	6b87b703          	ld	a4,1720(a5)
-    80203d4e:	e8b8                	sd	a4,80(s1)
+    80203d46:	0002d797          	auipc	a5,0x2d
+    80203d4a:	50a78793          	addi	a5,a5,1290 # 80231250 <bcache+0x4000>
+    80203d4e:	6b87b703          	ld	a4,1720(a5)
+    80203d52:	e8b8                	sd	a4,80(s1)
     b->prev = &bcache.head;
-    80203d50:	0002e717          	auipc	a4,0x2e
-    80203d54:	b6870713          	addi	a4,a4,-1176 # 802318b8 <bcache+0x4668>
-    80203d58:	e4b8                	sd	a4,72(s1)
+    80203d54:	0002e717          	auipc	a4,0x2e
+    80203d58:	b6470713          	addi	a4,a4,-1180 # 802318b8 <bcache+0x4668>
+    80203d5c:	e4b8                	sd	a4,72(s1)
     bcache.head.next->prev = b;
-    80203d5a:	6b87b703          	ld	a4,1720(a5)
-    80203d5e:	e724                	sd	s1,72(a4)
+    80203d5e:	6b87b703          	ld	a4,1720(a5)
+    80203d62:	e724                	sd	s1,72(a4)
     bcache.head.next = b;
-    80203d60:	6a97bc23          	sd	s1,1720(a5)
+    80203d64:	6a97bc23          	sd	s1,1720(a5)
   }
   
   release(&bcache.lock);
-    80203d64:	00029517          	auipc	a0,0x29
-    80203d68:	4ec50513          	addi	a0,a0,1260 # 8022d250 <bcache>
-    80203d6c:	ffffd097          	auipc	ra,0xffffd
-    80203d70:	9ae080e7          	jalr	-1618(ra) # 8020071a <release>
+    80203d68:	00029517          	auipc	a0,0x29
+    80203d6c:	4e850513          	addi	a0,a0,1256 # 8022d250 <bcache>
+    80203d70:	ffffd097          	auipc	ra,0xffffd
+    80203d74:	9aa080e7          	jalr	-1622(ra) # 8020071a <release>
 }
-    80203d74:	60e2                	ld	ra,24(sp)
-    80203d76:	6442                	ld	s0,16(sp)
-    80203d78:	64a2                	ld	s1,8(sp)
-    80203d7a:	6902                	ld	s2,0(sp)
-    80203d7c:	6105                	addi	sp,sp,32
-    80203d7e:	8082                	ret
+    80203d78:	60e2                	ld	ra,24(sp)
+    80203d7a:	6442                	ld	s0,16(sp)
+    80203d7c:	64a2                	ld	s1,8(sp)
+    80203d7e:	6902                	ld	s2,0(sp)
+    80203d80:	6105                	addi	sp,sp,32
+    80203d82:	8082                	ret
     panic("brelse");
-    80203d80:	00007517          	auipc	a0,0x7
-    80203d84:	f1050513          	addi	a0,a0,-240 # 8020ac90 <digits+0x910>
-    80203d88:	ffffc097          	auipc	ra,0xffffc
-    80203d8c:	3bc080e7          	jalr	956(ra) # 80200144 <panic>
+    80203d84:	00007517          	auipc	a0,0x7
+    80203d88:	f0c50513          	addi	a0,a0,-244 # 8020ac90 <digits+0x910>
+    80203d8c:	ffffc097          	auipc	ra,0xffffc
+    80203d90:	3b8080e7          	jalr	952(ra) # 80200144 <panic>
 
-0000000080203d90 <bpin>:
+0000000080203d94 <bpin>:
 
 void
 bpin(struct buf *b) {
-    80203d90:	1101                	addi	sp,sp,-32
-    80203d92:	ec06                	sd	ra,24(sp)
-    80203d94:	e822                	sd	s0,16(sp)
-    80203d96:	e426                	sd	s1,8(sp)
-    80203d98:	1000                	addi	s0,sp,32
-    80203d9a:	84aa                	mv	s1,a0
+    80203d94:	1101                	addi	sp,sp,-32
+    80203d96:	ec06                	sd	ra,24(sp)
+    80203d98:	e822                	sd	s0,16(sp)
+    80203d9a:	e426                	sd	s1,8(sp)
+    80203d9c:	1000                	addi	s0,sp,32
+    80203d9e:	84aa                	mv	s1,a0
   acquire(&bcache.lock);
-    80203d9c:	00029517          	auipc	a0,0x29
-    80203da0:	4b450513          	addi	a0,a0,1204 # 8022d250 <bcache>
-    80203da4:	ffffd097          	auipc	ra,0xffffd
-    80203da8:	922080e7          	jalr	-1758(ra) # 802006c6 <acquire>
+    80203da0:	00029517          	auipc	a0,0x29
+    80203da4:	4b050513          	addi	a0,a0,1200 # 8022d250 <bcache>
+    80203da8:	ffffd097          	auipc	ra,0xffffd
+    80203dac:	91e080e7          	jalr	-1762(ra) # 802006c6 <acquire>
   b->refcnt++;
-    80203dac:	40bc                	lw	a5,64(s1)
-    80203dae:	2785                	addiw	a5,a5,1
-    80203db0:	c0bc                	sw	a5,64(s1)
+    80203db0:	40bc                	lw	a5,64(s1)
+    80203db2:	2785                	addiw	a5,a5,1
+    80203db4:	c0bc                	sw	a5,64(s1)
   release(&bcache.lock);
-    80203db2:	00029517          	auipc	a0,0x29
-    80203db6:	49e50513          	addi	a0,a0,1182 # 8022d250 <bcache>
-    80203dba:	ffffd097          	auipc	ra,0xffffd
-    80203dbe:	960080e7          	jalr	-1696(ra) # 8020071a <release>
+    80203db6:	00029517          	auipc	a0,0x29
+    80203dba:	49a50513          	addi	a0,a0,1178 # 8022d250 <bcache>
+    80203dbe:	ffffd097          	auipc	ra,0xffffd
+    80203dc2:	95c080e7          	jalr	-1700(ra) # 8020071a <release>
 }
-    80203dc2:	60e2                	ld	ra,24(sp)
-    80203dc4:	6442                	ld	s0,16(sp)
-    80203dc6:	64a2                	ld	s1,8(sp)
-    80203dc8:	6105                	addi	sp,sp,32
-    80203dca:	8082                	ret
+    80203dc6:	60e2                	ld	ra,24(sp)
+    80203dc8:	6442                	ld	s0,16(sp)
+    80203dca:	64a2                	ld	s1,8(sp)
+    80203dcc:	6105                	addi	sp,sp,32
+    80203dce:	8082                	ret
 
-0000000080203dcc <bunpin>:
+0000000080203dd0 <bunpin>:
 
 void
 bunpin(struct buf *b) {
-    80203dcc:	1101                	addi	sp,sp,-32
-    80203dce:	ec06                	sd	ra,24(sp)
-    80203dd0:	e822                	sd	s0,16(sp)
-    80203dd2:	e426                	sd	s1,8(sp)
-    80203dd4:	1000                	addi	s0,sp,32
-    80203dd6:	84aa                	mv	s1,a0
+    80203dd0:	1101                	addi	sp,sp,-32
+    80203dd2:	ec06                	sd	ra,24(sp)
+    80203dd4:	e822                	sd	s0,16(sp)
+    80203dd6:	e426                	sd	s1,8(sp)
+    80203dd8:	1000                	addi	s0,sp,32
+    80203dda:	84aa                	mv	s1,a0
   acquire(&bcache.lock);
-    80203dd8:	00029517          	auipc	a0,0x29
-    80203ddc:	47850513          	addi	a0,a0,1144 # 8022d250 <bcache>
-    80203de0:	ffffd097          	auipc	ra,0xffffd
-    80203de4:	8e6080e7          	jalr	-1818(ra) # 802006c6 <acquire>
+    80203ddc:	00029517          	auipc	a0,0x29
+    80203de0:	47450513          	addi	a0,a0,1140 # 8022d250 <bcache>
+    80203de4:	ffffd097          	auipc	ra,0xffffd
+    80203de8:	8e2080e7          	jalr	-1822(ra) # 802006c6 <acquire>
   b->refcnt--;
-    80203de8:	40bc                	lw	a5,64(s1)
-    80203dea:	37fd                	addiw	a5,a5,-1
-    80203dec:	c0bc                	sw	a5,64(s1)
+    80203dec:	40bc                	lw	a5,64(s1)
+    80203dee:	37fd                	addiw	a5,a5,-1
+    80203df0:	c0bc                	sw	a5,64(s1)
   release(&bcache.lock);
-    80203dee:	00029517          	auipc	a0,0x29
-    80203df2:	46250513          	addi	a0,a0,1122 # 8022d250 <bcache>
-    80203df6:	ffffd097          	auipc	ra,0xffffd
-    80203dfa:	924080e7          	jalr	-1756(ra) # 8020071a <release>
+    80203df2:	00029517          	auipc	a0,0x29
+    80203df6:	45e50513          	addi	a0,a0,1118 # 8022d250 <bcache>
+    80203dfa:	ffffd097          	auipc	ra,0xffffd
+    80203dfe:	920080e7          	jalr	-1760(ra) # 8020071a <release>
 }
-    80203dfe:	60e2                	ld	ra,24(sp)
-    80203e00:	6442                	ld	s0,16(sp)
-    80203e02:	64a2                	ld	s1,8(sp)
-    80203e04:	6105                	addi	sp,sp,32
-    80203e06:	8082                	ret
+    80203e02:	60e2                	ld	ra,24(sp)
+    80203e04:	6442                	ld	s0,16(sp)
+    80203e06:	64a2                	ld	s1,8(sp)
+    80203e08:	6105                	addi	sp,sp,32
+    80203e0a:	8082                	ret
 
-0000000080203e08 <initsleeplock>:
+0000000080203e0c <initsleeplock>:
 #include "include/proc.h"
 #include "include/sleeplock.h"
 
 void
 initsleeplock(struct sleeplock *lk, char *name)
 {
-    80203e08:	1101                	addi	sp,sp,-32
-    80203e0a:	ec06                	sd	ra,24(sp)
-    80203e0c:	e822                	sd	s0,16(sp)
-    80203e0e:	e426                	sd	s1,8(sp)
-    80203e10:	e04a                	sd	s2,0(sp)
-    80203e12:	1000                	addi	s0,sp,32
-    80203e14:	84aa                	mv	s1,a0
-    80203e16:	892e                	mv	s2,a1
+    80203e0c:	1101                	addi	sp,sp,-32
+    80203e0e:	ec06                	sd	ra,24(sp)
+    80203e10:	e822                	sd	s0,16(sp)
+    80203e12:	e426                	sd	s1,8(sp)
+    80203e14:	e04a                	sd	s2,0(sp)
+    80203e16:	1000                	addi	s0,sp,32
+    80203e18:	84aa                	mv	s1,a0
+    80203e1a:	892e                	mv	s2,a1
   initlock(&lk->lk, "sleep lock");
-    80203e18:	00007597          	auipc	a1,0x7
-    80203e1c:	e8058593          	addi	a1,a1,-384 # 8020ac98 <digits+0x918>
-    80203e20:	0521                	addi	a0,a0,8
-    80203e22:	ffffd097          	auipc	ra,0xffffd
-    80203e26:	860080e7          	jalr	-1952(ra) # 80200682 <initlock>
+    80203e1c:	00007597          	auipc	a1,0x7
+    80203e20:	e7c58593          	addi	a1,a1,-388 # 8020ac98 <digits+0x918>
+    80203e24:	0521                	addi	a0,a0,8
+    80203e26:	ffffd097          	auipc	ra,0xffffd
+    80203e2a:	85c080e7          	jalr	-1956(ra) # 80200682 <initlock>
   lk->name = name;
-    80203e2a:	0324b023          	sd	s2,32(s1)
+    80203e2e:	0324b023          	sd	s2,32(s1)
   lk->locked = 0;
-    80203e2e:	0004a023          	sw	zero,0(s1)
+    80203e32:	0004a023          	sw	zero,0(s1)
   lk->pid = 0;
-    80203e32:	0204a423          	sw	zero,40(s1)
+    80203e36:	0204a423          	sw	zero,40(s1)
 }
-    80203e36:	60e2                	ld	ra,24(sp)
-    80203e38:	6442                	ld	s0,16(sp)
-    80203e3a:	64a2                	ld	s1,8(sp)
-    80203e3c:	6902                	ld	s2,0(sp)
-    80203e3e:	6105                	addi	sp,sp,32
-    80203e40:	8082                	ret
+    80203e3a:	60e2                	ld	ra,24(sp)
+    80203e3c:	6442                	ld	s0,16(sp)
+    80203e3e:	64a2                	ld	s1,8(sp)
+    80203e40:	6902                	ld	s2,0(sp)
+    80203e42:	6105                	addi	sp,sp,32
+    80203e44:	8082                	ret
 
-0000000080203e42 <acquiresleep>:
+0000000080203e46 <acquiresleep>:
 
 void
 acquiresleep(struct sleeplock *lk)
 {
-    80203e42:	1101                	addi	sp,sp,-32
-    80203e44:	ec06                	sd	ra,24(sp)
-    80203e46:	e822                	sd	s0,16(sp)
-    80203e48:	e426                	sd	s1,8(sp)
-    80203e4a:	e04a                	sd	s2,0(sp)
-    80203e4c:	1000                	addi	s0,sp,32
-    80203e4e:	84aa                	mv	s1,a0
+    80203e46:	1101                	addi	sp,sp,-32
+    80203e48:	ec06                	sd	ra,24(sp)
+    80203e4a:	e822                	sd	s0,16(sp)
+    80203e4c:	e426                	sd	s1,8(sp)
+    80203e4e:	e04a                	sd	s2,0(sp)
+    80203e50:	1000                	addi	s0,sp,32
+    80203e52:	84aa                	mv	s1,a0
   acquire(&lk->lk);
-    80203e50:	00850913          	addi	s2,a0,8
-    80203e54:	854a                	mv	a0,s2
-    80203e56:	ffffd097          	auipc	ra,0xffffd
-    80203e5a:	870080e7          	jalr	-1936(ra) # 802006c6 <acquire>
+    80203e54:	00850913          	addi	s2,a0,8
+    80203e58:	854a                	mv	a0,s2
+    80203e5a:	ffffd097          	auipc	ra,0xffffd
+    80203e5e:	86c080e7          	jalr	-1940(ra) # 802006c6 <acquire>
   while (lk->locked) {
-    80203e5e:	409c                	lw	a5,0(s1)
-    80203e60:	cb89                	beqz	a5,80203e72 <acquiresleep+0x30>
+    80203e62:	409c                	lw	a5,0(s1)
+    80203e64:	cb89                	beqz	a5,80203e76 <acquiresleep+0x30>
     sleep(lk, &lk->lk);
-    80203e62:	85ca                	mv	a1,s2
-    80203e64:	8526                	mv	a0,s1
-    80203e66:	ffffe097          	auipc	ra,0xffffe
-    80203e6a:	5b2080e7          	jalr	1458(ra) # 80202418 <sleep>
+    80203e66:	85ca                	mv	a1,s2
+    80203e68:	8526                	mv	a0,s1
+    80203e6a:	ffffe097          	auipc	ra,0xffffe
+    80203e6e:	5a8080e7          	jalr	1448(ra) # 80202412 <sleep>
   while (lk->locked) {
-    80203e6e:	409c                	lw	a5,0(s1)
-    80203e70:	fbed                	bnez	a5,80203e62 <acquiresleep+0x20>
+    80203e72:	409c                	lw	a5,0(s1)
+    80203e74:	fbed                	bnez	a5,80203e66 <acquiresleep+0x20>
   }
   lk->locked = 1;
-    80203e72:	4785                	li	a5,1
-    80203e74:	c09c                	sw	a5,0(s1)
+    80203e76:	4785                	li	a5,1
+    80203e78:	c09c                	sw	a5,0(s1)
   lk->pid = myproc()->pid;
-    80203e76:	ffffe097          	auipc	ra,0xffffe
-    80203e7a:	bc6080e7          	jalr	-1082(ra) # 80201a3c <myproc>
-    80203e7e:	5d1c                	lw	a5,56(a0)
-    80203e80:	d49c                	sw	a5,40(s1)
+    80203e7a:	ffffe097          	auipc	ra,0xffffe
+    80203e7e:	bc2080e7          	jalr	-1086(ra) # 80201a3c <myproc>
+    80203e82:	5d1c                	lw	a5,56(a0)
+    80203e84:	d49c                	sw	a5,40(s1)
   release(&lk->lk);
-    80203e82:	854a                	mv	a0,s2
-    80203e84:	ffffd097          	auipc	ra,0xffffd
-    80203e88:	896080e7          	jalr	-1898(ra) # 8020071a <release>
+    80203e86:	854a                	mv	a0,s2
+    80203e88:	ffffd097          	auipc	ra,0xffffd
+    80203e8c:	892080e7          	jalr	-1902(ra) # 8020071a <release>
 }
-    80203e8c:	60e2                	ld	ra,24(sp)
-    80203e8e:	6442                	ld	s0,16(sp)
-    80203e90:	64a2                	ld	s1,8(sp)
-    80203e92:	6902                	ld	s2,0(sp)
-    80203e94:	6105                	addi	sp,sp,32
-    80203e96:	8082                	ret
+    80203e90:	60e2                	ld	ra,24(sp)
+    80203e92:	6442                	ld	s0,16(sp)
+    80203e94:	64a2                	ld	s1,8(sp)
+    80203e96:	6902                	ld	s2,0(sp)
+    80203e98:	6105                	addi	sp,sp,32
+    80203e9a:	8082                	ret
 
-0000000080203e98 <releasesleep>:
+0000000080203e9c <releasesleep>:
 
 void
 releasesleep(struct sleeplock *lk)
 {
-    80203e98:	1101                	addi	sp,sp,-32
-    80203e9a:	ec06                	sd	ra,24(sp)
-    80203e9c:	e822                	sd	s0,16(sp)
-    80203e9e:	e426                	sd	s1,8(sp)
-    80203ea0:	e04a                	sd	s2,0(sp)
-    80203ea2:	1000                	addi	s0,sp,32
-    80203ea4:	84aa                	mv	s1,a0
+    80203e9c:	1101                	addi	sp,sp,-32
+    80203e9e:	ec06                	sd	ra,24(sp)
+    80203ea0:	e822                	sd	s0,16(sp)
+    80203ea2:	e426                	sd	s1,8(sp)
+    80203ea4:	e04a                	sd	s2,0(sp)
+    80203ea6:	1000                	addi	s0,sp,32
+    80203ea8:	84aa                	mv	s1,a0
   acquire(&lk->lk);
-    80203ea6:	00850913          	addi	s2,a0,8
-    80203eaa:	854a                	mv	a0,s2
-    80203eac:	ffffd097          	auipc	ra,0xffffd
-    80203eb0:	81a080e7          	jalr	-2022(ra) # 802006c6 <acquire>
+    80203eaa:	00850913          	addi	s2,a0,8
+    80203eae:	854a                	mv	a0,s2
+    80203eb0:	ffffd097          	auipc	ra,0xffffd
+    80203eb4:	816080e7          	jalr	-2026(ra) # 802006c6 <acquire>
   lk->locked = 0;
-    80203eb4:	0004a023          	sw	zero,0(s1)
+    80203eb8:	0004a023          	sw	zero,0(s1)
   lk->pid = 0;
-    80203eb8:	0204a423          	sw	zero,40(s1)
+    80203ebc:	0204a423          	sw	zero,40(s1)
   wakeup(lk);
-    80203ebc:	8526                	mv	a0,s1
-    80203ebe:	fffff097          	auipc	ra,0xfffff
-    80203ec2:	842080e7          	jalr	-1982(ra) # 80202700 <wakeup>
+    80203ec0:	8526                	mv	a0,s1
+    80203ec2:	fffff097          	auipc	ra,0xfffff
+    80203ec6:	838080e7          	jalr	-1992(ra) # 802026fa <wakeup>
   release(&lk->lk);
-    80203ec6:	854a                	mv	a0,s2
-    80203ec8:	ffffd097          	auipc	ra,0xffffd
-    80203ecc:	852080e7          	jalr	-1966(ra) # 8020071a <release>
+    80203eca:	854a                	mv	a0,s2
+    80203ecc:	ffffd097          	auipc	ra,0xffffd
+    80203ed0:	84e080e7          	jalr	-1970(ra) # 8020071a <release>
 }
-    80203ed0:	60e2                	ld	ra,24(sp)
-    80203ed2:	6442                	ld	s0,16(sp)
-    80203ed4:	64a2                	ld	s1,8(sp)
-    80203ed6:	6902                	ld	s2,0(sp)
-    80203ed8:	6105                	addi	sp,sp,32
-    80203eda:	8082                	ret
+    80203ed4:	60e2                	ld	ra,24(sp)
+    80203ed6:	6442                	ld	s0,16(sp)
+    80203ed8:	64a2                	ld	s1,8(sp)
+    80203eda:	6902                	ld	s2,0(sp)
+    80203edc:	6105                	addi	sp,sp,32
+    80203ede:	8082                	ret
 
-0000000080203edc <holdingsleep>:
+0000000080203ee0 <holdingsleep>:
 
 int
 holdingsleep(struct sleeplock *lk)
 {
-    80203edc:	7179                	addi	sp,sp,-48
-    80203ede:	f406                	sd	ra,40(sp)
-    80203ee0:	f022                	sd	s0,32(sp)
-    80203ee2:	ec26                	sd	s1,24(sp)
-    80203ee4:	e84a                	sd	s2,16(sp)
-    80203ee6:	e44e                	sd	s3,8(sp)
-    80203ee8:	1800                	addi	s0,sp,48
-    80203eea:	84aa                	mv	s1,a0
+    80203ee0:	7179                	addi	sp,sp,-48
+    80203ee2:	f406                	sd	ra,40(sp)
+    80203ee4:	f022                	sd	s0,32(sp)
+    80203ee6:	ec26                	sd	s1,24(sp)
+    80203ee8:	e84a                	sd	s2,16(sp)
+    80203eea:	e44e                	sd	s3,8(sp)
+    80203eec:	1800                	addi	s0,sp,48
+    80203eee:	84aa                	mv	s1,a0
   int r;
   
   acquire(&lk->lk);
-    80203eec:	00850913          	addi	s2,a0,8
-    80203ef0:	854a                	mv	a0,s2
-    80203ef2:	ffffc097          	auipc	ra,0xffffc
-    80203ef6:	7d4080e7          	jalr	2004(ra) # 802006c6 <acquire>
+    80203ef0:	00850913          	addi	s2,a0,8
+    80203ef4:	854a                	mv	a0,s2
+    80203ef6:	ffffc097          	auipc	ra,0xffffc
+    80203efa:	7d0080e7          	jalr	2000(ra) # 802006c6 <acquire>
   r = lk->locked && (lk->pid == myproc()->pid);
-    80203efa:	409c                	lw	a5,0(s1)
-    80203efc:	ef99                	bnez	a5,80203f1a <holdingsleep+0x3e>
-    80203efe:	4481                	li	s1,0
+    80203efe:	409c                	lw	a5,0(s1)
+    80203f00:	ef99                	bnez	a5,80203f1e <holdingsleep+0x3e>
+    80203f02:	4481                	li	s1,0
   release(&lk->lk);
-    80203f00:	854a                	mv	a0,s2
-    80203f02:	ffffd097          	auipc	ra,0xffffd
-    80203f06:	818080e7          	jalr	-2024(ra) # 8020071a <release>
+    80203f04:	854a                	mv	a0,s2
+    80203f06:	ffffd097          	auipc	ra,0xffffd
+    80203f0a:	814080e7          	jalr	-2028(ra) # 8020071a <release>
   return r;
 }
-    80203f0a:	8526                	mv	a0,s1
-    80203f0c:	70a2                	ld	ra,40(sp)
-    80203f0e:	7402                	ld	s0,32(sp)
-    80203f10:	64e2                	ld	s1,24(sp)
-    80203f12:	6942                	ld	s2,16(sp)
-    80203f14:	69a2                	ld	s3,8(sp)
-    80203f16:	6145                	addi	sp,sp,48
-    80203f18:	8082                	ret
+    80203f0e:	8526                	mv	a0,s1
+    80203f10:	70a2                	ld	ra,40(sp)
+    80203f12:	7402                	ld	s0,32(sp)
+    80203f14:	64e2                	ld	s1,24(sp)
+    80203f16:	6942                	ld	s2,16(sp)
+    80203f18:	69a2                	ld	s3,8(sp)
+    80203f1a:	6145                	addi	sp,sp,48
+    80203f1c:	8082                	ret
   r = lk->locked && (lk->pid == myproc()->pid);
-    80203f1a:	0284a983          	lw	s3,40(s1)
-    80203f1e:	ffffe097          	auipc	ra,0xffffe
-    80203f22:	b1e080e7          	jalr	-1250(ra) # 80201a3c <myproc>
-    80203f26:	5d04                	lw	s1,56(a0)
-    80203f28:	413484b3          	sub	s1,s1,s3
-    80203f2c:	0014b493          	seqz	s1,s1
-    80203f30:	bfc1                	j	80203f00 <holdingsleep+0x24>
-
-0000000080203f32 <fileinit>:
+    80203f1e:	0284a983          	lw	s3,40(s1)
+    80203f22:	ffffe097          	auipc	ra,0xffffe
+    80203f26:	b1a080e7          	jalr	-1254(ra) # 80201a3c <myproc>
+    80203f2a:	5d04                	lw	s1,56(a0)
+    80203f2c:	413484b3          	sub	s1,s1,s3
+    80203f30:	0014b493          	seqz	s1,s1
+    80203f34:	bfc1                	j	80203f04 <holdingsleep+0x24>
+
+0000000080203f36 <fileinit>:
   struct file file[NFILE];
 } ftable;
 
 void
 fileinit(void)
 {
-    80203f32:	1101                	addi	sp,sp,-32
-    80203f34:	ec06                	sd	ra,24(sp)
-    80203f36:	e822                	sd	s0,16(sp)
-    80203f38:	e426                	sd	s1,8(sp)
-    80203f3a:	e04a                	sd	s2,0(sp)
-    80203f3c:	1000                	addi	s0,sp,32
+    80203f36:	1101                	addi	sp,sp,-32
+    80203f38:	ec06                	sd	ra,24(sp)
+    80203f3a:	e822                	sd	s0,16(sp)
+    80203f3c:	e426                	sd	s1,8(sp)
+    80203f3e:	e04a                	sd	s2,0(sp)
+    80203f40:	1000                	addi	s0,sp,32
   initlock(&ftable.lock, "ftable");
-    80203f3e:	00007597          	auipc	a1,0x7
-    80203f42:	d6a58593          	addi	a1,a1,-662 # 8020aca8 <digits+0x928>
-    80203f46:	0002e517          	auipc	a0,0x2e
-    80203f4a:	c6a50513          	addi	a0,a0,-918 # 80231bb0 <ftable>
-    80203f4e:	ffffc097          	auipc	ra,0xffffc
-    80203f52:	734080e7          	jalr	1844(ra) # 80200682 <initlock>
+    80203f42:	00007597          	auipc	a1,0x7
+    80203f46:	d6658593          	addi	a1,a1,-666 # 8020aca8 <digits+0x928>
+    80203f4a:	0002e517          	auipc	a0,0x2e
+    80203f4e:	c6650513          	addi	a0,a0,-922 # 80231bb0 <ftable>
+    80203f52:	ffffc097          	auipc	ra,0xffffc
+    80203f56:	730080e7          	jalr	1840(ra) # 80200682 <initlock>
   struct file *f;
   for(f = ftable.file; f < ftable.file + NFILE; f++){
-    80203f56:	0002e497          	auipc	s1,0x2e
-    80203f5a:	c7248493          	addi	s1,s1,-910 # 80231bc8 <ftable+0x18>
-    80203f5e:	0002f917          	auipc	s2,0x2f
-    80203f62:	c0a90913          	addi	s2,s2,-1014 # 80232b68 <tickslock>
+    80203f5a:	0002e497          	auipc	s1,0x2e
+    80203f5e:	c6e48493          	addi	s1,s1,-914 # 80231bc8 <ftable+0x18>
+    80203f62:	0002f917          	auipc	s2,0x2f
+    80203f66:	c0690913          	addi	s2,s2,-1018 # 80232b68 <tickslock>
     memset(f, 0, sizeof(struct file));
-    80203f66:	02800613          	li	a2,40
-    80203f6a:	4581                	li	a1,0
-    80203f6c:	8526                	mv	a0,s1
-    80203f6e:	ffffc097          	auipc	ra,0xffffc
-    80203f72:	7f4080e7          	jalr	2036(ra) # 80200762 <memset>
+    80203f6a:	02800613          	li	a2,40
+    80203f6e:	4581                	li	a1,0
+    80203f70:	8526                	mv	a0,s1
+    80203f72:	ffffc097          	auipc	ra,0xffffc
+    80203f76:	7f0080e7          	jalr	2032(ra) # 80200762 <memset>
   for(f = ftable.file; f < ftable.file + NFILE; f++){
-    80203f76:	02848493          	addi	s1,s1,40
-    80203f7a:	ff2496e3          	bne	s1,s2,80203f66 <fileinit+0x34>
+    80203f7a:	02848493          	addi	s1,s1,40
+    80203f7e:	ff2496e3          	bne	s1,s2,80203f6a <fileinit+0x34>
   }
   #ifdef DEBUG
   printf("fileinit\n");
   #endif
 }
-    80203f7e:	60e2                	ld	ra,24(sp)
-    80203f80:	6442                	ld	s0,16(sp)
-    80203f82:	64a2                	ld	s1,8(sp)
-    80203f84:	6902                	ld	s2,0(sp)
-    80203f86:	6105                	addi	sp,sp,32
-    80203f88:	8082                	ret
+    80203f82:	60e2                	ld	ra,24(sp)
+    80203f84:	6442                	ld	s0,16(sp)
+    80203f86:	64a2                	ld	s1,8(sp)
+    80203f88:	6902                	ld	s2,0(sp)
+    80203f8a:	6105                	addi	sp,sp,32
+    80203f8c:	8082                	ret
 
-0000000080203f8a <filealloc>:
+0000000080203f8e <filealloc>:
 
 // Allocate a file structure.
 struct file*
 filealloc(void)
 {
-    80203f8a:	1101                	addi	sp,sp,-32
-    80203f8c:	ec06                	sd	ra,24(sp)
-    80203f8e:	e822                	sd	s0,16(sp)
-    80203f90:	e426                	sd	s1,8(sp)
-    80203f92:	1000                	addi	s0,sp,32
+    80203f8e:	1101                	addi	sp,sp,-32
+    80203f90:	ec06                	sd	ra,24(sp)
+    80203f92:	e822                	sd	s0,16(sp)
+    80203f94:	e426                	sd	s1,8(sp)
+    80203f96:	1000                	addi	s0,sp,32
   struct file *f;
 
   acquire(&ftable.lock);
-    80203f94:	0002e517          	auipc	a0,0x2e
-    80203f98:	c1c50513          	addi	a0,a0,-996 # 80231bb0 <ftable>
-    80203f9c:	ffffc097          	auipc	ra,0xffffc
-    80203fa0:	72a080e7          	jalr	1834(ra) # 802006c6 <acquire>
+    80203f98:	0002e517          	auipc	a0,0x2e
+    80203f9c:	c1850513          	addi	a0,a0,-1000 # 80231bb0 <ftable>
+    80203fa0:	ffffc097          	auipc	ra,0xffffc
+    80203fa4:	726080e7          	jalr	1830(ra) # 802006c6 <acquire>
   for(f = ftable.file; f < ftable.file + NFILE; f++){
-    80203fa4:	0002e497          	auipc	s1,0x2e
-    80203fa8:	c2448493          	addi	s1,s1,-988 # 80231bc8 <ftable+0x18>
-    80203fac:	0002f717          	auipc	a4,0x2f
-    80203fb0:	bbc70713          	addi	a4,a4,-1092 # 80232b68 <tickslock>
+    80203fa8:	0002e497          	auipc	s1,0x2e
+    80203fac:	c2048493          	addi	s1,s1,-992 # 80231bc8 <ftable+0x18>
+    80203fb0:	0002f717          	auipc	a4,0x2f
+    80203fb4:	bb870713          	addi	a4,a4,-1096 # 80232b68 <tickslock>
     if(f->ref == 0){
-    80203fb4:	40dc                	lw	a5,4(s1)
-    80203fb6:	cf99                	beqz	a5,80203fd4 <filealloc+0x4a>
+    80203fb8:	40dc                	lw	a5,4(s1)
+    80203fba:	cf99                	beqz	a5,80203fd8 <filealloc+0x4a>
   for(f = ftable.file; f < ftable.file + NFILE; f++){
-    80203fb8:	02848493          	addi	s1,s1,40
-    80203fbc:	fee49ce3          	bne	s1,a4,80203fb4 <filealloc+0x2a>
+    80203fbc:	02848493          	addi	s1,s1,40
+    80203fc0:	fee49ce3          	bne	s1,a4,80203fb8 <filealloc+0x2a>
       f->ref = 1;
       release(&ftable.lock);
       return f;
     }
   }
   release(&ftable.lock);
-    80203fc0:	0002e517          	auipc	a0,0x2e
-    80203fc4:	bf050513          	addi	a0,a0,-1040 # 80231bb0 <ftable>
-    80203fc8:	ffffc097          	auipc	ra,0xffffc
-    80203fcc:	752080e7          	jalr	1874(ra) # 8020071a <release>
+    80203fc4:	0002e517          	auipc	a0,0x2e
+    80203fc8:	bec50513          	addi	a0,a0,-1044 # 80231bb0 <ftable>
+    80203fcc:	ffffc097          	auipc	ra,0xffffc
+    80203fd0:	74e080e7          	jalr	1870(ra) # 8020071a <release>
   return NULL;
-    80203fd0:	4481                	li	s1,0
-    80203fd2:	a819                	j	80203fe8 <filealloc+0x5e>
+    80203fd4:	4481                	li	s1,0
+    80203fd6:	a819                	j	80203fec <filealloc+0x5e>
       f->ref = 1;
-    80203fd4:	4785                	li	a5,1
-    80203fd6:	c0dc                	sw	a5,4(s1)
+    80203fd8:	4785                	li	a5,1
+    80203fda:	c0dc                	sw	a5,4(s1)
       release(&ftable.lock);
-    80203fd8:	0002e517          	auipc	a0,0x2e
-    80203fdc:	bd850513          	addi	a0,a0,-1064 # 80231bb0 <ftable>
-    80203fe0:	ffffc097          	auipc	ra,0xffffc
-    80203fe4:	73a080e7          	jalr	1850(ra) # 8020071a <release>
+    80203fdc:	0002e517          	auipc	a0,0x2e
+    80203fe0:	bd450513          	addi	a0,a0,-1068 # 80231bb0 <ftable>
+    80203fe4:	ffffc097          	auipc	ra,0xffffc
+    80203fe8:	736080e7          	jalr	1846(ra) # 8020071a <release>
 }
-    80203fe8:	8526                	mv	a0,s1
-    80203fea:	60e2                	ld	ra,24(sp)
-    80203fec:	6442                	ld	s0,16(sp)
-    80203fee:	64a2                	ld	s1,8(sp)
-    80203ff0:	6105                	addi	sp,sp,32
-    80203ff2:	8082                	ret
+    80203fec:	8526                	mv	a0,s1
+    80203fee:	60e2                	ld	ra,24(sp)
+    80203ff0:	6442                	ld	s0,16(sp)
+    80203ff2:	64a2                	ld	s1,8(sp)
+    80203ff4:	6105                	addi	sp,sp,32
+    80203ff6:	8082                	ret
 
-0000000080203ff4 <filedup>:
+0000000080203ff8 <filedup>:
 
 // Increment ref count for file f.
 struct file*
 filedup(struct file *f)
 {
-    80203ff4:	1101                	addi	sp,sp,-32
-    80203ff6:	ec06                	sd	ra,24(sp)
-    80203ff8:	e822                	sd	s0,16(sp)
-    80203ffa:	e426                	sd	s1,8(sp)
-    80203ffc:	1000                	addi	s0,sp,32
-    80203ffe:	84aa                	mv	s1,a0
+    80203ff8:	1101                	addi	sp,sp,-32
+    80203ffa:	ec06                	sd	ra,24(sp)
+    80203ffc:	e822                	sd	s0,16(sp)
+    80203ffe:	e426                	sd	s1,8(sp)
+    80204000:	1000                	addi	s0,sp,32
+    80204002:	84aa                	mv	s1,a0
   acquire(&ftable.lock);
-    80204000:	0002e517          	auipc	a0,0x2e
-    80204004:	bb050513          	addi	a0,a0,-1104 # 80231bb0 <ftable>
-    80204008:	ffffc097          	auipc	ra,0xffffc
-    8020400c:	6be080e7          	jalr	1726(ra) # 802006c6 <acquire>
+    80204004:	0002e517          	auipc	a0,0x2e
+    80204008:	bac50513          	addi	a0,a0,-1108 # 80231bb0 <ftable>
+    8020400c:	ffffc097          	auipc	ra,0xffffc
+    80204010:	6ba080e7          	jalr	1722(ra) # 802006c6 <acquire>
   if(f->ref < 1)
-    80204010:	40dc                	lw	a5,4(s1)
-    80204012:	02f05263          	blez	a5,80204036 <filedup+0x42>
+    80204014:	40dc                	lw	a5,4(s1)
+    80204016:	02f05263          	blez	a5,8020403a <filedup+0x42>
     panic("filedup");
   f->ref++;
-    80204016:	2785                	addiw	a5,a5,1
-    80204018:	c0dc                	sw	a5,4(s1)
+    8020401a:	2785                	addiw	a5,a5,1
+    8020401c:	c0dc                	sw	a5,4(s1)
   release(&ftable.lock);
-    8020401a:	0002e517          	auipc	a0,0x2e
-    8020401e:	b9650513          	addi	a0,a0,-1130 # 80231bb0 <ftable>
-    80204022:	ffffc097          	auipc	ra,0xffffc
-    80204026:	6f8080e7          	jalr	1784(ra) # 8020071a <release>
+    8020401e:	0002e517          	auipc	a0,0x2e
+    80204022:	b9250513          	addi	a0,a0,-1134 # 80231bb0 <ftable>
+    80204026:	ffffc097          	auipc	ra,0xffffc
+    8020402a:	6f4080e7          	jalr	1780(ra) # 8020071a <release>
   return f;
 }
-    8020402a:	8526                	mv	a0,s1
-    8020402c:	60e2                	ld	ra,24(sp)
-    8020402e:	6442                	ld	s0,16(sp)
-    80204030:	64a2                	ld	s1,8(sp)
-    80204032:	6105                	addi	sp,sp,32
-    80204034:	8082                	ret
+    8020402e:	8526                	mv	a0,s1
+    80204030:	60e2                	ld	ra,24(sp)
+    80204032:	6442                	ld	s0,16(sp)
+    80204034:	64a2                	ld	s1,8(sp)
+    80204036:	6105                	addi	sp,sp,32
+    80204038:	8082                	ret
     panic("filedup");
-    80204036:	00007517          	auipc	a0,0x7
-    8020403a:	c7a50513          	addi	a0,a0,-902 # 8020acb0 <digits+0x930>
-    8020403e:	ffffc097          	auipc	ra,0xffffc
-    80204042:	106080e7          	jalr	262(ra) # 80200144 <panic>
+    8020403a:	00007517          	auipc	a0,0x7
+    8020403e:	c7650513          	addi	a0,a0,-906 # 8020acb0 <digits+0x930>
+    80204042:	ffffc097          	auipc	ra,0xffffc
+    80204046:	102080e7          	jalr	258(ra) # 80200144 <panic>
 
-0000000080204046 <fileclose>:
+000000008020404a <fileclose>:
 
 // Close file f.  (Decrement ref count, close when reaches 0.)
 void
 fileclose(struct file *f)
 {
-    80204046:	7139                	addi	sp,sp,-64
-    80204048:	fc06                	sd	ra,56(sp)
-    8020404a:	f822                	sd	s0,48(sp)
-    8020404c:	f426                	sd	s1,40(sp)
-    8020404e:	f04a                	sd	s2,32(sp)
-    80204050:	ec4e                	sd	s3,24(sp)
-    80204052:	e852                	sd	s4,16(sp)
-    80204054:	e456                	sd	s5,8(sp)
-    80204056:	0080                	addi	s0,sp,64
-    80204058:	84aa                	mv	s1,a0
+    8020404a:	7139                	addi	sp,sp,-64
+    8020404c:	fc06                	sd	ra,56(sp)
+    8020404e:	f822                	sd	s0,48(sp)
+    80204050:	f426                	sd	s1,40(sp)
+    80204052:	f04a                	sd	s2,32(sp)
+    80204054:	ec4e                	sd	s3,24(sp)
+    80204056:	e852                	sd	s4,16(sp)
+    80204058:	e456                	sd	s5,8(sp)
+    8020405a:	0080                	addi	s0,sp,64
+    8020405c:	84aa                	mv	s1,a0
   struct file ff;
 
   acquire(&ftable.lock);
-    8020405a:	0002e517          	auipc	a0,0x2e
-    8020405e:	b5650513          	addi	a0,a0,-1194 # 80231bb0 <ftable>
-    80204062:	ffffc097          	auipc	ra,0xffffc
-    80204066:	664080e7          	jalr	1636(ra) # 802006c6 <acquire>
+    8020405e:	0002e517          	auipc	a0,0x2e
+    80204062:	b5250513          	addi	a0,a0,-1198 # 80231bb0 <ftable>
+    80204066:	ffffc097          	auipc	ra,0xffffc
+    8020406a:	660080e7          	jalr	1632(ra) # 802006c6 <acquire>
   if(f->ref < 1)
-    8020406a:	40dc                	lw	a5,4(s1)
-    8020406c:	04f05863          	blez	a5,802040bc <fileclose+0x76>
+    8020406e:	40dc                	lw	a5,4(s1)
+    80204070:	04f05863          	blez	a5,802040c0 <fileclose+0x76>
     panic("fileclose");
   if(--f->ref > 0){
-    80204070:	37fd                	addiw	a5,a5,-1
-    80204072:	0007871b          	sext.w	a4,a5
-    80204076:	c0dc                	sw	a5,4(s1)
-    80204078:	04e04a63          	bgtz	a4,802040cc <fileclose+0x86>
+    80204074:	37fd                	addiw	a5,a5,-1
+    80204076:	0007871b          	sext.w	a4,a5
+    8020407a:	c0dc                	sw	a5,4(s1)
+    8020407c:	04e04a63          	bgtz	a4,802040d0 <fileclose+0x86>
     release(&ftable.lock);
     return;
   }
   ff = *f;
-    8020407c:	0004a903          	lw	s2,0(s1)
-    80204080:	0094ca03          	lbu	s4,9(s1)
-    80204084:	0104b983          	ld	s3,16(s1)
-    80204088:	0184ba83          	ld	s5,24(s1)
+    80204080:	0004a903          	lw	s2,0(s1)
+    80204084:	0094ca03          	lbu	s4,9(s1)
+    80204088:	0104b983          	ld	s3,16(s1)
+    8020408c:	0184ba83          	ld	s5,24(s1)
   f->ref = 0;
-    8020408c:	0004a223          	sw	zero,4(s1)
+    80204090:	0004a223          	sw	zero,4(s1)
   f->type = FD_NONE;
-    80204090:	0004a023          	sw	zero,0(s1)
+    80204094:	0004a023          	sw	zero,0(s1)
   release(&ftable.lock);
-    80204094:	0002e517          	auipc	a0,0x2e
-    80204098:	b1c50513          	addi	a0,a0,-1252 # 80231bb0 <ftable>
-    8020409c:	ffffc097          	auipc	ra,0xffffc
-    802040a0:	67e080e7          	jalr	1662(ra) # 8020071a <release>
+    80204098:	0002e517          	auipc	a0,0x2e
+    8020409c:	b1850513          	addi	a0,a0,-1256 # 80231bb0 <ftable>
+    802040a0:	ffffc097          	auipc	ra,0xffffc
+    802040a4:	67a080e7          	jalr	1658(ra) # 8020071a <release>
 
   if(ff.type == FD_PIPE){
-    802040a4:	4785                	li	a5,1
-    802040a6:	04f90463          	beq	s2,a5,802040ee <fileclose+0xa8>
+    802040a8:	4785                	li	a5,1
+    802040aa:	04f90463          	beq	s2,a5,802040f2 <fileclose+0xa8>
     pipeclose(ff.pipe, ff.writable);
   } else if(ff.type == FD_ENTRY){
-    802040aa:	4789                	li	a5,2
-    802040ac:	02f91863          	bne	s2,a5,802040dc <fileclose+0x96>
+    802040ae:	4789                	li	a5,2
+    802040b0:	02f91863          	bne	s2,a5,802040e0 <fileclose+0x96>
     eput(ff.ep);
-    802040b0:	8556                	mv	a0,s5
-    802040b2:	00003097          	auipc	ra,0x3
-    802040b6:	090080e7          	jalr	144(ra) # 80207142 <eput>
-    802040ba:	a00d                	j	802040dc <fileclose+0x96>
+    802040b4:	8556                	mv	a0,s5
+    802040b6:	00003097          	auipc	ra,0x3
+    802040ba:	04c080e7          	jalr	76(ra) # 80207102 <eput>
+    802040be:	a00d                	j	802040e0 <fileclose+0x96>
     panic("fileclose");
-    802040bc:	00007517          	auipc	a0,0x7
-    802040c0:	bfc50513          	addi	a0,a0,-1028 # 8020acb8 <digits+0x938>
-    802040c4:	ffffc097          	auipc	ra,0xffffc
-    802040c8:	080080e7          	jalr	128(ra) # 80200144 <panic>
+    802040c0:	00007517          	auipc	a0,0x7
+    802040c4:	bf850513          	addi	a0,a0,-1032 # 8020acb8 <digits+0x938>
+    802040c8:	ffffc097          	auipc	ra,0xffffc
+    802040cc:	07c080e7          	jalr	124(ra) # 80200144 <panic>
     release(&ftable.lock);
-    802040cc:	0002e517          	auipc	a0,0x2e
-    802040d0:	ae450513          	addi	a0,a0,-1308 # 80231bb0 <ftable>
-    802040d4:	ffffc097          	auipc	ra,0xffffc
-    802040d8:	646080e7          	jalr	1606(ra) # 8020071a <release>
+    802040d0:	0002e517          	auipc	a0,0x2e
+    802040d4:	ae050513          	addi	a0,a0,-1312 # 80231bb0 <ftable>
+    802040d8:	ffffc097          	auipc	ra,0xffffc
+    802040dc:	642080e7          	jalr	1602(ra) # 8020071a <release>
   } else if (ff.type == FD_DEVICE) {
 
   }
 }
-    802040dc:	70e2                	ld	ra,56(sp)
-    802040de:	7442                	ld	s0,48(sp)
-    802040e0:	74a2                	ld	s1,40(sp)
-    802040e2:	7902                	ld	s2,32(sp)
-    802040e4:	69e2                	ld	s3,24(sp)
-    802040e6:	6a42                	ld	s4,16(sp)
-    802040e8:	6aa2                	ld	s5,8(sp)
-    802040ea:	6121                	addi	sp,sp,64
-    802040ec:	8082                	ret
+    802040e0:	70e2                	ld	ra,56(sp)
+    802040e2:	7442                	ld	s0,48(sp)
+    802040e4:	74a2                	ld	s1,40(sp)
+    802040e6:	7902                	ld	s2,32(sp)
+    802040e8:	69e2                	ld	s3,24(sp)
+    802040ea:	6a42                	ld	s4,16(sp)
+    802040ec:	6aa2                	ld	s5,8(sp)
+    802040ee:	6121                	addi	sp,sp,64
+    802040f0:	8082                	ret
     pipeclose(ff.pipe, ff.writable);
-    802040ee:	85d2                	mv	a1,s4
-    802040f0:	854e                	mv	a0,s3
-    802040f2:	00000097          	auipc	ra,0x0
-    802040f6:	42a080e7          	jalr	1066(ra) # 8020451c <pipeclose>
-    802040fa:	b7cd                	j	802040dc <fileclose+0x96>
+    802040f2:	85d2                	mv	a1,s4
+    802040f4:	854e                	mv	a0,s3
+    802040f6:	00000097          	auipc	ra,0x0
+    802040fa:	42a080e7          	jalr	1066(ra) # 80204520 <pipeclose>
+    802040fe:	b7cd                	j	802040e0 <fileclose+0x96>
 
-00000000802040fc <filestat>:
+0000000080204100 <filestat>:
 filestat(struct file *f, uint64 addr)
 {
   // struct proc *p = myproc();
   struct stat st;
   
   if(f->type == FD_ENTRY){
-    802040fc:	4118                	lw	a4,0(a0)
-    802040fe:	4789                	li	a5,2
-    80204100:	04f71e63          	bne	a4,a5,8020415c <filestat+0x60>
+    80204100:	4118                	lw	a4,0(a0)
+    80204102:	4789                	li	a5,2
+    80204104:	04f71e63          	bne	a4,a5,80204160 <filestat+0x60>
 {
-    80204104:	7159                	addi	sp,sp,-112
-    80204106:	f486                	sd	ra,104(sp)
-    80204108:	f0a2                	sd	s0,96(sp)
-    8020410a:	eca6                	sd	s1,88(sp)
-    8020410c:	e8ca                	sd	s2,80(sp)
-    8020410e:	e4ce                	sd	s3,72(sp)
-    80204110:	1880                	addi	s0,sp,112
-    80204112:	84aa                	mv	s1,a0
-    80204114:	892e                	mv	s2,a1
+    80204108:	7159                	addi	sp,sp,-112
+    8020410a:	f486                	sd	ra,104(sp)
+    8020410c:	f0a2                	sd	s0,96(sp)
+    8020410e:	eca6                	sd	s1,88(sp)
+    80204110:	e8ca                	sd	s2,80(sp)
+    80204112:	e4ce                	sd	s3,72(sp)
+    80204114:	1880                	addi	s0,sp,112
+    80204116:	84aa                	mv	s1,a0
+    80204118:	892e                	mv	s2,a1
     elock(f->ep);
-    80204116:	6d08                	ld	a0,24(a0)
-    80204118:	00003097          	auipc	ra,0x3
-    8020411c:	fa6080e7          	jalr	-90(ra) # 802070be <elock>
+    8020411a:	6d08                	ld	a0,24(a0)
+    8020411c:	00003097          	auipc	ra,0x3
+    80204120:	f62080e7          	jalr	-158(ra) # 8020707e <elock>
     estat(f->ep, &st);
-    80204120:	f9840993          	addi	s3,s0,-104
-    80204124:	85ce                	mv	a1,s3
-    80204126:	6c88                	ld	a0,24(s1)
-    80204128:	00003097          	auipc	ra,0x3
-    8020412c:	152080e7          	jalr	338(ra) # 8020727a <estat>
+    80204124:	f9840993          	addi	s3,s0,-104
+    80204128:	85ce                	mv	a1,s3
+    8020412a:	6c88                	ld	a0,24(s1)
+    8020412c:	00003097          	auipc	ra,0x3
+    80204130:	10e080e7          	jalr	270(ra) # 8020723a <estat>
     eunlock(f->ep);
-    80204130:	6c88                	ld	a0,24(s1)
-    80204132:	00003097          	auipc	ra,0x3
-    80204136:	fc2080e7          	jalr	-62(ra) # 802070f4 <eunlock>
+    80204134:	6c88                	ld	a0,24(s1)
+    80204136:	00003097          	auipc	ra,0x3
+    8020413a:	f7e080e7          	jalr	-130(ra) # 802070b4 <eunlock>
     // if(copyout(p->pagetable, addr, (char *)&st, sizeof(st)) < 0)
     if(copyout2(addr, (char *)&st, sizeof(st)) < 0)
-    8020413a:	03800613          	li	a2,56
-    8020413e:	85ce                	mv	a1,s3
-    80204140:	854a                	mv	a0,s2
-    80204142:	ffffd097          	auipc	ra,0xffffd
-    80204146:	230080e7          	jalr	560(ra) # 80201372 <copyout2>
-    8020414a:	41f5551b          	sraiw	a0,a0,0x1f
+    8020413e:	03800613          	li	a2,56
+    80204142:	85ce                	mv	a1,s3
+    80204144:	854a                	mv	a0,s2
+    80204146:	ffffd097          	auipc	ra,0xffffd
+    8020414a:	22c080e7          	jalr	556(ra) # 80201372 <copyout2>
+    8020414e:	41f5551b          	sraiw	a0,a0,0x1f
       return -1;
     return 0;
   }
   return -1;
 }
-    8020414e:	70a6                	ld	ra,104(sp)
-    80204150:	7406                	ld	s0,96(sp)
-    80204152:	64e6                	ld	s1,88(sp)
-    80204154:	6946                	ld	s2,80(sp)
-    80204156:	69a6                	ld	s3,72(sp)
-    80204158:	6165                	addi	sp,sp,112
-    8020415a:	8082                	ret
+    80204152:	70a6                	ld	ra,104(sp)
+    80204154:	7406                	ld	s0,96(sp)
+    80204156:	64e6                	ld	s1,88(sp)
+    80204158:	6946                	ld	s2,80(sp)
+    8020415a:	69a6                	ld	s3,72(sp)
+    8020415c:	6165                	addi	sp,sp,112
+    8020415e:	8082                	ret
   return -1;
-    8020415c:	557d                	li	a0,-1
+    80204160:	557d                	li	a0,-1
 }
-    8020415e:	8082                	ret
+    80204162:	8082                	ret
 
-0000000080204160 <filekstat>:
+0000000080204164 <filekstat>:
 
 // Get metadata about file f.
 // addr is a user virtual address, pointing to a struct kstat.
 int
 filekstat(struct file *f, uint64 addr)
 {
-    80204160:	7135                	addi	sp,sp,-160
-    80204162:	ed06                	sd	ra,152(sp)
-    80204164:	e922                	sd	s0,144(sp)
-    80204166:	e526                	sd	s1,136(sp)
-    80204168:	e14a                	sd	s2,128(sp)
-    8020416a:	1100                	addi	s0,sp,160
-    8020416c:	84aa                	mv	s1,a0
-    8020416e:	892e                	mv	s2,a1
+    80204164:	7135                	addi	sp,sp,-160
+    80204166:	ed06                	sd	ra,152(sp)
+    80204168:	e922                	sd	s0,144(sp)
+    8020416a:	e526                	sd	s1,136(sp)
+    8020416c:	e14a                	sd	s2,128(sp)
+    8020416e:	1100                	addi	s0,sp,160
+    80204170:	84aa                	mv	s1,a0
+    80204172:	892e                	mv	s2,a1
   // struct proc *p = myproc();
   struct kstat kst;
   memset(&kst, 0, sizeof(kst));
-    80204170:	08000613          	li	a2,128
-    80204174:	4581                	li	a1,0
-    80204176:	f6040513          	addi	a0,s0,-160
-    8020417a:	ffffc097          	auipc	ra,0xffffc
-    8020417e:	5e8080e7          	jalr	1512(ra) # 80200762 <memset>
+    80204174:	08000613          	li	a2,128
+    80204178:	4581                	li	a1,0
+    8020417a:	f6040513          	addi	a0,s0,-160
+    8020417e:	ffffc097          	auipc	ra,0xffffc
+    80204182:	5e4080e7          	jalr	1508(ra) # 80200762 <memset>
   
   if(f->type == FD_ENTRY){
-    80204182:	4098                	lw	a4,0(s1)
-    80204184:	4789                	li	a5,2
-    80204186:	06f71063          	bne	a4,a5,802041e6 <filekstat+0x86>
+    80204186:	4098                	lw	a4,0(s1)
+    80204188:	4789                	li	a5,2
+    8020418a:	06f71063          	bne	a4,a5,802041ea <filekstat+0x86>
     elock(f->ep);
-    8020418a:	6c88                	ld	a0,24(s1)
-    8020418c:	00003097          	auipc	ra,0x3
-    80204190:	f32080e7          	jalr	-206(ra) # 802070be <elock>
+    8020418e:	6c88                	ld	a0,24(s1)
+    80204190:	00003097          	auipc	ra,0x3
+    80204194:	eee080e7          	jalr	-274(ra) # 8020707e <elock>
     struct dirent *ep = f->ep;
-    80204194:	6c88                	ld	a0,24(s1)
+    80204198:	6c88                	ld	a0,24(s1)
     kst.st_dev = ep->dev;      // 设备 ID
-    80204196:	11454783          	lbu	a5,276(a0)
-    8020419a:	f6f43023          	sd	a5,-160(s0)
+    8020419a:	11454783          	lbu	a5,276(a0)
+    8020419e:	f6f43023          	sd	a5,-160(s0)
     kst.st_mode = (ep->attribute & ATTR_DIRECTORY) ? T_DIR : T_FILE; ;  // 文件类型和权限
-    8020419e:	10054783          	lbu	a5,256(a0)
-    802041a2:	8bc1                	andi	a5,a5,16
-    802041a4:	0017b793          	seqz	a5,a5
-    802041a8:	0785                	addi	a5,a5,1
-    802041aa:	f6f42823          	sw	a5,-144(s0)
+    802041a2:	10054783          	lbu	a5,256(a0)
+    802041a6:	8bc1                	andi	a5,a5,16
+    802041a8:	0017b793          	seqz	a5,a5
+    802041ac:	0785                	addi	a5,a5,1
+    802041ae:	f6f42823          	sw	a5,-144(s0)
     kst.st_size = ep->file_size; 
-    802041ae:	10856783          	lwu	a5,264(a0)
-    802041b2:	f8f43823          	sd	a5,-112(s0)
+    802041b2:	10856783          	lwu	a5,264(a0)
+    802041b6:	f8f43823          	sd	a5,-112(s0)
     kst.st_nlink = f->ref;
-    802041b6:	40dc                	lw	a5,4(s1)
-    802041b8:	f6f42a23          	sw	a5,-140(s0)
+    802041ba:	40dc                	lw	a5,4(s1)
+    802041bc:	f6f42a23          	sw	a5,-140(s0)
     eunlock(f->ep);
-    802041bc:	00003097          	auipc	ra,0x3
-    802041c0:	f38080e7          	jalr	-200(ra) # 802070f4 <eunlock>
+    802041c0:	00003097          	auipc	ra,0x3
+    802041c4:	ef4080e7          	jalr	-268(ra) # 802070b4 <eunlock>
     // if(copyout(p->pagetable, addr, (char *)&st, sizeof(st)) < 0)
     if(copyout2(addr, (char *)&kst, sizeof(kst)) < 0)
-    802041c4:	08000613          	li	a2,128
-    802041c8:	f6040593          	addi	a1,s0,-160
-    802041cc:	854a                	mv	a0,s2
-    802041ce:	ffffd097          	auipc	ra,0xffffd
-    802041d2:	1a4080e7          	jalr	420(ra) # 80201372 <copyout2>
-    802041d6:	41f5551b          	sraiw	a0,a0,0x1f
+    802041c8:	08000613          	li	a2,128
+    802041cc:	f6040593          	addi	a1,s0,-160
+    802041d0:	854a                	mv	a0,s2
+    802041d2:	ffffd097          	auipc	ra,0xffffd
+    802041d6:	1a0080e7          	jalr	416(ra) # 80201372 <copyout2>
+    802041da:	41f5551b          	sraiw	a0,a0,0x1f
       return -1;
     return 0;
   }
   return -1;
 }
-    802041da:	60ea                	ld	ra,152(sp)
-    802041dc:	644a                	ld	s0,144(sp)
-    802041de:	64aa                	ld	s1,136(sp)
-    802041e0:	690a                	ld	s2,128(sp)
-    802041e2:	610d                	addi	sp,sp,160
-    802041e4:	8082                	ret
+    802041de:	60ea                	ld	ra,152(sp)
+    802041e0:	644a                	ld	s0,144(sp)
+    802041e2:	64aa                	ld	s1,136(sp)
+    802041e4:	690a                	ld	s2,128(sp)
+    802041e6:	610d                	addi	sp,sp,160
+    802041e8:	8082                	ret
   return -1;
-    802041e6:	557d                	li	a0,-1
-    802041e8:	bfcd                	j	802041da <filekstat+0x7a>
+    802041ea:	557d                	li	a0,-1
+    802041ec:	bfcd                	j	802041de <filekstat+0x7a>
 
-00000000802041ea <fileread>:
+00000000802041ee <fileread>:
 
 // Read from file f.
 // addr is a user virtual address.
 int
 fileread(struct file *f, uint64 addr, int n)
 {
-    802041ea:	7179                	addi	sp,sp,-48
-    802041ec:	f406                	sd	ra,40(sp)
-    802041ee:	f022                	sd	s0,32(sp)
-    802041f0:	ec26                	sd	s1,24(sp)
-    802041f2:	e84a                	sd	s2,16(sp)
-    802041f4:	e44e                	sd	s3,8(sp)
-    802041f6:	1800                	addi	s0,sp,48
+    802041ee:	7179                	addi	sp,sp,-48
+    802041f0:	f406                	sd	ra,40(sp)
+    802041f2:	f022                	sd	s0,32(sp)
+    802041f4:	ec26                	sd	s1,24(sp)
+    802041f6:	e84a                	sd	s2,16(sp)
+    802041f8:	e44e                	sd	s3,8(sp)
+    802041fa:	1800                	addi	s0,sp,48
   int r = 0;
 
   if(f->readable == 0)
-    802041f8:	00854783          	lbu	a5,8(a0)
-    802041fc:	c3d5                	beqz	a5,802042a0 <fileread+0xb6>
-    802041fe:	84aa                	mv	s1,a0
-    80204200:	89ae                	mv	s3,a1
-    80204202:	8932                	mv	s2,a2
+    802041fc:	00854783          	lbu	a5,8(a0)
+    80204200:	c3d5                	beqz	a5,802042a4 <fileread+0xb6>
+    80204202:	84aa                	mv	s1,a0
+    80204204:	89ae                	mv	s3,a1
+    80204206:	8932                	mv	s2,a2
     return -1;
 
   switch (f->type) {
-    80204204:	411c                	lw	a5,0(a0)
-    80204206:	4709                	li	a4,2
-    80204208:	06e78263          	beq	a5,a4,8020426c <fileread+0x82>
-    8020420c:	470d                	li	a4,3
-    8020420e:	02e78b63          	beq	a5,a4,80204244 <fileread+0x5a>
-    80204212:	4705                	li	a4,1
-    80204214:	00e78a63          	beq	a5,a4,80204228 <fileread+0x3e>
+    80204208:	411c                	lw	a5,0(a0)
+    8020420a:	4709                	li	a4,2
+    8020420c:	06e78263          	beq	a5,a4,80204270 <fileread+0x82>
+    80204210:	470d                	li	a4,3
+    80204212:	02e78b63          	beq	a5,a4,80204248 <fileread+0x5a>
+    80204216:	4705                	li	a4,1
+    80204218:	00e78a63          	beq	a5,a4,8020422c <fileread+0x3e>
           if((r = eread(f->ep, 1, addr, f->off, n)) > 0)
             f->off += r;
         eunlock(f->ep);
         break;
     default:
       panic("fileread");
-    80204218:	00007517          	auipc	a0,0x7
-    8020421c:	ab050513          	addi	a0,a0,-1360 # 8020acc8 <digits+0x948>
-    80204220:	ffffc097          	auipc	ra,0xffffc
-    80204224:	f24080e7          	jalr	-220(ra) # 80200144 <panic>
+    8020421c:	00007517          	auipc	a0,0x7
+    80204220:	aac50513          	addi	a0,a0,-1364 # 8020acc8 <digits+0x948>
+    80204224:	ffffc097          	auipc	ra,0xffffc
+    80204228:	f20080e7          	jalr	-224(ra) # 80200144 <panic>
         r = piperead(f->pipe, addr, n);
-    80204228:	6908                	ld	a0,16(a0)
-    8020422a:	00000097          	auipc	ra,0x0
-    8020422e:	466080e7          	jalr	1126(ra) # 80204690 <piperead>
-    80204232:	892a                	mv	s2,a0
+    8020422c:	6908                	ld	a0,16(a0)
+    8020422e:	00000097          	auipc	ra,0x0
+    80204232:	466080e7          	jalr	1126(ra) # 80204694 <piperead>
+    80204236:	892a                	mv	s2,a0
   }
 
   return r;
 }
-    80204234:	854a                	mv	a0,s2
-    80204236:	70a2                	ld	ra,40(sp)
-    80204238:	7402                	ld	s0,32(sp)
-    8020423a:	64e2                	ld	s1,24(sp)
-    8020423c:	6942                	ld	s2,16(sp)
-    8020423e:	69a2                	ld	s3,8(sp)
-    80204240:	6145                	addi	sp,sp,48
-    80204242:	8082                	ret
+    80204238:	854a                	mv	a0,s2
+    8020423a:	70a2                	ld	ra,40(sp)
+    8020423c:	7402                	ld	s0,32(sp)
+    8020423e:	64e2                	ld	s1,24(sp)
+    80204240:	6942                	ld	s2,16(sp)
+    80204242:	69a2                	ld	s3,8(sp)
+    80204244:	6145                	addi	sp,sp,48
+    80204246:	8082                	ret
         if(f->major < 0 || f->major >= NDEV || !devsw[f->major].read)
-    80204244:	02451783          	lh	a5,36(a0)
-    80204248:	03079693          	slli	a3,a5,0x30
-    8020424c:	92c1                	srli	a3,a3,0x30
-    8020424e:	4725                	li	a4,9
-    80204250:	04d76a63          	bltu	a4,a3,802042a4 <fileread+0xba>
-    80204254:	0792                	slli	a5,a5,0x4
-    80204256:	0002e717          	auipc	a4,0x2e
-    8020425a:	8ba70713          	addi	a4,a4,-1862 # 80231b10 <devsw>
-    8020425e:	97ba                	add	a5,a5,a4
-    80204260:	639c                	ld	a5,0(a5)
-    80204262:	c3b9                	beqz	a5,802042a8 <fileread+0xbe>
+    80204248:	02451783          	lh	a5,36(a0)
+    8020424c:	03079693          	slli	a3,a5,0x30
+    80204250:	92c1                	srli	a3,a3,0x30
+    80204252:	4725                	li	a4,9
+    80204254:	04d76a63          	bltu	a4,a3,802042a8 <fileread+0xba>
+    80204258:	0792                	slli	a5,a5,0x4
+    8020425a:	0002e717          	auipc	a4,0x2e
+    8020425e:	8b670713          	addi	a4,a4,-1866 # 80231b10 <devsw>
+    80204262:	97ba                	add	a5,a5,a4
+    80204264:	639c                	ld	a5,0(a5)
+    80204266:	c3b9                	beqz	a5,802042ac <fileread+0xbe>
         r = devsw[f->major].read(1, addr, n);
-    80204264:	4505                	li	a0,1
-    80204266:	9782                	jalr	a5
-    80204268:	892a                	mv	s2,a0
+    80204268:	4505                	li	a0,1
+    8020426a:	9782                	jalr	a5
+    8020426c:	892a                	mv	s2,a0
         break;
-    8020426a:	b7e9                	j	80204234 <fileread+0x4a>
+    8020426e:	b7e9                	j	80204238 <fileread+0x4a>
         elock(f->ep);
-    8020426c:	6d08                	ld	a0,24(a0)
-    8020426e:	00003097          	auipc	ra,0x3
-    80204272:	e50080e7          	jalr	-432(ra) # 802070be <elock>
+    80204270:	6d08                	ld	a0,24(a0)
+    80204272:	00003097          	auipc	ra,0x3
+    80204276:	e0c080e7          	jalr	-500(ra) # 8020707e <elock>
           if((r = eread(f->ep, 1, addr, f->off, n)) > 0)
-    80204276:	874a                	mv	a4,s2
-    80204278:	5094                	lw	a3,32(s1)
-    8020427a:	864e                	mv	a2,s3
-    8020427c:	4585                	li	a1,1
-    8020427e:	6c88                	ld	a0,24(s1)
-    80204280:	00002097          	auipc	ra,0x2
-    80204284:	53a080e7          	jalr	1338(ra) # 802067ba <eread>
-    80204288:	892a                	mv	s2,a0
-    8020428a:	00a05563          	blez	a0,80204294 <fileread+0xaa>
+    8020427a:	874a                	mv	a4,s2
+    8020427c:	5094                	lw	a3,32(s1)
+    8020427e:	864e                	mv	a2,s3
+    80204280:	4585                	li	a1,1
+    80204282:	6c88                	ld	a0,24(s1)
+    80204284:	00002097          	auipc	ra,0x2
+    80204288:	4f6080e7          	jalr	1270(ra) # 8020677a <eread>
+    8020428c:	892a                	mv	s2,a0
+    8020428e:	00a05563          	blez	a0,80204298 <fileread+0xaa>
             f->off += r;
-    8020428e:	509c                	lw	a5,32(s1)
-    80204290:	9fa9                	addw	a5,a5,a0
-    80204292:	d09c                	sw	a5,32(s1)
+    80204292:	509c                	lw	a5,32(s1)
+    80204294:	9fa9                	addw	a5,a5,a0
+    80204296:	d09c                	sw	a5,32(s1)
         eunlock(f->ep);
-    80204294:	6c88                	ld	a0,24(s1)
-    80204296:	00003097          	auipc	ra,0x3
-    8020429a:	e5e080e7          	jalr	-418(ra) # 802070f4 <eunlock>
+    80204298:	6c88                	ld	a0,24(s1)
+    8020429a:	00003097          	auipc	ra,0x3
+    8020429e:	e1a080e7          	jalr	-486(ra) # 802070b4 <eunlock>
         break;
-    8020429e:	bf59                	j	80204234 <fileread+0x4a>
+    802042a2:	bf59                	j	80204238 <fileread+0x4a>
     return -1;
-    802042a0:	597d                	li	s2,-1
-    802042a2:	bf49                	j	80204234 <fileread+0x4a>
-          return -1;
     802042a4:	597d                	li	s2,-1
-    802042a6:	b779                	j	80204234 <fileread+0x4a>
+    802042a6:	bf49                	j	80204238 <fileread+0x4a>
+          return -1;
     802042a8:	597d                	li	s2,-1
-    802042aa:	b769                	j	80204234 <fileread+0x4a>
+    802042aa:	b779                	j	80204238 <fileread+0x4a>
+    802042ac:	597d                	li	s2,-1
+    802042ae:	b769                	j	80204238 <fileread+0x4a>
 
-00000000802042ac <filewrite>:
+00000000802042b0 <filewrite>:
 
 // Write to file f.
 // addr is a user virtual address.
 int
 filewrite(struct file *f, uint64 addr, int n)
 {
-    802042ac:	7179                	addi	sp,sp,-48
-    802042ae:	f406                	sd	ra,40(sp)
-    802042b0:	f022                	sd	s0,32(sp)
-    802042b2:	ec26                	sd	s1,24(sp)
-    802042b4:	e84a                	sd	s2,16(sp)
-    802042b6:	e44e                	sd	s3,8(sp)
-    802042b8:	e052                	sd	s4,0(sp)
-    802042ba:	1800                	addi	s0,sp,48
+    802042b0:	7179                	addi	sp,sp,-48
+    802042b2:	f406                	sd	ra,40(sp)
+    802042b4:	f022                	sd	s0,32(sp)
+    802042b6:	ec26                	sd	s1,24(sp)
+    802042b8:	e84a                	sd	s2,16(sp)
+    802042ba:	e44e                	sd	s3,8(sp)
+    802042bc:	e052                	sd	s4,0(sp)
+    802042be:	1800                	addi	s0,sp,48
   int ret = 0;
 
   if(f->writable == 0)
-    802042bc:	00954783          	lbu	a5,9(a0)
-    802042c0:	cbc5                	beqz	a5,80204370 <filewrite+0xc4>
-    802042c2:	84aa                	mv	s1,a0
-    802042c4:	892e                	mv	s2,a1
-    802042c6:	89b2                	mv	s3,a2
+    802042c0:	00954783          	lbu	a5,9(a0)
+    802042c4:	cbc5                	beqz	a5,80204374 <filewrite+0xc4>
+    802042c6:	84aa                	mv	s1,a0
+    802042c8:	892e                	mv	s2,a1
+    802042ca:	89b2                	mv	s3,a2
     return -1;
 
   if(f->type == FD_PIPE){
-    802042c8:	411c                	lw	a5,0(a0)
-    802042ca:	4705                	li	a4,1
-    802042cc:	04e78963          	beq	a5,a4,8020431e <filewrite+0x72>
+    802042cc:	411c                	lw	a5,0(a0)
+    802042ce:	4705                	li	a4,1
+    802042d0:	04e78963          	beq	a5,a4,80204322 <filewrite+0x72>
     ret = pipewrite(f->pipe, addr, n);
   } else if(f->type == FD_DEVICE){
-    802042d0:	470d                	li	a4,3
-    802042d2:	04e78d63          	beq	a5,a4,8020432c <filewrite+0x80>
+    802042d4:	470d                	li	a4,3
+    802042d6:	04e78d63          	beq	a5,a4,80204330 <filewrite+0x80>
     if(f->major < 0 || f->major >= NDEV || !devsw[f->major].write)
       return -1;
     ret = devsw[f->major].write(1, addr, n);
   } else if(f->type == FD_ENTRY){
-    802042d6:	4709                	li	a4,2
-    802042d8:	08e79463          	bne	a5,a4,80204360 <filewrite+0xb4>
+    802042da:	4709                	li	a4,2
+    802042dc:	08e79463          	bne	a5,a4,80204364 <filewrite+0xb4>
     elock(f->ep);
-    802042dc:	6d08                	ld	a0,24(a0)
-    802042de:	00003097          	auipc	ra,0x3
-    802042e2:	de0080e7          	jalr	-544(ra) # 802070be <elock>
+    802042e0:	6d08                	ld	a0,24(a0)
+    802042e2:	00003097          	auipc	ra,0x3
+    802042e6:	d9c080e7          	jalr	-612(ra) # 8020707e <elock>
     if (ewrite(f->ep, 1, addr, f->off, n) == n) {
-    802042e6:	00098a1b          	sext.w	s4,s3
-    802042ea:	8752                	mv	a4,s4
-    802042ec:	5094                	lw	a3,32(s1)
-    802042ee:	864a                	mv	a2,s2
-    802042f0:	4585                	li	a1,1
-    802042f2:	6c88                	ld	a0,24(s1)
-    802042f4:	00002097          	auipc	ra,0x2
-    802042f8:	5be080e7          	jalr	1470(ra) # 802068b2 <ewrite>
+    802042ea:	00098a1b          	sext.w	s4,s3
+    802042ee:	8752                	mv	a4,s4
+    802042f0:	5094                	lw	a3,32(s1)
+    802042f2:	864a                	mv	a2,s2
+    802042f4:	4585                	li	a1,1
+    802042f6:	6c88                	ld	a0,24(s1)
+    802042f8:	00002097          	auipc	ra,0x2
+    802042fc:	57a080e7          	jalr	1402(ra) # 80206872 <ewrite>
       ret = n;
       f->off += n;
     } else {
       ret = -1;
-    802042fc:	597d                	li	s2,-1
+    80204300:	597d                	li	s2,-1
     if (ewrite(f->ep, 1, addr, f->off, n) == n) {
-    802042fe:	05350b63          	beq	a0,s3,80204354 <filewrite+0xa8>
+    80204302:	05350b63          	beq	a0,s3,80204358 <filewrite+0xa8>
     }
     eunlock(f->ep);
-    80204302:	6c88                	ld	a0,24(s1)
-    80204304:	00003097          	auipc	ra,0x3
-    80204308:	df0080e7          	jalr	-528(ra) # 802070f4 <eunlock>
+    80204306:	6c88                	ld	a0,24(s1)
+    80204308:	00003097          	auipc	ra,0x3
+    8020430c:	dac080e7          	jalr	-596(ra) # 802070b4 <eunlock>
   } else {
     panic("filewrite");
   }
 
   return ret;
 }
-    8020430c:	854a                	mv	a0,s2
-    8020430e:	70a2                	ld	ra,40(sp)
-    80204310:	7402                	ld	s0,32(sp)
-    80204312:	64e2                	ld	s1,24(sp)
-    80204314:	6942                	ld	s2,16(sp)
-    80204316:	69a2                	ld	s3,8(sp)
-    80204318:	6a02                	ld	s4,0(sp)
-    8020431a:	6145                	addi	sp,sp,48
-    8020431c:	8082                	ret
+    80204310:	854a                	mv	a0,s2
+    80204312:	70a2                	ld	ra,40(sp)
+    80204314:	7402                	ld	s0,32(sp)
+    80204316:	64e2                	ld	s1,24(sp)
+    80204318:	6942                	ld	s2,16(sp)
+    8020431a:	69a2                	ld	s3,8(sp)
+    8020431c:	6a02                	ld	s4,0(sp)
+    8020431e:	6145                	addi	sp,sp,48
+    80204320:	8082                	ret
     ret = pipewrite(f->pipe, addr, n);
-    8020431e:	6908                	ld	a0,16(a0)
-    80204320:	00000097          	auipc	ra,0x0
-    80204324:	26c080e7          	jalr	620(ra) # 8020458c <pipewrite>
-    80204328:	892a                	mv	s2,a0
-    8020432a:	b7cd                	j	8020430c <filewrite+0x60>
+    80204322:	6908                	ld	a0,16(a0)
+    80204324:	00000097          	auipc	ra,0x0
+    80204328:	26c080e7          	jalr	620(ra) # 80204590 <pipewrite>
+    8020432c:	892a                	mv	s2,a0
+    8020432e:	b7cd                	j	80204310 <filewrite+0x60>
     if(f->major < 0 || f->major >= NDEV || !devsw[f->major].write)
-    8020432c:	02451783          	lh	a5,36(a0)
-    80204330:	03079693          	slli	a3,a5,0x30
-    80204334:	92c1                	srli	a3,a3,0x30
-    80204336:	4725                	li	a4,9
-    80204338:	02d76e63          	bltu	a4,a3,80204374 <filewrite+0xc8>
-    8020433c:	0792                	slli	a5,a5,0x4
-    8020433e:	0002d717          	auipc	a4,0x2d
-    80204342:	7d270713          	addi	a4,a4,2002 # 80231b10 <devsw>
-    80204346:	97ba                	add	a5,a5,a4
-    80204348:	679c                	ld	a5,8(a5)
-    8020434a:	c79d                	beqz	a5,80204378 <filewrite+0xcc>
+    80204330:	02451783          	lh	a5,36(a0)
+    80204334:	03079693          	slli	a3,a5,0x30
+    80204338:	92c1                	srli	a3,a3,0x30
+    8020433a:	4725                	li	a4,9
+    8020433c:	02d76e63          	bltu	a4,a3,80204378 <filewrite+0xc8>
+    80204340:	0792                	slli	a5,a5,0x4
+    80204342:	0002d717          	auipc	a4,0x2d
+    80204346:	7ce70713          	addi	a4,a4,1998 # 80231b10 <devsw>
+    8020434a:	97ba                	add	a5,a5,a4
+    8020434c:	679c                	ld	a5,8(a5)
+    8020434e:	c79d                	beqz	a5,8020437c <filewrite+0xcc>
     ret = devsw[f->major].write(1, addr, n);
-    8020434c:	4505                	li	a0,1
-    8020434e:	9782                	jalr	a5
-    80204350:	892a                	mv	s2,a0
-    80204352:	bf6d                	j	8020430c <filewrite+0x60>
+    80204350:	4505                	li	a0,1
+    80204352:	9782                	jalr	a5
+    80204354:	892a                	mv	s2,a0
+    80204356:	bf6d                	j	80204310 <filewrite+0x60>
       f->off += n;
-    80204354:	509c                	lw	a5,32(s1)
-    80204356:	014787bb          	addw	a5,a5,s4
-    8020435a:	d09c                	sw	a5,32(s1)
+    80204358:	509c                	lw	a5,32(s1)
+    8020435a:	014787bb          	addw	a5,a5,s4
+    8020435e:	d09c                	sw	a5,32(s1)
       ret = n;
-    8020435c:	894e                	mv	s2,s3
-    8020435e:	b755                	j	80204302 <filewrite+0x56>
+    80204360:	894e                	mv	s2,s3
+    80204362:	b755                	j	80204306 <filewrite+0x56>
     panic("filewrite");
-    80204360:	00007517          	auipc	a0,0x7
-    80204364:	97850513          	addi	a0,a0,-1672 # 8020acd8 <digits+0x958>
-    80204368:	ffffc097          	auipc	ra,0xffffc
-    8020436c:	ddc080e7          	jalr	-548(ra) # 80200144 <panic>
+    80204364:	00007517          	auipc	a0,0x7
+    80204368:	97450513          	addi	a0,a0,-1676 # 8020acd8 <digits+0x958>
+    8020436c:	ffffc097          	auipc	ra,0xffffc
+    80204370:	dd8080e7          	jalr	-552(ra) # 80200144 <panic>
     return -1;
-    80204370:	597d                	li	s2,-1
-    80204372:	bf69                	j	8020430c <filewrite+0x60>
-      return -1;
     80204374:	597d                	li	s2,-1
-    80204376:	bf59                	j	8020430c <filewrite+0x60>
+    80204376:	bf69                	j	80204310 <filewrite+0x60>
+      return -1;
     80204378:	597d                	li	s2,-1
-    8020437a:	bf49                	j	8020430c <filewrite+0x60>
+    8020437a:	bf59                	j	80204310 <filewrite+0x60>
+    8020437c:	597d                	li	s2,-1
+    8020437e:	bf49                	j	80204310 <filewrite+0x60>
 
-000000008020437c <dirnext>:
+0000000080204380 <dirnext>:
 int
 dirnext(struct file *f, uint64 addr)
 {
   // struct proc *p = myproc();
 
   if(f->readable == 0 || !(f->ep->attribute & ATTR_DIRECTORY))
-    8020437c:	00854783          	lbu	a5,8(a0)
-    80204380:	cfdd                	beqz	a5,8020443e <dirnext+0xc2>
+    80204380:	00854783          	lbu	a5,8(a0)
+    80204384:	cfdd                	beqz	a5,80204442 <dirnext+0xc2>
 {
-    80204382:	7141                	addi	sp,sp,-496
-    80204384:	f786                	sd	ra,488(sp)
-    80204386:	f3a2                	sd	s0,480(sp)
-    80204388:	efa6                	sd	s1,472(sp)
-    8020438a:	ebca                	sd	s2,464(sp)
-    8020438c:	e7ce                	sd	s3,456(sp)
-    8020438e:	e3d2                	sd	s4,448(sp)
-    80204390:	ff56                	sd	s5,440(sp)
-    80204392:	1b80                	addi	s0,sp,496
-    80204394:	84aa                	mv	s1,a0
-    80204396:	8aae                	mv	s5,a1
+    80204386:	7141                	addi	sp,sp,-496
+    80204388:	f786                	sd	ra,488(sp)
+    8020438a:	f3a2                	sd	s0,480(sp)
+    8020438c:	efa6                	sd	s1,472(sp)
+    8020438e:	ebca                	sd	s2,464(sp)
+    80204390:	e7ce                	sd	s3,456(sp)
+    80204392:	e3d2                	sd	s4,448(sp)
+    80204394:	ff56                	sd	s5,440(sp)
+    80204396:	1b80                	addi	s0,sp,496
+    80204398:	84aa                	mv	s1,a0
+    8020439a:	8aae                	mv	s5,a1
   if(f->readable == 0 || !(f->ep->attribute & ATTR_DIRECTORY))
-    80204398:	6d18                	ld	a4,24(a0)
-    8020439a:	10074783          	lbu	a5,256(a4)
-    8020439e:	8bc1                	andi	a5,a5,16
+    8020439c:	6d18                	ld	a4,24(a0)
+    8020439e:	10074783          	lbu	a5,256(a4)
+    802043a2:	8bc1                	andi	a5,a5,16
     return -1;
-    802043a0:	557d                	li	a0,-1
+    802043a4:	557d                	li	a0,-1
   if(f->readable == 0 || !(f->ep->attribute & ATTR_DIRECTORY))
-    802043a2:	eb91                	bnez	a5,802043b6 <dirnext+0x3a>
+    802043a6:	eb91                	bnez	a5,802043ba <dirnext+0x3a>
   // if(copyout(p->pagetable, addr, (char *)&st, sizeof(st)) < 0)
   if(copyout2(addr, (char *)&st, sizeof(st)) < 0)
     return -1;
 
   return 1;
-    802043a4:	70be                	ld	ra,488(sp)
-    802043a6:	741e                	ld	s0,480(sp)
-    802043a8:	64fe                	ld	s1,472(sp)
-    802043aa:	695e                	ld	s2,464(sp)
-    802043ac:	69be                	ld	s3,456(sp)
-    802043ae:	6a1e                	ld	s4,448(sp)
-    802043b0:	7afa                	ld	s5,440(sp)
-    802043b2:	617d                	addi	sp,sp,496
-    802043b4:	8082                	ret
+    802043a8:	70be                	ld	ra,488(sp)
+    802043aa:	741e                	ld	s0,480(sp)
+    802043ac:	64fe                	ld	s1,472(sp)
+    802043ae:	695e                	ld	s2,464(sp)
+    802043b0:	69be                	ld	s3,456(sp)
+    802043b2:	6a1e                	ld	s4,448(sp)
+    802043b4:	7afa                	ld	s5,440(sp)
+    802043b6:	617d                	addi	sp,sp,496
+    802043b8:	8082                	ret
   int count = 0;
-    802043b6:	e0042e23          	sw	zero,-484(s0)
+    802043ba:	e0042e23          	sw	zero,-484(s0)
   elock(f->ep);
-    802043ba:	853a                	mv	a0,a4
-    802043bc:	00003097          	auipc	ra,0x3
-    802043c0:	d02080e7          	jalr	-766(ra) # 802070be <elock>
+    802043be:	853a                	mv	a0,a4
+    802043c0:	00003097          	auipc	ra,0x3
+    802043c4:	cbe080e7          	jalr	-834(ra) # 8020707e <elock>
   while ((ret = enext(f->ep, &de, f->off, &count)) == 0) {  // skip empty entry
-    802043c4:	e1c40a13          	addi	s4,s0,-484
-    802043c8:	e5840993          	addi	s3,s0,-424
-    802043cc:	a801                	j	802043dc <dirnext+0x60>
+    802043c8:	e1c40a13          	addi	s4,s0,-484
+    802043cc:	e5840993          	addi	s3,s0,-424
+    802043d0:	a801                	j	802043e0 <dirnext+0x60>
     f->off += count * 32;
-    802043ce:	e1c42783          	lw	a5,-484(s0)
-    802043d2:	0057979b          	slliw	a5,a5,0x5
-    802043d6:	5098                	lw	a4,32(s1)
-    802043d8:	9fb9                	addw	a5,a5,a4
-    802043da:	d09c                	sw	a5,32(s1)
+    802043d2:	e1c42783          	lw	a5,-484(s0)
+    802043d6:	0057979b          	slliw	a5,a5,0x5
+    802043da:	5098                	lw	a4,32(s1)
+    802043dc:	9fb9                	addw	a5,a5,a4
+    802043de:	d09c                	sw	a5,32(s1)
   while ((ret = enext(f->ep, &de, f->off, &count)) == 0) {  // skip empty entry
-    802043dc:	86d2                	mv	a3,s4
-    802043de:	5090                	lw	a2,32(s1)
-    802043e0:	85ce                	mv	a1,s3
-    802043e2:	6c88                	ld	a0,24(s1)
-    802043e4:	00003097          	auipc	ra,0x3
-    802043e8:	ede080e7          	jalr	-290(ra) # 802072c2 <enext>
-    802043ec:	892a                	mv	s2,a0
-    802043ee:	d165                	beqz	a0,802043ce <dirnext+0x52>
+    802043e0:	86d2                	mv	a3,s4
+    802043e2:	5090                	lw	a2,32(s1)
+    802043e4:	85ce                	mv	a1,s3
+    802043e6:	6c88                	ld	a0,24(s1)
+    802043e8:	00003097          	auipc	ra,0x3
+    802043ec:	e9a080e7          	jalr	-358(ra) # 80207282 <enext>
+    802043f0:	892a                	mv	s2,a0
+    802043f2:	d165                	beqz	a0,802043d2 <dirnext+0x52>
   eunlock(f->ep);
-    802043f0:	6c88                	ld	a0,24(s1)
-    802043f2:	00003097          	auipc	ra,0x3
-    802043f6:	d02080e7          	jalr	-766(ra) # 802070f4 <eunlock>
+    802043f4:	6c88                	ld	a0,24(s1)
+    802043f6:	00003097          	auipc	ra,0x3
+    802043fa:	cbe080e7          	jalr	-834(ra) # 802070b4 <eunlock>
   if (ret == -1)
-    802043fa:	57fd                	li	a5,-1
+    802043fe:	57fd                	li	a5,-1
     return 0;
-    802043fc:	4501                	li	a0,0
+    80204400:	4501                	li	a0,0
   if (ret == -1)
-    802043fe:	faf903e3          	beq	s2,a5,802043a4 <dirnext+0x28>
+    80204402:	faf903e3          	beq	s2,a5,802043a8 <dirnext+0x28>
   f->off += count * 32;
-    80204402:	e1c42783          	lw	a5,-484(s0)
-    80204406:	0057979b          	slliw	a5,a5,0x5
-    8020440a:	5098                	lw	a4,32(s1)
-    8020440c:	9fb9                	addw	a5,a5,a4
-    8020440e:	d09c                	sw	a5,32(s1)
+    80204406:	e1c42783          	lw	a5,-484(s0)
+    8020440a:	0057979b          	slliw	a5,a5,0x5
+    8020440e:	5098                	lw	a4,32(s1)
+    80204410:	9fb9                	addw	a5,a5,a4
+    80204412:	d09c                	sw	a5,32(s1)
   estat(&de, &st);
-    80204410:	e2040493          	addi	s1,s0,-480
-    80204414:	85a6                	mv	a1,s1
-    80204416:	e5840513          	addi	a0,s0,-424
-    8020441a:	00003097          	auipc	ra,0x3
-    8020441e:	e60080e7          	jalr	-416(ra) # 8020727a <estat>
+    80204414:	e2040493          	addi	s1,s0,-480
+    80204418:	85a6                	mv	a1,s1
+    8020441a:	e5840513          	addi	a0,s0,-424
+    8020441e:	00003097          	auipc	ra,0x3
+    80204422:	e1c080e7          	jalr	-484(ra) # 8020723a <estat>
   if(copyout2(addr, (char *)&st, sizeof(st)) < 0)
-    80204422:	03800613          	li	a2,56
-    80204426:	85a6                	mv	a1,s1
-    80204428:	8556                	mv	a0,s5
-    8020442a:	ffffd097          	auipc	ra,0xffffd
-    8020442e:	f48080e7          	jalr	-184(ra) # 80201372 <copyout2>
+    80204426:	03800613          	li	a2,56
+    8020442a:	85a6                	mv	a1,s1
+    8020442c:	8556                	mv	a0,s5
+    8020442e:	ffffd097          	auipc	ra,0xffffd
+    80204432:	f44080e7          	jalr	-188(ra) # 80201372 <copyout2>
     return -1;
-    80204432:	fff54513          	not	a0,a0
-    80204436:	957d                	srai	a0,a0,0x3f
-    80204438:	8909                	andi	a0,a0,2
-    8020443a:	157d                	addi	a0,a0,-1
-    8020443c:	b7a5                	j	802043a4 <dirnext+0x28>
+    80204436:	fff54513          	not	a0,a0
+    8020443a:	957d                	srai	a0,a0,0x3f
+    8020443c:	8909                	andi	a0,a0,2
+    8020443e:	157d                	addi	a0,a0,-1
+    80204440:	b7a5                	j	802043a8 <dirnext+0x28>
     return -1;
-    8020443e:	557d                	li	a0,-1
-    80204440:	8082                	ret
+    80204442:	557d                	li	a0,-1
+    80204444:	8082                	ret
 
-0000000080204442 <pipealloc>:
+0000000080204446 <pipealloc>:
 #include "include/kalloc.h"
 #include "include/vm.h"
 
 int
 pipealloc(struct file **f0, struct file **f1)
 {
-    80204442:	7179                	addi	sp,sp,-48
-    80204444:	f406                	sd	ra,40(sp)
-    80204446:	f022                	sd	s0,32(sp)
-    80204448:	ec26                	sd	s1,24(sp)
-    8020444a:	e84a                	sd	s2,16(sp)
-    8020444c:	e44e                	sd	s3,8(sp)
-    8020444e:	e052                	sd	s4,0(sp)
-    80204450:	1800                	addi	s0,sp,48
-    80204452:	84aa                	mv	s1,a0
-    80204454:	8a2e                	mv	s4,a1
+    80204446:	7179                	addi	sp,sp,-48
+    80204448:	f406                	sd	ra,40(sp)
+    8020444a:	f022                	sd	s0,32(sp)
+    8020444c:	ec26                	sd	s1,24(sp)
+    8020444e:	e84a                	sd	s2,16(sp)
+    80204450:	e44e                	sd	s3,8(sp)
+    80204452:	e052                	sd	s4,0(sp)
+    80204454:	1800                	addi	s0,sp,48
+    80204456:	84aa                	mv	s1,a0
+    80204458:	8a2e                	mv	s4,a1
   struct pipe *pi;
 
   pi = 0;
   *f0 = *f1 = 0;
-    80204456:	0005b023          	sd	zero,0(a1)
-    8020445a:	00053023          	sd	zero,0(a0)
+    8020445a:	0005b023          	sd	zero,0(a1)
+    8020445e:	00053023          	sd	zero,0(a0)
   if((*f0 = filealloc()) == NULL || (*f1 = filealloc()) == NULL)
-    8020445e:	00000097          	auipc	ra,0x0
-    80204462:	b2c080e7          	jalr	-1236(ra) # 80203f8a <filealloc>
-    80204466:	e088                	sd	a0,0(s1)
-    80204468:	c551                	beqz	a0,802044f4 <pipealloc+0xb2>
-    8020446a:	00000097          	auipc	ra,0x0
-    8020446e:	b20080e7          	jalr	-1248(ra) # 80203f8a <filealloc>
-    80204472:	00aa3023          	sd	a0,0(s4)
-    80204476:	c92d                	beqz	a0,802044e8 <pipealloc+0xa6>
+    80204462:	00000097          	auipc	ra,0x0
+    80204466:	b2c080e7          	jalr	-1236(ra) # 80203f8e <filealloc>
+    8020446a:	e088                	sd	a0,0(s1)
+    8020446c:	c551                	beqz	a0,802044f8 <pipealloc+0xb2>
+    8020446e:	00000097          	auipc	ra,0x0
+    80204472:	b20080e7          	jalr	-1248(ra) # 80203f8e <filealloc>
+    80204476:	00aa3023          	sd	a0,0(s4)
+    8020447a:	c92d                	beqz	a0,802044ec <pipealloc+0xa6>
     goto bad;
   if((pi = (struct pipe*)kalloc()) == NULL)
-    80204478:	ffffc097          	auipc	ra,0xffffc
-    8020447c:	0e2080e7          	jalr	226(ra) # 8020055a <kalloc>
-    80204480:	892a                	mv	s2,a0
-    80204482:	c125                	beqz	a0,802044e2 <pipealloc+0xa0>
+    8020447c:	ffffc097          	auipc	ra,0xffffc
+    80204480:	0de080e7          	jalr	222(ra) # 8020055a <kalloc>
+    80204484:	892a                	mv	s2,a0
+    80204486:	c125                	beqz	a0,802044e6 <pipealloc+0xa0>
     goto bad;
   pi->readopen = 1;
-    80204484:	4985                	li	s3,1
-    80204486:	23352023          	sw	s3,544(a0)
+    80204488:	4985                	li	s3,1
+    8020448a:	23352023          	sw	s3,544(a0)
   pi->writeopen = 1;
-    8020448a:	23352223          	sw	s3,548(a0)
+    8020448e:	23352223          	sw	s3,548(a0)
   pi->nwrite = 0;
-    8020448e:	20052e23          	sw	zero,540(a0)
+    80204492:	20052e23          	sw	zero,540(a0)
   pi->nread = 0;
-    80204492:	20052c23          	sw	zero,536(a0)
+    80204496:	20052c23          	sw	zero,536(a0)
   initlock(&pi->lock, "pipe");
-    80204496:	00006597          	auipc	a1,0x6
-    8020449a:	55a58593          	addi	a1,a1,1370 # 8020a9f0 <digits+0x670>
-    8020449e:	ffffc097          	auipc	ra,0xffffc
-    802044a2:	1e4080e7          	jalr	484(ra) # 80200682 <initlock>
+    8020449a:	00006597          	auipc	a1,0x6
+    8020449e:	55658593          	addi	a1,a1,1366 # 8020a9f0 <digits+0x670>
+    802044a2:	ffffc097          	auipc	ra,0xffffc
+    802044a6:	1e0080e7          	jalr	480(ra) # 80200682 <initlock>
   (*f0)->type = FD_PIPE;
-    802044a6:	609c                	ld	a5,0(s1)
-    802044a8:	0137a023          	sw	s3,0(a5)
+    802044aa:	609c                	ld	a5,0(s1)
+    802044ac:	0137a023          	sw	s3,0(a5)
   (*f0)->readable = 1;
-    802044ac:	609c                	ld	a5,0(s1)
-    802044ae:	01378423          	sb	s3,8(a5)
+    802044b0:	609c                	ld	a5,0(s1)
+    802044b2:	01378423          	sb	s3,8(a5)
   (*f0)->writable = 0;
-    802044b2:	609c                	ld	a5,0(s1)
-    802044b4:	000784a3          	sb	zero,9(a5)
+    802044b6:	609c                	ld	a5,0(s1)
+    802044b8:	000784a3          	sb	zero,9(a5)
   (*f0)->pipe = pi;
-    802044b8:	609c                	ld	a5,0(s1)
-    802044ba:	0127b823          	sd	s2,16(a5)
+    802044bc:	609c                	ld	a5,0(s1)
+    802044be:	0127b823          	sd	s2,16(a5)
   (*f1)->type = FD_PIPE;
-    802044be:	000a3783          	ld	a5,0(s4)
-    802044c2:	0137a023          	sw	s3,0(a5)
+    802044c2:	000a3783          	ld	a5,0(s4)
+    802044c6:	0137a023          	sw	s3,0(a5)
   (*f1)->readable = 0;
-    802044c6:	000a3783          	ld	a5,0(s4)
-    802044ca:	00078423          	sb	zero,8(a5)
+    802044ca:	000a3783          	ld	a5,0(s4)
+    802044ce:	00078423          	sb	zero,8(a5)
   (*f1)->writable = 1;
-    802044ce:	000a3783          	ld	a5,0(s4)
-    802044d2:	013784a3          	sb	s3,9(a5)
+    802044d2:	000a3783          	ld	a5,0(s4)
+    802044d6:	013784a3          	sb	s3,9(a5)
   (*f1)->pipe = pi;
-    802044d6:	000a3783          	ld	a5,0(s4)
-    802044da:	0127b823          	sd	s2,16(a5)
+    802044da:	000a3783          	ld	a5,0(s4)
+    802044de:	0127b823          	sd	s2,16(a5)
   return 0;
-    802044de:	4501                	li	a0,0
-    802044e0:	a025                	j	80204508 <pipealloc+0xc6>
+    802044e2:	4501                	li	a0,0
+    802044e4:	a025                	j	8020450c <pipealloc+0xc6>
 
  bad:
   if(pi)
     kfree((char*)pi);
   if(*f0)
-    802044e2:	6088                	ld	a0,0(s1)
-    802044e4:	e501                	bnez	a0,802044ec <pipealloc+0xaa>
-    802044e6:	a039                	j	802044f4 <pipealloc+0xb2>
-    802044e8:	6088                	ld	a0,0(s1)
-    802044ea:	c51d                	beqz	a0,80204518 <pipealloc+0xd6>
+    802044e6:	6088                	ld	a0,0(s1)
+    802044e8:	e501                	bnez	a0,802044f0 <pipealloc+0xaa>
+    802044ea:	a039                	j	802044f8 <pipealloc+0xb2>
+    802044ec:	6088                	ld	a0,0(s1)
+    802044ee:	c51d                	beqz	a0,8020451c <pipealloc+0xd6>
     fileclose(*f0);
-    802044ec:	00000097          	auipc	ra,0x0
-    802044f0:	b5a080e7          	jalr	-1190(ra) # 80204046 <fileclose>
+    802044f0:	00000097          	auipc	ra,0x0
+    802044f4:	b5a080e7          	jalr	-1190(ra) # 8020404a <fileclose>
   if(*f1)
-    802044f4:	000a3783          	ld	a5,0(s4)
+    802044f8:	000a3783          	ld	a5,0(s4)
     fileclose(*f1);
   return -1;
-    802044f8:	557d                	li	a0,-1
+    802044fc:	557d                	li	a0,-1
   if(*f1)
-    802044fa:	c799                	beqz	a5,80204508 <pipealloc+0xc6>
+    802044fe:	c799                	beqz	a5,8020450c <pipealloc+0xc6>
     fileclose(*f1);
-    802044fc:	853e                	mv	a0,a5
-    802044fe:	00000097          	auipc	ra,0x0
-    80204502:	b48080e7          	jalr	-1208(ra) # 80204046 <fileclose>
+    80204500:	853e                	mv	a0,a5
+    80204502:	00000097          	auipc	ra,0x0
+    80204506:	b48080e7          	jalr	-1208(ra) # 8020404a <fileclose>
   return -1;
-    80204506:	557d                	li	a0,-1
+    8020450a:	557d                	li	a0,-1
 }
-    80204508:	70a2                	ld	ra,40(sp)
-    8020450a:	7402                	ld	s0,32(sp)
-    8020450c:	64e2                	ld	s1,24(sp)
-    8020450e:	6942                	ld	s2,16(sp)
-    80204510:	69a2                	ld	s3,8(sp)
-    80204512:	6a02                	ld	s4,0(sp)
-    80204514:	6145                	addi	sp,sp,48
-    80204516:	8082                	ret
+    8020450c:	70a2                	ld	ra,40(sp)
+    8020450e:	7402                	ld	s0,32(sp)
+    80204510:	64e2                	ld	s1,24(sp)
+    80204512:	6942                	ld	s2,16(sp)
+    80204514:	69a2                	ld	s3,8(sp)
+    80204516:	6a02                	ld	s4,0(sp)
+    80204518:	6145                	addi	sp,sp,48
+    8020451a:	8082                	ret
   return -1;
-    80204518:	557d                	li	a0,-1
-    8020451a:	b7fd                	j	80204508 <pipealloc+0xc6>
+    8020451c:	557d                	li	a0,-1
+    8020451e:	b7fd                	j	8020450c <pipealloc+0xc6>
 
-000000008020451c <pipeclose>:
+0000000080204520 <pipeclose>:
 
 void
 pipeclose(struct pipe *pi, int writable)
 {
-    8020451c:	1101                	addi	sp,sp,-32
-    8020451e:	ec06                	sd	ra,24(sp)
-    80204520:	e822                	sd	s0,16(sp)
-    80204522:	e426                	sd	s1,8(sp)
-    80204524:	e04a                	sd	s2,0(sp)
-    80204526:	1000                	addi	s0,sp,32
-    80204528:	84aa                	mv	s1,a0
-    8020452a:	892e                	mv	s2,a1
+    80204520:	1101                	addi	sp,sp,-32
+    80204522:	ec06                	sd	ra,24(sp)
+    80204524:	e822                	sd	s0,16(sp)
+    80204526:	e426                	sd	s1,8(sp)
+    80204528:	e04a                	sd	s2,0(sp)
+    8020452a:	1000                	addi	s0,sp,32
+    8020452c:	84aa                	mv	s1,a0
+    8020452e:	892e                	mv	s2,a1
   acquire(&pi->lock);
-    8020452c:	ffffc097          	auipc	ra,0xffffc
-    80204530:	19a080e7          	jalr	410(ra) # 802006c6 <acquire>
+    80204530:	ffffc097          	auipc	ra,0xffffc
+    80204534:	196080e7          	jalr	406(ra) # 802006c6 <acquire>
   if(writable){
-    80204534:	02090d63          	beqz	s2,8020456e <pipeclose+0x52>
+    80204538:	02090d63          	beqz	s2,80204572 <pipeclose+0x52>
     pi->writeopen = 0;
-    80204538:	2204a223          	sw	zero,548(s1)
+    8020453c:	2204a223          	sw	zero,548(s1)
     wakeup(&pi->nread);
-    8020453c:	21848513          	addi	a0,s1,536
-    80204540:	ffffe097          	auipc	ra,0xffffe
-    80204544:	1c0080e7          	jalr	448(ra) # 80202700 <wakeup>
+    80204540:	21848513          	addi	a0,s1,536
+    80204544:	ffffe097          	auipc	ra,0xffffe
+    80204548:	1b6080e7          	jalr	438(ra) # 802026fa <wakeup>
   } else {
     pi->readopen = 0;
     wakeup(&pi->nwrite);
   }
   if(pi->readopen == 0 && pi->writeopen == 0){
-    80204548:	2204b783          	ld	a5,544(s1)
-    8020454c:	eb95                	bnez	a5,80204580 <pipeclose+0x64>
+    8020454c:	2204b783          	ld	a5,544(s1)
+    80204550:	eb95                	bnez	a5,80204584 <pipeclose+0x64>
     release(&pi->lock);
-    8020454e:	8526                	mv	a0,s1
-    80204550:	ffffc097          	auipc	ra,0xffffc
-    80204554:	1ca080e7          	jalr	458(ra) # 8020071a <release>
+    80204552:	8526                	mv	a0,s1
+    80204554:	ffffc097          	auipc	ra,0xffffc
+    80204558:	1c6080e7          	jalr	454(ra) # 8020071a <release>
     kfree((char*)pi);
-    80204558:	8526                	mv	a0,s1
-    8020455a:	ffffc097          	auipc	ra,0xffffc
-    8020455e:	ee6080e7          	jalr	-282(ra) # 80200440 <kfree>
+    8020455c:	8526                	mv	a0,s1
+    8020455e:	ffffc097          	auipc	ra,0xffffc
+    80204562:	ee2080e7          	jalr	-286(ra) # 80200440 <kfree>
   } else
     release(&pi->lock);
 }
-    80204562:	60e2                	ld	ra,24(sp)
-    80204564:	6442                	ld	s0,16(sp)
-    80204566:	64a2                	ld	s1,8(sp)
-    80204568:	6902                	ld	s2,0(sp)
-    8020456a:	6105                	addi	sp,sp,32
-    8020456c:	8082                	ret
+    80204566:	60e2                	ld	ra,24(sp)
+    80204568:	6442                	ld	s0,16(sp)
+    8020456a:	64a2                	ld	s1,8(sp)
+    8020456c:	6902                	ld	s2,0(sp)
+    8020456e:	6105                	addi	sp,sp,32
+    80204570:	8082                	ret
     pi->readopen = 0;
-    8020456e:	2204a023          	sw	zero,544(s1)
+    80204572:	2204a023          	sw	zero,544(s1)
     wakeup(&pi->nwrite);
-    80204572:	21c48513          	addi	a0,s1,540
-    80204576:	ffffe097          	auipc	ra,0xffffe
-    8020457a:	18a080e7          	jalr	394(ra) # 80202700 <wakeup>
-    8020457e:	b7e9                	j	80204548 <pipeclose+0x2c>
+    80204576:	21c48513          	addi	a0,s1,540
+    8020457a:	ffffe097          	auipc	ra,0xffffe
+    8020457e:	180080e7          	jalr	384(ra) # 802026fa <wakeup>
+    80204582:	b7e9                	j	8020454c <pipeclose+0x2c>
     release(&pi->lock);
-    80204580:	8526                	mv	a0,s1
-    80204582:	ffffc097          	auipc	ra,0xffffc
-    80204586:	198080e7          	jalr	408(ra) # 8020071a <release>
+    80204584:	8526                	mv	a0,s1
+    80204586:	ffffc097          	auipc	ra,0xffffc
+    8020458a:	194080e7          	jalr	404(ra) # 8020071a <release>
 }
-    8020458a:	bfe1                	j	80204562 <pipeclose+0x46>
+    8020458e:	bfe1                	j	80204566 <pipeclose+0x46>
 
-000000008020458c <pipewrite>:
+0000000080204590 <pipewrite>:
 
 int
 pipewrite(struct pipe *pi, uint64 addr, int n)
 {
-    8020458c:	7159                	addi	sp,sp,-112
-    8020458e:	f486                	sd	ra,104(sp)
-    80204590:	f0a2                	sd	s0,96(sp)
-    80204592:	eca6                	sd	s1,88(sp)
-    80204594:	e8ca                	sd	s2,80(sp)
-    80204596:	e4ce                	sd	s3,72(sp)
-    80204598:	e0d2                	sd	s4,64(sp)
-    8020459a:	fc56                	sd	s5,56(sp)
-    8020459c:	f85a                	sd	s6,48(sp)
-    8020459e:	f45e                	sd	s7,40(sp)
-    802045a0:	f062                	sd	s8,32(sp)
-    802045a2:	ec66                	sd	s9,24(sp)
-    802045a4:	1880                	addi	s0,sp,112
-    802045a6:	84aa                	mv	s1,a0
-    802045a8:	8b2e                	mv	s6,a1
-    802045aa:	8ab2                	mv	s5,a2
+    80204590:	7159                	addi	sp,sp,-112
+    80204592:	f486                	sd	ra,104(sp)
+    80204594:	f0a2                	sd	s0,96(sp)
+    80204596:	eca6                	sd	s1,88(sp)
+    80204598:	e8ca                	sd	s2,80(sp)
+    8020459a:	e4ce                	sd	s3,72(sp)
+    8020459c:	e0d2                	sd	s4,64(sp)
+    8020459e:	fc56                	sd	s5,56(sp)
+    802045a0:	f85a                	sd	s6,48(sp)
+    802045a2:	f45e                	sd	s7,40(sp)
+    802045a4:	f062                	sd	s8,32(sp)
+    802045a6:	ec66                	sd	s9,24(sp)
+    802045a8:	1880                	addi	s0,sp,112
+    802045aa:	84aa                	mv	s1,a0
+    802045ac:	8b2e                	mv	s6,a1
+    802045ae:	8ab2                	mv	s5,a2
   int i;
   char ch;
   struct proc *pr = myproc();
-    802045ac:	ffffd097          	auipc	ra,0xffffd
-    802045b0:	490080e7          	jalr	1168(ra) # 80201a3c <myproc>
-    802045b4:	892a                	mv	s2,a0
+    802045b0:	ffffd097          	auipc	ra,0xffffd
+    802045b4:	48c080e7          	jalr	1164(ra) # 80201a3c <myproc>
+    802045b8:	892a                	mv	s2,a0
 
   acquire(&pi->lock);
-    802045b6:	8526                	mv	a0,s1
-    802045b8:	ffffc097          	auipc	ra,0xffffc
-    802045bc:	10e080e7          	jalr	270(ra) # 802006c6 <acquire>
+    802045ba:	8526                	mv	a0,s1
+    802045bc:	ffffc097          	auipc	ra,0xffffc
+    802045c0:	10a080e7          	jalr	266(ra) # 802006c6 <acquire>
   for(i = 0; i < n; i++){
-    802045c0:	09505763          	blez	s5,8020464e <pipewrite+0xc2>
-    802045c4:	4b81                	li	s7,0
+    802045c4:	09505763          	blez	s5,80204652 <pipewrite+0xc2>
+    802045c8:	4b81                	li	s7,0
     while(pi->nwrite == pi->nread + PIPESIZE){  //DOC: pipewrite-full
       if(pi->readopen == 0 || pr->killed){
         release(&pi->lock);
         return -1;
       }
       wakeup(&pi->nread);
-    802045c6:	21848a13          	addi	s4,s1,536
+    802045ca:	21848a13          	addi	s4,s1,536
       sleep(&pi->nwrite, &pi->lock);
-    802045ca:	21c48993          	addi	s3,s1,540
+    802045ce:	21c48993          	addi	s3,s1,540
     }
     // if(copyin(pr->pagetable, &ch, addr + i, 1) == -1)
     if(copyin2(&ch, addr + i, 1) == -1)
-    802045ce:	f9f40c93          	addi	s9,s0,-97
-    802045d2:	5c7d                	li	s8,-1
+    802045d2:	f9f40c93          	addi	s9,s0,-97
+    802045d6:	5c7d                	li	s8,-1
     while(pi->nwrite == pi->nread + PIPESIZE){  //DOC: pipewrite-full
-    802045d4:	2184a783          	lw	a5,536(s1)
-    802045d8:	21c4a703          	lw	a4,540(s1)
-    802045dc:	2007879b          	addiw	a5,a5,512
-    802045e0:	02f71b63          	bne	a4,a5,80204616 <pipewrite+0x8a>
+    802045d8:	2184a783          	lw	a5,536(s1)
+    802045dc:	21c4a703          	lw	a4,540(s1)
+    802045e0:	2007879b          	addiw	a5,a5,512
+    802045e4:	02f71b63          	bne	a4,a5,8020461a <pipewrite+0x8a>
       if(pi->readopen == 0 || pr->killed){
-    802045e4:	2204a783          	lw	a5,544(s1)
-    802045e8:	c3c1                	beqz	a5,80204668 <pipewrite+0xdc>
-    802045ea:	03092783          	lw	a5,48(s2)
-    802045ee:	efad                	bnez	a5,80204668 <pipewrite+0xdc>
+    802045e8:	2204a783          	lw	a5,544(s1)
+    802045ec:	c3c1                	beqz	a5,8020466c <pipewrite+0xdc>
+    802045ee:	03092783          	lw	a5,48(s2)
+    802045f2:	efad                	bnez	a5,8020466c <pipewrite+0xdc>
       wakeup(&pi->nread);
-    802045f0:	8552                	mv	a0,s4
-    802045f2:	ffffe097          	auipc	ra,0xffffe
-    802045f6:	10e080e7          	jalr	270(ra) # 80202700 <wakeup>
+    802045f4:	8552                	mv	a0,s4
+    802045f6:	ffffe097          	auipc	ra,0xffffe
+    802045fa:	104080e7          	jalr	260(ra) # 802026fa <wakeup>
       sleep(&pi->nwrite, &pi->lock);
-    802045fa:	85a6                	mv	a1,s1
-    802045fc:	854e                	mv	a0,s3
-    802045fe:	ffffe097          	auipc	ra,0xffffe
-    80204602:	e1a080e7          	jalr	-486(ra) # 80202418 <sleep>
+    802045fe:	85a6                	mv	a1,s1
+    80204600:	854e                	mv	a0,s3
+    80204602:	ffffe097          	auipc	ra,0xffffe
+    80204606:	e10080e7          	jalr	-496(ra) # 80202412 <sleep>
     while(pi->nwrite == pi->nread + PIPESIZE){  //DOC: pipewrite-full
-    80204606:	2184a783          	lw	a5,536(s1)
-    8020460a:	21c4a703          	lw	a4,540(s1)
-    8020460e:	2007879b          	addiw	a5,a5,512
-    80204612:	fcf709e3          	beq	a4,a5,802045e4 <pipewrite+0x58>
+    8020460a:	2184a783          	lw	a5,536(s1)
+    8020460e:	21c4a703          	lw	a4,540(s1)
+    80204612:	2007879b          	addiw	a5,a5,512
+    80204616:	fcf709e3          	beq	a4,a5,802045e8 <pipewrite+0x58>
     if(copyin2(&ch, addr + i, 1) == -1)
-    80204616:	4605                	li	a2,1
-    80204618:	85da                	mv	a1,s6
-    8020461a:	8566                	mv	a0,s9
-    8020461c:	ffffd097          	auipc	ra,0xffffd
-    80204620:	e36080e7          	jalr	-458(ra) # 80201452 <copyin2>
-    80204624:	03850663          	beq	a0,s8,80204650 <pipewrite+0xc4>
+    8020461a:	4605                	li	a2,1
+    8020461c:	85da                	mv	a1,s6
+    8020461e:	8566                	mv	a0,s9
+    80204620:	ffffd097          	auipc	ra,0xffffd
+    80204624:	e32080e7          	jalr	-462(ra) # 80201452 <copyin2>
+    80204628:	03850663          	beq	a0,s8,80204654 <pipewrite+0xc4>
       break;
     pi->data[pi->nwrite++ % PIPESIZE] = ch;
-    80204628:	21c4a783          	lw	a5,540(s1)
-    8020462c:	0017871b          	addiw	a4,a5,1
-    80204630:	20e4ae23          	sw	a4,540(s1)
-    80204634:	1ff7f793          	andi	a5,a5,511
-    80204638:	97a6                	add	a5,a5,s1
-    8020463a:	f9f44703          	lbu	a4,-97(s0)
-    8020463e:	00e78c23          	sb	a4,24(a5)
+    8020462c:	21c4a783          	lw	a5,540(s1)
+    80204630:	0017871b          	addiw	a4,a5,1
+    80204634:	20e4ae23          	sw	a4,540(s1)
+    80204638:	1ff7f793          	andi	a5,a5,511
+    8020463c:	97a6                	add	a5,a5,s1
+    8020463e:	f9f44703          	lbu	a4,-97(s0)
+    80204642:	00e78c23          	sb	a4,24(a5)
   for(i = 0; i < n; i++){
-    80204642:	2b85                	addiw	s7,s7,1
-    80204644:	0b05                	addi	s6,s6,1
-    80204646:	f97a97e3          	bne	s5,s7,802045d4 <pipewrite+0x48>
-    8020464a:	8bd6                	mv	s7,s5
-    8020464c:	a011                	j	80204650 <pipewrite+0xc4>
-    8020464e:	4b81                	li	s7,0
+    80204646:	2b85                	addiw	s7,s7,1
+    80204648:	0b05                	addi	s6,s6,1
+    8020464a:	f97a97e3          	bne	s5,s7,802045d8 <pipewrite+0x48>
+    8020464e:	8bd6                	mv	s7,s5
+    80204650:	a011                	j	80204654 <pipewrite+0xc4>
+    80204652:	4b81                	li	s7,0
   }
   wakeup(&pi->nread);
-    80204650:	21848513          	addi	a0,s1,536
-    80204654:	ffffe097          	auipc	ra,0xffffe
-    80204658:	0ac080e7          	jalr	172(ra) # 80202700 <wakeup>
+    80204654:	21848513          	addi	a0,s1,536
+    80204658:	ffffe097          	auipc	ra,0xffffe
+    8020465c:	0a2080e7          	jalr	162(ra) # 802026fa <wakeup>
   release(&pi->lock);
-    8020465c:	8526                	mv	a0,s1
-    8020465e:	ffffc097          	auipc	ra,0xffffc
-    80204662:	0bc080e7          	jalr	188(ra) # 8020071a <release>
+    80204660:	8526                	mv	a0,s1
+    80204662:	ffffc097          	auipc	ra,0xffffc
+    80204666:	0b8080e7          	jalr	184(ra) # 8020071a <release>
   return i;
-    80204666:	a039                	j	80204674 <pipewrite+0xe8>
+    8020466a:	a039                	j	80204678 <pipewrite+0xe8>
         release(&pi->lock);
-    80204668:	8526                	mv	a0,s1
-    8020466a:	ffffc097          	auipc	ra,0xffffc
-    8020466e:	0b0080e7          	jalr	176(ra) # 8020071a <release>
+    8020466c:	8526                	mv	a0,s1
+    8020466e:	ffffc097          	auipc	ra,0xffffc
+    80204672:	0ac080e7          	jalr	172(ra) # 8020071a <release>
         return -1;
-    80204672:	5bfd                	li	s7,-1
+    80204676:	5bfd                	li	s7,-1
 }
-    80204674:	855e                	mv	a0,s7
-    80204676:	70a6                	ld	ra,104(sp)
-    80204678:	7406                	ld	s0,96(sp)
-    8020467a:	64e6                	ld	s1,88(sp)
-    8020467c:	6946                	ld	s2,80(sp)
-    8020467e:	69a6                	ld	s3,72(sp)
-    80204680:	6a06                	ld	s4,64(sp)
-    80204682:	7ae2                	ld	s5,56(sp)
-    80204684:	7b42                	ld	s6,48(sp)
-    80204686:	7ba2                	ld	s7,40(sp)
-    80204688:	7c02                	ld	s8,32(sp)
-    8020468a:	6ce2                	ld	s9,24(sp)
-    8020468c:	6165                	addi	sp,sp,112
-    8020468e:	8082                	ret
-
-0000000080204690 <piperead>:
+    80204678:	855e                	mv	a0,s7
+    8020467a:	70a6                	ld	ra,104(sp)
+    8020467c:	7406                	ld	s0,96(sp)
+    8020467e:	64e6                	ld	s1,88(sp)
+    80204680:	6946                	ld	s2,80(sp)
+    80204682:	69a6                	ld	s3,72(sp)
+    80204684:	6a06                	ld	s4,64(sp)
+    80204686:	7ae2                	ld	s5,56(sp)
+    80204688:	7b42                	ld	s6,48(sp)
+    8020468a:	7ba2                	ld	s7,40(sp)
+    8020468c:	7c02                	ld	s8,32(sp)
+    8020468e:	6ce2                	ld	s9,24(sp)
+    80204690:	6165                	addi	sp,sp,112
+    80204692:	8082                	ret
+
+0000000080204694 <piperead>:
 
 int
 piperead(struct pipe *pi, uint64 addr, int n)
 {
-    80204690:	715d                	addi	sp,sp,-80
-    80204692:	e486                	sd	ra,72(sp)
-    80204694:	e0a2                	sd	s0,64(sp)
-    80204696:	fc26                	sd	s1,56(sp)
-    80204698:	f84a                	sd	s2,48(sp)
-    8020469a:	f44e                	sd	s3,40(sp)
-    8020469c:	f052                	sd	s4,32(sp)
-    8020469e:	ec56                	sd	s5,24(sp)
-    802046a0:	e85a                	sd	s6,16(sp)
-    802046a2:	0880                	addi	s0,sp,80
-    802046a4:	84aa                	mv	s1,a0
-    802046a6:	892e                	mv	s2,a1
-    802046a8:	8a32                	mv	s4,a2
+    80204694:	715d                	addi	sp,sp,-80
+    80204696:	e486                	sd	ra,72(sp)
+    80204698:	e0a2                	sd	s0,64(sp)
+    8020469a:	fc26                	sd	s1,56(sp)
+    8020469c:	f84a                	sd	s2,48(sp)
+    8020469e:	f44e                	sd	s3,40(sp)
+    802046a0:	f052                	sd	s4,32(sp)
+    802046a2:	ec56                	sd	s5,24(sp)
+    802046a4:	e85a                	sd	s6,16(sp)
+    802046a6:	0880                	addi	s0,sp,80
+    802046a8:	84aa                	mv	s1,a0
+    802046aa:	892e                	mv	s2,a1
+    802046ac:	8a32                	mv	s4,a2
   int i;
   struct proc *pr = myproc();
-    802046aa:	ffffd097          	auipc	ra,0xffffd
-    802046ae:	392080e7          	jalr	914(ra) # 80201a3c <myproc>
-    802046b2:	89aa                	mv	s3,a0
+    802046ae:	ffffd097          	auipc	ra,0xffffd
+    802046b2:	38e080e7          	jalr	910(ra) # 80201a3c <myproc>
+    802046b6:	89aa                	mv	s3,a0
   char ch;
 
   acquire(&pi->lock);
-    802046b4:	8526                	mv	a0,s1
-    802046b6:	ffffc097          	auipc	ra,0xffffc
-    802046ba:	010080e7          	jalr	16(ra) # 802006c6 <acquire>
+    802046b8:	8526                	mv	a0,s1
+    802046ba:	ffffc097          	auipc	ra,0xffffc
+    802046be:	00c080e7          	jalr	12(ra) # 802006c6 <acquire>
   while(pi->nread == pi->nwrite && pi->writeopen){  //DOC: pipe-empty
-    802046be:	2184a703          	lw	a4,536(s1)
-    802046c2:	21c4a783          	lw	a5,540(s1)
+    802046c2:	2184a703          	lw	a4,536(s1)
+    802046c6:	21c4a783          	lw	a5,540(s1)
     if(pr->killed){
       release(&pi->lock);
       return -1;
     }
     sleep(&pi->nread, &pi->lock); //DOC: piperead-sleep
-    802046c6:	21848a93          	addi	s5,s1,536
+    802046ca:	21848a93          	addi	s5,s1,536
   while(pi->nread == pi->nwrite && pi->writeopen){  //DOC: pipe-empty
-    802046ca:	02f71463          	bne	a4,a5,802046f2 <piperead+0x62>
-    802046ce:	2244a783          	lw	a5,548(s1)
-    802046d2:	c385                	beqz	a5,802046f2 <piperead+0x62>
+    802046ce:	02f71463          	bne	a4,a5,802046f6 <piperead+0x62>
+    802046d2:	2244a783          	lw	a5,548(s1)
+    802046d6:	c385                	beqz	a5,802046f6 <piperead+0x62>
     if(pr->killed){
-    802046d4:	0309a783          	lw	a5,48(s3)
-    802046d8:	ebc1                	bnez	a5,80204768 <piperead+0xd8>
+    802046d8:	0309a783          	lw	a5,48(s3)
+    802046dc:	ebc1                	bnez	a5,8020476c <piperead+0xd8>
     sleep(&pi->nread, &pi->lock); //DOC: piperead-sleep
-    802046da:	85a6                	mv	a1,s1
-    802046dc:	8556                	mv	a0,s5
-    802046de:	ffffe097          	auipc	ra,0xffffe
-    802046e2:	d3a080e7          	jalr	-710(ra) # 80202418 <sleep>
+    802046de:	85a6                	mv	a1,s1
+    802046e0:	8556                	mv	a0,s5
+    802046e2:	ffffe097          	auipc	ra,0xffffe
+    802046e6:	d30080e7          	jalr	-720(ra) # 80202412 <sleep>
   while(pi->nread == pi->nwrite && pi->writeopen){  //DOC: pipe-empty
-    802046e6:	2184a703          	lw	a4,536(s1)
-    802046ea:	21c4a783          	lw	a5,540(s1)
-    802046ee:	fef700e3          	beq	a4,a5,802046ce <piperead+0x3e>
+    802046ea:	2184a703          	lw	a4,536(s1)
+    802046ee:	21c4a783          	lw	a5,540(s1)
+    802046f2:	fef700e3          	beq	a4,a5,802046d2 <piperead+0x3e>
   }
   for(i = 0; i < n; i++){  //DOC: piperead-copy
-    802046f2:	4981                	li	s3,0
+    802046f6:	4981                	li	s3,0
     if(pi->nread == pi->nwrite)
       break;
     ch = pi->data[pi->nread++ % PIPESIZE];
     // if(copyout(pr->pagetable, addr + i, &ch, 1) == -1)
     if(copyout2(addr + i, &ch, 1) == -1)
-    802046f4:	fbf40b13          	addi	s6,s0,-65
-    802046f8:	5afd                	li	s5,-1
+    802046f8:	fbf40b13          	addi	s6,s0,-65
+    802046fc:	5afd                	li	s5,-1
   for(i = 0; i < n; i++){  //DOC: piperead-copy
-    802046fa:	05405163          	blez	s4,8020473c <piperead+0xac>
+    802046fe:	05405163          	blez	s4,80204740 <piperead+0xac>
     if(pi->nread == pi->nwrite)
-    802046fe:	2184a783          	lw	a5,536(s1)
-    80204702:	21c4a703          	lw	a4,540(s1)
-    80204706:	02f70b63          	beq	a4,a5,8020473c <piperead+0xac>
+    80204702:	2184a783          	lw	a5,536(s1)
+    80204706:	21c4a703          	lw	a4,540(s1)
+    8020470a:	02f70b63          	beq	a4,a5,80204740 <piperead+0xac>
     ch = pi->data[pi->nread++ % PIPESIZE];
-    8020470a:	0017871b          	addiw	a4,a5,1
-    8020470e:	20e4ac23          	sw	a4,536(s1)
-    80204712:	1ff7f793          	andi	a5,a5,511
-    80204716:	97a6                	add	a5,a5,s1
-    80204718:	0187c783          	lbu	a5,24(a5)
-    8020471c:	faf40fa3          	sb	a5,-65(s0)
+    8020470e:	0017871b          	addiw	a4,a5,1
+    80204712:	20e4ac23          	sw	a4,536(s1)
+    80204716:	1ff7f793          	andi	a5,a5,511
+    8020471a:	97a6                	add	a5,a5,s1
+    8020471c:	0187c783          	lbu	a5,24(a5)
+    80204720:	faf40fa3          	sb	a5,-65(s0)
     if(copyout2(addr + i, &ch, 1) == -1)
-    80204720:	4605                	li	a2,1
-    80204722:	85da                	mv	a1,s6
-    80204724:	854a                	mv	a0,s2
-    80204726:	ffffd097          	auipc	ra,0xffffd
-    8020472a:	c4c080e7          	jalr	-948(ra) # 80201372 <copyout2>
-    8020472e:	01550763          	beq	a0,s5,8020473c <piperead+0xac>
+    80204724:	4605                	li	a2,1
+    80204726:	85da                	mv	a1,s6
+    80204728:	854a                	mv	a0,s2
+    8020472a:	ffffd097          	auipc	ra,0xffffd
+    8020472e:	c48080e7          	jalr	-952(ra) # 80201372 <copyout2>
+    80204732:	01550763          	beq	a0,s5,80204740 <piperead+0xac>
   for(i = 0; i < n; i++){  //DOC: piperead-copy
-    80204732:	2985                	addiw	s3,s3,1
-    80204734:	0905                	addi	s2,s2,1
-    80204736:	fd3a14e3          	bne	s4,s3,802046fe <piperead+0x6e>
-    8020473a:	89d2                	mv	s3,s4
+    80204736:	2985                	addiw	s3,s3,1
+    80204738:	0905                	addi	s2,s2,1
+    8020473a:	fd3a14e3          	bne	s4,s3,80204702 <piperead+0x6e>
+    8020473e:	89d2                	mv	s3,s4
       break;
   }
   wakeup(&pi->nwrite);  //DOC: piperead-wakeup
-    8020473c:	21c48513          	addi	a0,s1,540
-    80204740:	ffffe097          	auipc	ra,0xffffe
-    80204744:	fc0080e7          	jalr	-64(ra) # 80202700 <wakeup>
+    80204740:	21c48513          	addi	a0,s1,540
+    80204744:	ffffe097          	auipc	ra,0xffffe
+    80204748:	fb6080e7          	jalr	-74(ra) # 802026fa <wakeup>
   release(&pi->lock);
-    80204748:	8526                	mv	a0,s1
-    8020474a:	ffffc097          	auipc	ra,0xffffc
-    8020474e:	fd0080e7          	jalr	-48(ra) # 8020071a <release>
+    8020474c:	8526                	mv	a0,s1
+    8020474e:	ffffc097          	auipc	ra,0xffffc
+    80204752:	fcc080e7          	jalr	-52(ra) # 8020071a <release>
   return i;
 }
-    80204752:	854e                	mv	a0,s3
-    80204754:	60a6                	ld	ra,72(sp)
-    80204756:	6406                	ld	s0,64(sp)
-    80204758:	74e2                	ld	s1,56(sp)
-    8020475a:	7942                	ld	s2,48(sp)
-    8020475c:	79a2                	ld	s3,40(sp)
-    8020475e:	7a02                	ld	s4,32(sp)
-    80204760:	6ae2                	ld	s5,24(sp)
-    80204762:	6b42                	ld	s6,16(sp)
-    80204764:	6161                	addi	sp,sp,80
-    80204766:	8082                	ret
+    80204756:	854e                	mv	a0,s3
+    80204758:	60a6                	ld	ra,72(sp)
+    8020475a:	6406                	ld	s0,64(sp)
+    8020475c:	74e2                	ld	s1,56(sp)
+    8020475e:	7942                	ld	s2,48(sp)
+    80204760:	79a2                	ld	s3,40(sp)
+    80204762:	7a02                	ld	s4,32(sp)
+    80204764:	6ae2                	ld	s5,24(sp)
+    80204766:	6b42                	ld	s6,16(sp)
+    80204768:	6161                	addi	sp,sp,80
+    8020476a:	8082                	ret
       release(&pi->lock);
-    80204768:	8526                	mv	a0,s1
-    8020476a:	ffffc097          	auipc	ra,0xffffc
-    8020476e:	fb0080e7          	jalr	-80(ra) # 8020071a <release>
+    8020476c:	8526                	mv	a0,s1
+    8020476e:	ffffc097          	auipc	ra,0xffffc
+    80204772:	fac080e7          	jalr	-84(ra) # 8020071a <release>
       return -1;
-    80204772:	59fd                	li	s3,-1
-    80204774:	bff9                	j	80204752 <piperead+0xc2>
+    80204776:	59fd                	li	s3,-1
+    80204778:	bff9                	j	80204756 <piperead+0xc2>
 
-0000000080204776 <exec>:
+000000008020477a <exec>:
   return 0;
 }
 
 
 int exec(char *path, char **argv)
 {
-    80204776:	dd010113          	addi	sp,sp,-560
-    8020477a:	22113423          	sd	ra,552(sp)
-    8020477e:	22813023          	sd	s0,544(sp)
-    80204782:	20913c23          	sd	s1,536(sp)
-    80204786:	21213823          	sd	s2,528(sp)
-    8020478a:	21313423          	sd	s3,520(sp)
-    8020478e:	21413023          	sd	s4,512(sp)
-    80204792:	ffd6                	sd	s5,504(sp)
-    80204794:	fbda                	sd	s6,496(sp)
-    80204796:	f7de                	sd	s7,488(sp)
-    80204798:	f3e2                	sd	s8,480(sp)
-    8020479a:	efe6                	sd	s9,472(sp)
-    8020479c:	ebea                	sd	s10,464(sp)
-    8020479e:	e7ee                	sd	s11,456(sp)
-    802047a0:	1c00                	addi	s0,sp,560
-    802047a2:	892a                	mv	s2,a0
-    802047a4:	dca43c23          	sd	a0,-552(s0)
-    802047a8:	deb43423          	sd	a1,-536(s0)
+    8020477a:	dd010113          	addi	sp,sp,-560
+    8020477e:	22113423          	sd	ra,552(sp)
+    80204782:	22813023          	sd	s0,544(sp)
+    80204786:	20913c23          	sd	s1,536(sp)
+    8020478a:	21213823          	sd	s2,528(sp)
+    8020478e:	21313423          	sd	s3,520(sp)
+    80204792:	21413023          	sd	s4,512(sp)
+    80204796:	ffd6                	sd	s5,504(sp)
+    80204798:	fbda                	sd	s6,496(sp)
+    8020479a:	f7de                	sd	s7,488(sp)
+    8020479c:	f3e2                	sd	s8,480(sp)
+    8020479e:	efe6                	sd	s9,472(sp)
+    802047a0:	ebea                	sd	s10,464(sp)
+    802047a2:	e7ee                	sd	s11,456(sp)
+    802047a4:	1c00                	addi	s0,sp,560
+    802047a6:	892a                	mv	s2,a0
+    802047a8:	dca43c23          	sd	a0,-552(s0)
+    802047ac:	deb43423          	sd	a1,-536(s0)
   struct elfhdr elf;
   struct dirent *ep;
   struct proghdr ph;
   pagetable_t pagetable = 0, oldpagetable;
   pagetable_t kpagetable = 0, oldkpagetable;
   struct proc *p = myproc();
-    802047ac:	ffffd097          	auipc	ra,0xffffd
-    802047b0:	290080e7          	jalr	656(ra) # 80201a3c <myproc>
-    802047b4:	84aa                	mv	s1,a0
+    802047b0:	ffffd097          	auipc	ra,0xffffd
+    802047b4:	28c080e7          	jalr	652(ra) # 80201a3c <myproc>
+    802047b8:	84aa                	mv	s1,a0
 
   // Make a copy of p->kpt without old user space, 
   // but with the same kstack we are using now, which can't be changed
   if ((kpagetable = (pagetable_t)kalloc()) == NULL) {
-    802047b6:	ffffc097          	auipc	ra,0xffffc
-    802047ba:	da4080e7          	jalr	-604(ra) # 8020055a <kalloc>
-    802047be:	2a050863          	beqz	a0,80204a6e <exec+0x2f8>
-    802047c2:	8b2a                	mv	s6,a0
+    802047ba:	ffffc097          	auipc	ra,0xffffc
+    802047be:	da0080e7          	jalr	-608(ra) # 8020055a <kalloc>
+    802047c2:	2a050863          	beqz	a0,80204a72 <exec+0x2f8>
+    802047c6:	8b2a                	mv	s6,a0
     return -1;
   }
   memmove(kpagetable, p->kpagetable, PGSIZE);
-    802047c4:	6605                	lui	a2,0x1
-    802047c6:	6cac                	ld	a1,88(s1)
-    802047c8:	ffffc097          	auipc	ra,0xffffc
-    802047cc:	ff6080e7          	jalr	-10(ra) # 802007be <memmove>
+    802047c8:	6605                	lui	a2,0x1
+    802047ca:	6cac                	ld	a1,88(s1)
+    802047cc:	ffffc097          	auipc	ra,0xffffc
+    802047d0:	ff2080e7          	jalr	-14(ra) # 802007be <memmove>
   for (int i = 0; i < PX(2, MAXUVA); i++) {
     kpagetable[i] = 0;
-    802047d0:	000b3023          	sd	zero,0(s6)
-    802047d4:	000b3423          	sd	zero,8(s6)
+    802047d4:	000b3023          	sd	zero,0(s6)
+    802047d8:	000b3423          	sd	zero,8(s6)
   }
 
   if((ep = ename(path)) == NULL) {
-    802047d8:	854a                	mv	a0,s2
-    802047da:	00003097          	auipc	ra,0x3
-    802047de:	08c080e7          	jalr	140(ra) # 80207866 <ename>
-    802047e2:	8a2a                	mv	s4,a0
-    802047e4:	3a050e63          	beqz	a0,80204ba0 <exec+0x42a>
+    802047dc:	854a                	mv	a0,s2
+    802047de:	00003097          	auipc	ra,0x3
+    802047e2:	048080e7          	jalr	72(ra) # 80207826 <ename>
+    802047e6:	8a2a                	mv	s4,a0
+    802047e8:	3a050e63          	beqz	a0,80204ba4 <exec+0x42a>
     #ifdef DEBUG
     printf("[exec] %s not found\n", path);
     #endif
     goto bad;
   }
   elock(ep);
-    802047e8:	00003097          	auipc	ra,0x3
-    802047ec:	8d6080e7          	jalr	-1834(ra) # 802070be <elock>
+    802047ec:	00003097          	auipc	ra,0x3
+    802047f0:	892080e7          	jalr	-1902(ra) # 8020707e <elock>
 
   // Check ELF header
   if(eread(ep, 0, (uint64) &elf, 0, sizeof(elf)) != sizeof(elf))
-    802047f0:	04000713          	li	a4,64
-    802047f4:	4681                	li	a3,0
-    802047f6:	e4840613          	addi	a2,s0,-440
-    802047fa:	4581                	li	a1,0
-    802047fc:	8552                	mv	a0,s4
-    802047fe:	00002097          	auipc	ra,0x2
-    80204802:	fbc080e7          	jalr	-68(ra) # 802067ba <eread>
-    80204806:	04000793          	li	a5,64
-    8020480a:	00f51a63          	bne	a0,a5,8020481e <exec+0xa8>
+    802047f4:	04000713          	li	a4,64
+    802047f8:	4681                	li	a3,0
+    802047fa:	e4840613          	addi	a2,s0,-440
+    802047fe:	4581                	li	a1,0
+    80204800:	8552                	mv	a0,s4
+    80204802:	00002097          	auipc	ra,0x2
+    80204806:	f78080e7          	jalr	-136(ra) # 8020677a <eread>
+    8020480a:	04000793          	li	a5,64
+    8020480e:	00f51a63          	bne	a0,a5,80204822 <exec+0xa8>
     goto bad;
   if(elf.magic != ELF_MAGIC)
-    8020480e:	e4842703          	lw	a4,-440(s0)
-    80204812:	464c47b7          	lui	a5,0x464c4
-    80204816:	57f78793          	addi	a5,a5,1407 # 464c457f <_entry-0x39d3ba81>
-    8020481a:	00f70963          	beq	a4,a5,8020482c <exec+0xb6>
+    80204812:	e4842703          	lw	a4,-440(s0)
+    80204816:	464c47b7          	lui	a5,0x464c4
+    8020481a:	57f78793          	addi	a5,a5,1407 # 464c457f <_entry-0x39d3ba81>
+    8020481e:	00f70963          	beq	a4,a5,80204830 <exec+0xb6>
   printf("[exec] reach bad\n");
   #endif
   if(pagetable)
     proc_freepagetable(pagetable, sz);
   if(kpagetable)
     kvmfree(kpagetable, 0);
-    8020481e:	4581                	li	a1,0
-    80204820:	855a                	mv	a0,s6
-    80204822:	ffffd097          	auipc	ra,0xffffd
-    80204826:	e50080e7          	jalr	-432(ra) # 80201672 <kvmfree>
+    80204822:	4581                	li	a1,0
+    80204824:	855a                	mv	a0,s6
+    80204826:	ffffd097          	auipc	ra,0xffffd
+    8020482a:	e4c080e7          	jalr	-436(ra) # 80201672 <kvmfree>
   if(ep){
-    8020482a:	a4bd                	j	80204a98 <exec+0x322>
+    8020482e:	a4bd                	j	80204a9c <exec+0x322>
   if((pagetable = proc_pagetable(p)) == NULL)
-    8020482c:	8526                	mv	a0,s1
-    8020482e:	ffffd097          	auipc	ra,0xffffd
-    80204832:	2f2080e7          	jalr	754(ra) # 80201b20 <proc_pagetable>
-    80204836:	e0a43423          	sd	a0,-504(s0)
-    8020483a:	d175                	beqz	a0,8020481e <exec+0xa8>
+    80204830:	8526                	mv	a0,s1
+    80204832:	ffffd097          	auipc	ra,0xffffd
+    80204836:	2ee080e7          	jalr	750(ra) # 80201b20 <proc_pagetable>
+    8020483a:	e0a43423          	sd	a0,-504(s0)
+    8020483e:	d175                	beqz	a0,80204822 <exec+0xa8>
   for(i=0, off=elf.phoff; i<elf.phnum; i++, off+=sizeof(ph)){
-    8020483c:	e6842783          	lw	a5,-408(s0)
-    80204840:	e8045703          	lhu	a4,-384(s0)
-    80204844:	cb3d                	beqz	a4,802048ba <exec+0x144>
+    80204840:	e6842783          	lw	a5,-408(s0)
+    80204844:	e8045703          	lhu	a4,-384(s0)
+    80204848:	cb3d                	beqz	a4,802048be <exec+0x144>
   uint64 argc, sz = 0, sp, ustack[MAXARG+1], stackbase;
-    80204846:	4481                	li	s1,0
+    8020484a:	4481                	li	s1,0
   for(i=0, off=elf.phoff; i<elf.phnum; i++, off+=sizeof(ph)){
-    80204848:	e0043023          	sd	zero,-512(s0)
+    8020484c:	e0043023          	sd	zero,-512(s0)
     if(eread(ep, 0, (uint64)&ph, off, sizeof(ph)) != sizeof(ph))
-    8020484c:	e1040713          	addi	a4,s0,-496
-    80204850:	dee43023          	sd	a4,-544(s0)
+    80204850:	e1040713          	addi	a4,s0,-496
+    80204854:	dee43023          	sd	a4,-544(s0)
     if(ph.vaddr % PGSIZE != 0)
-    80204854:	6a85                	lui	s5,0x1
-    80204856:	fffa8713          	addi	a4,s5,-1 # fff <_entry-0x801ff001>
-    8020485a:	dce43823          	sd	a4,-560(s0)
+    80204858:	6a85                	lui	s5,0x1
+    8020485a:	fffa8713          	addi	a4,s5,-1 # fff <_entry-0x801ff001>
+    8020485e:	dce43823          	sd	a4,-560(s0)
   for(i = 0; i < sz; i += PGSIZE){
-    8020485e:	6d85                	lui	s11,0x1
-    80204860:	7d7d                	lui	s10,0xfffff
-    80204862:	a4c9                	j	80204b24 <exec+0x3ae>
+    80204862:	6d85                	lui	s11,0x1
+    80204864:	7d7d                	lui	s10,0xfffff
+    80204866:	a4c9                	j	80204b28 <exec+0x3ae>
       panic("loadseg: address should exist");
-    80204864:	00006517          	auipc	a0,0x6
-    80204868:	48450513          	addi	a0,a0,1156 # 8020ace8 <digits+0x968>
-    8020486c:	ffffc097          	auipc	ra,0xffffc
-    80204870:	8d8080e7          	jalr	-1832(ra) # 80200144 <panic>
+    80204868:	00006517          	auipc	a0,0x6
+    8020486c:	48050513          	addi	a0,a0,1152 # 8020ace8 <digits+0x968>
+    80204870:	ffffc097          	auipc	ra,0xffffc
+    80204874:	8d4080e7          	jalr	-1836(ra) # 80200144 <panic>
     if(eread(ep, 0, (uint64)pa, offset+i, n) != n)
-    80204874:	874a                	mv	a4,s2
-    80204876:	009c86bb          	addw	a3,s9,s1
-    8020487a:	4581                	li	a1,0
-    8020487c:	8552                	mv	a0,s4
-    8020487e:	00002097          	auipc	ra,0x2
-    80204882:	f3c080e7          	jalr	-196(ra) # 802067ba <eread>
-    80204886:	2501                	sext.w	a0,a0
-    80204888:	1ea91763          	bne	s2,a0,80204a76 <exec+0x300>
+    80204878:	874a                	mv	a4,s2
+    8020487a:	009c86bb          	addw	a3,s9,s1
+    8020487e:	4581                	li	a1,0
+    80204880:	8552                	mv	a0,s4
+    80204882:	00002097          	auipc	ra,0x2
+    80204886:	ef8080e7          	jalr	-264(ra) # 8020677a <eread>
+    8020488a:	2501                	sext.w	a0,a0
+    8020488c:	1ea91763          	bne	s2,a0,80204a7a <exec+0x300>
   for(i = 0; i < sz; i += PGSIZE){
-    8020488c:	009d84bb          	addw	s1,s11,s1
-    80204890:	013d09bb          	addw	s3,s10,s3
-    80204894:	2774f863          	bgeu	s1,s7,80204b04 <exec+0x38e>
+    80204890:	009d84bb          	addw	s1,s11,s1
+    80204894:	013d09bb          	addw	s3,s10,s3
+    80204898:	2774f863          	bgeu	s1,s7,80204b08 <exec+0x38e>
     pa = walkaddr(pagetable, va + i);
-    80204898:	02049593          	slli	a1,s1,0x20
-    8020489c:	9181                	srli	a1,a1,0x20
-    8020489e:	95e2                	add	a1,a1,s8
-    802048a0:	e0843503          	ld	a0,-504(s0)
-    802048a4:	ffffc097          	auipc	ra,0xffffc
-    802048a8:	30a080e7          	jalr	778(ra) # 80200bae <walkaddr>
-    802048ac:	862a                	mv	a2,a0
+    8020489c:	02049593          	slli	a1,s1,0x20
+    802048a0:	9181                	srli	a1,a1,0x20
+    802048a2:	95e2                	add	a1,a1,s8
+    802048a4:	e0843503          	ld	a0,-504(s0)
+    802048a8:	ffffc097          	auipc	ra,0xffffc
+    802048ac:	306080e7          	jalr	774(ra) # 80200bae <walkaddr>
+    802048b0:	862a                	mv	a2,a0
     if(pa == NULL)
-    802048ae:	d95d                	beqz	a0,80204864 <exec+0xee>
+    802048b2:	d95d                	beqz	a0,80204868 <exec+0xee>
       n = PGSIZE;
-    802048b0:	8956                	mv	s2,s5
+    802048b4:	8956                	mv	s2,s5
     if(sz - i < PGSIZE)
-    802048b2:	fd59f1e3          	bgeu	s3,s5,80204874 <exec+0xfe>
+    802048b6:	fd59f1e3          	bgeu	s3,s5,80204878 <exec+0xfe>
       n = sz - i;
-    802048b6:	894e                	mv	s2,s3
-    802048b8:	bf75                	j	80204874 <exec+0xfe>
+    802048ba:	894e                	mv	s2,s3
+    802048bc:	bf75                	j	80204878 <exec+0xfe>
   uint64 argc, sz = 0, sp, ustack[MAXARG+1], stackbase;
-    802048ba:	4481                	li	s1,0
+    802048be:	4481                	li	s1,0
   eunlock(ep);
-    802048bc:	8552                	mv	a0,s4
-    802048be:	00003097          	auipc	ra,0x3
-    802048c2:	836080e7          	jalr	-1994(ra) # 802070f4 <eunlock>
+    802048c0:	8552                	mv	a0,s4
+    802048c2:	00002097          	auipc	ra,0x2
+    802048c6:	7f2080e7          	jalr	2034(ra) # 802070b4 <eunlock>
   eput(ep);
-    802048c6:	8552                	mv	a0,s4
-    802048c8:	00003097          	auipc	ra,0x3
-    802048cc:	87a080e7          	jalr	-1926(ra) # 80207142 <eput>
+    802048ca:	8552                	mv	a0,s4
+    802048cc:	00003097          	auipc	ra,0x3
+    802048d0:	836080e7          	jalr	-1994(ra) # 80207102 <eput>
   p = myproc();
-    802048d0:	ffffd097          	auipc	ra,0xffffd
-    802048d4:	16c080e7          	jalr	364(ra) # 80201a3c <myproc>
-    802048d8:	8aaa                	mv	s5,a0
+    802048d4:	ffffd097          	auipc	ra,0xffffd
+    802048d8:	168080e7          	jalr	360(ra) # 80201a3c <myproc>
+    802048dc:	8aaa                	mv	s5,a0
   uint64 oldsz = p->sz;
-    802048da:	04853d03          	ld	s10,72(a0)
+    802048de:	04853d03          	ld	s10,72(a0)
   sz = PGROUNDUP(sz);
-    802048de:	6785                	lui	a5,0x1
-    802048e0:	17fd                	addi	a5,a5,-1 # fff <_entry-0x801ff001>
-    802048e2:	97a6                	add	a5,a5,s1
-    802048e4:	777d                	lui	a4,0xfffff
-    802048e6:	8ff9                	and	a5,a5,a4
-    802048e8:	def43823          	sd	a5,-528(s0)
+    802048e2:	6785                	lui	a5,0x1
+    802048e4:	17fd                	addi	a5,a5,-1 # fff <_entry-0x801ff001>
+    802048e6:	97a6                	add	a5,a5,s1
+    802048e8:	777d                	lui	a4,0xfffff
+    802048ea:	8ff9                	and	a5,a5,a4
+    802048ec:	def43823          	sd	a5,-528(s0)
   if((sz1 = uvmalloc(pagetable, kpagetable, sz, sz + 2*PGSIZE)) == 0)
-    802048ec:	6689                	lui	a3,0x2
-    802048ee:	96be                	add	a3,a3,a5
-    802048f0:	863e                	mv	a2,a5
-    802048f2:	85da                	mv	a1,s6
-    802048f4:	e0843483          	ld	s1,-504(s0)
-    802048f8:	8526                	mv	a0,s1
-    802048fa:	ffffc097          	auipc	ra,0xffffc
-    802048fe:	710080e7          	jalr	1808(ra) # 8020100a <uvmalloc>
-    80204902:	8caa                	mv	s9,a0
+    802048f0:	6689                	lui	a3,0x2
+    802048f2:	96be                	add	a3,a3,a5
+    802048f4:	863e                	mv	a2,a5
+    802048f6:	85da                	mv	a1,s6
+    802048f8:	e0843483          	ld	s1,-504(s0)
+    802048fc:	8526                	mv	a0,s1
+    802048fe:	ffffc097          	auipc	ra,0xffffc
+    80204902:	70c080e7          	jalr	1804(ra) # 8020100a <uvmalloc>
+    80204906:	8caa                	mv	s9,a0
   ep = 0;
-    80204904:	4a01                	li	s4,0
+    80204908:	4a01                	li	s4,0
   if((sz1 = uvmalloc(pagetable, kpagetable, sz, sz + 2*PGSIZE)) == 0)
-    80204906:	16050863          	beqz	a0,80204a76 <exec+0x300>
+    8020490a:	16050863          	beqz	a0,80204a7a <exec+0x300>
   uvmclear(pagetable, sz-2*PGSIZE);
-    8020490a:	75f9                	lui	a1,0xffffe
-    8020490c:	95aa                	add	a1,a1,a0
-    8020490e:	8526                	mv	a0,s1
-    80204910:	ffffd097          	auipc	ra,0xffffd
-    80204914:	9a4080e7          	jalr	-1628(ra) # 802012b4 <uvmclear>
+    8020490e:	75f9                	lui	a1,0xffffe
+    80204910:	95aa                	add	a1,a1,a0
+    80204912:	8526                	mv	a0,s1
+    80204914:	ffffd097          	auipc	ra,0xffffd
+    80204918:	9a0080e7          	jalr	-1632(ra) # 802012b4 <uvmclear>
   stackbase = sp - PGSIZE;
-    80204918:	7bfd                	lui	s7,0xfffff
-    8020491a:	9be6                	add	s7,s7,s9
+    8020491c:	7bfd                	lui	s7,0xfffff
+    8020491e:	9be6                	add	s7,s7,s9
   for(argc = 0; argv[argc]; argc++) {
-    8020491c:	de843783          	ld	a5,-536(s0)
-    80204920:	6388                	ld	a0,0(a5)
-    80204922:	c92d                	beqz	a0,80204994 <exec+0x21e>
-    80204924:	e8840993          	addi	s3,s0,-376
-    80204928:	f8840c13          	addi	s8,s0,-120
+    80204920:	de843783          	ld	a5,-536(s0)
+    80204924:	6388                	ld	a0,0(a5)
+    80204926:	c92d                	beqz	a0,80204998 <exec+0x21e>
+    80204928:	e8840993          	addi	s3,s0,-376
+    8020492c:	f8840c13          	addi	s8,s0,-120
   sp = sz;
-    8020492c:	8966                	mv	s2,s9
+    80204930:	8966                	mv	s2,s9
   for(argc = 0; argv[argc]; argc++) {
-    8020492e:	4481                	li	s1,0
+    80204932:	4481                	li	s1,0
     sp -= strlen(argv[argc]) + 1;
-    80204930:	ffffc097          	auipc	ra,0xffffc
-    80204934:	fb6080e7          	jalr	-74(ra) # 802008e6 <strlen>
-    80204938:	0015079b          	addiw	a5,a0,1
-    8020493c:	40f907b3          	sub	a5,s2,a5
+    80204934:	ffffc097          	auipc	ra,0xffffc
+    80204938:	fb2080e7          	jalr	-78(ra) # 802008e6 <strlen>
+    8020493c:	0015079b          	addiw	a5,a0,1
+    80204940:	40f907b3          	sub	a5,s2,a5
     sp -= sp % 16; // riscv sp must be 16-byte aligned
-    80204940:	ff07f913          	andi	s2,a5,-16
+    80204944:	ff07f913          	andi	s2,a5,-16
     if(sp < stackbase)
-    80204944:	1b796463          	bltu	s2,s7,80204aec <exec+0x376>
+    80204948:	1b796463          	bltu	s2,s7,80204af0 <exec+0x376>
     if(copyout(pagetable, sp, argv[argc], strlen(argv[argc]) + 1) < 0)
-    80204948:	de843d83          	ld	s11,-536(s0)
-    8020494c:	000dba03          	ld	s4,0(s11) # 1000 <_entry-0x801ff000>
-    80204950:	8552                	mv	a0,s4
-    80204952:	ffffc097          	auipc	ra,0xffffc
-    80204956:	f94080e7          	jalr	-108(ra) # 802008e6 <strlen>
-    8020495a:	0015069b          	addiw	a3,a0,1
-    8020495e:	8652                	mv	a2,s4
-    80204960:	85ca                	mv	a1,s2
-    80204962:	e0843503          	ld	a0,-504(s0)
-    80204966:	ffffd097          	auipc	ra,0xffffd
-    8020496a:	980080e7          	jalr	-1664(ra) # 802012e6 <copyout>
-    8020496e:	18054363          	bltz	a0,80204af4 <exec+0x37e>
+    8020494c:	de843d83          	ld	s11,-536(s0)
+    80204950:	000dba03          	ld	s4,0(s11) # 1000 <_entry-0x801ff000>
+    80204954:	8552                	mv	a0,s4
+    80204956:	ffffc097          	auipc	ra,0xffffc
+    8020495a:	f90080e7          	jalr	-112(ra) # 802008e6 <strlen>
+    8020495e:	0015069b          	addiw	a3,a0,1
+    80204962:	8652                	mv	a2,s4
+    80204964:	85ca                	mv	a1,s2
+    80204966:	e0843503          	ld	a0,-504(s0)
+    8020496a:	ffffd097          	auipc	ra,0xffffd
+    8020496e:	97c080e7          	jalr	-1668(ra) # 802012e6 <copyout>
+    80204972:	18054363          	bltz	a0,80204af8 <exec+0x37e>
     ustack[argc] = sp;
-    80204972:	0129b023          	sd	s2,0(s3)
+    80204976:	0129b023          	sd	s2,0(s3)
   for(argc = 0; argv[argc]; argc++) {
-    80204976:	0485                	addi	s1,s1,1
-    80204978:	008d8793          	addi	a5,s11,8
-    8020497c:	def43423          	sd	a5,-536(s0)
-    80204980:	008db503          	ld	a0,8(s11)
-    80204984:	c911                	beqz	a0,80204998 <exec+0x222>
+    8020497a:	0485                	addi	s1,s1,1
+    8020497c:	008d8793          	addi	a5,s11,8
+    80204980:	def43423          	sd	a5,-536(s0)
+    80204984:	008db503          	ld	a0,8(s11)
+    80204988:	c911                	beqz	a0,8020499c <exec+0x222>
     if(argc >= MAXARG)
-    80204986:	09a1                	addi	s3,s3,8
-    80204988:	fb3c14e3          	bne	s8,s3,80204930 <exec+0x1ba>
+    8020498a:	09a1                	addi	s3,s3,8
+    8020498c:	fb3c14e3          	bne	s8,s3,80204934 <exec+0x1ba>
   sz = sz1;
-    8020498c:	df943823          	sd	s9,-528(s0)
+    80204990:	df943823          	sd	s9,-528(s0)
   ep = 0;
-    80204990:	4a01                	li	s4,0
-    80204992:	a0d5                	j	80204a76 <exec+0x300>
+    80204994:	4a01                	li	s4,0
+    80204996:	a0d5                	j	80204a7a <exec+0x300>
   sp = sz;
-    80204994:	8966                	mv	s2,s9
+    80204998:	8966                	mv	s2,s9
   for(argc = 0; argv[argc]; argc++) {
-    80204996:	4481                	li	s1,0
+    8020499a:	4481                	li	s1,0
   ustack[argc] = 0;
-    80204998:	00349793          	slli	a5,s1,0x3
-    8020499c:	f9078793          	addi	a5,a5,-112
-    802049a0:	97a2                	add	a5,a5,s0
-    802049a2:	ee07bc23          	sd	zero,-264(a5)
+    8020499c:	00349793          	slli	a5,s1,0x3
+    802049a0:	f9078793          	addi	a5,a5,-112
+    802049a4:	97a2                	add	a5,a5,s0
+    802049a6:	ee07bc23          	sd	zero,-264(a5)
   sp -= (argc+1) * sizeof(uint64);
-    802049a6:	00148693          	addi	a3,s1,1
-    802049aa:	068e                	slli	a3,a3,0x3
-    802049ac:	40d90933          	sub	s2,s2,a3
+    802049aa:	00148693          	addi	a3,s1,1
+    802049ae:	068e                	slli	a3,a3,0x3
+    802049b0:	40d90933          	sub	s2,s2,a3
   sp -= sp % 16;
-    802049b0:	ff097913          	andi	s2,s2,-16
+    802049b4:	ff097913          	andi	s2,s2,-16
   if(sp < stackbase)
-    802049b4:	01797663          	bgeu	s2,s7,802049c0 <exec+0x24a>
+    802049b8:	01797663          	bgeu	s2,s7,802049c4 <exec+0x24a>
   sz = sz1;
-    802049b8:	df943823          	sd	s9,-528(s0)
+    802049bc:	df943823          	sd	s9,-528(s0)
   ep = 0;
-    802049bc:	4a01                	li	s4,0
-    802049be:	a865                	j	80204a76 <exec+0x300>
+    802049c0:	4a01                	li	s4,0
+    802049c2:	a865                	j	80204a7a <exec+0x300>
   if(copyout(pagetable, sp, (char *)ustack, (argc+1)*sizeof(uint64)) < 0)
-    802049c0:	e8840613          	addi	a2,s0,-376
-    802049c4:	85ca                	mv	a1,s2
-    802049c6:	e0843503          	ld	a0,-504(s0)
-    802049ca:	ffffd097          	auipc	ra,0xffffd
-    802049ce:	91c080e7          	jalr	-1764(ra) # 802012e6 <copyout>
-    802049d2:	12054563          	bltz	a0,80204afc <exec+0x386>
+    802049c4:	e8840613          	addi	a2,s0,-376
+    802049c8:	85ca                	mv	a1,s2
+    802049ca:	e0843503          	ld	a0,-504(s0)
+    802049ce:	ffffd097          	auipc	ra,0xffffd
+    802049d2:	918080e7          	jalr	-1768(ra) # 802012e6 <copyout>
+    802049d6:	12054563          	bltz	a0,80204b00 <exec+0x386>
   p->trapframe->a1 = sp;
-    802049d6:	060ab783          	ld	a5,96(s5)
-    802049da:	0727bc23          	sd	s2,120(a5)
+    802049da:	060ab783          	ld	a5,96(s5)
+    802049de:	0727bc23          	sd	s2,120(a5)
   for(last=s=path; *s; s++)
-    802049de:	dd843783          	ld	a5,-552(s0)
-    802049e2:	0007c703          	lbu	a4,0(a5)
-    802049e6:	cf11                	beqz	a4,80204a02 <exec+0x28c>
-    802049e8:	0785                	addi	a5,a5,1
+    802049e2:	dd843783          	ld	a5,-552(s0)
+    802049e6:	0007c703          	lbu	a4,0(a5)
+    802049ea:	cf11                	beqz	a4,80204a06 <exec+0x28c>
+    802049ec:	0785                	addi	a5,a5,1
     if(*s == '/')
-    802049ea:	02f00693          	li	a3,47
-    802049ee:	a039                	j	802049fc <exec+0x286>
+    802049ee:	02f00693          	li	a3,47
+    802049f2:	a039                	j	80204a00 <exec+0x286>
       last = s+1;
-    802049f0:	dcf43c23          	sd	a5,-552(s0)
+    802049f4:	dcf43c23          	sd	a5,-552(s0)
   for(last=s=path; *s; s++)
-    802049f4:	0785                	addi	a5,a5,1
-    802049f6:	fff7c703          	lbu	a4,-1(a5)
-    802049fa:	c701                	beqz	a4,80204a02 <exec+0x28c>
+    802049f8:	0785                	addi	a5,a5,1
+    802049fa:	fff7c703          	lbu	a4,-1(a5)
+    802049fe:	c701                	beqz	a4,80204a06 <exec+0x28c>
     if(*s == '/')
-    802049fc:	fed71ce3          	bne	a4,a3,802049f4 <exec+0x27e>
-    80204a00:	bfc5                	j	802049f0 <exec+0x27a>
+    80204a00:	fed71ce3          	bne	a4,a3,802049f8 <exec+0x27e>
+    80204a04:	bfc5                	j	802049f4 <exec+0x27a>
   safestrcpy(p->name, last, sizeof(p->name));
-    80204a02:	4641                	li	a2,16
-    80204a04:	dd843583          	ld	a1,-552(s0)
-    80204a08:	408a8513          	addi	a0,s5,1032
-    80204a0c:	ffffc097          	auipc	ra,0xffffc
-    80204a10:	ea8080e7          	jalr	-344(ra) # 802008b4 <safestrcpy>
+    80204a06:	4641                	li	a2,16
+    80204a08:	dd843583          	ld	a1,-552(s0)
+    80204a0c:	408a8513          	addi	a0,s5,1032
+    80204a10:	ffffc097          	auipc	ra,0xffffc
+    80204a14:	ea4080e7          	jalr	-348(ra) # 802008b4 <safestrcpy>
   oldpagetable = p->pagetable;
-    80204a14:	050ab503          	ld	a0,80(s5)
+    80204a18:	050ab503          	ld	a0,80(s5)
   oldkpagetable = p->kpagetable;
-    80204a18:	058ab983          	ld	s3,88(s5)
+    80204a1c:	058ab983          	ld	s3,88(s5)
   p->pagetable = pagetable;
-    80204a1c:	e0843783          	ld	a5,-504(s0)
-    80204a20:	04fab823          	sd	a5,80(s5)
+    80204a20:	e0843783          	ld	a5,-504(s0)
+    80204a24:	04fab823          	sd	a5,80(s5)
   p->kpagetable = kpagetable;
-    80204a24:	056abc23          	sd	s6,88(s5)
+    80204a28:	056abc23          	sd	s6,88(s5)
   p->sz = sz;
-    80204a28:	059ab423          	sd	s9,72(s5)
+    80204a2c:	059ab423          	sd	s9,72(s5)
   p->trapframe->epc = elf.entry;  // initial program counter = main
-    80204a2c:	060ab783          	ld	a5,96(s5)
-    80204a30:	e6043703          	ld	a4,-416(s0)
-    80204a34:	ef98                	sd	a4,24(a5)
+    80204a30:	060ab783          	ld	a5,96(s5)
+    80204a34:	e6043703          	ld	a4,-416(s0)
+    80204a38:	ef98                	sd	a4,24(a5)
   p->trapframe->sp = sp; // initial stack pointer
-    80204a36:	060ab783          	ld	a5,96(s5)
-    80204a3a:	0327b823          	sd	s2,48(a5)
+    80204a3a:	060ab783          	ld	a5,96(s5)
+    80204a3e:	0327b823          	sd	s2,48(a5)
   proc_freepagetable(oldpagetable, oldsz);
-    80204a3e:	85ea                	mv	a1,s10
-    80204a40:	ffffd097          	auipc	ra,0xffffd
-    80204a44:	17c080e7          	jalr	380(ra) # 80201bbc <proc_freepagetable>
+    80204a42:	85ea                	mv	a1,s10
+    80204a44:	ffffd097          	auipc	ra,0xffffd
+    80204a48:	178080e7          	jalr	376(ra) # 80201bbc <proc_freepagetable>
   w_satp(MAKE_SATP(p->kpagetable));
-    80204a48:	058ab783          	ld	a5,88(s5)
-    80204a4c:	83b1                	srli	a5,a5,0xc
-    80204a4e:	577d                	li	a4,-1
-    80204a50:	177e                	slli	a4,a4,0x3f
-    80204a52:	8fd9                	or	a5,a5,a4
+    80204a4c:	058ab783          	ld	a5,88(s5)
+    80204a50:	83b1                	srli	a5,a5,0xc
+    80204a52:	577d                	li	a4,-1
+    80204a54:	177e                	slli	a4,a4,0x3f
+    80204a56:	8fd9                	or	a5,a5,a4
   asm volatile("csrw satp, %0" : : "r" (x));
-    80204a54:	18079073          	csrw	satp,a5
+    80204a58:	18079073          	csrw	satp,a5
   asm volatile("sfence.vma");
-    80204a58:	12000073          	sfence.vma
+    80204a5c:	12000073          	sfence.vma
   kvmfree(oldkpagetable, 0);
-    80204a5c:	4581                	li	a1,0
-    80204a5e:	854e                	mv	a0,s3
-    80204a60:	ffffd097          	auipc	ra,0xffffd
-    80204a64:	c12080e7          	jalr	-1006(ra) # 80201672 <kvmfree>
+    80204a60:	4581                	li	a1,0
+    80204a62:	854e                	mv	a0,s3
+    80204a64:	ffffd097          	auipc	ra,0xffffd
+    80204a68:	c0e080e7          	jalr	-1010(ra) # 80201672 <kvmfree>
   return argc; // this ends up in a0, the first argument to main(argc, argv)
-    80204a68:	0004851b          	sext.w	a0,s1
-    80204a6c:	a089                	j	80204aae <exec+0x338>
+    80204a6c:	0004851b          	sext.w	a0,s1
+    80204a70:	a089                	j	80204ab2 <exec+0x338>
     return -1;
-    80204a6e:	557d                	li	a0,-1
-    80204a70:	a83d                	j	80204aae <exec+0x338>
-    80204a72:	de943823          	sd	s1,-528(s0)
+    80204a72:	557d                	li	a0,-1
+    80204a74:	a83d                	j	80204ab2 <exec+0x338>
+    80204a76:	de943823          	sd	s1,-528(s0)
     proc_freepagetable(pagetable, sz);
-    80204a76:	df043583          	ld	a1,-528(s0)
-    80204a7a:	e0843503          	ld	a0,-504(s0)
-    80204a7e:	ffffd097          	auipc	ra,0xffffd
-    80204a82:	13e080e7          	jalr	318(ra) # 80201bbc <proc_freepagetable>
+    80204a7a:	df043583          	ld	a1,-528(s0)
+    80204a7e:	e0843503          	ld	a0,-504(s0)
+    80204a82:	ffffd097          	auipc	ra,0xffffd
+    80204a86:	13a080e7          	jalr	314(ra) # 80201bbc <proc_freepagetable>
     kvmfree(kpagetable, 0);
-    80204a86:	4581                	li	a1,0
-    80204a88:	855a                	mv	a0,s6
-    80204a8a:	ffffd097          	auipc	ra,0xffffd
-    80204a8e:	be8080e7          	jalr	-1048(ra) # 80201672 <kvmfree>
+    80204a8a:	4581                	li	a1,0
+    80204a8c:	855a                	mv	a0,s6
+    80204a8e:	ffffd097          	auipc	ra,0xffffd
+    80204a92:	be4080e7          	jalr	-1052(ra) # 80201672 <kvmfree>
     eunlock(ep);
     eput(ep);
   }
   return -1;
-    80204a92:	557d                	li	a0,-1
+    80204a96:	557d                	li	a0,-1
   if(ep){
-    80204a94:	000a0d63          	beqz	s4,80204aae <exec+0x338>
+    80204a98:	000a0d63          	beqz	s4,80204ab2 <exec+0x338>
     eunlock(ep);
-    80204a98:	8552                	mv	a0,s4
-    80204a9a:	00002097          	auipc	ra,0x2
-    80204a9e:	65a080e7          	jalr	1626(ra) # 802070f4 <eunlock>
+    80204a9c:	8552                	mv	a0,s4
+    80204a9e:	00002097          	auipc	ra,0x2
+    80204aa2:	616080e7          	jalr	1558(ra) # 802070b4 <eunlock>
     eput(ep);
-    80204aa2:	8552                	mv	a0,s4
-    80204aa4:	00002097          	auipc	ra,0x2
-    80204aa8:	69e080e7          	jalr	1694(ra) # 80207142 <eput>
+    80204aa6:	8552                	mv	a0,s4
+    80204aa8:	00002097          	auipc	ra,0x2
+    80204aac:	65a080e7          	jalr	1626(ra) # 80207102 <eput>
   return -1;
-    80204aac:	557d                	li	a0,-1
+    80204ab0:	557d                	li	a0,-1
 }
-    80204aae:	22813083          	ld	ra,552(sp)
-    80204ab2:	22013403          	ld	s0,544(sp)
-    80204ab6:	21813483          	ld	s1,536(sp)
-    80204aba:	21013903          	ld	s2,528(sp)
-    80204abe:	20813983          	ld	s3,520(sp)
-    80204ac2:	20013a03          	ld	s4,512(sp)
-    80204ac6:	7afe                	ld	s5,504(sp)
-    80204ac8:	7b5e                	ld	s6,496(sp)
-    80204aca:	7bbe                	ld	s7,488(sp)
-    80204acc:	7c1e                	ld	s8,480(sp)
-    80204ace:	6cfe                	ld	s9,472(sp)
-    80204ad0:	6d5e                	ld	s10,464(sp)
-    80204ad2:	6dbe                	ld	s11,456(sp)
-    80204ad4:	23010113          	addi	sp,sp,560
-    80204ad8:	8082                	ret
-    80204ada:	de943823          	sd	s1,-528(s0)
-    80204ade:	bf61                	j	80204a76 <exec+0x300>
-    80204ae0:	de943823          	sd	s1,-528(s0)
-    80204ae4:	bf49                	j	80204a76 <exec+0x300>
-    80204ae6:	de943823          	sd	s1,-528(s0)
-    80204aea:	b771                	j	80204a76 <exec+0x300>
+    80204ab2:	22813083          	ld	ra,552(sp)
+    80204ab6:	22013403          	ld	s0,544(sp)
+    80204aba:	21813483          	ld	s1,536(sp)
+    80204abe:	21013903          	ld	s2,528(sp)
+    80204ac2:	20813983          	ld	s3,520(sp)
+    80204ac6:	20013a03          	ld	s4,512(sp)
+    80204aca:	7afe                	ld	s5,504(sp)
+    80204acc:	7b5e                	ld	s6,496(sp)
+    80204ace:	7bbe                	ld	s7,488(sp)
+    80204ad0:	7c1e                	ld	s8,480(sp)
+    80204ad2:	6cfe                	ld	s9,472(sp)
+    80204ad4:	6d5e                	ld	s10,464(sp)
+    80204ad6:	6dbe                	ld	s11,456(sp)
+    80204ad8:	23010113          	addi	sp,sp,560
+    80204adc:	8082                	ret
+    80204ade:	de943823          	sd	s1,-528(s0)
+    80204ae2:	bf61                	j	80204a7a <exec+0x300>
+    80204ae4:	de943823          	sd	s1,-528(s0)
+    80204ae8:	bf49                	j	80204a7a <exec+0x300>
+    80204aea:	de943823          	sd	s1,-528(s0)
+    80204aee:	b771                	j	80204a7a <exec+0x300>
   sz = sz1;
-    80204aec:	df943823          	sd	s9,-528(s0)
+    80204af0:	df943823          	sd	s9,-528(s0)
   ep = 0;
-    80204af0:	4a01                	li	s4,0
-    80204af2:	b751                	j	80204a76 <exec+0x300>
+    80204af4:	4a01                	li	s4,0
+    80204af6:	b751                	j	80204a7a <exec+0x300>
   sz = sz1;
-    80204af4:	df943823          	sd	s9,-528(s0)
+    80204af8:	df943823          	sd	s9,-528(s0)
   ep = 0;
-    80204af8:	4a01                	li	s4,0
-    80204afa:	bfb5                	j	80204a76 <exec+0x300>
+    80204afc:	4a01                	li	s4,0
+    80204afe:	bfb5                	j	80204a7a <exec+0x300>
   sz = sz1;
-    80204afc:	df943823          	sd	s9,-528(s0)
+    80204b00:	df943823          	sd	s9,-528(s0)
   ep = 0;
-    80204b00:	4a01                	li	s4,0
-    80204b02:	bf95                	j	80204a76 <exec+0x300>
+    80204b04:	4a01                	li	s4,0
+    80204b06:	bf95                	j	80204a7a <exec+0x300>
     if((sz1 = uvmalloc(pagetable, kpagetable, sz, ph.vaddr + ph.memsz)) == 0)
-    80204b04:	df043483          	ld	s1,-528(s0)
+    80204b08:	df043483          	ld	s1,-528(s0)
   for(i=0, off=elf.phoff; i<elf.phnum; i++, off+=sizeof(ph)){
-    80204b08:	e0043783          	ld	a5,-512(s0)
-    80204b0c:	0017869b          	addiw	a3,a5,1
-    80204b10:	e0d43023          	sd	a3,-512(s0)
-    80204b14:	df843783          	ld	a5,-520(s0)
-    80204b18:	0387879b          	addiw	a5,a5,56
-    80204b1c:	e8045703          	lhu	a4,-384(s0)
-    80204b20:	d8e6dee3          	bge	a3,a4,802048bc <exec+0x146>
+    80204b0c:	e0043783          	ld	a5,-512(s0)
+    80204b10:	0017869b          	addiw	a3,a5,1
+    80204b14:	e0d43023          	sd	a3,-512(s0)
+    80204b18:	df843783          	ld	a5,-520(s0)
+    80204b1c:	0387879b          	addiw	a5,a5,56
+    80204b20:	e8045703          	lhu	a4,-384(s0)
+    80204b24:	d8e6dee3          	bge	a3,a4,802048c0 <exec+0x146>
     if(eread(ep, 0, (uint64)&ph, off, sizeof(ph)) != sizeof(ph))
-    80204b24:	2781                	sext.w	a5,a5
-    80204b26:	def43c23          	sd	a5,-520(s0)
-    80204b2a:	03800713          	li	a4,56
-    80204b2e:	86be                	mv	a3,a5
-    80204b30:	de043603          	ld	a2,-544(s0)
-    80204b34:	4581                	li	a1,0
-    80204b36:	8552                	mv	a0,s4
-    80204b38:	00002097          	auipc	ra,0x2
-    80204b3c:	c82080e7          	jalr	-894(ra) # 802067ba <eread>
-    80204b40:	03800793          	li	a5,56
-    80204b44:	f2f517e3          	bne	a0,a5,80204a72 <exec+0x2fc>
+    80204b28:	2781                	sext.w	a5,a5
+    80204b2a:	def43c23          	sd	a5,-520(s0)
+    80204b2e:	03800713          	li	a4,56
+    80204b32:	86be                	mv	a3,a5
+    80204b34:	de043603          	ld	a2,-544(s0)
+    80204b38:	4581                	li	a1,0
+    80204b3a:	8552                	mv	a0,s4
+    80204b3c:	00002097          	auipc	ra,0x2
+    80204b40:	c3e080e7          	jalr	-962(ra) # 8020677a <eread>
+    80204b44:	03800793          	li	a5,56
+    80204b48:	f2f517e3          	bne	a0,a5,80204a76 <exec+0x2fc>
     if(ph.type != ELF_PROG_LOAD)
-    80204b48:	e1042783          	lw	a5,-496(s0)
-    80204b4c:	4705                	li	a4,1
-    80204b4e:	fae79de3          	bne	a5,a4,80204b08 <exec+0x392>
+    80204b4c:	e1042783          	lw	a5,-496(s0)
+    80204b50:	4705                	li	a4,1
+    80204b52:	fae79de3          	bne	a5,a4,80204b0c <exec+0x392>
     if(ph.memsz < ph.filesz)
-    80204b52:	e3843683          	ld	a3,-456(s0)
-    80204b56:	e3043783          	ld	a5,-464(s0)
-    80204b5a:	f8f6e0e3          	bltu	a3,a5,80204ada <exec+0x364>
+    80204b56:	e3843683          	ld	a3,-456(s0)
+    80204b5a:	e3043783          	ld	a5,-464(s0)
+    80204b5e:	f8f6e0e3          	bltu	a3,a5,80204ade <exec+0x364>
     if(ph.vaddr + ph.memsz < ph.vaddr)
-    80204b5e:	e2043783          	ld	a5,-480(s0)
-    80204b62:	96be                	add	a3,a3,a5
-    80204b64:	f6f6eee3          	bltu	a3,a5,80204ae0 <exec+0x36a>
+    80204b62:	e2043783          	ld	a5,-480(s0)
+    80204b66:	96be                	add	a3,a3,a5
+    80204b68:	f6f6eee3          	bltu	a3,a5,80204ae4 <exec+0x36a>
     if((sz1 = uvmalloc(pagetable, kpagetable, sz, ph.vaddr + ph.memsz)) == 0)
-    80204b68:	8626                	mv	a2,s1
-    80204b6a:	85da                	mv	a1,s6
-    80204b6c:	e0843503          	ld	a0,-504(s0)
-    80204b70:	ffffc097          	auipc	ra,0xffffc
-    80204b74:	49a080e7          	jalr	1178(ra) # 8020100a <uvmalloc>
-    80204b78:	dea43823          	sd	a0,-528(s0)
-    80204b7c:	d52d                	beqz	a0,80204ae6 <exec+0x370>
+    80204b6c:	8626                	mv	a2,s1
+    80204b6e:	85da                	mv	a1,s6
+    80204b70:	e0843503          	ld	a0,-504(s0)
+    80204b74:	ffffc097          	auipc	ra,0xffffc
+    80204b78:	496080e7          	jalr	1174(ra) # 8020100a <uvmalloc>
+    80204b7c:	dea43823          	sd	a0,-528(s0)
+    80204b80:	d52d                	beqz	a0,80204aea <exec+0x370>
     if(ph.vaddr % PGSIZE != 0)
-    80204b7e:	e2043c03          	ld	s8,-480(s0)
-    80204b82:	dd043783          	ld	a5,-560(s0)
-    80204b86:	00fc77b3          	and	a5,s8,a5
-    80204b8a:	ee0796e3          	bnez	a5,80204a76 <exec+0x300>
+    80204b82:	e2043c03          	ld	s8,-480(s0)
+    80204b86:	dd043783          	ld	a5,-560(s0)
+    80204b8a:	00fc77b3          	and	a5,s8,a5
+    80204b8e:	ee0796e3          	bnez	a5,80204a7a <exec+0x300>
     if(loadseg(pagetable, ph.vaddr, ep, ph.off, ph.filesz) < 0)
-    80204b8e:	e1842c83          	lw	s9,-488(s0)
-    80204b92:	e3042b83          	lw	s7,-464(s0)
+    80204b92:	e1842c83          	lw	s9,-488(s0)
+    80204b96:	e3042b83          	lw	s7,-464(s0)
   for(i = 0; i < sz; i += PGSIZE){
-    80204b96:	f60b87e3          	beqz	s7,80204b04 <exec+0x38e>
-    80204b9a:	89de                	mv	s3,s7
-    80204b9c:	4481                	li	s1,0
-    80204b9e:	b9ed                	j	80204898 <exec+0x122>
+    80204b9a:	f60b87e3          	beqz	s7,80204b08 <exec+0x38e>
+    80204b9e:	89de                	mv	s3,s7
+    80204ba0:	4481                	li	s1,0
+    80204ba2:	b9ed                	j	8020489c <exec+0x122>
     kvmfree(kpagetable, 0);
-    80204ba0:	4581                	li	a1,0
-    80204ba2:	855a                	mv	a0,s6
-    80204ba4:	ffffd097          	auipc	ra,0xffffd
-    80204ba8:	ace080e7          	jalr	-1330(ra) # 80201672 <kvmfree>
+    80204ba4:	4581                	li	a1,0
+    80204ba6:	855a                	mv	a0,s6
+    80204ba8:	ffffd097          	auipc	ra,0xffffd
+    80204bac:	aca080e7          	jalr	-1334(ra) # 80201672 <kvmfree>
   return -1;
-    80204bac:	557d                	li	a0,-1
-    80204bae:	b701                	j	80204aae <exec+0x338>
+    80204bb0:	557d                	li	a0,-1
+    80204bb2:	b701                	j	80204ab2 <exec+0x338>
 
-0000000080204bb0 <argfd>:
+0000000080204bb4 <argfd>:
 #define PROT_WRITE 2
 // Fetch the nth word-sized system call argument as a file descriptor
 // and return both the descriptor and the corresponding struct file.
 static int
 argfd(int n, int *pfd, struct file **pf)
 {
-    80204bb0:	7179                	addi	sp,sp,-48
-    80204bb2:	f406                	sd	ra,40(sp)
-    80204bb4:	f022                	sd	s0,32(sp)
-    80204bb6:	ec26                	sd	s1,24(sp)
-    80204bb8:	e84a                	sd	s2,16(sp)
-    80204bba:	1800                	addi	s0,sp,48
-    80204bbc:	892e                	mv	s2,a1
-    80204bbe:	84b2                	mv	s1,a2
+    80204bb4:	7179                	addi	sp,sp,-48
+    80204bb6:	f406                	sd	ra,40(sp)
+    80204bb8:	f022                	sd	s0,32(sp)
+    80204bba:	ec26                	sd	s1,24(sp)
+    80204bbc:	e84a                	sd	s2,16(sp)
+    80204bbe:	1800                	addi	s0,sp,48
+    80204bc0:	892e                	mv	s2,a1
+    80204bc2:	84b2                	mv	s1,a2
   int fd;
   struct file *f;
 
   if(argint(n, &fd) < 0)
-    80204bc0:	fdc40593          	addi	a1,s0,-36
-    80204bc4:	ffffe097          	auipc	ra,0xffffe
-    80204bc8:	740080e7          	jalr	1856(ra) # 80203304 <argint>
-    80204bcc:	04054163          	bltz	a0,80204c0e <argfd+0x5e>
+    80204bc4:	fdc40593          	addi	a1,s0,-36
+    80204bc8:	ffffe097          	auipc	ra,0xffffe
+    80204bcc:	740080e7          	jalr	1856(ra) # 80203308 <argint>
+    80204bd0:	04054163          	bltz	a0,80204c12 <argfd+0x5e>
     return -1;
   if(fd < 0 || fd >= NOFILE || (f=myproc()->ofile[fd]) == NULL)
-    80204bd0:	fdc42703          	lw	a4,-36(s0)
-    80204bd4:	06400793          	li	a5,100
-    80204bd8:	02e7ed63          	bltu	a5,a4,80204c12 <argfd+0x62>
-    80204bdc:	ffffd097          	auipc	ra,0xffffd
-    80204be0:	e60080e7          	jalr	-416(ra) # 80201a3c <myproc>
-    80204be4:	fdc42703          	lw	a4,-36(s0)
-    80204be8:	01a70793          	addi	a5,a4,26 # fffffffffffff01a <ebss_clear+0xffffffff7fdc401a>
-    80204bec:	078e                	slli	a5,a5,0x3
-    80204bee:	953e                	add	a0,a0,a5
-    80204bf0:	651c                	ld	a5,8(a0)
-    80204bf2:	c395                	beqz	a5,80204c16 <argfd+0x66>
+    80204bd4:	fdc42703          	lw	a4,-36(s0)
+    80204bd8:	06400793          	li	a5,100
+    80204bdc:	02e7ed63          	bltu	a5,a4,80204c16 <argfd+0x62>
+    80204be0:	ffffd097          	auipc	ra,0xffffd
+    80204be4:	e5c080e7          	jalr	-420(ra) # 80201a3c <myproc>
+    80204be8:	fdc42703          	lw	a4,-36(s0)
+    80204bec:	01a70793          	addi	a5,a4,26 # fffffffffffff01a <ebss_clear+0xffffffff7fdc401a>
+    80204bf0:	078e                	slli	a5,a5,0x3
+    80204bf2:	953e                	add	a0,a0,a5
+    80204bf4:	651c                	ld	a5,8(a0)
+    80204bf6:	c395                	beqz	a5,80204c1a <argfd+0x66>
     return -1;
   if(pfd)
-    80204bf4:	00090463          	beqz	s2,80204bfc <argfd+0x4c>
+    80204bf8:	00090463          	beqz	s2,80204c00 <argfd+0x4c>
     *pfd = fd;
-    80204bf8:	00e92023          	sw	a4,0(s2)
+    80204bfc:	00e92023          	sw	a4,0(s2)
   if(pf)
     *pf = f;
   return 0;
-    80204bfc:	4501                	li	a0,0
+    80204c00:	4501                	li	a0,0
   if(pf)
-    80204bfe:	c091                	beqz	s1,80204c02 <argfd+0x52>
+    80204c02:	c091                	beqz	s1,80204c06 <argfd+0x52>
     *pf = f;
-    80204c00:	e09c                	sd	a5,0(s1)
+    80204c04:	e09c                	sd	a5,0(s1)
 }
-    80204c02:	70a2                	ld	ra,40(sp)
-    80204c04:	7402                	ld	s0,32(sp)
-    80204c06:	64e2                	ld	s1,24(sp)
-    80204c08:	6942                	ld	s2,16(sp)
-    80204c0a:	6145                	addi	sp,sp,48
-    80204c0c:	8082                	ret
-    return -1;
-    80204c0e:	557d                	li	a0,-1
-    80204c10:	bfcd                	j	80204c02 <argfd+0x52>
+    80204c06:	70a2                	ld	ra,40(sp)
+    80204c08:	7402                	ld	s0,32(sp)
+    80204c0a:	64e2                	ld	s1,24(sp)
+    80204c0c:	6942                	ld	s2,16(sp)
+    80204c0e:	6145                	addi	sp,sp,48
+    80204c10:	8082                	ret
     return -1;
     80204c12:	557d                	li	a0,-1
-    80204c14:	b7fd                	j	80204c02 <argfd+0x52>
+    80204c14:	bfcd                	j	80204c06 <argfd+0x52>
+    return -1;
     80204c16:	557d                	li	a0,-1
-    80204c18:	b7ed                	j	80204c02 <argfd+0x52>
+    80204c18:	b7fd                	j	80204c06 <argfd+0x52>
+    80204c1a:	557d                	li	a0,-1
+    80204c1c:	b7ed                	j	80204c06 <argfd+0x52>
 
-0000000080204c1a <fdalloc>:
+0000000080204c1e <fdalloc>:
 
 // Allocate a file descriptor for the given file.
 // Takes over file reference from caller on success.
 static int
 fdalloc(struct file *f)
 {
-    80204c1a:	1101                	addi	sp,sp,-32
-    80204c1c:	ec06                	sd	ra,24(sp)
-    80204c1e:	e822                	sd	s0,16(sp)
-    80204c20:	e426                	sd	s1,8(sp)
-    80204c22:	1000                	addi	s0,sp,32
-    80204c24:	84aa                	mv	s1,a0
+    80204c1e:	1101                	addi	sp,sp,-32
+    80204c20:	ec06                	sd	ra,24(sp)
+    80204c22:	e822                	sd	s0,16(sp)
+    80204c24:	e426                	sd	s1,8(sp)
+    80204c26:	1000                	addi	s0,sp,32
+    80204c28:	84aa                	mv	s1,a0
   int fd;
   struct proc *p = myproc();
-    80204c26:	ffffd097          	auipc	ra,0xffffd
-    80204c2a:	e16080e7          	jalr	-490(ra) # 80201a3c <myproc>
-    80204c2e:	862a                	mv	a2,a0
+    80204c2a:	ffffd097          	auipc	ra,0xffffd
+    80204c2e:	e12080e7          	jalr	-494(ra) # 80201a3c <myproc>
+    80204c32:	862a                	mv	a2,a0
 
   for(fd = 0; fd < NOFILE; fd++){
-    80204c30:	0d850793          	addi	a5,a0,216
-    80204c34:	4501                	li	a0,0
-    80204c36:	06500693          	li	a3,101
+    80204c34:	0d850793          	addi	a5,a0,216
+    80204c38:	4501                	li	a0,0
+    80204c3a:	06500693          	li	a3,101
     if(p->ofile[fd] == 0){
-    80204c3a:	6398                	ld	a4,0(a5)
-    80204c3c:	c719                	beqz	a4,80204c4a <fdalloc+0x30>
+    80204c3e:	6398                	ld	a4,0(a5)
+    80204c40:	c719                	beqz	a4,80204c4e <fdalloc+0x30>
   for(fd = 0; fd < NOFILE; fd++){
-    80204c3e:	2505                	addiw	a0,a0,1
-    80204c40:	07a1                	addi	a5,a5,8
-    80204c42:	fed51ce3          	bne	a0,a3,80204c3a <fdalloc+0x20>
+    80204c42:	2505                	addiw	a0,a0,1
+    80204c44:	07a1                	addi	a5,a5,8
+    80204c46:	fed51ce3          	bne	a0,a3,80204c3e <fdalloc+0x20>
       p->ofile[fd] = f;
       return fd;
     }
   }
   return -1;
-    80204c46:	557d                	li	a0,-1
-    80204c48:	a031                	j	80204c54 <fdalloc+0x3a>
+    80204c4a:	557d                	li	a0,-1
+    80204c4c:	a031                	j	80204c58 <fdalloc+0x3a>
       p->ofile[fd] = f;
-    80204c4a:	01a50793          	addi	a5,a0,26
-    80204c4e:	078e                	slli	a5,a5,0x3
-    80204c50:	963e                	add	a2,a2,a5
-    80204c52:	e604                	sd	s1,8(a2)
+    80204c4e:	01a50793          	addi	a5,a0,26
+    80204c52:	078e                	slli	a5,a5,0x3
+    80204c54:	963e                	add	a2,a2,a5
+    80204c56:	e604                	sd	s1,8(a2)
 }
-    80204c54:	60e2                	ld	ra,24(sp)
-    80204c56:	6442                	ld	s0,16(sp)
-    80204c58:	64a2                	ld	s1,8(sp)
-    80204c5a:	6105                	addi	sp,sp,32
-    80204c5c:	8082                	ret
+    80204c58:	60e2                	ld	ra,24(sp)
+    80204c5a:	6442                	ld	s0,16(sp)
+    80204c5c:	64a2                	ld	s1,8(sp)
+    80204c5e:	6105                	addi	sp,sp,32
+    80204c60:	8082                	ret
 
-0000000080204c5e <create>:
+0000000080204c62 <create>:
   return filekstat(f, kst);
 }
 
 static struct dirent*
 create(char *path, short type, int mode)
 {
-    80204c5e:	7169                	addi	sp,sp,-304
-    80204c60:	f606                	sd	ra,296(sp)
-    80204c62:	f222                	sd	s0,288(sp)
-    80204c64:	ee26                	sd	s1,280(sp)
-    80204c66:	ea4a                	sd	s2,272(sp)
-    80204c68:	e64e                	sd	s3,264(sp)
-    80204c6a:	1a00                	addi	s0,sp,304
-    80204c6c:	892e                	mv	s2,a1
+    80204c62:	7169                	addi	sp,sp,-304
+    80204c64:	f606                	sd	ra,296(sp)
+    80204c66:	f222                	sd	s0,288(sp)
+    80204c68:	ee26                	sd	s1,280(sp)
+    80204c6a:	ea4a                	sd	s2,272(sp)
+    80204c6c:	e64e                	sd	s3,264(sp)
+    80204c6e:	1a00                	addi	s0,sp,304
+    80204c70:	892e                	mv	s2,a1
   struct dirent *ep, *dp;
   char name[FAT32_MAX_FILENAME + 1];
 
   if((dp = enameparent(path, name)) == NULL)
-    80204c6e:	ed040593          	addi	a1,s0,-304
-    80204c72:	00003097          	auipc	ra,0x3
-    80204c76:	c12080e7          	jalr	-1006(ra) # 80207884 <enameparent>
-    80204c7a:	84aa                	mv	s1,a0
-    80204c7c:	c945                	beqz	a0,80204d2c <create+0xce>
+    80204c72:	ed040593          	addi	a1,s0,-304
+    80204c76:	00003097          	auipc	ra,0x3
+    80204c7a:	bce080e7          	jalr	-1074(ra) # 80207844 <enameparent>
+    80204c7e:	84aa                	mv	s1,a0
+    80204c80:	c945                	beqz	a0,80204d30 <create+0xce>
     mode = ATTR_READ_ONLY;
   } else {
     mode = 0;  
   }
 
   elock(dp);
-    80204c7e:	00002097          	auipc	ra,0x2
-    80204c82:	440080e7          	jalr	1088(ra) # 802070be <elock>
+    80204c82:	00002097          	auipc	ra,0x2
+    80204c86:	3fc080e7          	jalr	1020(ra) # 8020707e <elock>
   if (type == T_DIR) {
-    80204c86:	fff90613          	addi	a2,s2,-1
-    80204c8a:	00163613          	seqz	a2,a2
+    80204c8a:	fff90613          	addi	a2,s2,-1
+    80204c8e:	00163613          	seqz	a2,a2
   if ((ep = ealloc(dp, name, mode)) == NULL) {
-    80204c8e:	0046161b          	slliw	a2,a2,0x4
-    80204c92:	ed040593          	addi	a1,s0,-304
-    80204c96:	8526                	mv	a0,s1
-    80204c98:	00003097          	auipc	ra,0x3
-    80204c9c:	912080e7          	jalr	-1774(ra) # 802075aa <ealloc>
-    80204ca0:	89aa                	mv	s3,a0
-    80204ca2:	c529                	beqz	a0,80204cec <create+0x8e>
+    80204c92:	0046161b          	slliw	a2,a2,0x4
+    80204c96:	ed040593          	addi	a1,s0,-304
+    80204c9a:	8526                	mv	a0,s1
+    80204c9c:	00003097          	auipc	ra,0x3
+    80204ca0:	8ce080e7          	jalr	-1842(ra) # 8020756a <ealloc>
+    80204ca4:	89aa                	mv	s3,a0
+    80204ca6:	c529                	beqz	a0,80204cf0 <create+0x8e>
     eunlock(dp);
     eput(dp);
     return NULL;
   }
   
   if ((type == T_DIR && !(ep->attribute & ATTR_DIRECTORY)) ||
-    80204ca4:	0009079b          	sext.w	a5,s2
-    80204ca8:	4705                	li	a4,1
-    80204caa:	04e78c63          	beq	a5,a4,80204d02 <create+0xa4>
-    80204cae:	2901                	sext.w	s2,s2
-    80204cb0:	4789                	li	a5,2
-    80204cb2:	00f91663          	bne	s2,a5,80204cbe <create+0x60>
+    80204ca8:	0009079b          	sext.w	a5,s2
+    80204cac:	4705                	li	a4,1
+    80204cae:	04e78c63          	beq	a5,a4,80204d06 <create+0xa4>
+    80204cb2:	2901                	sext.w	s2,s2
+    80204cb4:	4789                	li	a5,2
+    80204cb6:	00f91663          	bne	s2,a5,80204cc2 <create+0x60>
       (type == T_FILE && (ep->attribute & ATTR_DIRECTORY))) {
-    80204cb6:	10054783          	lbu	a5,256(a0)
-    80204cba:	8bc1                	andi	a5,a5,16
-    80204cbc:	e7b9                	bnez	a5,80204d0a <create+0xac>
+    80204cba:	10054783          	lbu	a5,256(a0)
+    80204cbe:	8bc1                	andi	a5,a5,16
+    80204cc0:	e7b9                	bnez	a5,80204d0e <create+0xac>
     eput(ep);
     eput(dp);
     return NULL;
   }
 
   eunlock(dp);
-    80204cbe:	8526                	mv	a0,s1
-    80204cc0:	00002097          	auipc	ra,0x2
-    80204cc4:	434080e7          	jalr	1076(ra) # 802070f4 <eunlock>
+    80204cc2:	8526                	mv	a0,s1
+    80204cc4:	00002097          	auipc	ra,0x2
+    80204cc8:	3f0080e7          	jalr	1008(ra) # 802070b4 <eunlock>
   eput(dp);
-    80204cc8:	8526                	mv	a0,s1
-    80204cca:	00002097          	auipc	ra,0x2
-    80204cce:	478080e7          	jalr	1144(ra) # 80207142 <eput>
+    80204ccc:	8526                	mv	a0,s1
+    80204cce:	00002097          	auipc	ra,0x2
+    80204cd2:	434080e7          	jalr	1076(ra) # 80207102 <eput>
 
   elock(ep);
-    80204cd2:	854e                	mv	a0,s3
-    80204cd4:	00002097          	auipc	ra,0x2
-    80204cd8:	3ea080e7          	jalr	1002(ra) # 802070be <elock>
+    80204cd6:	854e                	mv	a0,s3
+    80204cd8:	00002097          	auipc	ra,0x2
+    80204cdc:	3a6080e7          	jalr	934(ra) # 8020707e <elock>
   return ep;
 }
-    80204cdc:	854e                	mv	a0,s3
-    80204cde:	70b2                	ld	ra,296(sp)
-    80204ce0:	7412                	ld	s0,288(sp)
-    80204ce2:	64f2                	ld	s1,280(sp)
-    80204ce4:	6952                	ld	s2,272(sp)
-    80204ce6:	69b2                	ld	s3,264(sp)
-    80204ce8:	6155                	addi	sp,sp,304
-    80204cea:	8082                	ret
+    80204ce0:	854e                	mv	a0,s3
+    80204ce2:	70b2                	ld	ra,296(sp)
+    80204ce4:	7412                	ld	s0,288(sp)
+    80204ce6:	64f2                	ld	s1,280(sp)
+    80204ce8:	6952                	ld	s2,272(sp)
+    80204cea:	69b2                	ld	s3,264(sp)
+    80204cec:	6155                	addi	sp,sp,304
+    80204cee:	8082                	ret
     eunlock(dp);
-    80204cec:	8526                	mv	a0,s1
-    80204cee:	00002097          	auipc	ra,0x2
-    80204cf2:	406080e7          	jalr	1030(ra) # 802070f4 <eunlock>
+    80204cf0:	8526                	mv	a0,s1
+    80204cf2:	00002097          	auipc	ra,0x2
+    80204cf6:	3c2080e7          	jalr	962(ra) # 802070b4 <eunlock>
     eput(dp);
-    80204cf6:	8526                	mv	a0,s1
-    80204cf8:	00002097          	auipc	ra,0x2
-    80204cfc:	44a080e7          	jalr	1098(ra) # 80207142 <eput>
+    80204cfa:	8526                	mv	a0,s1
+    80204cfc:	00002097          	auipc	ra,0x2
+    80204d00:	406080e7          	jalr	1030(ra) # 80207102 <eput>
     return NULL;
-    80204d00:	bff1                	j	80204cdc <create+0x7e>
+    80204d04:	bff1                	j	80204ce0 <create+0x7e>
   if ((type == T_DIR && !(ep->attribute & ATTR_DIRECTORY)) ||
-    80204d02:	10054783          	lbu	a5,256(a0)
-    80204d06:	8bc1                	andi	a5,a5,16
-    80204d08:	fbdd                	bnez	a5,80204cbe <create+0x60>
+    80204d06:	10054783          	lbu	a5,256(a0)
+    80204d0a:	8bc1                	andi	a5,a5,16
+    80204d0c:	fbdd                	bnez	a5,80204cc2 <create+0x60>
     eunlock(dp);
-    80204d0a:	8526                	mv	a0,s1
-    80204d0c:	00002097          	auipc	ra,0x2
-    80204d10:	3e8080e7          	jalr	1000(ra) # 802070f4 <eunlock>
+    80204d0e:	8526                	mv	a0,s1
+    80204d10:	00002097          	auipc	ra,0x2
+    80204d14:	3a4080e7          	jalr	932(ra) # 802070b4 <eunlock>
     eput(ep);
-    80204d14:	854e                	mv	a0,s3
-    80204d16:	00002097          	auipc	ra,0x2
-    80204d1a:	42c080e7          	jalr	1068(ra) # 80207142 <eput>
+    80204d18:	854e                	mv	a0,s3
+    80204d1a:	00002097          	auipc	ra,0x2
+    80204d1e:	3e8080e7          	jalr	1000(ra) # 80207102 <eput>
     eput(dp);
-    80204d1e:	8526                	mv	a0,s1
-    80204d20:	00002097          	auipc	ra,0x2
-    80204d24:	422080e7          	jalr	1058(ra) # 80207142 <eput>
+    80204d22:	8526                	mv	a0,s1
+    80204d24:	00002097          	auipc	ra,0x2
+    80204d28:	3de080e7          	jalr	990(ra) # 80207102 <eput>
     return NULL;
-    80204d28:	4981                	li	s3,0
-    80204d2a:	bf4d                	j	80204cdc <create+0x7e>
+    80204d2c:	4981                	li	s3,0
+    80204d2e:	bf4d                	j	80204ce0 <create+0x7e>
     return NULL;
-    80204d2c:	89aa                	mv	s3,a0
-    80204d2e:	b77d                	j	80204cdc <create+0x7e>
+    80204d30:	89aa                	mv	s3,a0
+    80204d32:	b77d                	j	80204ce0 <create+0x7e>
 
-0000000080204d30 <sys_dup>:
+0000000080204d34 <sys_dup>:
 {
-    80204d30:	7179                	addi	sp,sp,-48
-    80204d32:	f406                	sd	ra,40(sp)
-    80204d34:	f022                	sd	s0,32(sp)
-    80204d36:	ec26                	sd	s1,24(sp)
-    80204d38:	e84a                	sd	s2,16(sp)
-    80204d3a:	1800                	addi	s0,sp,48
+    80204d34:	7179                	addi	sp,sp,-48
+    80204d36:	f406                	sd	ra,40(sp)
+    80204d38:	f022                	sd	s0,32(sp)
+    80204d3a:	ec26                	sd	s1,24(sp)
+    80204d3c:	e84a                	sd	s2,16(sp)
+    80204d3e:	1800                	addi	s0,sp,48
   if(argfd(0, 0, &f) < 0)
-    80204d3c:	fd840613          	addi	a2,s0,-40
-    80204d40:	4581                	li	a1,0
-    80204d42:	4501                	li	a0,0
-    80204d44:	00000097          	auipc	ra,0x0
-    80204d48:	e6c080e7          	jalr	-404(ra) # 80204bb0 <argfd>
+    80204d40:	fd840613          	addi	a2,s0,-40
+    80204d44:	4581                	li	a1,0
+    80204d46:	4501                	li	a0,0
+    80204d48:	00000097          	auipc	ra,0x0
+    80204d4c:	e6c080e7          	jalr	-404(ra) # 80204bb4 <argfd>
     return -1;
-    80204d4c:	57fd                	li	a5,-1
+    80204d50:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0)
-    80204d4e:	02054363          	bltz	a0,80204d74 <sys_dup+0x44>
+    80204d52:	02054363          	bltz	a0,80204d78 <sys_dup+0x44>
   if((fd=fdalloc(f)) < 0)
-    80204d52:	fd843903          	ld	s2,-40(s0)
-    80204d56:	854a                	mv	a0,s2
-    80204d58:	00000097          	auipc	ra,0x0
-    80204d5c:	ec2080e7          	jalr	-318(ra) # 80204c1a <fdalloc>
-    80204d60:	84aa                	mv	s1,a0
+    80204d56:	fd843903          	ld	s2,-40(s0)
+    80204d5a:	854a                	mv	a0,s2
+    80204d5c:	00000097          	auipc	ra,0x0
+    80204d60:	ec2080e7          	jalr	-318(ra) # 80204c1e <fdalloc>
+    80204d64:	84aa                	mv	s1,a0
     return -1;
-    80204d62:	57fd                	li	a5,-1
+    80204d66:	57fd                	li	a5,-1
   if((fd=fdalloc(f)) < 0)
-    80204d64:	00054863          	bltz	a0,80204d74 <sys_dup+0x44>
+    80204d68:	00054863          	bltz	a0,80204d78 <sys_dup+0x44>
   filedup(f);
-    80204d68:	854a                	mv	a0,s2
-    80204d6a:	fffff097          	auipc	ra,0xfffff
-    80204d6e:	28a080e7          	jalr	650(ra) # 80203ff4 <filedup>
+    80204d6c:	854a                	mv	a0,s2
+    80204d6e:	fffff097          	auipc	ra,0xfffff
+    80204d72:	28a080e7          	jalr	650(ra) # 80203ff8 <filedup>
   return fd;
-    80204d72:	87a6                	mv	a5,s1
+    80204d76:	87a6                	mv	a5,s1
 }
-    80204d74:	853e                	mv	a0,a5
-    80204d76:	70a2                	ld	ra,40(sp)
-    80204d78:	7402                	ld	s0,32(sp)
-    80204d7a:	64e2                	ld	s1,24(sp)
-    80204d7c:	6942                	ld	s2,16(sp)
-    80204d7e:	6145                	addi	sp,sp,48
-    80204d80:	8082                	ret
-
-0000000080204d82 <sys_dup3>:
+    80204d78:	853e                	mv	a0,a5
+    80204d7a:	70a2                	ld	ra,40(sp)
+    80204d7c:	7402                	ld	s0,32(sp)
+    80204d7e:	64e2                	ld	s1,24(sp)
+    80204d80:	6942                	ld	s2,16(sp)
+    80204d82:	6145                	addi	sp,sp,48
+    80204d84:	8082                	ret
+
+0000000080204d86 <sys_dup3>:
 {
-    80204d82:	7179                	addi	sp,sp,-48
-    80204d84:	f406                	sd	ra,40(sp)
-    80204d86:	f022                	sd	s0,32(sp)
-    80204d88:	ec26                	sd	s1,24(sp)
-    80204d8a:	1800                	addi	s0,sp,48
+    80204d86:	7179                	addi	sp,sp,-48
+    80204d88:	f406                	sd	ra,40(sp)
+    80204d8a:	f022                	sd	s0,32(sp)
+    80204d8c:	ec26                	sd	s1,24(sp)
+    80204d8e:	1800                	addi	s0,sp,48
     if (argfd(0, 0, &f) < 0 || argint(1, &new) < 0) {
-    80204d8c:	fd840613          	addi	a2,s0,-40
-    80204d90:	4581                	li	a1,0
-    80204d92:	4501                	li	a0,0
-    80204d94:	00000097          	auipc	ra,0x0
-    80204d98:	e1c080e7          	jalr	-484(ra) # 80204bb0 <argfd>
+    80204d90:	fd840613          	addi	a2,s0,-40
+    80204d94:	4581                	li	a1,0
+    80204d96:	4501                	li	a0,0
+    80204d98:	00000097          	auipc	ra,0x0
+    80204d9c:	e1c080e7          	jalr	-484(ra) # 80204bb4 <argfd>
         return -1;  
-    80204d9c:	577d                	li	a4,-1
+    80204da0:	577d                	li	a4,-1
     if (argfd(0, 0, &f) < 0 || argint(1, &new) < 0) {
-    80204d9e:	04054e63          	bltz	a0,80204dfa <sys_dup3+0x78>
-    80204da2:	fd440593          	addi	a1,s0,-44
-    80204da6:	4505                	li	a0,1
-    80204da8:	ffffe097          	auipc	ra,0xffffe
-    80204dac:	55c080e7          	jalr	1372(ra) # 80203304 <argint>
+    80204da2:	04054e63          	bltz	a0,80204dfe <sys_dup3+0x78>
+    80204da6:	fd440593          	addi	a1,s0,-44
+    80204daa:	4505                	li	a0,1
+    80204dac:	ffffe097          	auipc	ra,0xffffe
+    80204db0:	55c080e7          	jalr	1372(ra) # 80203308 <argint>
     if (new < 0) {
-    80204db0:	fd442783          	lw	a5,-44(s0)
-    80204db4:	8fc9                	or	a5,a5,a0
-    80204db6:	2781                	sext.w	a5,a5
+    80204db4:	fd442783          	lw	a5,-44(s0)
+    80204db8:	8fc9                	or	a5,a5,a0
+    80204dba:	2781                	sext.w	a5,a5
         return -1; 
-    80204db8:	577d                	li	a4,-1
+    80204dbc:	577d                	li	a4,-1
     if (new < 0) {
-    80204dba:	0407c063          	bltz	a5,80204dfa <sys_dup3+0x78>
+    80204dbe:	0407c063          	bltz	a5,80204dfe <sys_dup3+0x78>
     struct proc *p = myproc();
-    80204dbe:	ffffd097          	auipc	ra,0xffffd
-    80204dc2:	c7e080e7          	jalr	-898(ra) # 80201a3c <myproc>
-    80204dc6:	84aa                	mv	s1,a0
+    80204dc2:	ffffd097          	auipc	ra,0xffffd
+    80204dc6:	c7a080e7          	jalr	-902(ra) # 80201a3c <myproc>
+    80204dca:	84aa                	mv	s1,a0
     if(p->ofile[new]){
-    80204dc8:	fd442783          	lw	a5,-44(s0)
-    80204dcc:	07e9                	addi	a5,a5,26
-    80204dce:	078e                	slli	a5,a5,0x3
-    80204dd0:	97aa                	add	a5,a5,a0
-    80204dd2:	6788                	ld	a0,8(a5)
-    80204dd4:	c509                	beqz	a0,80204dde <sys_dup3+0x5c>
+    80204dcc:	fd442783          	lw	a5,-44(s0)
+    80204dd0:	07e9                	addi	a5,a5,26
+    80204dd2:	078e                	slli	a5,a5,0x3
+    80204dd4:	97aa                	add	a5,a5,a0
+    80204dd6:	6788                	ld	a0,8(a5)
+    80204dd8:	c509                	beqz	a0,80204de2 <sys_dup3+0x5c>
         fileclose(p->ofile[new]);
-    80204dd6:	fffff097          	auipc	ra,0xfffff
-    80204dda:	270080e7          	jalr	624(ra) # 80204046 <fileclose>
+    80204dda:	fffff097          	auipc	ra,0xfffff
+    80204dde:	270080e7          	jalr	624(ra) # 8020404a <fileclose>
     p->ofile[new] = f;
-    80204dde:	fd843503          	ld	a0,-40(s0)
-    80204de2:	fd442783          	lw	a5,-44(s0)
-    80204de6:	07e9                	addi	a5,a5,26
-    80204de8:	078e                	slli	a5,a5,0x3
-    80204dea:	94be                	add	s1,s1,a5
-    80204dec:	e488                	sd	a0,8(s1)
+    80204de2:	fd843503          	ld	a0,-40(s0)
+    80204de6:	fd442783          	lw	a5,-44(s0)
+    80204dea:	07e9                	addi	a5,a5,26
+    80204dec:	078e                	slli	a5,a5,0x3
+    80204dee:	94be                	add	s1,s1,a5
+    80204df0:	e488                	sd	a0,8(s1)
     filedup(f);
-    80204dee:	fffff097          	auipc	ra,0xfffff
-    80204df2:	206080e7          	jalr	518(ra) # 80203ff4 <filedup>
+    80204df2:	fffff097          	auipc	ra,0xfffff
+    80204df6:	206080e7          	jalr	518(ra) # 80203ff8 <filedup>
     return new;
-    80204df6:	fd442703          	lw	a4,-44(s0)
+    80204dfa:	fd442703          	lw	a4,-44(s0)
 }
-    80204dfa:	853a                	mv	a0,a4
-    80204dfc:	70a2                	ld	ra,40(sp)
-    80204dfe:	7402                	ld	s0,32(sp)
-    80204e00:	64e2                	ld	s1,24(sp)
-    80204e02:	6145                	addi	sp,sp,48
-    80204e04:	8082                	ret
-
-0000000080204e06 <sys_read>:
+    80204dfe:	853a                	mv	a0,a4
+    80204e00:	70a2                	ld	ra,40(sp)
+    80204e02:	7402                	ld	s0,32(sp)
+    80204e04:	64e2                	ld	s1,24(sp)
+    80204e06:	6145                	addi	sp,sp,48
+    80204e08:	8082                	ret
+
+0000000080204e0a <sys_read>:
 {
-    80204e06:	7179                	addi	sp,sp,-48
-    80204e08:	f406                	sd	ra,40(sp)
-    80204e0a:	f022                	sd	s0,32(sp)
-    80204e0c:	1800                	addi	s0,sp,48
+    80204e0a:	7179                	addi	sp,sp,-48
+    80204e0c:	f406                	sd	ra,40(sp)
+    80204e0e:	f022                	sd	s0,32(sp)
+    80204e10:	1800                	addi	s0,sp,48
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204e0e:	fe840613          	addi	a2,s0,-24
-    80204e12:	4581                	li	a1,0
-    80204e14:	4501                	li	a0,0
-    80204e16:	00000097          	auipc	ra,0x0
-    80204e1a:	d9a080e7          	jalr	-614(ra) # 80204bb0 <argfd>
+    80204e12:	fe840613          	addi	a2,s0,-24
+    80204e16:	4581                	li	a1,0
+    80204e18:	4501                	li	a0,0
+    80204e1a:	00000097          	auipc	ra,0x0
+    80204e1e:	d9a080e7          	jalr	-614(ra) # 80204bb4 <argfd>
     return -1;
-    80204e1e:	57fd                	li	a5,-1
+    80204e22:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204e20:	04054163          	bltz	a0,80204e62 <sys_read+0x5c>
-    80204e24:	fe440593          	addi	a1,s0,-28
-    80204e28:	4509                	li	a0,2
-    80204e2a:	ffffe097          	auipc	ra,0xffffe
-    80204e2e:	4da080e7          	jalr	1242(ra) # 80203304 <argint>
+    80204e24:	04054163          	bltz	a0,80204e66 <sys_read+0x5c>
+    80204e28:	fe440593          	addi	a1,s0,-28
+    80204e2c:	4509                	li	a0,2
+    80204e2e:	ffffe097          	auipc	ra,0xffffe
+    80204e32:	4da080e7          	jalr	1242(ra) # 80203308 <argint>
     return -1;
-    80204e32:	57fd                	li	a5,-1
+    80204e36:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204e34:	02054763          	bltz	a0,80204e62 <sys_read+0x5c>
-    80204e38:	fd840593          	addi	a1,s0,-40
-    80204e3c:	4505                	li	a0,1
-    80204e3e:	ffffe097          	auipc	ra,0xffffe
-    80204e42:	528080e7          	jalr	1320(ra) # 80203366 <argaddr>
+    80204e38:	02054763          	bltz	a0,80204e66 <sys_read+0x5c>
+    80204e3c:	fd840593          	addi	a1,s0,-40
+    80204e40:	4505                	li	a0,1
+    80204e42:	ffffe097          	auipc	ra,0xffffe
+    80204e46:	528080e7          	jalr	1320(ra) # 8020336a <argaddr>
     return -1;
-    80204e46:	57fd                	li	a5,-1
+    80204e4a:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204e48:	00054d63          	bltz	a0,80204e62 <sys_read+0x5c>
+    80204e4c:	00054d63          	bltz	a0,80204e66 <sys_read+0x5c>
   return fileread(f, p, n);
-    80204e4c:	fe442603          	lw	a2,-28(s0)
-    80204e50:	fd843583          	ld	a1,-40(s0)
-    80204e54:	fe843503          	ld	a0,-24(s0)
-    80204e58:	fffff097          	auipc	ra,0xfffff
-    80204e5c:	392080e7          	jalr	914(ra) # 802041ea <fileread>
-    80204e60:	87aa                	mv	a5,a0
+    80204e50:	fe442603          	lw	a2,-28(s0)
+    80204e54:	fd843583          	ld	a1,-40(s0)
+    80204e58:	fe843503          	ld	a0,-24(s0)
+    80204e5c:	fffff097          	auipc	ra,0xfffff
+    80204e60:	392080e7          	jalr	914(ra) # 802041ee <fileread>
+    80204e64:	87aa                	mv	a5,a0
 }
-    80204e62:	853e                	mv	a0,a5
-    80204e64:	70a2                	ld	ra,40(sp)
-    80204e66:	7402                	ld	s0,32(sp)
-    80204e68:	6145                	addi	sp,sp,48
-    80204e6a:	8082                	ret
+    80204e66:	853e                	mv	a0,a5
+    80204e68:	70a2                	ld	ra,40(sp)
+    80204e6a:	7402                	ld	s0,32(sp)
+    80204e6c:	6145                	addi	sp,sp,48
+    80204e6e:	8082                	ret
 
-0000000080204e6c <sys_write>:
+0000000080204e70 <sys_write>:
 {
-    80204e6c:	7179                	addi	sp,sp,-48
-    80204e6e:	f406                	sd	ra,40(sp)
-    80204e70:	f022                	sd	s0,32(sp)
-    80204e72:	1800                	addi	s0,sp,48
+    80204e70:	7179                	addi	sp,sp,-48
+    80204e72:	f406                	sd	ra,40(sp)
+    80204e74:	f022                	sd	s0,32(sp)
+    80204e76:	1800                	addi	s0,sp,48
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204e74:	fe840613          	addi	a2,s0,-24
-    80204e78:	4581                	li	a1,0
-    80204e7a:	4501                	li	a0,0
-    80204e7c:	00000097          	auipc	ra,0x0
-    80204e80:	d34080e7          	jalr	-716(ra) # 80204bb0 <argfd>
+    80204e78:	fe840613          	addi	a2,s0,-24
+    80204e7c:	4581                	li	a1,0
+    80204e7e:	4501                	li	a0,0
+    80204e80:	00000097          	auipc	ra,0x0
+    80204e84:	d34080e7          	jalr	-716(ra) # 80204bb4 <argfd>
     return -1;
-    80204e84:	57fd                	li	a5,-1
+    80204e88:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204e86:	04054163          	bltz	a0,80204ec8 <sys_write+0x5c>
-    80204e8a:	fe440593          	addi	a1,s0,-28
-    80204e8e:	4509                	li	a0,2
-    80204e90:	ffffe097          	auipc	ra,0xffffe
-    80204e94:	474080e7          	jalr	1140(ra) # 80203304 <argint>
+    80204e8a:	04054163          	bltz	a0,80204ecc <sys_write+0x5c>
+    80204e8e:	fe440593          	addi	a1,s0,-28
+    80204e92:	4509                	li	a0,2
+    80204e94:	ffffe097          	auipc	ra,0xffffe
+    80204e98:	474080e7          	jalr	1140(ra) # 80203308 <argint>
     return -1;
-    80204e98:	57fd                	li	a5,-1
+    80204e9c:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204e9a:	02054763          	bltz	a0,80204ec8 <sys_write+0x5c>
-    80204e9e:	fd840593          	addi	a1,s0,-40
-    80204ea2:	4505                	li	a0,1
-    80204ea4:	ffffe097          	auipc	ra,0xffffe
-    80204ea8:	4c2080e7          	jalr	1218(ra) # 80203366 <argaddr>
+    80204e9e:	02054763          	bltz	a0,80204ecc <sys_write+0x5c>
+    80204ea2:	fd840593          	addi	a1,s0,-40
+    80204ea6:	4505                	li	a0,1
+    80204ea8:	ffffe097          	auipc	ra,0xffffe
+    80204eac:	4c2080e7          	jalr	1218(ra) # 8020336a <argaddr>
     return -1;
-    80204eac:	57fd                	li	a5,-1
+    80204eb0:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argint(2, &n) < 0 || argaddr(1, &p) < 0)
-    80204eae:	00054d63          	bltz	a0,80204ec8 <sys_write+0x5c>
+    80204eb2:	00054d63          	bltz	a0,80204ecc <sys_write+0x5c>
   return filewrite(f, p, n);
-    80204eb2:	fe442603          	lw	a2,-28(s0)
-    80204eb6:	fd843583          	ld	a1,-40(s0)
-    80204eba:	fe843503          	ld	a0,-24(s0)
-    80204ebe:	fffff097          	auipc	ra,0xfffff
-    80204ec2:	3ee080e7          	jalr	1006(ra) # 802042ac <filewrite>
-    80204ec6:	87aa                	mv	a5,a0
+    80204eb6:	fe442603          	lw	a2,-28(s0)
+    80204eba:	fd843583          	ld	a1,-40(s0)
+    80204ebe:	fe843503          	ld	a0,-24(s0)
+    80204ec2:	fffff097          	auipc	ra,0xfffff
+    80204ec6:	3ee080e7          	jalr	1006(ra) # 802042b0 <filewrite>
+    80204eca:	87aa                	mv	a5,a0
 }
-    80204ec8:	853e                	mv	a0,a5
-    80204eca:	70a2                	ld	ra,40(sp)
-    80204ecc:	7402                	ld	s0,32(sp)
-    80204ece:	6145                	addi	sp,sp,48
-    80204ed0:	8082                	ret
+    80204ecc:	853e                	mv	a0,a5
+    80204ece:	70a2                	ld	ra,40(sp)
+    80204ed0:	7402                	ld	s0,32(sp)
+    80204ed2:	6145                	addi	sp,sp,48
+    80204ed4:	8082                	ret
 
-0000000080204ed2 <sys_close>:
+0000000080204ed6 <sys_close>:
 {
-    80204ed2:	1101                	addi	sp,sp,-32
-    80204ed4:	ec06                	sd	ra,24(sp)
-    80204ed6:	e822                	sd	s0,16(sp)
-    80204ed8:	1000                	addi	s0,sp,32
+    80204ed6:	1101                	addi	sp,sp,-32
+    80204ed8:	ec06                	sd	ra,24(sp)
+    80204eda:	e822                	sd	s0,16(sp)
+    80204edc:	1000                	addi	s0,sp,32
   if(argfd(0, &fd, &f) < 0)
-    80204eda:	fe040613          	addi	a2,s0,-32
-    80204ede:	fec40593          	addi	a1,s0,-20
-    80204ee2:	4501                	li	a0,0
-    80204ee4:	00000097          	auipc	ra,0x0
-    80204ee8:	ccc080e7          	jalr	-820(ra) # 80204bb0 <argfd>
+    80204ede:	fe040613          	addi	a2,s0,-32
+    80204ee2:	fec40593          	addi	a1,s0,-20
+    80204ee6:	4501                	li	a0,0
+    80204ee8:	00000097          	auipc	ra,0x0
+    80204eec:	ccc080e7          	jalr	-820(ra) # 80204bb4 <argfd>
     return -1;
-    80204eec:	57fd                	li	a5,-1
+    80204ef0:	57fd                	li	a5,-1
   if(argfd(0, &fd, &f) < 0)
-    80204eee:	02054463          	bltz	a0,80204f16 <sys_close+0x44>
+    80204ef2:	02054463          	bltz	a0,80204f1a <sys_close+0x44>
   myproc()->ofile[fd] = 0;
-    80204ef2:	ffffd097          	auipc	ra,0xffffd
-    80204ef6:	b4a080e7          	jalr	-1206(ra) # 80201a3c <myproc>
-    80204efa:	fec42783          	lw	a5,-20(s0)
-    80204efe:	07e9                	addi	a5,a5,26
-    80204f00:	078e                	slli	a5,a5,0x3
-    80204f02:	953e                	add	a0,a0,a5
-    80204f04:	00053423          	sd	zero,8(a0)
+    80204ef6:	ffffd097          	auipc	ra,0xffffd
+    80204efa:	b46080e7          	jalr	-1210(ra) # 80201a3c <myproc>
+    80204efe:	fec42783          	lw	a5,-20(s0)
+    80204f02:	07e9                	addi	a5,a5,26
+    80204f04:	078e                	slli	a5,a5,0x3
+    80204f06:	953e                	add	a0,a0,a5
+    80204f08:	00053423          	sd	zero,8(a0)
   fileclose(f);
-    80204f08:	fe043503          	ld	a0,-32(s0)
-    80204f0c:	fffff097          	auipc	ra,0xfffff
-    80204f10:	13a080e7          	jalr	314(ra) # 80204046 <fileclose>
+    80204f0c:	fe043503          	ld	a0,-32(s0)
+    80204f10:	fffff097          	auipc	ra,0xfffff
+    80204f14:	13a080e7          	jalr	314(ra) # 8020404a <fileclose>
   return 0;
-    80204f14:	4781                	li	a5,0
+    80204f18:	4781                	li	a5,0
 }
-    80204f16:	853e                	mv	a0,a5
-    80204f18:	60e2                	ld	ra,24(sp)
-    80204f1a:	6442                	ld	s0,16(sp)
-    80204f1c:	6105                	addi	sp,sp,32
-    80204f1e:	8082                	ret
+    80204f1a:	853e                	mv	a0,a5
+    80204f1c:	60e2                	ld	ra,24(sp)
+    80204f1e:	6442                	ld	s0,16(sp)
+    80204f20:	6105                	addi	sp,sp,32
+    80204f22:	8082                	ret
 
-0000000080204f20 <sys_fstat>:
+0000000080204f24 <sys_fstat>:
 {
-    80204f20:	1101                	addi	sp,sp,-32
-    80204f22:	ec06                	sd	ra,24(sp)
-    80204f24:	e822                	sd	s0,16(sp)
-    80204f26:	1000                	addi	s0,sp,32
+    80204f24:	1101                	addi	sp,sp,-32
+    80204f26:	ec06                	sd	ra,24(sp)
+    80204f28:	e822                	sd	s0,16(sp)
+    80204f2a:	1000                	addi	s0,sp,32
   if(argfd(0, 0, &f) < 0 || argaddr(1, &kst) < 0)
-    80204f28:	fe840613          	addi	a2,s0,-24
-    80204f2c:	4581                	li	a1,0
-    80204f2e:	4501                	li	a0,0
-    80204f30:	00000097          	auipc	ra,0x0
-    80204f34:	c80080e7          	jalr	-896(ra) # 80204bb0 <argfd>
+    80204f2c:	fe840613          	addi	a2,s0,-24
+    80204f30:	4581                	li	a1,0
+    80204f32:	4501                	li	a0,0
+    80204f34:	00000097          	auipc	ra,0x0
+    80204f38:	c80080e7          	jalr	-896(ra) # 80204bb4 <argfd>
     return -1;
-    80204f38:	57fd                	li	a5,-1
+    80204f3c:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argaddr(1, &kst) < 0)
-    80204f3a:	02054563          	bltz	a0,80204f64 <sys_fstat+0x44>
-    80204f3e:	fe040593          	addi	a1,s0,-32
-    80204f42:	4505                	li	a0,1
-    80204f44:	ffffe097          	auipc	ra,0xffffe
-    80204f48:	422080e7          	jalr	1058(ra) # 80203366 <argaddr>
+    80204f3e:	02054563          	bltz	a0,80204f68 <sys_fstat+0x44>
+    80204f42:	fe040593          	addi	a1,s0,-32
+    80204f46:	4505                	li	a0,1
+    80204f48:	ffffe097          	auipc	ra,0xffffe
+    80204f4c:	422080e7          	jalr	1058(ra) # 8020336a <argaddr>
     return -1;
-    80204f4c:	57fd                	li	a5,-1
+    80204f50:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argaddr(1, &kst) < 0)
-    80204f4e:	00054b63          	bltz	a0,80204f64 <sys_fstat+0x44>
+    80204f52:	00054b63          	bltz	a0,80204f68 <sys_fstat+0x44>
   return filekstat(f, kst);
-    80204f52:	fe043583          	ld	a1,-32(s0)
-    80204f56:	fe843503          	ld	a0,-24(s0)
-    80204f5a:	fffff097          	auipc	ra,0xfffff
-    80204f5e:	206080e7          	jalr	518(ra) # 80204160 <filekstat>
-    80204f62:	87aa                	mv	a5,a0
+    80204f56:	fe043583          	ld	a1,-32(s0)
+    80204f5a:	fe843503          	ld	a0,-24(s0)
+    80204f5e:	fffff097          	auipc	ra,0xfffff
+    80204f62:	206080e7          	jalr	518(ra) # 80204164 <filekstat>
+    80204f66:	87aa                	mv	a5,a0
 }
-    80204f64:	853e                	mv	a0,a5
-    80204f66:	60e2                	ld	ra,24(sp)
-    80204f68:	6442                	ld	s0,16(sp)
-    80204f6a:	6105                	addi	sp,sp,32
-    80204f6c:	8082                	ret
+    80204f68:	853e                	mv	a0,a5
+    80204f6a:	60e2                	ld	ra,24(sp)
+    80204f6c:	6442                	ld	s0,16(sp)
+    80204f6e:	6105                	addi	sp,sp,32
+    80204f70:	8082                	ret
 
-0000000080204f6e <sys_open>:
+0000000080204f72 <sys_open>:
 
 uint64
 sys_open(void)
 {
-    80204f6e:	7129                	addi	sp,sp,-320
-    80204f70:	fe06                	sd	ra,312(sp)
-    80204f72:	fa22                	sd	s0,304(sp)
-    80204f74:	f626                	sd	s1,296(sp)
-    80204f76:	f24a                	sd	s2,288(sp)
-    80204f78:	ee4e                	sd	s3,280(sp)
-    80204f7a:	0280                	addi	s0,sp,320
+    80204f72:	7129                	addi	sp,sp,-320
+    80204f74:	fe06                	sd	ra,312(sp)
+    80204f76:	fa22                	sd	s0,304(sp)
+    80204f78:	f626                	sd	s1,296(sp)
+    80204f7a:	f24a                	sd	s2,288(sp)
+    80204f7c:	ee4e                	sd	s3,280(sp)
+    80204f7e:	0280                	addi	s0,sp,320
   char path[FAT32_MAX_PATH];
   int fd, omode;
   struct file *f;
   struct dirent *ep;
 
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || argint(1, &omode) < 0)
-    80204f7c:	10400613          	li	a2,260
-    80204f80:	ec840593          	addi	a1,s0,-312
-    80204f84:	4501                	li	a0,0
-    80204f86:	ffffe097          	auipc	ra,0xffffe
-    80204f8a:	402080e7          	jalr	1026(ra) # 80203388 <argstr>
-    80204f8e:	87aa                	mv	a5,a0
+    80204f80:	10400613          	li	a2,260
+    80204f84:	ec840593          	addi	a1,s0,-312
+    80204f88:	4501                	li	a0,0
+    80204f8a:	ffffe097          	auipc	ra,0xffffe
+    80204f8e:	402080e7          	jalr	1026(ra) # 8020338c <argstr>
+    80204f92:	87aa                	mv	a5,a0
     return -1;
-    80204f90:	557d                	li	a0,-1
+    80204f94:	557d                	li	a0,-1
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || argint(1, &omode) < 0)
-    80204f92:	0807ce63          	bltz	a5,8020502e <sys_open+0xc0>
-    80204f96:	ec440593          	addi	a1,s0,-316
-    80204f9a:	4505                	li	a0,1
-    80204f9c:	ffffe097          	auipc	ra,0xffffe
-    80204fa0:	368080e7          	jalr	872(ra) # 80203304 <argint>
-    80204fa4:	0e054163          	bltz	a0,80205086 <sys_open+0x118>
+    80204f96:	0807ce63          	bltz	a5,80205032 <sys_open+0xc0>
+    80204f9a:	ec440593          	addi	a1,s0,-316
+    80204f9e:	4505                	li	a0,1
+    80204fa0:	ffffe097          	auipc	ra,0xffffe
+    80204fa4:	368080e7          	jalr	872(ra) # 80203308 <argint>
+    80204fa8:	0e054163          	bltz	a0,8020508a <sys_open+0x118>
 
   if(omode & O_CREATE){
-    80204fa8:	ec442603          	lw	a2,-316(s0)
-    80204fac:	20067793          	andi	a5,a2,512
-    80204fb0:	c7d1                	beqz	a5,8020503c <sys_open+0xce>
+    80204fac:	ec442603          	lw	a2,-316(s0)
+    80204fb0:	20067793          	andi	a5,a2,512
+    80204fb4:	c7d1                	beqz	a5,80205040 <sys_open+0xce>
     ep = create(path, T_FILE, omode);
-    80204fb2:	4589                	li	a1,2
-    80204fb4:	ec840513          	addi	a0,s0,-312
-    80204fb8:	00000097          	auipc	ra,0x0
-    80204fbc:	ca6080e7          	jalr	-858(ra) # 80204c5e <create>
-    80204fc0:	892a                	mv	s2,a0
+    80204fb6:	4589                	li	a1,2
+    80204fb8:	ec840513          	addi	a0,s0,-312
+    80204fbc:	00000097          	auipc	ra,0x0
+    80204fc0:	ca6080e7          	jalr	-858(ra) # 80204c62 <create>
+    80204fc4:	892a                	mv	s2,a0
     if(ep == NULL){
-    80204fc2:	c561                	beqz	a0,8020508a <sys_open+0x11c>
+    80204fc6:	c561                	beqz	a0,8020508e <sys_open+0x11c>
       eput(ep);
       return -1;
     }
   }
 
   if((f = filealloc()) == NULL || (fd = fdalloc(f)) < 0){
-    80204fc4:	fffff097          	auipc	ra,0xfffff
-    80204fc8:	fc6080e7          	jalr	-58(ra) # 80203f8a <filealloc>
-    80204fcc:	89aa                	mv	s3,a0
-    80204fce:	c579                	beqz	a0,8020509c <sys_open+0x12e>
-    80204fd0:	00000097          	auipc	ra,0x0
-    80204fd4:	c4a080e7          	jalr	-950(ra) # 80204c1a <fdalloc>
-    80204fd8:	84aa                	mv	s1,a0
-    80204fda:	0a054c63          	bltz	a0,80205092 <sys_open+0x124>
+    80204fc8:	fffff097          	auipc	ra,0xfffff
+    80204fcc:	fc6080e7          	jalr	-58(ra) # 80203f8e <filealloc>
+    80204fd0:	89aa                	mv	s3,a0
+    80204fd2:	c579                	beqz	a0,802050a0 <sys_open+0x12e>
+    80204fd4:	00000097          	auipc	ra,0x0
+    80204fd8:	c4a080e7          	jalr	-950(ra) # 80204c1e <fdalloc>
+    80204fdc:	84aa                	mv	s1,a0
+    80204fde:	0a054c63          	bltz	a0,80205096 <sys_open+0x124>
     eunlock(ep);
     eput(ep);
     return -1;
   }
 
   if(!(ep->attribute & ATTR_DIRECTORY) && (omode & O_TRUNC)){
-    80204fde:	10094783          	lbu	a5,256(s2)
-    80204fe2:	8bc1                	andi	a5,a5,16
-    80204fe4:	e791                	bnez	a5,80204ff0 <sys_open+0x82>
-    80204fe6:	ec442783          	lw	a5,-316(s0)
-    80204fea:	4007f793          	andi	a5,a5,1024
-    80204fee:	e7d1                	bnez	a5,8020507a <sys_open+0x10c>
+    80204fe2:	10094783          	lbu	a5,256(s2)
+    80204fe6:	8bc1                	andi	a5,a5,16
+    80204fe8:	e791                	bnez	a5,80204ff4 <sys_open+0x82>
+    80204fea:	ec442783          	lw	a5,-316(s0)
+    80204fee:	4007f793          	andi	a5,a5,1024
+    80204ff2:	e7d1                	bnez	a5,8020507e <sys_open+0x10c>
     etrunc(ep);
   }
 
   f->type = FD_ENTRY;
-    80204ff0:	4789                	li	a5,2
-    80204ff2:	00f9a023          	sw	a5,0(s3)
+    80204ff4:	4789                	li	a5,2
+    80204ff6:	00f9a023          	sw	a5,0(s3)
   f->off = (omode & O_APPEND) ? ep->file_size : 0;
-    80204ff6:	ec442783          	lw	a5,-316(s0)
-    80204ffa:	0047f693          	andi	a3,a5,4
-    80204ffe:	4701                	li	a4,0
-    80205000:	c299                	beqz	a3,80205006 <sys_open+0x98>
-    80205002:	10892703          	lw	a4,264(s2)
-    80205006:	02e9a023          	sw	a4,32(s3)
+    80204ffa:	ec442783          	lw	a5,-316(s0)
+    80204ffe:	0047f693          	andi	a3,a5,4
+    80205002:	4701                	li	a4,0
+    80205004:	c299                	beqz	a3,8020500a <sys_open+0x98>
+    80205006:	10892703          	lw	a4,264(s2)
+    8020500a:	02e9a023          	sw	a4,32(s3)
   f->ep = ep;
-    8020500a:	0129bc23          	sd	s2,24(s3)
+    8020500e:	0129bc23          	sd	s2,24(s3)
   f->readable = !(omode & O_WRONLY);
-    8020500e:	0017c713          	xori	a4,a5,1
-    80205012:	8b05                	andi	a4,a4,1
-    80205014:	00e98423          	sb	a4,8(s3)
+    80205012:	0017c713          	xori	a4,a5,1
+    80205016:	8b05                	andi	a4,a4,1
+    80205018:	00e98423          	sb	a4,8(s3)
   f->writable = (omode & O_WRONLY) || (omode & O_RDWR);
-    80205018:	8b8d                	andi	a5,a5,3
-    8020501a:	00f037b3          	snez	a5,a5
-    8020501e:	00f984a3          	sb	a5,9(s3)
+    8020501c:	8b8d                	andi	a5,a5,3
+    8020501e:	00f037b3          	snez	a5,a5
+    80205022:	00f984a3          	sb	a5,9(s3)
 
   eunlock(ep);
-    80205022:	854a                	mv	a0,s2
-    80205024:	00002097          	auipc	ra,0x2
-    80205028:	0d0080e7          	jalr	208(ra) # 802070f4 <eunlock>
+    80205026:	854a                	mv	a0,s2
+    80205028:	00002097          	auipc	ra,0x2
+    8020502c:	08c080e7          	jalr	140(ra) # 802070b4 <eunlock>
 
   return fd;
-    8020502c:	8526                	mv	a0,s1
+    80205030:	8526                	mv	a0,s1
 }
-    8020502e:	70f2                	ld	ra,312(sp)
-    80205030:	7452                	ld	s0,304(sp)
-    80205032:	74b2                	ld	s1,296(sp)
-    80205034:	7912                	ld	s2,288(sp)
-    80205036:	69f2                	ld	s3,280(sp)
-    80205038:	6131                	addi	sp,sp,320
-    8020503a:	8082                	ret
+    80205032:	70f2                	ld	ra,312(sp)
+    80205034:	7452                	ld	s0,304(sp)
+    80205036:	74b2                	ld	s1,296(sp)
+    80205038:	7912                	ld	s2,288(sp)
+    8020503a:	69f2                	ld	s3,280(sp)
+    8020503c:	6131                	addi	sp,sp,320
+    8020503e:	8082                	ret
     if((ep = ename(path)) == NULL){
-    8020503c:	ec840513          	addi	a0,s0,-312
-    80205040:	00003097          	auipc	ra,0x3
-    80205044:	826080e7          	jalr	-2010(ra) # 80207866 <ename>
-    80205048:	892a                	mv	s2,a0
-    8020504a:	c131                	beqz	a0,8020508e <sys_open+0x120>
+    80205040:	ec840513          	addi	a0,s0,-312
+    80205044:	00002097          	auipc	ra,0x2
+    80205048:	7e2080e7          	jalr	2018(ra) # 80207826 <ename>
+    8020504c:	892a                	mv	s2,a0
+    8020504e:	c131                	beqz	a0,80205092 <sys_open+0x120>
     elock(ep);
-    8020504c:	00002097          	auipc	ra,0x2
-    80205050:	072080e7          	jalr	114(ra) # 802070be <elock>
+    80205050:	00002097          	auipc	ra,0x2
+    80205054:	02e080e7          	jalr	46(ra) # 8020707e <elock>
     if((ep->attribute & ATTR_DIRECTORY) && omode != O_RDONLY){
-    80205054:	10094783          	lbu	a5,256(s2)
-    80205058:	8bc1                	andi	a5,a5,16
-    8020505a:	d7ad                	beqz	a5,80204fc4 <sys_open+0x56>
-    8020505c:	ec442783          	lw	a5,-316(s0)
-    80205060:	d3b5                	beqz	a5,80204fc4 <sys_open+0x56>
+    80205058:	10094783          	lbu	a5,256(s2)
+    8020505c:	8bc1                	andi	a5,a5,16
+    8020505e:	d7ad                	beqz	a5,80204fc8 <sys_open+0x56>
+    80205060:	ec442783          	lw	a5,-316(s0)
+    80205064:	d3b5                	beqz	a5,80204fc8 <sys_open+0x56>
       eunlock(ep);
-    80205062:	854a                	mv	a0,s2
-    80205064:	00002097          	auipc	ra,0x2
-    80205068:	090080e7          	jalr	144(ra) # 802070f4 <eunlock>
+    80205066:	854a                	mv	a0,s2
+    80205068:	00002097          	auipc	ra,0x2
+    8020506c:	04c080e7          	jalr	76(ra) # 802070b4 <eunlock>
       eput(ep);
-    8020506c:	854a                	mv	a0,s2
-    8020506e:	00002097          	auipc	ra,0x2
-    80205072:	0d4080e7          	jalr	212(ra) # 80207142 <eput>
+    80205070:	854a                	mv	a0,s2
+    80205072:	00002097          	auipc	ra,0x2
+    80205076:	090080e7          	jalr	144(ra) # 80207102 <eput>
       return -1;
-    80205076:	557d                	li	a0,-1
-    80205078:	bf5d                	j	8020502e <sys_open+0xc0>
+    8020507a:	557d                	li	a0,-1
+    8020507c:	bf5d                	j	80205032 <sys_open+0xc0>
     etrunc(ep);
-    8020507a:	854a                	mv	a0,s2
-    8020507c:	00002097          	auipc	ra,0x2
-    80205080:	fd8080e7          	jalr	-40(ra) # 80207054 <etrunc>
-    80205084:	b7b5                	j	80204ff0 <sys_open+0x82>
+    8020507e:	854a                	mv	a0,s2
+    80205080:	00002097          	auipc	ra,0x2
+    80205084:	f94080e7          	jalr	-108(ra) # 80207014 <etrunc>
+    80205088:	b7b5                	j	80204ff4 <sys_open+0x82>
     return -1;
-    80205086:	557d                	li	a0,-1
-    80205088:	b75d                	j	8020502e <sys_open+0xc0>
-      return -1;
     8020508a:	557d                	li	a0,-1
-    8020508c:	b74d                	j	8020502e <sys_open+0xc0>
+    8020508c:	b75d                	j	80205032 <sys_open+0xc0>
       return -1;
     8020508e:	557d                	li	a0,-1
-    80205090:	bf79                	j	8020502e <sys_open+0xc0>
+    80205090:	b74d                	j	80205032 <sys_open+0xc0>
+      return -1;
+    80205092:	557d                	li	a0,-1
+    80205094:	bf79                	j	80205032 <sys_open+0xc0>
       fileclose(f);
-    80205092:	854e                	mv	a0,s3
-    80205094:	fffff097          	auipc	ra,0xfffff
-    80205098:	fb2080e7          	jalr	-78(ra) # 80204046 <fileclose>
+    80205096:	854e                	mv	a0,s3
+    80205098:	fffff097          	auipc	ra,0xfffff
+    8020509c:	fb2080e7          	jalr	-78(ra) # 8020404a <fileclose>
     eunlock(ep);
-    8020509c:	854a                	mv	a0,s2
-    8020509e:	00002097          	auipc	ra,0x2
-    802050a2:	056080e7          	jalr	86(ra) # 802070f4 <eunlock>
+    802050a0:	854a                	mv	a0,s2
+    802050a2:	00002097          	auipc	ra,0x2
+    802050a6:	012080e7          	jalr	18(ra) # 802070b4 <eunlock>
     eput(ep);
-    802050a6:	854a                	mv	a0,s2
-    802050a8:	00002097          	auipc	ra,0x2
-    802050ac:	09a080e7          	jalr	154(ra) # 80207142 <eput>
+    802050aa:	854a                	mv	a0,s2
+    802050ac:	00002097          	auipc	ra,0x2
+    802050b0:	056080e7          	jalr	86(ra) # 80207102 <eput>
     return -1;
-    802050b0:	557d                	li	a0,-1
-    802050b2:	bfb5                	j	8020502e <sys_open+0xc0>
+    802050b4:	557d                	li	a0,-1
+    802050b6:	bfb5                	j	80205032 <sys_open+0xc0>
 
-00000000802050b4 <sys_mkdir>:
+00000000802050b8 <sys_mkdir>:
 
 uint64
 sys_mkdir(void)
 {
-    802050b4:	7169                	addi	sp,sp,-304
-    802050b6:	f606                	sd	ra,296(sp)
-    802050b8:	f222                	sd	s0,288(sp)
-    802050ba:	ee26                	sd	s1,280(sp)
-    802050bc:	1a00                	addi	s0,sp,304
+    802050b8:	7169                	addi	sp,sp,-304
+    802050ba:	f606                	sd	ra,296(sp)
+    802050bc:	f222                	sd	s0,288(sp)
+    802050be:	ee26                	sd	s1,280(sp)
+    802050c0:	1a00                	addi	s0,sp,304
   char path[FAT32_MAX_PATH];
   struct dirent *ep;
 
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || (ep = create(path, T_DIR, 0)) == 0){
-    802050be:	10400613          	li	a2,260
-    802050c2:	ed840593          	addi	a1,s0,-296
-    802050c6:	4501                	li	a0,0
-    802050c8:	ffffe097          	auipc	ra,0xffffe
-    802050cc:	2c0080e7          	jalr	704(ra) # 80203388 <argstr>
+    802050c2:	10400613          	li	a2,260
+    802050c6:	ed840593          	addi	a1,s0,-296
+    802050ca:	4501                	li	a0,0
+    802050cc:	ffffe097          	auipc	ra,0xffffe
+    802050d0:	2c0080e7          	jalr	704(ra) # 8020338c <argstr>
     return -1;
-    802050d0:	57fd                	li	a5,-1
+    802050d4:	57fd                	li	a5,-1
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || (ep = create(path, T_DIR, 0)) == 0){
-    802050d2:	02054663          	bltz	a0,802050fe <sys_mkdir+0x4a>
-    802050d6:	4601                	li	a2,0
-    802050d8:	4585                	li	a1,1
-    802050da:	ed840513          	addi	a0,s0,-296
-    802050de:	00000097          	auipc	ra,0x0
-    802050e2:	b80080e7          	jalr	-1152(ra) # 80204c5e <create>
-    802050e6:	84aa                	mv	s1,a0
-    802050e8:	c10d                	beqz	a0,8020510a <sys_mkdir+0x56>
+    802050d6:	02054663          	bltz	a0,80205102 <sys_mkdir+0x4a>
+    802050da:	4601                	li	a2,0
+    802050dc:	4585                	li	a1,1
+    802050de:	ed840513          	addi	a0,s0,-296
+    802050e2:	00000097          	auipc	ra,0x0
+    802050e6:	b80080e7          	jalr	-1152(ra) # 80204c62 <create>
+    802050ea:	84aa                	mv	s1,a0
+    802050ec:	c10d                	beqz	a0,8020510e <sys_mkdir+0x56>
   }
   eunlock(ep);
-    802050ea:	00002097          	auipc	ra,0x2
-    802050ee:	00a080e7          	jalr	10(ra) # 802070f4 <eunlock>
+    802050ee:	00002097          	auipc	ra,0x2
+    802050f2:	fc6080e7          	jalr	-58(ra) # 802070b4 <eunlock>
   eput(ep);
-    802050f2:	8526                	mv	a0,s1
-    802050f4:	00002097          	auipc	ra,0x2
-    802050f8:	04e080e7          	jalr	78(ra) # 80207142 <eput>
+    802050f6:	8526                	mv	a0,s1
+    802050f8:	00002097          	auipc	ra,0x2
+    802050fc:	00a080e7          	jalr	10(ra) # 80207102 <eput>
   return 0;
-    802050fc:	4781                	li	a5,0
+    80205100:	4781                	li	a5,0
 }
-    802050fe:	853e                	mv	a0,a5
-    80205100:	70b2                	ld	ra,296(sp)
-    80205102:	7412                	ld	s0,288(sp)
-    80205104:	64f2                	ld	s1,280(sp)
-    80205106:	6155                	addi	sp,sp,304
-    80205108:	8082                	ret
+    80205102:	853e                	mv	a0,a5
+    80205104:	70b2                	ld	ra,296(sp)
+    80205106:	7412                	ld	s0,288(sp)
+    80205108:	64f2                	ld	s1,280(sp)
+    8020510a:	6155                	addi	sp,sp,304
+    8020510c:	8082                	ret
     return -1;
-    8020510a:	57fd                	li	a5,-1
-    8020510c:	bfcd                	j	802050fe <sys_mkdir+0x4a>
+    8020510e:	57fd                	li	a5,-1
+    80205110:	bfcd                	j	80205102 <sys_mkdir+0x4a>
 
-000000008020510e <sys_chdir>:
+0000000080205112 <sys_chdir>:
 
 uint64
 sys_chdir(void)
 {
-    8020510e:	7169                	addi	sp,sp,-304
-    80205110:	f606                	sd	ra,296(sp)
-    80205112:	f222                	sd	s0,288(sp)
-    80205114:	ee26                	sd	s1,280(sp)
-    80205116:	ea4a                	sd	s2,272(sp)
-    80205118:	1a00                	addi	s0,sp,304
+    80205112:	7169                	addi	sp,sp,-304
+    80205114:	f606                	sd	ra,296(sp)
+    80205116:	f222                	sd	s0,288(sp)
+    80205118:	ee26                	sd	s1,280(sp)
+    8020511a:	ea4a                	sd	s2,272(sp)
+    8020511c:	1a00                	addi	s0,sp,304
   char path[FAT32_MAX_PATH];
   struct dirent *ep;
   struct proc *p = myproc();
-    8020511a:	ffffd097          	auipc	ra,0xffffd
-    8020511e:	922080e7          	jalr	-1758(ra) # 80201a3c <myproc>
-    80205122:	892a                	mv	s2,a0
+    8020511e:	ffffd097          	auipc	ra,0xffffd
+    80205122:	91e080e7          	jalr	-1762(ra) # 80201a3c <myproc>
+    80205126:	892a                	mv	s2,a0
   
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || (ep = ename(path)) == NULL){
-    80205124:	10400613          	li	a2,260
-    80205128:	ed840593          	addi	a1,s0,-296
-    8020512c:	4501                	li	a0,0
-    8020512e:	ffffe097          	auipc	ra,0xffffe
-    80205132:	25a080e7          	jalr	602(ra) # 80203388 <argstr>
+    80205128:	10400613          	li	a2,260
+    8020512c:	ed840593          	addi	a1,s0,-296
+    80205130:	4501                	li	a0,0
+    80205132:	ffffe097          	auipc	ra,0xffffe
+    80205136:	25a080e7          	jalr	602(ra) # 8020338c <argstr>
     return -1;
-    80205136:	57fd                	li	a5,-1
+    8020513a:	57fd                	li	a5,-1
   if(argstr(0, path, FAT32_MAX_PATH) < 0 || (ep = ename(path)) == NULL){
-    80205138:	04054063          	bltz	a0,80205178 <sys_chdir+0x6a>
-    8020513c:	ed840513          	addi	a0,s0,-296
-    80205140:	00002097          	auipc	ra,0x2
-    80205144:	726080e7          	jalr	1830(ra) # 80207866 <ename>
-    80205148:	84aa                	mv	s1,a0
-    8020514a:	c931                	beqz	a0,8020519e <sys_chdir+0x90>
+    8020513c:	04054063          	bltz	a0,8020517c <sys_chdir+0x6a>
+    80205140:	ed840513          	addi	a0,s0,-296
+    80205144:	00002097          	auipc	ra,0x2
+    80205148:	6e2080e7          	jalr	1762(ra) # 80207826 <ename>
+    8020514c:	84aa                	mv	s1,a0
+    8020514e:	c931                	beqz	a0,802051a2 <sys_chdir+0x90>
   }
   elock(ep);
-    8020514c:	00002097          	auipc	ra,0x2
-    80205150:	f72080e7          	jalr	-142(ra) # 802070be <elock>
+    80205150:	00002097          	auipc	ra,0x2
+    80205154:	f2e080e7          	jalr	-210(ra) # 8020707e <elock>
   if(!(ep->attribute & ATTR_DIRECTORY)){
-    80205154:	1004c783          	lbu	a5,256(s1)
-    80205158:	8bc1                	andi	a5,a5,16
-    8020515a:	c795                	beqz	a5,80205186 <sys_chdir+0x78>
+    80205158:	1004c783          	lbu	a5,256(s1)
+    8020515c:	8bc1                	andi	a5,a5,16
+    8020515e:	c795                	beqz	a5,8020518a <sys_chdir+0x78>
     eunlock(ep);
     eput(ep);
     return -1;
   }
   eunlock(ep);
-    8020515c:	8526                	mv	a0,s1
-    8020515e:	00002097          	auipc	ra,0x2
-    80205162:	f96080e7          	jalr	-106(ra) # 802070f4 <eunlock>
+    80205160:	8526                	mv	a0,s1
+    80205162:	00002097          	auipc	ra,0x2
+    80205166:	f52080e7          	jalr	-174(ra) # 802070b4 <eunlock>
   eput(p->cwd);
-    80205166:	40093503          	ld	a0,1024(s2)
-    8020516a:	00002097          	auipc	ra,0x2
-    8020516e:	fd8080e7          	jalr	-40(ra) # 80207142 <eput>
+    8020516a:	40093503          	ld	a0,1024(s2)
+    8020516e:	00002097          	auipc	ra,0x2
+    80205172:	f94080e7          	jalr	-108(ra) # 80207102 <eput>
   p->cwd = ep;
-    80205172:	40993023          	sd	s1,1024(s2)
+    80205176:	40993023          	sd	s1,1024(s2)
   return 0;
-    80205176:	4781                	li	a5,0
+    8020517a:	4781                	li	a5,0
 }
-    80205178:	853e                	mv	a0,a5
-    8020517a:	70b2                	ld	ra,296(sp)
-    8020517c:	7412                	ld	s0,288(sp)
-    8020517e:	64f2                	ld	s1,280(sp)
-    80205180:	6952                	ld	s2,272(sp)
-    80205182:	6155                	addi	sp,sp,304
-    80205184:	8082                	ret
+    8020517c:	853e                	mv	a0,a5
+    8020517e:	70b2                	ld	ra,296(sp)
+    80205180:	7412                	ld	s0,288(sp)
+    80205182:	64f2                	ld	s1,280(sp)
+    80205184:	6952                	ld	s2,272(sp)
+    80205186:	6155                	addi	sp,sp,304
+    80205188:	8082                	ret
     eunlock(ep);
-    80205186:	8526                	mv	a0,s1
-    80205188:	00002097          	auipc	ra,0x2
-    8020518c:	f6c080e7          	jalr	-148(ra) # 802070f4 <eunlock>
+    8020518a:	8526                	mv	a0,s1
+    8020518c:	00002097          	auipc	ra,0x2
+    80205190:	f28080e7          	jalr	-216(ra) # 802070b4 <eunlock>
     eput(ep);
-    80205190:	8526                	mv	a0,s1
-    80205192:	00002097          	auipc	ra,0x2
-    80205196:	fb0080e7          	jalr	-80(ra) # 80207142 <eput>
-    return -1;
-    8020519a:	57fd                	li	a5,-1
-    8020519c:	bff1                	j	80205178 <sys_chdir+0x6a>
+    80205194:	8526                	mv	a0,s1
+    80205196:	00002097          	auipc	ra,0x2
+    8020519a:	f6c080e7          	jalr	-148(ra) # 80207102 <eput>
     return -1;
     8020519e:	57fd                	li	a5,-1
-    802051a0:	bfe1                	j	80205178 <sys_chdir+0x6a>
+    802051a0:	bff1                	j	8020517c <sys_chdir+0x6a>
+    return -1;
+    802051a2:	57fd                	li	a5,-1
+    802051a4:	bfe1                	j	8020517c <sys_chdir+0x6a>
 
-00000000802051a2 <sys_pipe>:
+00000000802051a6 <sys_pipe>:
 
 uint64
 sys_pipe(void)
 {
-    802051a2:	7139                	addi	sp,sp,-64
-    802051a4:	fc06                	sd	ra,56(sp)
-    802051a6:	f822                	sd	s0,48(sp)
-    802051a8:	f426                	sd	s1,40(sp)
-    802051aa:	0080                	addi	s0,sp,64
+    802051a6:	7139                	addi	sp,sp,-64
+    802051a8:	fc06                	sd	ra,56(sp)
+    802051aa:	f822                	sd	s0,48(sp)
+    802051ac:	f426                	sd	s1,40(sp)
+    802051ae:	0080                	addi	s0,sp,64
   uint64 fdarray; // user pointer to array of two integers
   struct file *rf, *wf;
   int fd0, fd1;
   struct proc *p = myproc();
-    802051ac:	ffffd097          	auipc	ra,0xffffd
-    802051b0:	890080e7          	jalr	-1904(ra) # 80201a3c <myproc>
-    802051b4:	84aa                	mv	s1,a0
+    802051b0:	ffffd097          	auipc	ra,0xffffd
+    802051b4:	88c080e7          	jalr	-1908(ra) # 80201a3c <myproc>
+    802051b8:	84aa                	mv	s1,a0
 
   if(argaddr(0, &fdarray) < 0)
-    802051b6:	fd840593          	addi	a1,s0,-40
-    802051ba:	4501                	li	a0,0
-    802051bc:	ffffe097          	auipc	ra,0xffffe
-    802051c0:	1aa080e7          	jalr	426(ra) # 80203366 <argaddr>
+    802051ba:	fd840593          	addi	a1,s0,-40
+    802051be:	4501                	li	a0,0
+    802051c0:	ffffe097          	auipc	ra,0xffffe
+    802051c4:	1aa080e7          	jalr	426(ra) # 8020336a <argaddr>
     return -1;
-    802051c4:	57fd                	li	a5,-1
+    802051c8:	57fd                	li	a5,-1
   if(argaddr(0, &fdarray) < 0)
-    802051c6:	0c054e63          	bltz	a0,802052a2 <sys_pipe+0x100>
+    802051ca:	0c054e63          	bltz	a0,802052a6 <sys_pipe+0x100>
   if(pipealloc(&rf, &wf) < 0)
-    802051ca:	fc840593          	addi	a1,s0,-56
-    802051ce:	fd040513          	addi	a0,s0,-48
-    802051d2:	fffff097          	auipc	ra,0xfffff
-    802051d6:	270080e7          	jalr	624(ra) # 80204442 <pipealloc>
+    802051ce:	fc840593          	addi	a1,s0,-56
+    802051d2:	fd040513          	addi	a0,s0,-48
+    802051d6:	fffff097          	auipc	ra,0xfffff
+    802051da:	270080e7          	jalr	624(ra) # 80204446 <pipealloc>
     return -1;
-    802051da:	57fd                	li	a5,-1
+    802051de:	57fd                	li	a5,-1
   if(pipealloc(&rf, &wf) < 0)
-    802051dc:	0c054363          	bltz	a0,802052a2 <sys_pipe+0x100>
+    802051e0:	0c054363          	bltz	a0,802052a6 <sys_pipe+0x100>
   fd0 = -1;
-    802051e0:	fcf42223          	sw	a5,-60(s0)
+    802051e4:	fcf42223          	sw	a5,-60(s0)
   if((fd0 = fdalloc(rf)) < 0 || (fd1 = fdalloc(wf)) < 0){
-    802051e4:	fd043503          	ld	a0,-48(s0)
-    802051e8:	00000097          	auipc	ra,0x0
-    802051ec:	a32080e7          	jalr	-1486(ra) # 80204c1a <fdalloc>
-    802051f0:	fca42223          	sw	a0,-60(s0)
-    802051f4:	08054a63          	bltz	a0,80205288 <sys_pipe+0xe6>
-    802051f8:	fc843503          	ld	a0,-56(s0)
-    802051fc:	00000097          	auipc	ra,0x0
-    80205200:	a1e080e7          	jalr	-1506(ra) # 80204c1a <fdalloc>
-    80205204:	fca42023          	sw	a0,-64(s0)
-    80205208:	06054763          	bltz	a0,80205276 <sys_pipe+0xd4>
+    802051e8:	fd043503          	ld	a0,-48(s0)
+    802051ec:	00000097          	auipc	ra,0x0
+    802051f0:	a32080e7          	jalr	-1486(ra) # 80204c1e <fdalloc>
+    802051f4:	fca42223          	sw	a0,-60(s0)
+    802051f8:	08054a63          	bltz	a0,8020528c <sys_pipe+0xe6>
+    802051fc:	fc843503          	ld	a0,-56(s0)
+    80205200:	00000097          	auipc	ra,0x0
+    80205204:	a1e080e7          	jalr	-1506(ra) # 80204c1e <fdalloc>
+    80205208:	fca42023          	sw	a0,-64(s0)
+    8020520c:	06054763          	bltz	a0,8020527a <sys_pipe+0xd4>
     fileclose(wf);
     return -1;
   }
   // if(copyout(p->pagetable, fdarray, (char*)&fd0, sizeof(fd0)) < 0 ||
   //    copyout(p->pagetable, fdarray+sizeof(fd0), (char *)&fd1, sizeof(fd1)) < 0){
   if(copyout2(fdarray, (char*)&fd0, sizeof(fd0)) < 0 ||
-    8020520c:	4611                	li	a2,4
-    8020520e:	fc440593          	addi	a1,s0,-60
-    80205212:	fd843503          	ld	a0,-40(s0)
-    80205216:	ffffc097          	auipc	ra,0xffffc
-    8020521a:	15c080e7          	jalr	348(ra) # 80201372 <copyout2>
-    8020521e:	00054f63          	bltz	a0,8020523c <sys_pipe+0x9a>
+    80205210:	4611                	li	a2,4
+    80205212:	fc440593          	addi	a1,s0,-60
+    80205216:	fd843503          	ld	a0,-40(s0)
+    8020521a:	ffffc097          	auipc	ra,0xffffc
+    8020521e:	158080e7          	jalr	344(ra) # 80201372 <copyout2>
+    80205222:	00054f63          	bltz	a0,80205240 <sys_pipe+0x9a>
      copyout2(fdarray+sizeof(fd0), (char *)&fd1, sizeof(fd1)) < 0){
-    80205222:	4611                	li	a2,4
-    80205224:	fc040593          	addi	a1,s0,-64
-    80205228:	fd843503          	ld	a0,-40(s0)
-    8020522c:	0511                	addi	a0,a0,4
-    8020522e:	ffffc097          	auipc	ra,0xffffc
-    80205232:	144080e7          	jalr	324(ra) # 80201372 <copyout2>
+    80205226:	4611                	li	a2,4
+    80205228:	fc040593          	addi	a1,s0,-64
+    8020522c:	fd843503          	ld	a0,-40(s0)
+    80205230:	0511                	addi	a0,a0,4
+    80205232:	ffffc097          	auipc	ra,0xffffc
+    80205236:	140080e7          	jalr	320(ra) # 80201372 <copyout2>
     p->ofile[fd1] = 0;
     fileclose(rf);
     fileclose(wf);
     return -1;
   }
   return 0;
-    80205236:	4781                	li	a5,0
+    8020523a:	4781                	li	a5,0
   if(copyout2(fdarray, (char*)&fd0, sizeof(fd0)) < 0 ||
-    80205238:	06055563          	bgez	a0,802052a2 <sys_pipe+0x100>
+    8020523c:	06055563          	bgez	a0,802052a6 <sys_pipe+0x100>
     p->ofile[fd0] = 0;
-    8020523c:	fc442783          	lw	a5,-60(s0)
-    80205240:	07e9                	addi	a5,a5,26
-    80205242:	078e                	slli	a5,a5,0x3
-    80205244:	97a6                	add	a5,a5,s1
-    80205246:	0007b423          	sd	zero,8(a5)
+    80205240:	fc442783          	lw	a5,-60(s0)
+    80205244:	07e9                	addi	a5,a5,26
+    80205246:	078e                	slli	a5,a5,0x3
+    80205248:	97a6                	add	a5,a5,s1
+    8020524a:	0007b423          	sd	zero,8(a5)
     p->ofile[fd1] = 0;
-    8020524a:	fc042783          	lw	a5,-64(s0)
-    8020524e:	07e9                	addi	a5,a5,26
-    80205250:	078e                	slli	a5,a5,0x3
-    80205252:	00f48533          	add	a0,s1,a5
-    80205256:	00053423          	sd	zero,8(a0)
+    8020524e:	fc042783          	lw	a5,-64(s0)
+    80205252:	07e9                	addi	a5,a5,26
+    80205254:	078e                	slli	a5,a5,0x3
+    80205256:	00f48533          	add	a0,s1,a5
+    8020525a:	00053423          	sd	zero,8(a0)
     fileclose(rf);
-    8020525a:	fd043503          	ld	a0,-48(s0)
-    8020525e:	fffff097          	auipc	ra,0xfffff
-    80205262:	de8080e7          	jalr	-536(ra) # 80204046 <fileclose>
+    8020525e:	fd043503          	ld	a0,-48(s0)
+    80205262:	fffff097          	auipc	ra,0xfffff
+    80205266:	de8080e7          	jalr	-536(ra) # 8020404a <fileclose>
     fileclose(wf);
-    80205266:	fc843503          	ld	a0,-56(s0)
-    8020526a:	fffff097          	auipc	ra,0xfffff
-    8020526e:	ddc080e7          	jalr	-548(ra) # 80204046 <fileclose>
+    8020526a:	fc843503          	ld	a0,-56(s0)
+    8020526e:	fffff097          	auipc	ra,0xfffff
+    80205272:	ddc080e7          	jalr	-548(ra) # 8020404a <fileclose>
     return -1;
-    80205272:	57fd                	li	a5,-1
-    80205274:	a03d                	j	802052a2 <sys_pipe+0x100>
+    80205276:	57fd                	li	a5,-1
+    80205278:	a03d                	j	802052a6 <sys_pipe+0x100>
     if(fd0 >= 0)
-    80205276:	fc442783          	lw	a5,-60(s0)
-    8020527a:	0007c763          	bltz	a5,80205288 <sys_pipe+0xe6>
+    8020527a:	fc442783          	lw	a5,-60(s0)
+    8020527e:	0007c763          	bltz	a5,8020528c <sys_pipe+0xe6>
       p->ofile[fd0] = 0;
-    8020527e:	07e9                	addi	a5,a5,26
-    80205280:	078e                	slli	a5,a5,0x3
-    80205282:	97a6                	add	a5,a5,s1
-    80205284:	0007b423          	sd	zero,8(a5)
+    80205282:	07e9                	addi	a5,a5,26
+    80205284:	078e                	slli	a5,a5,0x3
+    80205286:	97a6                	add	a5,a5,s1
+    80205288:	0007b423          	sd	zero,8(a5)
     fileclose(rf);
-    80205288:	fd043503          	ld	a0,-48(s0)
-    8020528c:	fffff097          	auipc	ra,0xfffff
-    80205290:	dba080e7          	jalr	-582(ra) # 80204046 <fileclose>
+    8020528c:	fd043503          	ld	a0,-48(s0)
+    80205290:	fffff097          	auipc	ra,0xfffff
+    80205294:	dba080e7          	jalr	-582(ra) # 8020404a <fileclose>
     fileclose(wf);
-    80205294:	fc843503          	ld	a0,-56(s0)
-    80205298:	fffff097          	auipc	ra,0xfffff
-    8020529c:	dae080e7          	jalr	-594(ra) # 80204046 <fileclose>
+    80205298:	fc843503          	ld	a0,-56(s0)
+    8020529c:	fffff097          	auipc	ra,0xfffff
+    802052a0:	dae080e7          	jalr	-594(ra) # 8020404a <fileclose>
     return -1;
-    802052a0:	57fd                	li	a5,-1
+    802052a4:	57fd                	li	a5,-1
 }
-    802052a2:	853e                	mv	a0,a5
-    802052a4:	70e2                	ld	ra,56(sp)
-    802052a6:	7442                	ld	s0,48(sp)
-    802052a8:	74a2                	ld	s1,40(sp)
-    802052aa:	6121                	addi	sp,sp,64
-    802052ac:	8082                	ret
+    802052a6:	853e                	mv	a0,a5
+    802052a8:	70e2                	ld	ra,56(sp)
+    802052aa:	7442                	ld	s0,48(sp)
+    802052ac:	74a2                	ld	s1,40(sp)
+    802052ae:	6121                	addi	sp,sp,64
+    802052b0:	8082                	ret
 
-00000000802052ae <sys_dev>:
+00000000802052b2 <sys_dev>:
 
 // To open console device.
 uint64
 sys_dev(void)
 {
-    802052ae:	7179                	addi	sp,sp,-48
-    802052b0:	f406                	sd	ra,40(sp)
-    802052b2:	f022                	sd	s0,32(sp)
-    802052b4:	ec26                	sd	s1,24(sp)
-    802052b6:	1800                	addi	s0,sp,48
+    802052b2:	7179                	addi	sp,sp,-48
+    802052b4:	f406                	sd	ra,40(sp)
+    802052b6:	f022                	sd	s0,32(sp)
+    802052b8:	ec26                	sd	s1,24(sp)
+    802052ba:	1800                	addi	s0,sp,48
   int fd, omode;
   int major, minor;
   struct file *f;
 
   if(argint(0, &omode) < 0 || argint(1, &major) < 0 || argint(2, &minor) < 0){
-    802052b8:	fdc40593          	addi	a1,s0,-36
-    802052bc:	4501                	li	a0,0
-    802052be:	ffffe097          	auipc	ra,0xffffe
-    802052c2:	046080e7          	jalr	70(ra) # 80203304 <argint>
-    802052c6:	08054a63          	bltz	a0,8020535a <sys_dev+0xac>
-    802052ca:	fd840593          	addi	a1,s0,-40
-    802052ce:	4505                	li	a0,1
-    802052d0:	ffffe097          	auipc	ra,0xffffe
-    802052d4:	034080e7          	jalr	52(ra) # 80203304 <argint>
-    802052d8:	08054763          	bltz	a0,80205366 <sys_dev+0xb8>
-    802052dc:	fd440593          	addi	a1,s0,-44
-    802052e0:	4509                	li	a0,2
-    802052e2:	ffffe097          	auipc	ra,0xffffe
-    802052e6:	022080e7          	jalr	34(ra) # 80203304 <argint>
-    802052ea:	08054063          	bltz	a0,8020536a <sys_dev+0xbc>
+    802052bc:	fdc40593          	addi	a1,s0,-36
+    802052c0:	4501                	li	a0,0
+    802052c2:	ffffe097          	auipc	ra,0xffffe
+    802052c6:	046080e7          	jalr	70(ra) # 80203308 <argint>
+    802052ca:	08054a63          	bltz	a0,8020535e <sys_dev+0xac>
+    802052ce:	fd840593          	addi	a1,s0,-40
+    802052d2:	4505                	li	a0,1
+    802052d4:	ffffe097          	auipc	ra,0xffffe
+    802052d8:	034080e7          	jalr	52(ra) # 80203308 <argint>
+    802052dc:	08054763          	bltz	a0,8020536a <sys_dev+0xb8>
+    802052e0:	fd440593          	addi	a1,s0,-44
+    802052e4:	4509                	li	a0,2
+    802052e6:	ffffe097          	auipc	ra,0xffffe
+    802052ea:	022080e7          	jalr	34(ra) # 80203308 <argint>
+    802052ee:	08054063          	bltz	a0,8020536e <sys_dev+0xbc>
     return -1;
   }
 
   if(omode & O_CREATE){
-    802052ee:	fdc42783          	lw	a5,-36(s0)
-    802052f2:	2007f793          	andi	a5,a5,512
-    802052f6:	ebb1                	bnez	a5,8020534a <sys_dev+0x9c>
+    802052f2:	fdc42783          	lw	a5,-36(s0)
+    802052f6:	2007f793          	andi	a5,a5,512
+    802052fa:	ebb1                	bnez	a5,8020534e <sys_dev+0x9c>
     panic("dev file on FAT");
   }
 
   if(major < 0 || major >= NDEV)
-    802052f8:	fd842703          	lw	a4,-40(s0)
-    802052fc:	47a5                	li	a5,9
+    802052fc:	fd842703          	lw	a4,-40(s0)
+    80205300:	47a5                	li	a5,9
     return -1;
-    802052fe:	557d                	li	a0,-1
+    80205302:	557d                	li	a0,-1
   if(major < 0 || major >= NDEV)
-    80205300:	04e7ee63          	bltu	a5,a4,8020535c <sys_dev+0xae>
+    80205304:	04e7ee63          	bltu	a5,a4,80205360 <sys_dev+0xae>
 
   if((f = filealloc()) == NULL || (fd = fdalloc(f)) < 0){
-    80205304:	fffff097          	auipc	ra,0xfffff
-    80205308:	c86080e7          	jalr	-890(ra) # 80203f8a <filealloc>
-    8020530c:	84aa                	mv	s1,a0
-    8020530e:	c125                	beqz	a0,8020536e <sys_dev+0xc0>
-    80205310:	00000097          	auipc	ra,0x0
-    80205314:	90a080e7          	jalr	-1782(ra) # 80204c1a <fdalloc>
-    80205318:	04054d63          	bltz	a0,80205372 <sys_dev+0xc4>
+    80205308:	fffff097          	auipc	ra,0xfffff
+    8020530c:	c86080e7          	jalr	-890(ra) # 80203f8e <filealloc>
+    80205310:	84aa                	mv	s1,a0
+    80205312:	c125                	beqz	a0,80205372 <sys_dev+0xc0>
+    80205314:	00000097          	auipc	ra,0x0
+    80205318:	90a080e7          	jalr	-1782(ra) # 80204c1e <fdalloc>
+    8020531c:	04054d63          	bltz	a0,80205376 <sys_dev+0xc4>
     if(f)
       fileclose(f);
     return -1;
   }
 
   f->type = FD_DEVICE;
-    8020531c:	478d                	li	a5,3
-    8020531e:	c09c                	sw	a5,0(s1)
+    80205320:	478d                	li	a5,3
+    80205322:	c09c                	sw	a5,0(s1)
   f->off = 0;
-    80205320:	0204a023          	sw	zero,32(s1)
+    80205324:	0204a023          	sw	zero,32(s1)
   f->ep = 0;
-    80205324:	0004bc23          	sd	zero,24(s1)
+    80205328:	0004bc23          	sd	zero,24(s1)
   f->major = major;
-    80205328:	fd842783          	lw	a5,-40(s0)
-    8020532c:	02f49223          	sh	a5,36(s1)
+    8020532c:	fd842783          	lw	a5,-40(s0)
+    80205330:	02f49223          	sh	a5,36(s1)
   f->readable = !(omode & O_WRONLY);
-    80205330:	fdc42783          	lw	a5,-36(s0)
-    80205334:	0017c713          	xori	a4,a5,1
-    80205338:	8b05                	andi	a4,a4,1
-    8020533a:	00e48423          	sb	a4,8(s1)
+    80205334:	fdc42783          	lw	a5,-36(s0)
+    80205338:	0017c713          	xori	a4,a5,1
+    8020533c:	8b05                	andi	a4,a4,1
+    8020533e:	00e48423          	sb	a4,8(s1)
   f->writable = (omode & O_WRONLY) || (omode & O_RDWR);
-    8020533e:	8b8d                	andi	a5,a5,3
-    80205340:	00f037b3          	snez	a5,a5
-    80205344:	00f484a3          	sb	a5,9(s1)
+    80205342:	8b8d                	andi	a5,a5,3
+    80205344:	00f037b3          	snez	a5,a5
+    80205348:	00f484a3          	sb	a5,9(s1)
 
   return fd;
-    80205348:	a811                	j	8020535c <sys_dev+0xae>
+    8020534c:	a811                	j	80205360 <sys_dev+0xae>
     panic("dev file on FAT");
-    8020534a:	00006517          	auipc	a0,0x6
-    8020534e:	9be50513          	addi	a0,a0,-1602 # 8020ad08 <digits+0x988>
-    80205352:	ffffb097          	auipc	ra,0xffffb
-    80205356:	df2080e7          	jalr	-526(ra) # 80200144 <panic>
+    8020534e:	00006517          	auipc	a0,0x6
+    80205352:	9ba50513          	addi	a0,a0,-1606 # 8020ad08 <digits+0x988>
+    80205356:	ffffb097          	auipc	ra,0xffffb
+    8020535a:	dee080e7          	jalr	-530(ra) # 80200144 <panic>
     return -1;
-    8020535a:	557d                	li	a0,-1
+    8020535e:	557d                	li	a0,-1
 }
-    8020535c:	70a2                	ld	ra,40(sp)
-    8020535e:	7402                	ld	s0,32(sp)
-    80205360:	64e2                	ld	s1,24(sp)
-    80205362:	6145                	addi	sp,sp,48
-    80205364:	8082                	ret
+    80205360:	70a2                	ld	ra,40(sp)
+    80205362:	7402                	ld	s0,32(sp)
+    80205364:	64e2                	ld	s1,24(sp)
+    80205366:	6145                	addi	sp,sp,48
+    80205368:	8082                	ret
     return -1;
-    80205366:	557d                	li	a0,-1
-    80205368:	bfd5                	j	8020535c <sys_dev+0xae>
     8020536a:	557d                	li	a0,-1
-    8020536c:	bfc5                	j	8020535c <sys_dev+0xae>
-    return -1;
+    8020536c:	bfd5                	j	80205360 <sys_dev+0xae>
     8020536e:	557d                	li	a0,-1
-    80205370:	b7f5                	j	8020535c <sys_dev+0xae>
+    80205370:	bfc5                	j	80205360 <sys_dev+0xae>
+    return -1;
+    80205372:	557d                	li	a0,-1
+    80205374:	b7f5                	j	80205360 <sys_dev+0xae>
       fileclose(f);
-    80205372:	8526                	mv	a0,s1
-    80205374:	fffff097          	auipc	ra,0xfffff
-    80205378:	cd2080e7          	jalr	-814(ra) # 80204046 <fileclose>
+    80205376:	8526                	mv	a0,s1
+    80205378:	fffff097          	auipc	ra,0xfffff
+    8020537c:	cd2080e7          	jalr	-814(ra) # 8020404a <fileclose>
     return -1;
-    8020537c:	557d                	li	a0,-1
-    8020537e:	bff9                	j	8020535c <sys_dev+0xae>
+    80205380:	557d                	li	a0,-1
+    80205382:	bff9                	j	80205360 <sys_dev+0xae>
 
-0000000080205380 <sys_readdir>:
+0000000080205384 <sys_readdir>:
 
 // To support ls command
 uint64
 sys_readdir(void)
 {
-    80205380:	1101                	addi	sp,sp,-32
-    80205382:	ec06                	sd	ra,24(sp)
-    80205384:	e822                	sd	s0,16(sp)
-    80205386:	1000                	addi	s0,sp,32
+    80205384:	1101                	addi	sp,sp,-32
+    80205386:	ec06                	sd	ra,24(sp)
+    80205388:	e822                	sd	s0,16(sp)
+    8020538a:	1000                	addi	s0,sp,32
   struct file *f;
   uint64 p;
 
   if(argfd(0, 0, &f) < 0 || argaddr(1, &p) < 0)
-    80205388:	fe840613          	addi	a2,s0,-24
-    8020538c:	4581                	li	a1,0
-    8020538e:	4501                	li	a0,0
-    80205390:	00000097          	auipc	ra,0x0
-    80205394:	820080e7          	jalr	-2016(ra) # 80204bb0 <argfd>
+    8020538c:	fe840613          	addi	a2,s0,-24
+    80205390:	4581                	li	a1,0
+    80205392:	4501                	li	a0,0
+    80205394:	00000097          	auipc	ra,0x0
+    80205398:	820080e7          	jalr	-2016(ra) # 80204bb4 <argfd>
     return -1;
-    80205398:	57fd                	li	a5,-1
+    8020539c:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argaddr(1, &p) < 0)
-    8020539a:	02054563          	bltz	a0,802053c4 <sys_readdir+0x44>
-    8020539e:	fe040593          	addi	a1,s0,-32
-    802053a2:	4505                	li	a0,1
-    802053a4:	ffffe097          	auipc	ra,0xffffe
-    802053a8:	fc2080e7          	jalr	-62(ra) # 80203366 <argaddr>
+    8020539e:	02054563          	bltz	a0,802053c8 <sys_readdir+0x44>
+    802053a2:	fe040593          	addi	a1,s0,-32
+    802053a6:	4505                	li	a0,1
+    802053a8:	ffffe097          	auipc	ra,0xffffe
+    802053ac:	fc2080e7          	jalr	-62(ra) # 8020336a <argaddr>
     return -1;
-    802053ac:	57fd                	li	a5,-1
+    802053b0:	57fd                	li	a5,-1
   if(argfd(0, 0, &f) < 0 || argaddr(1, &p) < 0)
-    802053ae:	00054b63          	bltz	a0,802053c4 <sys_readdir+0x44>
+    802053b2:	00054b63          	bltz	a0,802053c8 <sys_readdir+0x44>
   return dirnext(f, p);
-    802053b2:	fe043583          	ld	a1,-32(s0)
-    802053b6:	fe843503          	ld	a0,-24(s0)
-    802053ba:	fffff097          	auipc	ra,0xfffff
-    802053be:	fc2080e7          	jalr	-62(ra) # 8020437c <dirnext>
-    802053c2:	87aa                	mv	a5,a0
+    802053b6:	fe043583          	ld	a1,-32(s0)
+    802053ba:	fe843503          	ld	a0,-24(s0)
+    802053be:	fffff097          	auipc	ra,0xfffff
+    802053c2:	fc2080e7          	jalr	-62(ra) # 80204380 <dirnext>
+    802053c6:	87aa                	mv	a5,a0
 }
-    802053c4:	853e                	mv	a0,a5
-    802053c6:	60e2                	ld	ra,24(sp)
-    802053c8:	6442                	ld	s0,16(sp)
-    802053ca:	6105                	addi	sp,sp,32
-    802053cc:	8082                	ret
+    802053c8:	853e                	mv	a0,a5
+    802053ca:	60e2                	ld	ra,24(sp)
+    802053cc:	6442                	ld	s0,16(sp)
+    802053ce:	6105                	addi	sp,sp,32
+    802053d0:	8082                	ret
 
-00000000802053ce <sys_getcwd>:
+00000000802053d2 <sys_getcwd>:
 
 // get absolute cwd string
 uint64
 sys_getcwd(void)
 {
-    802053ce:	714d                	addi	sp,sp,-336
-    802053d0:	e686                	sd	ra,328(sp)
-    802053d2:	e2a2                	sd	s0,320(sp)
-    802053d4:	fe26                	sd	s1,312(sp)
-    802053d6:	fa4a                	sd	s2,304(sp)
-    802053d8:	f64e                	sd	s3,296(sp)
-    802053da:	f252                	sd	s4,288(sp)
-    802053dc:	ee56                	sd	s5,280(sp)
-    802053de:	0a80                	addi	s0,sp,336
+    802053d2:	714d                	addi	sp,sp,-336
+    802053d4:	e686                	sd	ra,328(sp)
+    802053d6:	e2a2                	sd	s0,320(sp)
+    802053d8:	fe26                	sd	s1,312(sp)
+    802053da:	fa4a                	sd	s2,304(sp)
+    802053dc:	f64e                	sd	s3,296(sp)
+    802053de:	f252                	sd	s4,288(sp)
+    802053e0:	ee56                	sd	s5,280(sp)
+    802053e2:	0a80                	addi	s0,sp,336
   uint64 addr;
   int size;
 
   if (argaddr(0, &addr) < 0 || argint(1, &size) < 0)
-    802053e0:	fb840593          	addi	a1,s0,-72
-    802053e4:	4501                	li	a0,0
-    802053e6:	ffffe097          	auipc	ra,0xffffe
-    802053ea:	f80080e7          	jalr	-128(ra) # 80203366 <argaddr>
+    802053e4:	fb840593          	addi	a1,s0,-72
+    802053e8:	4501                	li	a0,0
+    802053ea:	ffffe097          	auipc	ra,0xffffe
+    802053ee:	f80080e7          	jalr	-128(ra) # 8020336a <argaddr>
     return NULL;
-    802053ee:	4781                	li	a5,0
+    802053f2:	4781                	li	a5,0
   if (argaddr(0, &addr) < 0 || argint(1, &size) < 0)
-    802053f0:	0a054b63          	bltz	a0,802054a6 <sys_getcwd+0xd8>
-    802053f4:	fb440593          	addi	a1,s0,-76
-    802053f8:	4505                	li	a0,1
-    802053fa:	ffffe097          	auipc	ra,0xffffe
-    802053fe:	f0a080e7          	jalr	-246(ra) # 80203304 <argint>
+    802053f4:	0a054b63          	bltz	a0,802054aa <sys_getcwd+0xd8>
+    802053f8:	fb440593          	addi	a1,s0,-76
+    802053fc:	4505                	li	a0,1
+    802053fe:	ffffe097          	auipc	ra,0xffffe
+    80205402:	f0a080e7          	jalr	-246(ra) # 80203308 <argint>
     return NULL;
-    80205402:	4781                	li	a5,0
+    80205406:	4781                	li	a5,0
   if (argaddr(0, &addr) < 0 || argint(1, &size) < 0)
-    80205404:	0a054163          	bltz	a0,802054a6 <sys_getcwd+0xd8>
+    80205408:	0a054163          	bltz	a0,802054aa <sys_getcwd+0xd8>
 
   struct dirent *de = myproc()->cwd;
-    80205408:	ffffc097          	auipc	ra,0xffffc
-    8020540c:	634080e7          	jalr	1588(ra) # 80201a3c <myproc>
-    80205410:	40053483          	ld	s1,1024(a0)
+    8020540c:	ffffc097          	auipc	ra,0xffffc
+    80205410:	630080e7          	jalr	1584(ra) # 80201a3c <myproc>
+    80205414:	40053483          	ld	s1,1024(a0)
   char path[FAT32_MAX_PATH];
   char *s;
   int len;
 
   if (de->parent == NULL) {
-    80205414:	1204b783          	ld	a5,288(s1)
-    80205418:	c3c9                	beqz	a5,8020549a <sys_getcwd+0xcc>
+    80205418:	1204b783          	ld	a5,288(s1)
+    8020541c:	c3c9                	beqz	a5,8020549e <sys_getcwd+0xcc>
     s = "/";
   } else {
     s = path + FAT32_MAX_PATH - 1;
     *s = '\0';
-    8020541a:	fa0409a3          	sb	zero,-77(s0)
+    8020541e:	fa0409a3          	sb	zero,-77(s0)
     s = path + FAT32_MAX_PATH - 1;
-    8020541e:	fb340993          	addi	s3,s0,-77
+    80205422:	fb340993          	addi	s3,s0,-77
     while (de->parent) {
       len = strlen(de->filename);
       s -= len;
       if (s <= path)          // can't reach root "/"
-    80205422:	eb040a13          	addi	s4,s0,-336
+    80205426:	eb040a13          	addi	s4,s0,-336
         return NULL;
       strncpy(s, de->filename, len);
       *--s = '/';
-    80205426:	02f00a93          	li	s5,47
+    8020542a:	02f00a93          	li	s5,47
       len = strlen(de->filename);
-    8020542a:	8526                	mv	a0,s1
-    8020542c:	ffffb097          	auipc	ra,0xffffb
-    80205430:	4ba080e7          	jalr	1210(ra) # 802008e6 <strlen>
-    80205434:	862a                	mv	a2,a0
+    8020542e:	8526                	mv	a0,s1
+    80205430:	ffffb097          	auipc	ra,0xffffb
+    80205434:	4b6080e7          	jalr	1206(ra) # 802008e6 <strlen>
+    80205438:	862a                	mv	a2,a0
       s -= len;
-    80205436:	40a98933          	sub	s2,s3,a0
+    8020543a:	40a98933          	sub	s2,s3,a0
       if (s <= path)          // can't reach root "/"
-    8020543a:	072a7563          	bgeu	s4,s2,802054a4 <sys_getcwd+0xd6>
+    8020543e:	072a7563          	bgeu	s4,s2,802054a8 <sys_getcwd+0xd6>
       strncpy(s, de->filename, len);
-    8020543e:	85a6                	mv	a1,s1
-    80205440:	854a                	mv	a0,s2
-    80205442:	ffffb097          	auipc	ra,0xffffb
-    80205446:	434080e7          	jalr	1076(ra) # 80200876 <strncpy>
+    80205442:	85a6                	mv	a1,s1
+    80205444:	854a                	mv	a0,s2
+    80205446:	ffffb097          	auipc	ra,0xffffb
+    8020544a:	430080e7          	jalr	1072(ra) # 80200876 <strncpy>
       *--s = '/';
-    8020544a:	fff90993          	addi	s3,s2,-1
-    8020544e:	ff590fa3          	sb	s5,-1(s2)
+    8020544e:	fff90993          	addi	s3,s2,-1
+    80205452:	ff590fa3          	sb	s5,-1(s2)
       de = de->parent;
-    80205452:	1204b483          	ld	s1,288(s1)
+    80205456:	1204b483          	ld	s1,288(s1)
     while (de->parent) {
-    80205456:	1204b783          	ld	a5,288(s1)
-    8020545a:	fbe1                	bnez	a5,8020542a <sys_getcwd+0x5c>
+    8020545a:	1204b783          	ld	a5,288(s1)
+    8020545e:	fbe1                	bnez	a5,8020542e <sys_getcwd+0x5c>
     }
   }
 
   int length;
   if ((strlen(s) + 1)<size){
-    8020545c:	854e                	mv	a0,s3
-    8020545e:	ffffb097          	auipc	ra,0xffffb
-    80205462:	488080e7          	jalr	1160(ra) # 802008e6 <strlen>
-    80205466:	2505                	addiw	a0,a0,1
-    80205468:	fb442703          	lw	a4,-76(s0)
+    80205460:	854e                	mv	a0,s3
+    80205462:	ffffb097          	auipc	ra,0xffffb
+    80205466:	484080e7          	jalr	1156(ra) # 802008e6 <strlen>
+    8020546a:	2505                	addiw	a0,a0,1
+    8020546c:	fb442703          	lw	a4,-76(s0)
     length = strlen(s) + 1;
   }
   else{
     return NULL;
-    8020546c:	4781                	li	a5,0
+    80205470:	4781                	li	a5,0
   if ((strlen(s) + 1)<size){
-    8020546e:	02e55c63          	bge	a0,a4,802054a6 <sys_getcwd+0xd8>
+    80205472:	02e55c63          	bge	a0,a4,802054aa <sys_getcwd+0xd8>
     length = strlen(s) + 1;
-    80205472:	854e                	mv	a0,s3
-    80205474:	ffffb097          	auipc	ra,0xffffb
-    80205478:	472080e7          	jalr	1138(ra) # 802008e6 <strlen>
+    80205476:	854e                	mv	a0,s3
+    80205478:	ffffb097          	auipc	ra,0xffffb
+    8020547c:	46e080e7          	jalr	1134(ra) # 802008e6 <strlen>
   }
 
   // if (copyout(myproc()->pagetable, addr, s, strlen(s) + 1) < 0)
   if (copyout2(addr, s, length) < 0)
-    8020547c:	0015061b          	addiw	a2,a0,1
-    80205480:	85ce                	mv	a1,s3
-    80205482:	fb843503          	ld	a0,-72(s0)
-    80205486:	ffffc097          	auipc	ra,0xffffc
-    8020548a:	eec080e7          	jalr	-276(ra) # 80201372 <copyout2>
+    80205480:	0015061b          	addiw	a2,a0,1
+    80205484:	85ce                	mv	a1,s3
+    80205486:	fb843503          	ld	a0,-72(s0)
+    8020548a:	ffffc097          	auipc	ra,0xffffc
+    8020548e:	ee8080e7          	jalr	-280(ra) # 80201372 <copyout2>
     return NULL;
-    8020548e:	4781                	li	a5,0
+    80205492:	4781                	li	a5,0
   if (copyout2(addr, s, length) < 0)
-    80205490:	00054b63          	bltz	a0,802054a6 <sys_getcwd+0xd8>
+    80205494:	00054b63          	bltz	a0,802054aa <sys_getcwd+0xd8>
   
   return addr;
-    80205494:	fb843783          	ld	a5,-72(s0)
-    80205498:	a039                	j	802054a6 <sys_getcwd+0xd8>
+    80205498:	fb843783          	ld	a5,-72(s0)
+    8020549c:	a039                	j	802054aa <sys_getcwd+0xd8>
     s = "/";
-    8020549a:	00005997          	auipc	s3,0x5
-    8020549e:	19698993          	addi	s3,s3,406 # 8020a630 <digits+0x2b0>
-    802054a2:	bf6d                	j	8020545c <sys_getcwd+0x8e>
+    8020549e:	00005997          	auipc	s3,0x5
+    802054a2:	19298993          	addi	s3,s3,402 # 8020a630 <digits+0x2b0>
+    802054a6:	bf6d                	j	80205460 <sys_getcwd+0x8e>
         return NULL;
-    802054a4:	4781                	li	a5,0
+    802054a8:	4781                	li	a5,0
 
 }
-    802054a6:	853e                	mv	a0,a5
-    802054a8:	60b6                	ld	ra,328(sp)
-    802054aa:	6416                	ld	s0,320(sp)
-    802054ac:	74f2                	ld	s1,312(sp)
-    802054ae:	7952                	ld	s2,304(sp)
-    802054b0:	79b2                	ld	s3,296(sp)
-    802054b2:	7a12                	ld	s4,288(sp)
-    802054b4:	6af2                	ld	s5,280(sp)
-    802054b6:	6171                	addi	sp,sp,336
-    802054b8:	8082                	ret
-
-00000000802054ba <sys_remove>:
+    802054aa:	853e                	mv	a0,a5
+    802054ac:	60b6                	ld	ra,328(sp)
+    802054ae:	6416                	ld	s0,320(sp)
+    802054b0:	74f2                	ld	s1,312(sp)
+    802054b2:	7952                	ld	s2,304(sp)
+    802054b4:	79b2                	ld	s3,296(sp)
+    802054b6:	7a12                	ld	s4,288(sp)
+    802054b8:	6af2                	ld	s5,280(sp)
+    802054ba:	6171                	addi	sp,sp,336
+    802054bc:	8082                	ret
+
+00000000802054be <sys_remove>:
   return ret == -1;
 }
 
 uint64
 sys_remove(void)
 {
-    802054ba:	d6010113          	addi	sp,sp,-672
-    802054be:	28113c23          	sd	ra,664(sp)
-    802054c2:	28813823          	sd	s0,656(sp)
-    802054c6:	28913423          	sd	s1,648(sp)
-    802054ca:	1500                	addi	s0,sp,672
+    802054be:	d6010113          	addi	sp,sp,-672
+    802054c2:	28113c23          	sd	ra,664(sp)
+    802054c6:	28813823          	sd	s0,656(sp)
+    802054ca:	28913423          	sd	s1,648(sp)
+    802054ce:	1500                	addi	s0,sp,672
   char path[FAT32_MAX_PATH];
   struct dirent *ep;
   int len;
   if((len = argstr(0, path, FAT32_MAX_PATH)) <= 0)
-    802054cc:	10400613          	li	a2,260
-    802054d0:	ed840593          	addi	a1,s0,-296
-    802054d4:	4501                	li	a0,0
-    802054d6:	ffffe097          	auipc	ra,0xffffe
-    802054da:	eb2080e7          	jalr	-334(ra) # 80203388 <argstr>
-    802054de:	0ea05a63          	blez	a0,802055d2 <sys_remove+0x118>
+    802054d0:	10400613          	li	a2,260
+    802054d4:	ed840593          	addi	a1,s0,-296
+    802054d8:	4501                	li	a0,0
+    802054da:	ffffe097          	auipc	ra,0xffffe
+    802054de:	eb2080e7          	jalr	-334(ra) # 8020338c <argstr>
+    802054e2:	0ea05a63          	blez	a0,802055d6 <sys_remove+0x118>
     return -1;
 
   char *s = path + len - 1;
-    802054e2:	157d                	addi	a0,a0,-1
-    802054e4:	ed840713          	addi	a4,s0,-296
-    802054e8:	00a707b3          	add	a5,a4,a0
+    802054e6:	157d                	addi	a0,a0,-1
+    802054e8:	ed840713          	addi	a4,s0,-296
+    802054ec:	00a707b3          	add	a5,a4,a0
   while (s >= path && *s == '/') {
-    802054ec:	02f00693          	li	a3,47
-    802054f0:	863a                	mv	a2,a4
-    802054f2:	00e7e963          	bltu	a5,a4,80205504 <sys_remove+0x4a>
-    802054f6:	0007c703          	lbu	a4,0(a5)
-    802054fa:	08d71a63          	bne	a4,a3,8020558e <sys_remove+0xd4>
+    802054f0:	02f00693          	li	a3,47
+    802054f4:	863a                	mv	a2,a4
+    802054f6:	00e7e963          	bltu	a5,a4,80205508 <sys_remove+0x4a>
+    802054fa:	0007c703          	lbu	a4,0(a5)
+    802054fe:	08d71a63          	bne	a4,a3,80205592 <sys_remove+0xd4>
     s--;
-    802054fe:	17fd                	addi	a5,a5,-1
+    80205502:	17fd                	addi	a5,a5,-1
   while (s >= path && *s == '/') {
-    80205500:	fec7fbe3          	bgeu	a5,a2,802054f6 <sys_remove+0x3c>
+    80205504:	fec7fbe3          	bgeu	a5,a2,802054fa <sys_remove+0x3c>
   }
   if (s >= path && *s == '.' && (s == path || *--s == '/')) {
     return -1;
   }
   
   if((ep = ename(path)) == NULL){
-    80205504:	ed840513          	addi	a0,s0,-296
-    80205508:	00002097          	auipc	ra,0x2
-    8020550c:	35e080e7          	jalr	862(ra) # 80207866 <ename>
-    80205510:	84aa                	mv	s1,a0
-    80205512:	c561                	beqz	a0,802055da <sys_remove+0x120>
+    80205508:	ed840513          	addi	a0,s0,-296
+    8020550c:	00002097          	auipc	ra,0x2
+    80205510:	31a080e7          	jalr	794(ra) # 80207826 <ename>
+    80205514:	84aa                	mv	s1,a0
+    80205516:	c561                	beqz	a0,802055de <sys_remove+0x120>
     return -1;
   }
   elock(ep);
-    80205514:	00002097          	auipc	ra,0x2
-    80205518:	baa080e7          	jalr	-1110(ra) # 802070be <elock>
+    80205518:	00002097          	auipc	ra,0x2
+    8020551c:	b66080e7          	jalr	-1178(ra) # 8020707e <elock>
   if((ep->attribute & ATTR_DIRECTORY) && !isdirempty(ep)){
-    8020551c:	1004c783          	lbu	a5,256(s1)
-    80205520:	8bc1                	andi	a5,a5,16
-    80205522:	c38d                	beqz	a5,80205544 <sys_remove+0x8a>
+    80205520:	1004c783          	lbu	a5,256(s1)
+    80205524:	8bc1                	andi	a5,a5,16
+    80205526:	c38d                	beqz	a5,80205548 <sys_remove+0x8a>
   ep.valid = 0;
-    80205524:	e8041323          	sh	zero,-378(s0)
+    80205528:	e8041323          	sh	zero,-378(s0)
   ret = enext(dp, &ep, 2 * 32, &count);   // skip the "." and ".."
-    80205528:	d6c40693          	addi	a3,s0,-660
-    8020552c:	04000613          	li	a2,64
-    80205530:	d7040593          	addi	a1,s0,-656
-    80205534:	8526                	mv	a0,s1
-    80205536:	00002097          	auipc	ra,0x2
-    8020553a:	d8c080e7          	jalr	-628(ra) # 802072c2 <enext>
+    8020552c:	d6c40693          	addi	a3,s0,-660
+    80205530:	04000613          	li	a2,64
+    80205534:	d7040593          	addi	a1,s0,-656
+    80205538:	8526                	mv	a0,s1
+    8020553a:	00002097          	auipc	ra,0x2
+    8020553e:	d48080e7          	jalr	-696(ra) # 80207282 <enext>
   if((ep->attribute & ATTR_DIRECTORY) && !isdirempty(ep)){
-    8020553e:	57fd                	li	a5,-1
-    80205540:	06f51d63          	bne	a0,a5,802055ba <sys_remove+0x100>
+    80205542:	57fd                	li	a5,-1
+    80205544:	06f51d63          	bne	a0,a5,802055be <sys_remove+0x100>
       eunlock(ep);
       eput(ep);
       return -1;
   }
   elock(ep->parent);      // Will this lead to deadlock?
-    80205544:	1204b503          	ld	a0,288(s1)
-    80205548:	00002097          	auipc	ra,0x2
-    8020554c:	b76080e7          	jalr	-1162(ra) # 802070be <elock>
+    80205548:	1204b503          	ld	a0,288(s1)
+    8020554c:	00002097          	auipc	ra,0x2
+    80205550:	b32080e7          	jalr	-1230(ra) # 8020707e <elock>
   eremove(ep);
-    80205550:	8526                	mv	a0,s1
-    80205552:	00002097          	auipc	ra,0x2
-    80205556:	a38080e7          	jalr	-1480(ra) # 80206f8a <eremove>
+    80205554:	8526                	mv	a0,s1
+    80205556:	00002097          	auipc	ra,0x2
+    8020555a:	9f4080e7          	jalr	-1548(ra) # 80206f4a <eremove>
   eunlock(ep->parent);
-    8020555a:	1204b503          	ld	a0,288(s1)
-    8020555e:	00002097          	auipc	ra,0x2
-    80205562:	b96080e7          	jalr	-1130(ra) # 802070f4 <eunlock>
+    8020555e:	1204b503          	ld	a0,288(s1)
+    80205562:	00002097          	auipc	ra,0x2
+    80205566:	b52080e7          	jalr	-1198(ra) # 802070b4 <eunlock>
   eunlock(ep);
-    80205566:	8526                	mv	a0,s1
-    80205568:	00002097          	auipc	ra,0x2
-    8020556c:	b8c080e7          	jalr	-1140(ra) # 802070f4 <eunlock>
+    8020556a:	8526                	mv	a0,s1
+    8020556c:	00002097          	auipc	ra,0x2
+    80205570:	b48080e7          	jalr	-1208(ra) # 802070b4 <eunlock>
   eput(ep);
-    80205570:	8526                	mv	a0,s1
-    80205572:	00002097          	auipc	ra,0x2
-    80205576:	bd0080e7          	jalr	-1072(ra) # 80207142 <eput>
+    80205574:	8526                	mv	a0,s1
+    80205576:	00002097          	auipc	ra,0x2
+    8020557a:	b8c080e7          	jalr	-1140(ra) # 80207102 <eput>
 
   return 0;
-    8020557a:	4501                	li	a0,0
+    8020557e:	4501                	li	a0,0
 }
-    8020557c:	29813083          	ld	ra,664(sp)
-    80205580:	29013403          	ld	s0,656(sp)
-    80205584:	28813483          	ld	s1,648(sp)
-    80205588:	2a010113          	addi	sp,sp,672
-    8020558c:	8082                	ret
+    80205580:	29813083          	ld	ra,664(sp)
+    80205584:	29013403          	ld	s0,656(sp)
+    80205588:	28813483          	ld	s1,648(sp)
+    8020558c:	2a010113          	addi	sp,sp,672
+    80205590:	8082                	ret
   if (s >= path && *s == '.' && (s == path || *--s == '/')) {
-    8020558e:	ed840713          	addi	a4,s0,-296
-    80205592:	f6e7e9e3          	bltu	a5,a4,80205504 <sys_remove+0x4a>
-    80205596:	0007c683          	lbu	a3,0(a5)
-    8020559a:	02e00713          	li	a4,46
-    8020559e:	f6e693e3          	bne	a3,a4,80205504 <sys_remove+0x4a>
-    802055a2:	ed840713          	addi	a4,s0,-296
-    802055a6:	02e78863          	beq	a5,a4,802055d6 <sys_remove+0x11c>
-    802055aa:	fff7c703          	lbu	a4,-1(a5)
-    802055ae:	02f00793          	li	a5,47
-    802055b2:	f4f719e3          	bne	a4,a5,80205504 <sys_remove+0x4a>
+    80205592:	ed840713          	addi	a4,s0,-296
+    80205596:	f6e7e9e3          	bltu	a5,a4,80205508 <sys_remove+0x4a>
+    8020559a:	0007c683          	lbu	a3,0(a5)
+    8020559e:	02e00713          	li	a4,46
+    802055a2:	f6e693e3          	bne	a3,a4,80205508 <sys_remove+0x4a>
+    802055a6:	ed840713          	addi	a4,s0,-296
+    802055aa:	02e78863          	beq	a5,a4,802055da <sys_remove+0x11c>
+    802055ae:	fff7c703          	lbu	a4,-1(a5)
+    802055b2:	02f00793          	li	a5,47
+    802055b6:	f4f719e3          	bne	a4,a5,80205508 <sys_remove+0x4a>
     return -1;
-    802055b6:	557d                	li	a0,-1
-    802055b8:	b7d1                	j	8020557c <sys_remove+0xc2>
+    802055ba:	557d                	li	a0,-1
+    802055bc:	b7d1                	j	80205580 <sys_remove+0xc2>
       eunlock(ep);
-    802055ba:	8526                	mv	a0,s1
-    802055bc:	00002097          	auipc	ra,0x2
-    802055c0:	b38080e7          	jalr	-1224(ra) # 802070f4 <eunlock>
+    802055be:	8526                	mv	a0,s1
+    802055c0:	00002097          	auipc	ra,0x2
+    802055c4:	af4080e7          	jalr	-1292(ra) # 802070b4 <eunlock>
       eput(ep);
-    802055c4:	8526                	mv	a0,s1
-    802055c6:	00002097          	auipc	ra,0x2
-    802055ca:	b7c080e7          	jalr	-1156(ra) # 80207142 <eput>
+    802055c8:	8526                	mv	a0,s1
+    802055ca:	00002097          	auipc	ra,0x2
+    802055ce:	b38080e7          	jalr	-1224(ra) # 80207102 <eput>
       return -1;
-    802055ce:	557d                	li	a0,-1
-    802055d0:	b775                	j	8020557c <sys_remove+0xc2>
-    return -1;
     802055d2:	557d                	li	a0,-1
-    802055d4:	b765                	j	8020557c <sys_remove+0xc2>
+    802055d4:	b775                	j	80205580 <sys_remove+0xc2>
     return -1;
     802055d6:	557d                	li	a0,-1
-    802055d8:	b755                	j	8020557c <sys_remove+0xc2>
+    802055d8:	b765                	j	80205580 <sys_remove+0xc2>
     return -1;
     802055da:	557d                	li	a0,-1
-    802055dc:	b745                	j	8020557c <sys_remove+0xc2>
+    802055dc:	b755                	j	80205580 <sys_remove+0xc2>
+    return -1;
+    802055de:	557d                	li	a0,-1
+    802055e0:	b745                	j	80205580 <sys_remove+0xc2>
 
-00000000802055de <sys_rename>:
+00000000802055e2 <sys_rename>:
 
 // Must hold too many locks at a time! It's possible to raise a deadlock.
 // Because this op takes some steps, we can't promise
 uint64
 sys_rename(void)
 {
-    802055de:	c4010113          	addi	sp,sp,-960
-    802055e2:	3a113c23          	sd	ra,952(sp)
-    802055e6:	3a813823          	sd	s0,944(sp)
-    802055ea:	3a913423          	sd	s1,936(sp)
-    802055ee:	3b213023          	sd	s2,928(sp)
-    802055f2:	39313c23          	sd	s3,920(sp)
-    802055f6:	39413823          	sd	s4,912(sp)
-    802055fa:	0780                	addi	s0,sp,960
+    802055e2:	c4010113          	addi	sp,sp,-960
+    802055e6:	3a113c23          	sd	ra,952(sp)
+    802055ea:	3a813823          	sd	s0,944(sp)
+    802055ee:	3a913423          	sd	s1,936(sp)
+    802055f2:	3b213023          	sd	s2,928(sp)
+    802055f6:	39313c23          	sd	s3,920(sp)
+    802055fa:	39413823          	sd	s4,912(sp)
+    802055fe:	0780                	addi	s0,sp,960
   char old[FAT32_MAX_PATH], new[FAT32_MAX_PATH];
   if (argstr(0, old, FAT32_MAX_PATH) < 0 || argstr(1, new, FAT32_MAX_PATH) < 0) {
-    802055fc:	10400613          	li	a2,260
-    80205600:	ec840593          	addi	a1,s0,-312
-    80205604:	4501                	li	a0,0
-    80205606:	ffffe097          	auipc	ra,0xffffe
-    8020560a:	d82080e7          	jalr	-638(ra) # 80203388 <argstr>
+    80205600:	10400613          	li	a2,260
+    80205604:	ec840593          	addi	a1,s0,-312
+    80205608:	4501                	li	a0,0
+    8020560a:	ffffe097          	auipc	ra,0xffffe
+    8020560e:	d82080e7          	jalr	-638(ra) # 8020338c <argstr>
       return -1;
-    8020560e:	57fd                	li	a5,-1
+    80205612:	57fd                	li	a5,-1
   if (argstr(0, old, FAT32_MAX_PATH) < 0 || argstr(1, new, FAT32_MAX_PATH) < 0) {
-    80205610:	0c054d63          	bltz	a0,802056ea <sys_rename+0x10c>
-    80205614:	10400613          	li	a2,260
-    80205618:	dc040593          	addi	a1,s0,-576
-    8020561c:	4505                	li	a0,1
-    8020561e:	ffffe097          	auipc	ra,0xffffe
-    80205622:	d6a080e7          	jalr	-662(ra) # 80203388 <argstr>
+    80205614:	0c054d63          	bltz	a0,802056ee <sys_rename+0x10c>
+    80205618:	10400613          	li	a2,260
+    8020561c:	dc040593          	addi	a1,s0,-576
+    80205620:	4505                	li	a0,1
+    80205622:	ffffe097          	auipc	ra,0xffffe
+    80205626:	d6a080e7          	jalr	-662(ra) # 8020338c <argstr>
       return -1;
-    80205626:	57fd                	li	a5,-1
+    8020562a:	57fd                	li	a5,-1
   if (argstr(0, old, FAT32_MAX_PATH) < 0 || argstr(1, new, FAT32_MAX_PATH) < 0) {
-    80205628:	0c054163          	bltz	a0,802056ea <sys_rename+0x10c>
+    8020562c:	0c054163          	bltz	a0,802056ee <sys_rename+0x10c>
   }
 
   struct dirent *src = NULL, *dst = NULL, *pdst = NULL;
   int srclock = 0;
   char *name;
   if ((src = ename(old)) == NULL || (pdst = enameparent(new, old)) == NULL
-    8020562c:	ec840513          	addi	a0,s0,-312
-    80205630:	00002097          	auipc	ra,0x2
-    80205634:	236080e7          	jalr	566(ra) # 80207866 <ename>
-    80205638:	84aa                	mv	s1,a0
-    8020563a:	1c050963          	beqz	a0,8020580c <sys_rename+0x22e>
-    8020563e:	ec840593          	addi	a1,s0,-312
-    80205642:	dc040513          	addi	a0,s0,-576
-    80205646:	00002097          	auipc	ra,0x2
-    8020564a:	23e080e7          	jalr	574(ra) # 80207884 <enameparent>
-    8020564e:	892a                	mv	s2,a0
-    80205650:	cd35                	beqz	a0,802056cc <sys_rename+0xee>
+    80205630:	ec840513          	addi	a0,s0,-312
+    80205634:	00002097          	auipc	ra,0x2
+    80205638:	1f2080e7          	jalr	498(ra) # 80207826 <ename>
+    8020563c:	84aa                	mv	s1,a0
+    8020563e:	1c050963          	beqz	a0,80205810 <sys_rename+0x22e>
+    80205642:	ec840593          	addi	a1,s0,-312
+    80205646:	dc040513          	addi	a0,s0,-576
+    8020564a:	00002097          	auipc	ra,0x2
+    8020564e:	1fa080e7          	jalr	506(ra) # 80207844 <enameparent>
+    80205652:	892a                	mv	s2,a0
+    80205654:	cd35                	beqz	a0,802056d0 <sys_rename+0xee>
       || (name = formatname(old)) == NULL) {
-    80205652:	ec840513          	addi	a0,s0,-312
-    80205656:	00001097          	auipc	ra,0x1
-    8020565a:	388080e7          	jalr	904(ra) # 802069de <formatname>
-    8020565e:	89aa                	mv	s3,a0
-    80205660:	c535                	beqz	a0,802056cc <sys_rename+0xee>
+    80205656:	ec840513          	addi	a0,s0,-312
+    8020565a:	00001097          	auipc	ra,0x1
+    8020565e:	344080e7          	jalr	836(ra) # 8020699e <formatname>
+    80205662:	89aa                	mv	s3,a0
+    80205664:	c535                	beqz	a0,802056d0 <sys_rename+0xee>
     goto fail;          // src doesn't exist || dst parent doesn't exist || illegal new name
   }
   for (struct dirent *ep = pdst; ep != NULL; ep = ep->parent) {
     if (ep == src) {    // In what universe can we move a directory into its child?
-    80205662:	07248563          	beq	s1,s2,802056cc <sys_rename+0xee>
+    80205666:	07248563          	beq	s1,s2,802056d0 <sys_rename+0xee>
   for (struct dirent *ep = pdst; ep != NULL; ep = ep->parent) {
-    80205666:	87ca                	mv	a5,s2
-    80205668:	1207b783          	ld	a5,288(a5)
-    8020566c:	c781                	beqz	a5,80205674 <sys_rename+0x96>
+    8020566a:	87ca                	mv	a5,s2
+    8020566c:	1207b783          	ld	a5,288(a5)
+    80205670:	c781                	beqz	a5,80205678 <sys_rename+0x96>
     if (ep == src) {    // In what universe can we move a directory into its child?
-    8020566e:	fef49de3          	bne	s1,a5,80205668 <sys_rename+0x8a>
-    80205672:	a8a9                	j	802056cc <sys_rename+0xee>
+    80205672:	fef49de3          	bne	s1,a5,8020566c <sys_rename+0x8a>
+    80205676:	a8a9                	j	802056d0 <sys_rename+0xee>
       goto fail;
     }
   }
 
   uint off;
   elock(src);     // must hold child's lock before acquiring parent's, because we do so in other similar cases
-    80205674:	8526                	mv	a0,s1
-    80205676:	00002097          	auipc	ra,0x2
-    8020567a:	a48080e7          	jalr	-1464(ra) # 802070be <elock>
+    80205678:	8526                	mv	a0,s1
+    8020567a:	00002097          	auipc	ra,0x2
+    8020567e:	a04080e7          	jalr	-1532(ra) # 8020707e <elock>
   srclock = 1;
   elock(pdst);
-    8020567e:	854a                	mv	a0,s2
-    80205680:	00002097          	auipc	ra,0x2
-    80205684:	a3e080e7          	jalr	-1474(ra) # 802070be <elock>
+    80205682:	854a                	mv	a0,s2
+    80205684:	00002097          	auipc	ra,0x2
+    80205688:	9fa080e7          	jalr	-1542(ra) # 8020707e <elock>
   dst = dirlookup(pdst, name, &off);
-    80205688:	dbc40613          	addi	a2,s0,-580
-    8020568c:	85ce                	mv	a1,s3
-    8020568e:	854a                	mv	a0,s2
-    80205690:	00002097          	auipc	ra,0x2
-    80205694:	dbc080e7          	jalr	-580(ra) # 8020744c <dirlookup>
-    80205698:	8a2a                	mv	s4,a0
+    8020568c:	dbc40613          	addi	a2,s0,-580
+    80205690:	85ce                	mv	a1,s3
+    80205692:	854a                	mv	a0,s2
+    80205694:	00002097          	auipc	ra,0x2
+    80205698:	d78080e7          	jalr	-648(ra) # 8020740c <dirlookup>
+    8020569c:	8a2a                	mv	s4,a0
   if (dst != NULL) {
-    8020569a:	cd45                	beqz	a0,80205752 <sys_rename+0x174>
+    8020569e:	cd45                	beqz	a0,80205756 <sys_rename+0x174>
     eunlock(pdst);
-    8020569c:	854a                	mv	a0,s2
-    8020569e:	00002097          	auipc	ra,0x2
-    802056a2:	a56080e7          	jalr	-1450(ra) # 802070f4 <eunlock>
+    802056a0:	854a                	mv	a0,s2
+    802056a2:	00002097          	auipc	ra,0x2
+    802056a6:	a12080e7          	jalr	-1518(ra) # 802070b4 <eunlock>
     if (src == dst) {
-    802056a6:	01448963          	beq	s1,s4,802056b8 <sys_rename+0xda>
+    802056aa:	01448963          	beq	s1,s4,802056bc <sys_rename+0xda>
       goto fail;
     } else if (src->attribute & dst->attribute & ATTR_DIRECTORY) {
-    802056aa:	1004c783          	lbu	a5,256(s1)
-    802056ae:	100a4703          	lbu	a4,256(s4)
-    802056b2:	8ff9                	and	a5,a5,a4
-    802056b4:	8bc1                	andi	a5,a5,16
-    802056b6:	ebb1                	bnez	a5,8020570a <sys_rename+0x12c>
+    802056ae:	1004c783          	lbu	a5,256(s1)
+    802056b2:	100a4703          	lbu	a4,256(s4)
+    802056b6:	8ff9                	and	a5,a5,a4
+    802056b8:	8bc1                	andi	a5,a5,16
+    802056ba:	ebb1                	bnez	a5,8020570e <sys_rename+0x12c>
 
   return 0;
 
 fail:
   if (srclock)
     eunlock(src);
-    802056b8:	8526                	mv	a0,s1
-    802056ba:	00002097          	auipc	ra,0x2
-    802056be:	a3a080e7          	jalr	-1478(ra) # 802070f4 <eunlock>
+    802056bc:	8526                	mv	a0,s1
+    802056be:	00002097          	auipc	ra,0x2
+    802056c2:	9f6080e7          	jalr	-1546(ra) # 802070b4 <eunlock>
   if (dst)
     eput(dst);
-    802056c2:	8552                	mv	a0,s4
-    802056c4:	00002097          	auipc	ra,0x2
-    802056c8:	a7e080e7          	jalr	-1410(ra) # 80207142 <eput>
+    802056c6:	8552                	mv	a0,s4
+    802056c8:	00002097          	auipc	ra,0x2
+    802056cc:	a3a080e7          	jalr	-1478(ra) # 80207102 <eput>
   if (pdst)
-    802056cc:	00090763          	beqz	s2,802056da <sys_rename+0xfc>
+    802056d0:	00090763          	beqz	s2,802056de <sys_rename+0xfc>
     eput(pdst);
-    802056d0:	854a                	mv	a0,s2
-    802056d2:	00002097          	auipc	ra,0x2
-    802056d6:	a70080e7          	jalr	-1424(ra) # 80207142 <eput>
+    802056d4:	854a                	mv	a0,s2
+    802056d6:	00002097          	auipc	ra,0x2
+    802056da:	a2c080e7          	jalr	-1492(ra) # 80207102 <eput>
   if (src)
     eput(src);
   return -1;
-    802056da:	57fd                	li	a5,-1
+    802056de:	57fd                	li	a5,-1
   if (src)
-    802056dc:	c499                	beqz	s1,802056ea <sys_rename+0x10c>
+    802056e0:	c499                	beqz	s1,802056ee <sys_rename+0x10c>
     eput(src);
-    802056de:	8526                	mv	a0,s1
-    802056e0:	00002097          	auipc	ra,0x2
-    802056e4:	a62080e7          	jalr	-1438(ra) # 80207142 <eput>
+    802056e2:	8526                	mv	a0,s1
+    802056e4:	00002097          	auipc	ra,0x2
+    802056e8:	a1e080e7          	jalr	-1506(ra) # 80207102 <eput>
   return -1;
-    802056e8:	57fd                	li	a5,-1
+    802056ec:	57fd                	li	a5,-1
 }
-    802056ea:	853e                	mv	a0,a5
-    802056ec:	3b813083          	ld	ra,952(sp)
-    802056f0:	3b013403          	ld	s0,944(sp)
-    802056f4:	3a813483          	ld	s1,936(sp)
-    802056f8:	3a013903          	ld	s2,928(sp)
-    802056fc:	39813983          	ld	s3,920(sp)
-    80205700:	39013a03          	ld	s4,912(sp)
-    80205704:	3c010113          	addi	sp,sp,960
-    80205708:	8082                	ret
+    802056ee:	853e                	mv	a0,a5
+    802056f0:	3b813083          	ld	ra,952(sp)
+    802056f4:	3b013403          	ld	s0,944(sp)
+    802056f8:	3a813483          	ld	s1,936(sp)
+    802056fc:	3a013903          	ld	s2,928(sp)
+    80205700:	39813983          	ld	s3,920(sp)
+    80205704:	39013a03          	ld	s4,912(sp)
+    80205708:	3c010113          	addi	sp,sp,960
+    8020570c:	8082                	ret
       elock(dst);
-    8020570a:	8552                	mv	a0,s4
-    8020570c:	00002097          	auipc	ra,0x2
-    80205710:	9b2080e7          	jalr	-1614(ra) # 802070be <elock>
+    8020570e:	8552                	mv	a0,s4
+    80205710:	00002097          	auipc	ra,0x2
+    80205714:	96e080e7          	jalr	-1682(ra) # 8020707e <elock>
   ep.valid = 0;
-    80205714:	d6041323          	sh	zero,-666(s0)
+    80205718:	d6041323          	sh	zero,-666(s0)
   ret = enext(dp, &ep, 2 * 32, &count);   // skip the "." and ".."
-    80205718:	c4c40693          	addi	a3,s0,-948
-    8020571c:	04000613          	li	a2,64
-    80205720:	c5040593          	addi	a1,s0,-944
-    80205724:	8552                	mv	a0,s4
-    80205726:	00002097          	auipc	ra,0x2
-    8020572a:	b9c080e7          	jalr	-1124(ra) # 802072c2 <enext>
+    8020571c:	c4c40693          	addi	a3,s0,-948
+    80205720:	04000613          	li	a2,64
+    80205724:	c5040593          	addi	a1,s0,-944
+    80205728:	8552                	mv	a0,s4
+    8020572a:	00002097          	auipc	ra,0x2
+    8020572e:	b58080e7          	jalr	-1192(ra) # 80207282 <enext>
       if (!isdirempty(dst)) {    // it's ok to overwrite an empty dir
-    8020572e:	57fd                	li	a5,-1
-    80205730:	0cf51863          	bne	a0,a5,80205800 <sys_rename+0x222>
+    80205732:	57fd                	li	a5,-1
+    80205734:	0cf51863          	bne	a0,a5,80205804 <sys_rename+0x222>
       elock(pdst);
-    80205734:	854a                	mv	a0,s2
-    80205736:	00002097          	auipc	ra,0x2
-    8020573a:	988080e7          	jalr	-1656(ra) # 802070be <elock>
+    80205738:	854a                	mv	a0,s2
+    8020573a:	00002097          	auipc	ra,0x2
+    8020573e:	944080e7          	jalr	-1724(ra) # 8020707e <elock>
     eremove(dst);
-    8020573e:	8552                	mv	a0,s4
-    80205740:	00002097          	auipc	ra,0x2
-    80205744:	84a080e7          	jalr	-1974(ra) # 80206f8a <eremove>
+    80205742:	8552                	mv	a0,s4
+    80205744:	00002097          	auipc	ra,0x2
+    80205748:	806080e7          	jalr	-2042(ra) # 80206f4a <eremove>
     eunlock(dst);
-    80205748:	8552                	mv	a0,s4
-    8020574a:	00002097          	auipc	ra,0x2
-    8020574e:	9aa080e7          	jalr	-1622(ra) # 802070f4 <eunlock>
+    8020574c:	8552                	mv	a0,s4
+    8020574e:	00002097          	auipc	ra,0x2
+    80205752:	966080e7          	jalr	-1690(ra) # 802070b4 <eunlock>
   memmove(src->filename, name, FAT32_MAX_FILENAME);
-    80205752:	0ff00613          	li	a2,255
-    80205756:	85ce                	mv	a1,s3
-    80205758:	8526                	mv	a0,s1
-    8020575a:	ffffb097          	auipc	ra,0xffffb
-    8020575e:	064080e7          	jalr	100(ra) # 802007be <memmove>
+    80205756:	0ff00613          	li	a2,255
+    8020575a:	85ce                	mv	a1,s3
+    8020575c:	8526                	mv	a0,s1
+    8020575e:	ffffb097          	auipc	ra,0xffffb
+    80205762:	060080e7          	jalr	96(ra) # 802007be <memmove>
   emake(pdst, src, off);
-    80205762:	dbc42603          	lw	a2,-580(s0)
-    80205766:	85a6                	mv	a1,s1
-    80205768:	854a                	mv	a0,s2
-    8020576a:	00001097          	auipc	ra,0x1
-    8020576e:	32c080e7          	jalr	812(ra) # 80206a96 <emake>
+    80205766:	dbc42603          	lw	a2,-580(s0)
+    8020576a:	85a6                	mv	a1,s1
+    8020576c:	854a                	mv	a0,s2
+    8020576e:	00001097          	auipc	ra,0x1
+    80205772:	2e8080e7          	jalr	744(ra) # 80206a56 <emake>
   if (src->parent != pdst) {
-    80205772:	1204b783          	ld	a5,288(s1)
-    80205776:	01278d63          	beq	a5,s2,80205790 <sys_rename+0x1b2>
+    80205776:	1204b783          	ld	a5,288(s1)
+    8020577a:	01278d63          	beq	a5,s2,80205794 <sys_rename+0x1b2>
     eunlock(pdst);
-    8020577a:	854a                	mv	a0,s2
-    8020577c:	00002097          	auipc	ra,0x2
-    80205780:	978080e7          	jalr	-1672(ra) # 802070f4 <eunlock>
+    8020577e:	854a                	mv	a0,s2
+    80205780:	00002097          	auipc	ra,0x2
+    80205784:	934080e7          	jalr	-1740(ra) # 802070b4 <eunlock>
     elock(src->parent);
-    80205784:	1204b503          	ld	a0,288(s1)
-    80205788:	00002097          	auipc	ra,0x2
-    8020578c:	936080e7          	jalr	-1738(ra) # 802070be <elock>
+    80205788:	1204b503          	ld	a0,288(s1)
+    8020578c:	00002097          	auipc	ra,0x2
+    80205790:	8f2080e7          	jalr	-1806(ra) # 8020707e <elock>
   eremove(src);
-    80205790:	8526                	mv	a0,s1
-    80205792:	00001097          	auipc	ra,0x1
-    80205796:	7f8080e7          	jalr	2040(ra) # 80206f8a <eremove>
+    80205794:	8526                	mv	a0,s1
+    80205796:	00001097          	auipc	ra,0x1
+    8020579a:	7b4080e7          	jalr	1972(ra) # 80206f4a <eremove>
   eunlock(src->parent);
-    8020579a:	1204b503          	ld	a0,288(s1)
-    8020579e:	00002097          	auipc	ra,0x2
-    802057a2:	956080e7          	jalr	-1706(ra) # 802070f4 <eunlock>
+    8020579e:	1204b503          	ld	a0,288(s1)
+    802057a2:	00002097          	auipc	ra,0x2
+    802057a6:	912080e7          	jalr	-1774(ra) # 802070b4 <eunlock>
   struct dirent *psrc = src->parent;  // src must not be root, or it won't pass the for-loop test
-    802057a6:	1204b983          	ld	s3,288(s1)
+    802057aa:	1204b983          	ld	s3,288(s1)
   src->parent = edup(pdst);
-    802057aa:	854a                	mv	a0,s2
-    802057ac:	00001097          	auipc	ra,0x1
-    802057b0:	6b4080e7          	jalr	1716(ra) # 80206e60 <edup>
-    802057b4:	12a4b023          	sd	a0,288(s1)
+    802057ae:	854a                	mv	a0,s2
+    802057b0:	00001097          	auipc	ra,0x1
+    802057b4:	670080e7          	jalr	1648(ra) # 80206e20 <edup>
+    802057b8:	12a4b023          	sd	a0,288(s1)
   src->off = off;
-    802057b8:	dbc42783          	lw	a5,-580(s0)
-    802057bc:	10f4ae23          	sw	a5,284(s1)
+    802057bc:	dbc42783          	lw	a5,-580(s0)
+    802057c0:	10f4ae23          	sw	a5,284(s1)
   src->valid = 1;
-    802057c0:	4785                	li	a5,1
-    802057c2:	10f49b23          	sh	a5,278(s1)
+    802057c4:	4785                	li	a5,1
+    802057c6:	10f49b23          	sh	a5,278(s1)
   eunlock(src);
-    802057c6:	8526                	mv	a0,s1
-    802057c8:	00002097          	auipc	ra,0x2
-    802057cc:	92c080e7          	jalr	-1748(ra) # 802070f4 <eunlock>
+    802057ca:	8526                	mv	a0,s1
+    802057cc:	00002097          	auipc	ra,0x2
+    802057d0:	8e8080e7          	jalr	-1816(ra) # 802070b4 <eunlock>
   eput(psrc);
-    802057d0:	854e                	mv	a0,s3
-    802057d2:	00002097          	auipc	ra,0x2
-    802057d6:	970080e7          	jalr	-1680(ra) # 80207142 <eput>
+    802057d4:	854e                	mv	a0,s3
+    802057d6:	00002097          	auipc	ra,0x2
+    802057da:	92c080e7          	jalr	-1748(ra) # 80207102 <eput>
   if (dst) {
-    802057da:	000a0763          	beqz	s4,802057e8 <sys_rename+0x20a>
+    802057de:	000a0763          	beqz	s4,802057ec <sys_rename+0x20a>
     eput(dst);
-    802057de:	8552                	mv	a0,s4
-    802057e0:	00002097          	auipc	ra,0x2
-    802057e4:	962080e7          	jalr	-1694(ra) # 80207142 <eput>
+    802057e2:	8552                	mv	a0,s4
+    802057e4:	00002097          	auipc	ra,0x2
+    802057e8:	91e080e7          	jalr	-1762(ra) # 80207102 <eput>
   eput(pdst);
-    802057e8:	854a                	mv	a0,s2
-    802057ea:	00002097          	auipc	ra,0x2
-    802057ee:	958080e7          	jalr	-1704(ra) # 80207142 <eput>
+    802057ec:	854a                	mv	a0,s2
+    802057ee:	00002097          	auipc	ra,0x2
+    802057f2:	914080e7          	jalr	-1772(ra) # 80207102 <eput>
   eput(src);
-    802057f2:	8526                	mv	a0,s1
-    802057f4:	00002097          	auipc	ra,0x2
-    802057f8:	94e080e7          	jalr	-1714(ra) # 80207142 <eput>
+    802057f6:	8526                	mv	a0,s1
+    802057f8:	00002097          	auipc	ra,0x2
+    802057fc:	90a080e7          	jalr	-1782(ra) # 80207102 <eput>
   return 0;
-    802057fc:	4781                	li	a5,0
-    802057fe:	b5f5                	j	802056ea <sys_rename+0x10c>
+    80205800:	4781                	li	a5,0
+    80205802:	b5f5                	j	802056ee <sys_rename+0x10c>
         eunlock(dst);
-    80205800:	8552                	mv	a0,s4
-    80205802:	00002097          	auipc	ra,0x2
-    80205806:	8f2080e7          	jalr	-1806(ra) # 802070f4 <eunlock>
+    80205804:	8552                	mv	a0,s4
+    80205806:	00002097          	auipc	ra,0x2
+    8020580a:	8ae080e7          	jalr	-1874(ra) # 802070b4 <eunlock>
         goto fail;
-    8020580a:	b57d                	j	802056b8 <sys_rename+0xda>
+    8020580e:	b57d                	j	802056bc <sys_rename+0xda>
   struct dirent *src = NULL, *dst = NULL, *pdst = NULL;
-    8020580c:	892a                	mv	s2,a0
+    80205810:	892a                	mv	s2,a0
   if (dst)
-    8020580e:	bd7d                	j	802056cc <sys_rename+0xee>
+    80205812:	bd7d                	j	802056d0 <sys_rename+0xee>
 
-0000000080205810 <sys_openat>:
+0000000080205814 <sys_openat>:
 
 
 
 uint64
 sys_openat(void)
 {
-    80205810:	db010113          	addi	sp,sp,-592
-    80205814:	24113423          	sd	ra,584(sp)
-    80205818:	24813023          	sd	s0,576(sp)
-    8020581c:	22913c23          	sd	s1,568(sp)
-    80205820:	23213823          	sd	s2,560(sp)
-    80205824:	23313423          	sd	s3,552(sp)
-    80205828:	0c80                	addi	s0,sp,592
+    80205814:	db010113          	addi	sp,sp,-592
+    80205818:	24113423          	sd	ra,584(sp)
+    8020581c:	24813023          	sd	s0,576(sp)
+    80205820:	22913c23          	sd	s1,568(sp)
+    80205824:	23213823          	sd	s2,560(sp)
+    80205828:	23313423          	sd	s3,552(sp)
+    8020582c:	0c80                	addi	s0,sp,592
   int fd, flags, mode;
   struct file *f;
   struct dirent *ep;
   int ret_fd;
 
   if(argint(0, &fd)<0 ||
-    8020582a:	dbc40593          	addi	a1,s0,-580
-    8020582e:	4501                	li	a0,0
-    80205830:	ffffe097          	auipc	ra,0xffffe
-    80205834:	ad4080e7          	jalr	-1324(ra) # 80203304 <argint>
+    8020582e:	dbc40593          	addi	a1,s0,-580
+    80205832:	4501                	li	a0,0
+    80205834:	ffffe097          	auipc	ra,0xffffe
+    80205838:	ad4080e7          	jalr	-1324(ra) # 80203308 <argint>
   argstr(1, path, FAT32_MAX_PATH) < 0 || 
   argint(2, &flags) < 0||
   argint(3, &mode) < 0)
     return -1;
-    80205838:	57fd                	li	a5,-1
+    8020583c:	57fd                	li	a5,-1
   if(argint(0, &fd)<0 ||
-    8020583a:	1a054863          	bltz	a0,802059ea <sys_openat+0x1da>
+    8020583e:	1a054863          	bltz	a0,802059ee <sys_openat+0x1da>
   argstr(1, path, FAT32_MAX_PATH) < 0 || 
-    8020583e:	10400613          	li	a2,260
-    80205842:	ec840593          	addi	a1,s0,-312
-    80205846:	4505                	li	a0,1
-    80205848:	ffffe097          	auipc	ra,0xffffe
-    8020584c:	b40080e7          	jalr	-1216(ra) # 80203388 <argstr>
+    80205842:	10400613          	li	a2,260
+    80205846:	ec840593          	addi	a1,s0,-312
+    8020584a:	4505                	li	a0,1
+    8020584c:	ffffe097          	auipc	ra,0xffffe
+    80205850:	b40080e7          	jalr	-1216(ra) # 8020338c <argstr>
     return -1;
-    80205850:	57fd                	li	a5,-1
+    80205854:	57fd                	li	a5,-1
   if(argint(0, &fd)<0 ||
-    80205852:	18054c63          	bltz	a0,802059ea <sys_openat+0x1da>
+    80205856:	18054c63          	bltz	a0,802059ee <sys_openat+0x1da>
   argint(2, &flags) < 0||
-    80205856:	db840593          	addi	a1,s0,-584
-    8020585a:	4509                	li	a0,2
-    8020585c:	ffffe097          	auipc	ra,0xffffe
-    80205860:	aa8080e7          	jalr	-1368(ra) # 80203304 <argint>
+    8020585a:	db840593          	addi	a1,s0,-584
+    8020585e:	4509                	li	a0,2
+    80205860:	ffffe097          	auipc	ra,0xffffe
+    80205864:	aa8080e7          	jalr	-1368(ra) # 80203308 <argint>
     return -1;
-    80205864:	57fd                	li	a5,-1
+    80205868:	57fd                	li	a5,-1
   argstr(1, path, FAT32_MAX_PATH) < 0 || 
-    80205866:	18054263          	bltz	a0,802059ea <sys_openat+0x1da>
+    8020586a:	18054263          	bltz	a0,802059ee <sys_openat+0x1da>
   argint(3, &mode) < 0)
-    8020586a:	db440593          	addi	a1,s0,-588
-    8020586e:	450d                	li	a0,3
-    80205870:	ffffe097          	auipc	ra,0xffffe
-    80205874:	a94080e7          	jalr	-1388(ra) # 80203304 <argint>
+    8020586e:	db440593          	addi	a1,s0,-588
+    80205872:	450d                	li	a0,3
+    80205874:	ffffe097          	auipc	ra,0xffffe
+    80205878:	a94080e7          	jalr	-1388(ra) # 80203308 <argint>
   argint(2, &flags) < 0||
-    80205878:	1e054563          	bltz	a0,80205a62 <sys_openat+0x252>
+    8020587c:	1e054563          	bltz	a0,80205a66 <sys_openat+0x252>
   // handle the case when the path isn't absolute
   if(*path != '/'){
-    8020587c:	ec844703          	lbu	a4,-312(s0)
-    80205880:	02f00793          	li	a5,47
-    80205884:	0cf70063          	beq	a4,a5,80205944 <sys_openat+0x134>
+    80205880:	ec844703          	lbu	a4,-312(s0)
+    80205884:	02f00793          	li	a5,47
+    80205888:	0cf70063          	beq	a4,a5,80205948 <sys_openat+0x134>
     // handle the case when fd is AT_FDCWD
     if(fd <0){
-    80205888:	dbc42783          	lw	a5,-580(s0)
-    8020588c:	0a07c563          	bltz	a5,80205936 <sys_openat+0x126>
+    8020588c:	dbc42783          	lw	a5,-580(s0)
+    80205890:	0a07c563          	bltz	a5,8020593a <sys_openat+0x126>
         dir = myproc()->cwd->filename;
     }
     // handle the case when fd is a file descriptor
     else{
       struct file *temp = myproc()->ofile[fd];
-    80205890:	ffffc097          	auipc	ra,0xffffc
-    80205894:	1ac080e7          	jalr	428(ra) # 80201a3c <myproc>
-    80205898:	dbc42783          	lw	a5,-580(s0)
-    8020589c:	07e9                	addi	a5,a5,26
-    8020589e:	078e                	slli	a5,a5,0x3
-    802058a0:	953e                	add	a0,a0,a5
-    802058a2:	6518                	ld	a4,8(a0)
+    80205894:	ffffc097          	auipc	ra,0xffffc
+    80205898:	1a8080e7          	jalr	424(ra) # 80201a3c <myproc>
+    8020589c:	dbc42783          	lw	a5,-580(s0)
+    802058a0:	07e9                	addi	a5,a5,26
+    802058a2:	078e                	slli	a5,a5,0x3
+    802058a4:	953e                	add	a0,a0,a5
+    802058a6:	6518                	ld	a4,8(a0)
       if(temp == NULL || temp->type != FD_ENTRY ||
-    802058a4:	1c070163          	beqz	a4,80205a66 <sys_openat+0x256>
-    802058a8:	4310                	lw	a2,0(a4)
-    802058aa:	4689                	li	a3,2
+    802058a8:	1c070163          	beqz	a4,80205a6a <sys_openat+0x256>
+    802058ac:	4310                	lw	a2,0(a4)
+    802058ae:	4689                	li	a3,2
         !(temp->ep->attribute & ATTR_DIRECTORY)){
           return -1;  
-    802058ac:	57fd                	li	a5,-1
+    802058b0:	57fd                	li	a5,-1
       if(temp == NULL || temp->type != FD_ENTRY ||
-    802058ae:	12d61e63          	bne	a2,a3,802059ea <sys_openat+0x1da>
+    802058b2:	12d61e63          	bne	a2,a3,802059ee <sys_openat+0x1da>
         !(temp->ep->attribute & ATTR_DIRECTORY)){
-    802058b2:	6f04                	ld	s1,24(a4)
+    802058b6:	6f04                	ld	s1,24(a4)
       if(temp == NULL || temp->type != FD_ENTRY ||
-    802058b4:	1004c703          	lbu	a4,256(s1)
-    802058b8:	8b41                	andi	a4,a4,16
-    802058ba:	12070863          	beqz	a4,802059ea <sys_openat+0x1da>
+    802058b8:	1004c703          	lbu	a4,256(s1)
+    802058bc:	8b41                	andi	a4,a4,16
+    802058be:	12070863          	beqz	a4,802059ee <sys_openat+0x1da>
     }
   }
 
   // get the absolute path
   if(dir != NULL){
     memmove(full_path, dir, strlen(dir));
-    802058be:	8526                	mv	a0,s1
-    802058c0:	ffffb097          	auipc	ra,0xffffb
-    802058c4:	026080e7          	jalr	38(ra) # 802008e6 <strlen>
-    802058c8:	0005061b          	sext.w	a2,a0
-    802058cc:	85a6                	mv	a1,s1
-    802058ce:	dc040513          	addi	a0,s0,-576
-    802058d2:	ffffb097          	auipc	ra,0xffffb
-    802058d6:	eec080e7          	jalr	-276(ra) # 802007be <memmove>
+    802058c2:	8526                	mv	a0,s1
+    802058c4:	ffffb097          	auipc	ra,0xffffb
+    802058c8:	022080e7          	jalr	34(ra) # 802008e6 <strlen>
+    802058cc:	0005061b          	sext.w	a2,a0
+    802058d0:	85a6                	mv	a1,s1
+    802058d2:	dc040513          	addi	a0,s0,-576
+    802058d6:	ffffb097          	auipc	ra,0xffffb
+    802058da:	ee8080e7          	jalr	-280(ra) # 802007be <memmove>
     full_path[strlen(dir)] = '/';
-    802058da:	8526                	mv	a0,s1
-    802058dc:	ffffb097          	auipc	ra,0xffffb
-    802058e0:	00a080e7          	jalr	10(ra) # 802008e6 <strlen>
-    802058e4:	fd050793          	addi	a5,a0,-48
-    802058e8:	00878533          	add	a0,a5,s0
-    802058ec:	02f00793          	li	a5,47
-    802058f0:	def50823          	sb	a5,-528(a0)
+    802058de:	8526                	mv	a0,s1
+    802058e0:	ffffb097          	auipc	ra,0xffffb
+    802058e4:	006080e7          	jalr	6(ra) # 802008e6 <strlen>
+    802058e8:	fd050793          	addi	a5,a0,-48
+    802058ec:	00878533          	add	a0,a5,s0
+    802058f0:	02f00793          	li	a5,47
+    802058f4:	def50823          	sb	a5,-528(a0)
     if(*path == '.'){
-    802058f4:	ec844703          	lbu	a4,-312(s0)
-    802058f8:	02e00793          	li	a5,46
-    802058fc:	10f70563          	beq	a4,a5,80205a06 <sys_openat+0x1f6>
+    802058f8:	ec844703          	lbu	a4,-312(s0)
+    802058fc:	02e00793          	li	a5,46
+    80205900:	10f70563          	beq	a4,a5,80205a0a <sys_openat+0x1f6>
       memmove(full_path + strlen(dir) + 1, path+2, strlen(path) - 1);
     }
     else memmove(full_path + strlen(dir) + 1, path, strlen(path) + 1);
-    80205900:	8526                	mv	a0,s1
-    80205902:	ffffb097          	auipc	ra,0xffffb
-    80205906:	fe4080e7          	jalr	-28(ra) # 802008e6 <strlen>
-    8020590a:	84aa                	mv	s1,a0
-    8020590c:	ec840913          	addi	s2,s0,-312
-    80205910:	854a                	mv	a0,s2
-    80205912:	ffffb097          	auipc	ra,0xffffb
-    80205916:	fd4080e7          	jalr	-44(ra) # 802008e6 <strlen>
-    8020591a:	fd048793          	addi	a5,s1,-48
-    8020591e:	008784b3          	add	s1,a5,s0
-    80205922:	0015061b          	addiw	a2,a0,1
-    80205926:	85ca                	mv	a1,s2
-    80205928:	df148513          	addi	a0,s1,-527
-    8020592c:	ffffb097          	auipc	ra,0xffffb
-    80205930:	e92080e7          	jalr	-366(ra) # 802007be <memmove>
-    80205934:	a805                	j	80205964 <sys_openat+0x154>
+    80205904:	8526                	mv	a0,s1
+    80205906:	ffffb097          	auipc	ra,0xffffb
+    8020590a:	fe0080e7          	jalr	-32(ra) # 802008e6 <strlen>
+    8020590e:	84aa                	mv	s1,a0
+    80205910:	ec840913          	addi	s2,s0,-312
+    80205914:	854a                	mv	a0,s2
+    80205916:	ffffb097          	auipc	ra,0xffffb
+    8020591a:	fd0080e7          	jalr	-48(ra) # 802008e6 <strlen>
+    8020591e:	fd048793          	addi	a5,s1,-48
+    80205922:	008784b3          	add	s1,a5,s0
+    80205926:	0015061b          	addiw	a2,a0,1
+    8020592a:	85ca                	mv	a1,s2
+    8020592c:	df148513          	addi	a0,s1,-527
+    80205930:	ffffb097          	auipc	ra,0xffffb
+    80205934:	e8e080e7          	jalr	-370(ra) # 802007be <memmove>
+    80205938:	a805                	j	80205968 <sys_openat+0x154>
         dir = myproc()->cwd->filename;
-    80205936:	ffffc097          	auipc	ra,0xffffc
-    8020593a:	106080e7          	jalr	262(ra) # 80201a3c <myproc>
-    8020593e:	40053483          	ld	s1,1024(a0)
+    8020593a:	ffffc097          	auipc	ra,0xffffc
+    8020593e:	102080e7          	jalr	258(ra) # 80201a3c <myproc>
+    80205942:	40053483          	ld	s1,1024(a0)
   if(dir != NULL){
-    80205942:	fcb5                	bnez	s1,802058be <sys_openat+0xae>
+    80205946:	fcb5                	bnez	s1,802058c2 <sys_openat+0xae>
     
   }
   else{
     memmove(full_path, path, strlen(path) + 1);
-    80205944:	ec840493          	addi	s1,s0,-312
-    80205948:	8526                	mv	a0,s1
-    8020594a:	ffffb097          	auipc	ra,0xffffb
-    8020594e:	f9c080e7          	jalr	-100(ra) # 802008e6 <strlen>
-    80205952:	0015061b          	addiw	a2,a0,1
-    80205956:	85a6                	mv	a1,s1
-    80205958:	dc040513          	addi	a0,s0,-576
-    8020595c:	ffffb097          	auipc	ra,0xffffb
-    80205960:	e62080e7          	jalr	-414(ra) # 802007be <memmove>
+    80205948:	ec840493          	addi	s1,s0,-312
+    8020594c:	8526                	mv	a0,s1
+    8020594e:	ffffb097          	auipc	ra,0xffffb
+    80205952:	f98080e7          	jalr	-104(ra) # 802008e6 <strlen>
+    80205956:	0015061b          	addiw	a2,a0,1
+    8020595a:	85a6                	mv	a1,s1
+    8020595c:	dc040513          	addi	a0,s0,-576
+    80205960:	ffffb097          	auipc	ra,0xffffb
+    80205964:	e5e080e7          	jalr	-418(ra) # 802007be <memmove>
   }
   
   if(flags & 0x40){
-    80205964:	db842603          	lw	a2,-584(s0)
-    80205968:	04067793          	andi	a5,a2,64
-    8020596c:	cbe1                	beqz	a5,80205a3c <sys_openat+0x22c>
+    80205968:	db842603          	lw	a2,-584(s0)
+    8020596c:	04067793          	andi	a5,a2,64
+    80205970:	cbe1                	beqz	a5,80205a40 <sys_openat+0x22c>
     ep = create(full_path, T_FILE, flags);
-    8020596e:	4589                	li	a1,2
-    80205970:	dc040513          	addi	a0,s0,-576
-    80205974:	fffff097          	auipc	ra,0xfffff
-    80205978:	2ea080e7          	jalr	746(ra) # 80204c5e <create>
-    8020597c:	89aa                	mv	s3,a0
+    80205972:	4589                	li	a1,2
+    80205974:	dc040513          	addi	a0,s0,-576
+    80205978:	fffff097          	auipc	ra,0xfffff
+    8020597c:	2ea080e7          	jalr	746(ra) # 80204c62 <create>
+    80205980:	89aa                	mv	s3,a0
     if(ep == NULL){
-    8020597e:	c575                	beqz	a0,80205a6a <sys_openat+0x25a>
+    80205982:	c575                	beqz	a0,80205a6e <sys_openat+0x25a>
       return -1;
     }
       */
   }
 
   if((f = filealloc()) == NULL || (ret_fd = fdalloc(f)) < 0){
-    80205980:	ffffe097          	auipc	ra,0xffffe
-    80205984:	60a080e7          	jalr	1546(ra) # 80203f8a <filealloc>
-    80205988:	892a                	mv	s2,a0
-    8020598a:	c96d                	beqz	a0,80205a7c <sys_openat+0x26c>
-    8020598c:	fffff097          	auipc	ra,0xfffff
-    80205990:	28e080e7          	jalr	654(ra) # 80204c1a <fdalloc>
-    80205994:	84aa                	mv	s1,a0
-    80205996:	0c054e63          	bltz	a0,80205a72 <sys_openat+0x262>
+    80205984:	ffffe097          	auipc	ra,0xffffe
+    80205988:	60a080e7          	jalr	1546(ra) # 80203f8e <filealloc>
+    8020598c:	892a                	mv	s2,a0
+    8020598e:	c96d                	beqz	a0,80205a80 <sys_openat+0x26c>
+    80205990:	fffff097          	auipc	ra,0xfffff
+    80205994:	28e080e7          	jalr	654(ra) # 80204c1e <fdalloc>
+    80205998:	84aa                	mv	s1,a0
+    8020599a:	0c054e63          	bltz	a0,80205a76 <sys_openat+0x262>
     eunlock(ep);
     eput(ep);
     return -1;
   }
 
   if(!(ep->attribute & ATTR_DIRECTORY) && (flags & O_TRUNC)){
-    8020599a:	1009c783          	lbu	a5,256(s3)
-    8020599e:	8bc1                	andi	a5,a5,16
-    802059a0:	e791                	bnez	a5,802059ac <sys_openat+0x19c>
-    802059a2:	db842783          	lw	a5,-584(s0)
-    802059a6:	4007f793          	andi	a5,a5,1024
-    802059aa:	e7d5                	bnez	a5,80205a56 <sys_openat+0x246>
+    8020599e:	1009c783          	lbu	a5,256(s3)
+    802059a2:	8bc1                	andi	a5,a5,16
+    802059a4:	e791                	bnez	a5,802059b0 <sys_openat+0x19c>
+    802059a6:	db842783          	lw	a5,-584(s0)
+    802059aa:	4007f793          	andi	a5,a5,1024
+    802059ae:	e7d5                	bnez	a5,80205a5a <sys_openat+0x246>
     etrunc(ep);
   }
 
   f->type = FD_ENTRY;
-    802059ac:	4789                	li	a5,2
-    802059ae:	00f92023          	sw	a5,0(s2)
+    802059b0:	4789                	li	a5,2
+    802059b2:	00f92023          	sw	a5,0(s2)
   f->off = (flags & O_APPEND) ? ep->file_size : 0;
-    802059b2:	db842783          	lw	a5,-584(s0)
-    802059b6:	0047f693          	andi	a3,a5,4
-    802059ba:	4701                	li	a4,0
-    802059bc:	c299                	beqz	a3,802059c2 <sys_openat+0x1b2>
-    802059be:	1089a703          	lw	a4,264(s3)
-    802059c2:	02e92023          	sw	a4,32(s2)
+    802059b6:	db842783          	lw	a5,-584(s0)
+    802059ba:	0047f693          	andi	a3,a5,4
+    802059be:	4701                	li	a4,0
+    802059c0:	c299                	beqz	a3,802059c6 <sys_openat+0x1b2>
+    802059c2:	1089a703          	lw	a4,264(s3)
+    802059c6:	02e92023          	sw	a4,32(s2)
   f->ep = ep;
-    802059c6:	01393c23          	sd	s3,24(s2)
+    802059ca:	01393c23          	sd	s3,24(s2)
   f->readable = !(flags & O_WRONLY);
-    802059ca:	0017c713          	xori	a4,a5,1
-    802059ce:	8b05                	andi	a4,a4,1
-    802059d0:	00e90423          	sb	a4,8(s2)
+    802059ce:	0017c713          	xori	a4,a5,1
+    802059d2:	8b05                	andi	a4,a4,1
+    802059d4:	00e90423          	sb	a4,8(s2)
   f->writable = (flags & O_WRONLY) || (flags & O_RDWR);
-    802059d4:	8b8d                	andi	a5,a5,3
-    802059d6:	00f037b3          	snez	a5,a5
-    802059da:	00f904a3          	sb	a5,9(s2)
+    802059d8:	8b8d                	andi	a5,a5,3
+    802059da:	00f037b3          	snez	a5,a5
+    802059de:	00f904a3          	sb	a5,9(s2)
 
   eunlock(ep);
-    802059de:	854e                	mv	a0,s3
-    802059e0:	00001097          	auipc	ra,0x1
-    802059e4:	714080e7          	jalr	1812(ra) # 802070f4 <eunlock>
+    802059e2:	854e                	mv	a0,s3
+    802059e4:	00001097          	auipc	ra,0x1
+    802059e8:	6d0080e7          	jalr	1744(ra) # 802070b4 <eunlock>
   
   return ret_fd;
-    802059e8:	87a6                	mv	a5,s1
+    802059ec:	87a6                	mv	a5,s1
 }
-    802059ea:	853e                	mv	a0,a5
-    802059ec:	24813083          	ld	ra,584(sp)
-    802059f0:	24013403          	ld	s0,576(sp)
-    802059f4:	23813483          	ld	s1,568(sp)
-    802059f8:	23013903          	ld	s2,560(sp)
-    802059fc:	22813983          	ld	s3,552(sp)
-    80205a00:	25010113          	addi	sp,sp,592
-    80205a04:	8082                	ret
+    802059ee:	853e                	mv	a0,a5
+    802059f0:	24813083          	ld	ra,584(sp)
+    802059f4:	24013403          	ld	s0,576(sp)
+    802059f8:	23813483          	ld	s1,568(sp)
+    802059fc:	23013903          	ld	s2,560(sp)
+    80205a00:	22813983          	ld	s3,552(sp)
+    80205a04:	25010113          	addi	sp,sp,592
+    80205a08:	8082                	ret
       memmove(full_path + strlen(dir) + 1, path+2, strlen(path) - 1);
-    80205a06:	8526                	mv	a0,s1
-    80205a08:	ffffb097          	auipc	ra,0xffffb
-    80205a0c:	ede080e7          	jalr	-290(ra) # 802008e6 <strlen>
-    80205a10:	84aa                	mv	s1,a0
-    80205a12:	ec840513          	addi	a0,s0,-312
-    80205a16:	ffffb097          	auipc	ra,0xffffb
-    80205a1a:	ed0080e7          	jalr	-304(ra) # 802008e6 <strlen>
-    80205a1e:	fd048793          	addi	a5,s1,-48
-    80205a22:	008784b3          	add	s1,a5,s0
-    80205a26:	fff5061b          	addiw	a2,a0,-1
-    80205a2a:	eca40593          	addi	a1,s0,-310
-    80205a2e:	df148513          	addi	a0,s1,-527
-    80205a32:	ffffb097          	auipc	ra,0xffffb
-    80205a36:	d8c080e7          	jalr	-628(ra) # 802007be <memmove>
-    80205a3a:	b72d                	j	80205964 <sys_openat+0x154>
+    80205a0a:	8526                	mv	a0,s1
+    80205a0c:	ffffb097          	auipc	ra,0xffffb
+    80205a10:	eda080e7          	jalr	-294(ra) # 802008e6 <strlen>
+    80205a14:	84aa                	mv	s1,a0
+    80205a16:	ec840513          	addi	a0,s0,-312
+    80205a1a:	ffffb097          	auipc	ra,0xffffb
+    80205a1e:	ecc080e7          	jalr	-308(ra) # 802008e6 <strlen>
+    80205a22:	fd048793          	addi	a5,s1,-48
+    80205a26:	008784b3          	add	s1,a5,s0
+    80205a2a:	fff5061b          	addiw	a2,a0,-1
+    80205a2e:	eca40593          	addi	a1,s0,-310
+    80205a32:	df148513          	addi	a0,s1,-527
+    80205a36:	ffffb097          	auipc	ra,0xffffb
+    80205a3a:	d88080e7          	jalr	-632(ra) # 802007be <memmove>
+    80205a3e:	b72d                	j	80205968 <sys_openat+0x154>
     if((ep = ename(full_path)) == NULL){
-    80205a3c:	dc040513          	addi	a0,s0,-576
-    80205a40:	00002097          	auipc	ra,0x2
-    80205a44:	e26080e7          	jalr	-474(ra) # 80207866 <ename>
-    80205a48:	89aa                	mv	s3,a0
-    80205a4a:	c115                	beqz	a0,80205a6e <sys_openat+0x25e>
+    80205a40:	dc040513          	addi	a0,s0,-576
+    80205a44:	00002097          	auipc	ra,0x2
+    80205a48:	de2080e7          	jalr	-542(ra) # 80207826 <ename>
+    80205a4c:	89aa                	mv	s3,a0
+    80205a4e:	c115                	beqz	a0,80205a72 <sys_openat+0x25e>
     elock(ep);
-    80205a4c:	00001097          	auipc	ra,0x1
-    80205a50:	672080e7          	jalr	1650(ra) # 802070be <elock>
-    80205a54:	b735                	j	80205980 <sys_openat+0x170>
+    80205a50:	00001097          	auipc	ra,0x1
+    80205a54:	62e080e7          	jalr	1582(ra) # 8020707e <elock>
+    80205a58:	b735                	j	80205984 <sys_openat+0x170>
     etrunc(ep);
-    80205a56:	854e                	mv	a0,s3
-    80205a58:	00001097          	auipc	ra,0x1
-    80205a5c:	5fc080e7          	jalr	1532(ra) # 80207054 <etrunc>
-    80205a60:	b7b1                	j	802059ac <sys_openat+0x19c>
+    80205a5a:	854e                	mv	a0,s3
+    80205a5c:	00001097          	auipc	ra,0x1
+    80205a60:	5b8080e7          	jalr	1464(ra) # 80207014 <etrunc>
+    80205a64:	b7b1                	j	802059b0 <sys_openat+0x19c>
     return -1;
-    80205a62:	57fd                	li	a5,-1
-    80205a64:	b759                	j	802059ea <sys_openat+0x1da>
-          return -1;  
     80205a66:	57fd                	li	a5,-1
-    80205a68:	b749                	j	802059ea <sys_openat+0x1da>
-      return -1;
+    80205a68:	b759                	j	802059ee <sys_openat+0x1da>
+          return -1;  
     80205a6a:	57fd                	li	a5,-1
-    80205a6c:	bfbd                	j	802059ea <sys_openat+0x1da>
+    80205a6c:	b749                	j	802059ee <sys_openat+0x1da>
       return -1;
     80205a6e:	57fd                	li	a5,-1
-    80205a70:	bfad                	j	802059ea <sys_openat+0x1da>
+    80205a70:	bfbd                	j	802059ee <sys_openat+0x1da>
+      return -1;
+    80205a72:	57fd                	li	a5,-1
+    80205a74:	bfad                	j	802059ee <sys_openat+0x1da>
       fileclose(f);
-    80205a72:	854a                	mv	a0,s2
-    80205a74:	ffffe097          	auipc	ra,0xffffe
-    80205a78:	5d2080e7          	jalr	1490(ra) # 80204046 <fileclose>
+    80205a76:	854a                	mv	a0,s2
+    80205a78:	ffffe097          	auipc	ra,0xffffe
+    80205a7c:	5d2080e7          	jalr	1490(ra) # 8020404a <fileclose>
     eunlock(ep);
-    80205a7c:	854e                	mv	a0,s3
-    80205a7e:	00001097          	auipc	ra,0x1
-    80205a82:	676080e7          	jalr	1654(ra) # 802070f4 <eunlock>
+    80205a80:	854e                	mv	a0,s3
+    80205a82:	00001097          	auipc	ra,0x1
+    80205a86:	632080e7          	jalr	1586(ra) # 802070b4 <eunlock>
     eput(ep);
-    80205a86:	854e                	mv	a0,s3
-    80205a88:	00001097          	auipc	ra,0x1
-    80205a8c:	6ba080e7          	jalr	1722(ra) # 80207142 <eput>
+    80205a8a:	854e                	mv	a0,s3
+    80205a8c:	00001097          	auipc	ra,0x1
+    80205a90:	676080e7          	jalr	1654(ra) # 80207102 <eput>
     return -1;
-    80205a90:	57fd                	li	a5,-1
-    80205a92:	bfa1                	j	802059ea <sys_openat+0x1da>
+    80205a94:	57fd                	li	a5,-1
+    80205a96:	bfa1                	j	802059ee <sys_openat+0x1da>
 
-0000000080205a94 <sys_mmap>:
+0000000080205a98 <sys_mmap>:
 
 uint64
 sys_mmap(void)
 {
-    80205a94:	711d                	addi	sp,sp,-96
-    80205a96:	ec86                	sd	ra,88(sp)
-    80205a98:	e8a2                	sd	s0,80(sp)
-    80205a9a:	e4a6                	sd	s1,72(sp)
-    80205a9c:	e0ca                	sd	s2,64(sp)
-    80205a9e:	fc4e                	sd	s3,56(sp)
-    80205aa0:	f852                	sd	s4,48(sp)
-    80205aa2:	1080                	addi	s0,sp,96
+    80205a98:	711d                	addi	sp,sp,-96
+    80205a9a:	ec86                	sd	ra,88(sp)
+    80205a9c:	e8a2                	sd	s0,80(sp)
+    80205a9e:	e4a6                	sd	s1,72(sp)
+    80205aa0:	e0ca                	sd	s2,64(sp)
+    80205aa2:	fc4e                	sd	s3,56(sp)
+    80205aa4:	f852                	sd	s4,48(sp)
+    80205aa6:	1080                	addi	s0,sp,96
   uint64 start, len;
 	int prot, flags, fd;
 	long off;
 	struct file *f = NULL;
-    80205aa4:	fa043023          	sd	zero,-96(s0)
+    80205aa8:	fa043023          	sd	zero,-96(s0)
   struct proc* p = myproc();
-    80205aa8:	ffffc097          	auipc	ra,0xffffc
-    80205aac:	f94080e7          	jalr	-108(ra) # 80201a3c <myproc>
-    80205ab0:	892a                	mv	s2,a0
+    80205aac:	ffffc097          	auipc	ra,0xffffc
+    80205ab0:	f90080e7          	jalr	-112(ra) # 80201a3c <myproc>
+    80205ab4:	892a                	mv	s2,a0
 	if(argaddr(0, &start)<0||argaddr(1, &len)<0||argint(2, &prot)<0||argint(3, &flags)<0||argfd(4, &fd, &f)||argaddr(5, (uint64*)&off)<0)
-    80205ab2:	fc840593          	addi	a1,s0,-56
-    80205ab6:	4501                	li	a0,0
-    80205ab8:	ffffe097          	auipc	ra,0xffffe
-    80205abc:	8ae080e7          	jalr	-1874(ra) # 80203366 <argaddr>
+    80205ab6:	fc840593          	addi	a1,s0,-56
+    80205aba:	4501                	li	a0,0
+    80205abc:	ffffe097          	auipc	ra,0xffffe
+    80205ac0:	8ae080e7          	jalr	-1874(ra) # 8020336a <argaddr>
     return -1;
-    80205ac0:	57fd                	li	a5,-1
+    80205ac4:	57fd                	li	a5,-1
 	if(argaddr(0, &start)<0||argaddr(1, &len)<0||argint(2, &prot)<0||argint(3, &flags)<0||argfd(4, &fd, &f)||argaddr(5, (uint64*)&off)<0)
-    80205ac2:	0c054263          	bltz	a0,80205b86 <sys_mmap+0xf2>
-    80205ac6:	fc040593          	addi	a1,s0,-64
-    80205aca:	4505                	li	a0,1
-    80205acc:	ffffe097          	auipc	ra,0xffffe
-    80205ad0:	89a080e7          	jalr	-1894(ra) # 80203366 <argaddr>
+    80205ac6:	0c054363          	bltz	a0,80205b8c <sys_mmap+0xf4>
+    80205aca:	fc040593          	addi	a1,s0,-64
+    80205ace:	4505                	li	a0,1
+    80205ad0:	ffffe097          	auipc	ra,0xffffe
+    80205ad4:	89a080e7          	jalr	-1894(ra) # 8020336a <argaddr>
     return -1;
-    80205ad4:	57fd                	li	a5,-1
+    80205ad8:	57fd                	li	a5,-1
 	if(argaddr(0, &start)<0||argaddr(1, &len)<0||argint(2, &prot)<0||argint(3, &flags)<0||argfd(4, &fd, &f)||argaddr(5, (uint64*)&off)<0)
-    80205ad6:	0a054863          	bltz	a0,80205b86 <sys_mmap+0xf2>
-    80205ada:	fbc40593          	addi	a1,s0,-68
-    80205ade:	4509                	li	a0,2
-    80205ae0:	ffffe097          	auipc	ra,0xffffe
-    80205ae4:	824080e7          	jalr	-2012(ra) # 80203304 <argint>
+    80205ada:	0a054963          	bltz	a0,80205b8c <sys_mmap+0xf4>
+    80205ade:	fbc40593          	addi	a1,s0,-68
+    80205ae2:	4509                	li	a0,2
+    80205ae4:	ffffe097          	auipc	ra,0xffffe
+    80205ae8:	824080e7          	jalr	-2012(ra) # 80203308 <argint>
     return -1;
-    80205ae8:	57fd                	li	a5,-1
+    80205aec:	57fd                	li	a5,-1
 	if(argaddr(0, &start)<0||argaddr(1, &len)<0||argint(2, &prot)<0||argint(3, &flags)<0||argfd(4, &fd, &f)||argaddr(5, (uint64*)&off)<0)
-    80205aea:	08054e63          	bltz	a0,80205b86 <sys_mmap+0xf2>
-    80205aee:	fb840593          	addi	a1,s0,-72
-    80205af2:	450d                	li	a0,3
-    80205af4:	ffffe097          	auipc	ra,0xffffe
-    80205af8:	810080e7          	jalr	-2032(ra) # 80203304 <argint>
+    80205aee:	08054f63          	bltz	a0,80205b8c <sys_mmap+0xf4>
+    80205af2:	fb840593          	addi	a1,s0,-72
+    80205af6:	450d                	li	a0,3
+    80205af8:	ffffe097          	auipc	ra,0xffffe
+    80205afc:	810080e7          	jalr	-2032(ra) # 80203308 <argint>
     return -1;
-    80205afc:	57fd                	li	a5,-1
+    80205b00:	57fd                	li	a5,-1
 	if(argaddr(0, &start)<0||argaddr(1, &len)<0||argint(2, &prot)<0||argint(3, &flags)<0||argfd(4, &fd, &f)||argaddr(5, (uint64*)&off)<0)
-    80205afe:	08054463          	bltz	a0,80205b86 <sys_mmap+0xf2>
-    80205b02:	fa040613          	addi	a2,s0,-96
-    80205b06:	fb440593          	addi	a1,s0,-76
-    80205b0a:	4511                	li	a0,4
-    80205b0c:	fffff097          	auipc	ra,0xfffff
-    80205b10:	0a4080e7          	jalr	164(ra) # 80204bb0 <argfd>
-    80205b14:	84aa                	mv	s1,a0
+    80205b02:	08054563          	bltz	a0,80205b8c <sys_mmap+0xf4>
+    80205b06:	fa040613          	addi	a2,s0,-96
+    80205b0a:	fb440593          	addi	a1,s0,-76
+    80205b0e:	4511                	li	a0,4
+    80205b10:	fffff097          	auipc	ra,0xfffff
+    80205b14:	0a4080e7          	jalr	164(ra) # 80204bb4 <argfd>
+    80205b18:	84aa                	mv	s1,a0
     return -1;
-    80205b16:	57fd                	li	a5,-1
+    80205b1a:	57fd                	li	a5,-1
 	if(argaddr(0, &start)<0||argaddr(1, &len)<0||argint(2, &prot)<0||argint(3, &flags)<0||argfd(4, &fd, &f)||argaddr(5, (uint64*)&off)<0)
-    80205b18:	e53d                	bnez	a0,80205b86 <sys_mmap+0xf2>
-    80205b1a:	fa840593          	addi	a1,s0,-88
-    80205b1e:	4515                	li	a0,5
-    80205b20:	ffffe097          	auipc	ra,0xffffe
-    80205b24:	846080e7          	jalr	-1978(ra) # 80203366 <argaddr>
-    80205b28:	0c054763          	bltz	a0,80205bf6 <sys_mmap+0x162>
+    80205b1c:	e925                	bnez	a0,80205b8c <sys_mmap+0xf4>
+    80205b1e:	fa840593          	addi	a1,s0,-88
+    80205b22:	4515                	li	a0,5
+    80205b24:	ffffe097          	auipc	ra,0xffffe
+    80205b28:	846080e7          	jalr	-1978(ra) # 8020336a <argaddr>
+    80205b2c:	0c054363          	bltz	a0,80205bf2 <sys_mmap+0x15a>
 
   len=PGROUNDUP(len);
-    80205b2c:	fc043683          	ld	a3,-64(s0)
-    80205b30:	6785                	lui	a5,0x1
-    80205b32:	17fd                	addi	a5,a5,-1 # fff <_entry-0x801ff001>
-    80205b34:	96be                	add	a3,a3,a5
-    80205b36:	77fd                	lui	a5,0xfffff
-    80205b38:	8efd                	and	a3,a3,a5
-    80205b3a:	fcd43023          	sd	a3,-64(s0)
+    80205b30:	fc043683          	ld	a3,-64(s0)
+    80205b34:	6785                	lui	a5,0x1
+    80205b36:	17fd                	addi	a5,a5,-1 # fff <_entry-0x801ff001>
+    80205b38:	96be                	add	a3,a3,a5
+    80205b3a:	77fd                	lui	a5,0xfffff
+    80205b3c:	8efd                	and	a3,a3,a5
+    80205b3e:	fcd43023          	sd	a3,-64(s0)
 
   if (!f->writable && (prot & PROT_WRITE) && (flags == MAP_SHARED))
-    80205b3e:	fa043503          	ld	a0,-96(s0)
-    80205b42:	00954783          	lbu	a5,9(a0)
-    80205b46:	eb91                	bnez	a5,80205b5a <sys_mmap+0xc6>
-    80205b48:	fbc42783          	lw	a5,-68(s0)
-    80205b4c:	8b89                	andi	a5,a5,2
-    80205b4e:	c791                	beqz	a5,80205b5a <sys_mmap+0xc6>
-    80205b50:	fb842703          	lw	a4,-72(s0)
-    80205b54:	4785                	li	a5,1
-    80205b56:	0af70263          	beq	a4,a5,80205bfa <sys_mmap+0x166>
+    80205b42:	fa043503          	ld	a0,-96(s0)
+    80205b46:	00954783          	lbu	a5,9(a0)
+    80205b4a:	eb91                	bnez	a5,80205b5e <sys_mmap+0xc6>
+    80205b4c:	fbc42783          	lw	a5,-68(s0)
+    80205b50:	8b89                	andi	a5,a5,2
+    80205b52:	c791                	beqz	a5,80205b5e <sys_mmap+0xc6>
+    80205b54:	fb842703          	lw	a4,-72(s0)
+    80205b58:	4785                	li	a5,1
+    80205b5a:	08f70e63          	beq	a4,a5,80205bf6 <sys_mmap+0x15e>
     return -1;
   if (p->sz + len > MAXVA)
-    80205b5a:	04893603          	ld	a2,72(s2)
-    80205b5e:	9636                	add	a2,a2,a3
-    80205b60:	4705                	li	a4,1
-    80205b62:	171a                	slli	a4,a4,0x26
+    80205b5e:	04893583          	ld	a1,72(s2)
+    80205b62:	00b68633          	add	a2,a3,a1
+    80205b66:	4705                	li	a4,1
+    80205b68:	171a                	slli	a4,a4,0x26
     return -1;
-    80205b64:	57fd                	li	a5,-1
+    80205b6a:	57fd                	li	a5,-1
   if (p->sz + len > MAXVA)
-    80205b66:	02c76063          	bltu	a4,a2,80205b86 <sys_mmap+0xf2>
+    80205b6c:	02c76063          	bltu	a4,a2,80205b8c <sys_mmap+0xf4>
   if (!f->readable && (prot & PROT_READ))
-    80205b6a:	00854783          	lbu	a5,8(a0)
-    80205b6e:	c78d                	beqz	a5,80205b98 <sys_mmap+0x104>
+    80205b70:	00854783          	lbu	a5,8(a0)
+    80205b74:	c78d                	beqz	a5,80205b9e <sys_mmap+0x106>
     return -1;
   
   
   for (int i = 0; i < VMA_MAX; i++) {
-    80205b70:	44090793          	addi	a5,s2,1088
-    80205b74:	4641                	li	a2,16
+    80205b76:	44090793          	addi	a5,s2,1088
+    80205b7a:	4641                	li	a2,16
     struct VMA * vma = &p->vma[i];
     if (vma->valid == 0) {
-    80205b76:	4398                	lw	a4,0(a5)
-    80205b78:	c715                	beqz	a4,80205ba4 <sys_mmap+0x110>
+    80205b7c:	4398                	lw	a4,0(a5)
+    80205b7e:	c715                	beqz	a4,80205baa <sys_mmap+0x112>
   for (int i = 0; i < VMA_MAX; i++) {
-    80205b7a:	2485                	addiw	s1,s1,1
-    80205b7c:	03078793          	addi	a5,a5,48 # fffffffffffff030 <ebss_clear+0xffffffff7fdc4030>
-    80205b80:	fec49be3          	bne	s1,a2,80205b76 <sys_mmap+0xe2>
+    80205b80:	2485                	addiw	s1,s1,1
+    80205b82:	03078793          	addi	a5,a5,48 # fffffffffffff030 <ebss_clear+0xffffffff7fdc4030>
+    80205b86:	fec49be3          	bne	s1,a2,80205b7c <sys_mmap+0xe4>
       filedup(f);
       vma->off = off;
       return vma->addr;
     }
   }
   return -1;
-    80205b84:	57fd                	li	a5,-1
+    80205b8a:	57fd                	li	a5,-1
 }
-    80205b86:	853e                	mv	a0,a5
-    80205b88:	60e6                	ld	ra,88(sp)
-    80205b8a:	6446                	ld	s0,80(sp)
-    80205b8c:	64a6                	ld	s1,72(sp)
-    80205b8e:	6906                	ld	s2,64(sp)
-    80205b90:	79e2                	ld	s3,56(sp)
-    80205b92:	7a42                	ld	s4,48(sp)
-    80205b94:	6125                	addi	sp,sp,96
-    80205b96:	8082                	ret
+    80205b8c:	853e                	mv	a0,a5
+    80205b8e:	60e6                	ld	ra,88(sp)
+    80205b90:	6446                	ld	s0,80(sp)
+    80205b92:	64a6                	ld	s1,72(sp)
+    80205b94:	6906                	ld	s2,64(sp)
+    80205b96:	79e2                	ld	s3,56(sp)
+    80205b98:	7a42                	ld	s4,48(sp)
+    80205b9a:	6125                	addi	sp,sp,96
+    80205b9c:	8082                	ret
   if (!f->readable && (prot & PROT_READ))
-    80205b98:	fbc42703          	lw	a4,-68(s0)
-    80205b9c:	8b05                	andi	a4,a4,1
+    80205b9e:	fbc42703          	lw	a4,-68(s0)
+    80205ba2:	8b05                	andi	a4,a4,1
     return -1;
-    80205b9e:	57fd                	li	a5,-1
+    80205ba4:	57fd                	li	a5,-1
   if (!f->readable && (prot & PROT_READ))
-    80205ba0:	db61                	beqz	a4,80205b70 <sys_mmap+0xdc>
-    80205ba2:	b7d5                	j	80205b86 <sys_mmap+0xf2>
+    80205ba6:	db61                	beqz	a4,80205b76 <sys_mmap+0xde>
+    80205ba8:	b7d5                	j	80205b8c <sys_mmap+0xf4>
       vma->valid = 1;
-    80205ba4:	00149a13          	slli	s4,s1,0x1
-    80205ba8:	009a09b3          	add	s3,s4,s1
-    80205bac:	0992                	slli	s3,s3,0x4
-    80205bae:	99ca                	add	s3,s3,s2
-    80205bb0:	4785                	li	a5,1
-    80205bb2:	44f9a023          	sw	a5,1088(s3)
+    80205baa:	00149a13          	slli	s4,s1,0x1
+    80205bae:	009a09b3          	add	s3,s4,s1
+    80205bb2:	0992                	slli	s3,s3,0x4
+    80205bb4:	99ca                	add	s3,s3,s2
+    80205bb6:	4785                	li	a5,1
+    80205bb8:	44f9a023          	sw	a5,1088(s3)
       vma->alloc = 0;
-    80205bb6:	4609a623          	sw	zero,1132(s3)
-      vma->addr = p->max_addr;
-    80205bba:	74093783          	ld	a5,1856(s2)
-    80205bbe:	44f9b423          	sd	a5,1096(s3)
-      p->max_addr += len;
-    80205bc2:	97b6                	add	a5,a5,a3
-    80205bc4:	74f93023          	sd	a5,1856(s2)
+    80205bbc:	4609a623          	sw	zero,1132(s3)
+      vma->addr = p->sz;
+    80205bc0:	44b9b423          	sd	a1,1096(s3)
       vma->len = len;
-    80205bc8:	44d9a823          	sw	a3,1104(s3)
+    80205bc4:	44d9a823          	sw	a3,1104(s3)
       vma->prot = prot;
-    80205bcc:	fbc42783          	lw	a5,-68(s0)
-    80205bd0:	44f9aa23          	sw	a5,1108(s3)
+    80205bc8:	fbc42783          	lw	a5,-68(s0)
+    80205bcc:	44f9aa23          	sw	a5,1108(s3)
       vma->flags = flags;
-    80205bd4:	fb842783          	lw	a5,-72(s0)
-    80205bd8:	44f9ac23          	sw	a5,1112(s3)
+    80205bd0:	fb842783          	lw	a5,-72(s0)
+    80205bd4:	44f9ac23          	sw	a5,1112(s3)
       vma->f = f;
-    80205bdc:	46a9b023          	sd	a0,1120(s3)
+    80205bd8:	46a9b023          	sd	a0,1120(s3)
       filedup(f);
-    80205be0:	ffffe097          	auipc	ra,0xffffe
-    80205be4:	414080e7          	jalr	1044(ra) # 80203ff4 <filedup>
+    80205bdc:	ffffe097          	auipc	ra,0xffffe
+    80205be0:	41c080e7          	jalr	1052(ra) # 80203ff8 <filedup>
       vma->off = off;
-    80205be8:	fa843783          	ld	a5,-88(s0)
-    80205bec:	44f9ae23          	sw	a5,1116(s3)
+    80205be4:	fa843783          	ld	a5,-88(s0)
+    80205be8:	44f9ae23          	sw	a5,1116(s3)
       return vma->addr;
-    80205bf0:	4489b783          	ld	a5,1096(s3)
-    80205bf4:	bf49                	j	80205b86 <sys_mmap+0xf2>
+    80205bec:	4489b783          	ld	a5,1096(s3)
+    80205bf0:	bf71                	j	80205b8c <sys_mmap+0xf4>
     return -1;
-    80205bf6:	57fd                	li	a5,-1
-    80205bf8:	b779                	j	80205b86 <sys_mmap+0xf2>
+    80205bf2:	57fd                	li	a5,-1
+    80205bf4:	bf61                	j	80205b8c <sys_mmap+0xf4>
     return -1;
-    80205bfa:	57fd                	li	a5,-1
-    80205bfc:	b769                	j	80205b86 <sys_mmap+0xf2>
+    80205bf6:	57fd                	li	a5,-1
+    80205bf8:	bf51                	j	80205b8c <sys_mmap+0xf4>
 
-0000000080205bfe <sys_munmap>:
+0000000080205bfa <sys_munmap>:
 
  
 uint64
 sys_munmap(void) {
-    80205bfe:	7139                	addi	sp,sp,-64
-    80205c00:	fc06                	sd	ra,56(sp)
-    80205c02:	f822                	sd	s0,48(sp)
-    80205c04:	f426                	sd	s1,40(sp)
-    80205c06:	f04a                	sd	s2,32(sp)
-    80205c08:	ec4e                	sd	s3,24(sp)
-    80205c0a:	e852                	sd	s4,16(sp)
-    80205c0c:	0080                	addi	s0,sp,64
+    80205bfa:	7139                	addi	sp,sp,-64
+    80205bfc:	fc06                	sd	ra,56(sp)
+    80205bfe:	f822                	sd	s0,48(sp)
+    80205c00:	f426                	sd	s1,40(sp)
+    80205c02:	f04a                	sd	s2,32(sp)
+    80205c04:	ec4e                	sd	s3,24(sp)
+    80205c06:	e852                	sd	s4,16(sp)
+    80205c08:	0080                	addi	s0,sp,64
   uint64 addr;
   int len;
   if (argaddr(0, &addr) < 0 || argint(1, &len) < 0)
-    80205c0e:	fc840593          	addi	a1,s0,-56
-    80205c12:	4501                	li	a0,0
-    80205c14:	ffffd097          	auipc	ra,0xffffd
-    80205c18:	752080e7          	jalr	1874(ra) # 80203366 <argaddr>
+    80205c0a:	fc840593          	addi	a1,s0,-56
+    80205c0e:	4501                	li	a0,0
+    80205c10:	ffffd097          	auipc	ra,0xffffd
+    80205c14:	75a080e7          	jalr	1882(ra) # 8020336a <argaddr>
     return -1;
-    80205c1c:	57fd                	li	a5,-1
+    80205c18:	57fd                	li	a5,-1
   if (argaddr(0, &addr) < 0 || argint(1, &len) < 0)
-    80205c1e:	0a054563          	bltz	a0,80205cc8 <sys_munmap+0xca>
-    80205c22:	fc440593          	addi	a1,s0,-60
-    80205c26:	4505                	li	a0,1
-    80205c28:	ffffd097          	auipc	ra,0xffffd
-    80205c2c:	6dc080e7          	jalr	1756(ra) # 80203304 <argint>
+    80205c1a:	0a054563          	bltz	a0,80205cc4 <sys_munmap+0xca>
+    80205c1e:	fc440593          	addi	a1,s0,-60
+    80205c22:	4505                	li	a0,1
+    80205c24:	ffffd097          	auipc	ra,0xffffd
+    80205c28:	6e4080e7          	jalr	1764(ra) # 80203308 <argint>
     return -1;
-    80205c30:	57fd                	li	a5,-1
+    80205c2c:	57fd                	li	a5,-1
   if (argaddr(0, &addr) < 0 || argint(1, &len) < 0)
-    80205c32:	08054b63          	bltz	a0,80205cc8 <sys_munmap+0xca>
+    80205c2e:	08054b63          	bltz	a0,80205cc4 <sys_munmap+0xca>
   struct proc *p = myproc();
-    80205c36:	ffffc097          	auipc	ra,0xffffc
-    80205c3a:	e06080e7          	jalr	-506(ra) # 80201a3c <myproc>
-    80205c3e:	892a                	mv	s2,a0
+    80205c32:	ffffc097          	auipc	ra,0xffffc
+    80205c36:	e0a080e7          	jalr	-502(ra) # 80201a3c <myproc>
+    80205c3a:	892a                	mv	s2,a0
   struct VMA* vma = NULL;
   for (int i = 0; i < VMA_MAX; i++) {
     if (p->vma[i].valid && addr >= p->vma[i].addr && addr <= p->vma[i].addr + p->vma[i].len) {
-    80205c40:	fc843583          	ld	a1,-56(s0)
-    80205c44:	44050793          	addi	a5,a0,1088
+    80205c3c:	fc843583          	ld	a1,-56(s0)
+    80205c40:	44050793          	addi	a5,a0,1088
   for (int i = 0; i < VMA_MAX; i++) {
-    80205c48:	4481                	li	s1,0
-    80205c4a:	4641                	li	a2,16
-    80205c4c:	a031                	j	80205c58 <sys_munmap+0x5a>
-    80205c4e:	2485                	addiw	s1,s1,1
-    80205c50:	03078793          	addi	a5,a5,48
-    80205c54:	06c48963          	beq	s1,a2,80205cc6 <sys_munmap+0xc8>
+    80205c44:	4481                	li	s1,0
+    80205c46:	4641                	li	a2,16
+    80205c48:	a031                	j	80205c54 <sys_munmap+0x5a>
+    80205c4a:	2485                	addiw	s1,s1,1
+    80205c4c:	03078793          	addi	a5,a5,48
+    80205c50:	06c48963          	beq	s1,a2,80205cc2 <sys_munmap+0xc8>
     if (p->vma[i].valid && addr >= p->vma[i].addr && addr <= p->vma[i].addr + p->vma[i].len) {
-    80205c58:	4398                	lw	a4,0(a5)
-    80205c5a:	db75                	beqz	a4,80205c4e <sys_munmap+0x50>
-    80205c5c:	6798                	ld	a4,8(a5)
-    80205c5e:	fee5e8e3          	bltu	a1,a4,80205c4e <sys_munmap+0x50>
-    80205c62:	4b94                	lw	a3,16(a5)
-    80205c64:	9736                	add	a4,a4,a3
-    80205c66:	feb764e3          	bltu	a4,a1,80205c4e <sys_munmap+0x50>
+    80205c54:	4398                	lw	a4,0(a5)
+    80205c56:	db75                	beqz	a4,80205c4a <sys_munmap+0x50>
+    80205c58:	6798                	ld	a4,8(a5)
+    80205c5a:	fee5e8e3          	bltu	a1,a4,80205c4a <sys_munmap+0x50>
+    80205c5e:	4b94                	lw	a3,16(a5)
+    80205c60:	9736                	add	a4,a4,a3
+    80205c62:	feb764e3          	bltu	a4,a1,80205c4a <sys_munmap+0x50>
     }
   }
   if (vma == NULL)
     return -1;
 
   addr = PGROUNDDOWN(addr);
-    80205c6a:	77fd                	lui	a5,0xfffff
-    80205c6c:	8dfd                	and	a1,a1,a5
-    80205c6e:	fcb43423          	sd	a1,-56(s0)
-
-  if(vma->alloc){
-    80205c72:	00149793          	slli	a5,s1,0x1
-    80205c76:	97a6                	add	a5,a5,s1
-    80205c78:	0792                	slli	a5,a5,0x4
-    80205c7a:	97ca                	add	a5,a5,s2
-    80205c7c:	46c7a783          	lw	a5,1132(a5) # fffffffffffff46c <ebss_clear+0xffffffff7fdc446c>
-    80205c80:	efa9                	bnez	a5,80205cda <sys_munmap+0xdc>
+    80205c66:	77fd                	lui	a5,0xfffff
+    80205c68:	8dfd                	and	a1,a1,a5
+    80205c6a:	fcb43423          	sd	a1,-56(s0)
+
+  if(vma->alloc !=0){
+    80205c6e:	00149793          	slli	a5,s1,0x1
+    80205c72:	97a6                	add	a5,a5,s1
+    80205c74:	0792                	slli	a5,a5,0x4
+    80205c76:	97ca                	add	a5,a5,s2
+    80205c78:	46c7a783          	lw	a5,1132(a5) # fffffffffffff46c <ebss_clear+0xffffffff7fdc446c>
+    80205c7c:	efa9                	bnez	a5,80205cd6 <sys_munmap+0xdc>
       vma->alloc = 0;
     }
     
   }
 
   if (addr == vma->addr && len == vma->len) {
-    80205c82:	00149793          	slli	a5,s1,0x1
-    80205c86:	97a6                	add	a5,a5,s1
-    80205c88:	0792                	slli	a5,a5,0x4
-    80205c8a:	97ca                	add	a5,a5,s2
-    80205c8c:	4487b703          	ld	a4,1096(a5)
-    80205c90:	fc843683          	ld	a3,-56(s0)
-    80205c94:	0cd70c63          	beq	a4,a3,80205d6c <sys_munmap+0x16e>
+    80205c7e:	00149793          	slli	a5,s1,0x1
+    80205c82:	97a6                	add	a5,a5,s1
+    80205c84:	0792                	slli	a5,a5,0x4
+    80205c86:	97ca                	add	a5,a5,s2
+    80205c88:	4487b703          	ld	a4,1096(a5)
+    80205c8c:	fc843683          	ld	a3,-56(s0)
+    80205c90:	0ad70063          	beq	a4,a3,80205d30 <sys_munmap+0x136>
     vma->alloc = 0;
   } else if (addr == vma->addr) {
     vma->addr += len;
     vma->len -= len;
     vma->off += len;
   } else if ((addr + len) == (vma->addr + vma->len)) {
-    80205c98:	fc442583          	lw	a1,-60(s0)
-    80205c9c:	00149793          	slli	a5,s1,0x1
-    80205ca0:	97a6                	add	a5,a5,s1
-    80205ca2:	0792                	slli	a5,a5,0x4
-    80205ca4:	97ca                	add	a5,a5,s2
-    80205ca6:	4507a603          	lw	a2,1104(a5)
-    80205caa:	96ae                	add	a3,a3,a1
-    80205cac:	9732                	add	a4,a4,a2
-    80205cae:	10e69c63          	bne	a3,a4,80205dc6 <sys_munmap+0x1c8>
+    80205c94:	fc442583          	lw	a1,-60(s0)
+    80205c98:	00149793          	slli	a5,s1,0x1
+    80205c9c:	97a6                	add	a5,a5,s1
+    80205c9e:	0792                	slli	a5,a5,0x4
+    80205ca0:	97ca                	add	a5,a5,s2
+    80205ca2:	4507a603          	lw	a2,1104(a5)
+    80205ca6:	96ae                	add	a3,a3,a1
+    80205ca8:	9732                	add	a4,a4,a2
+    80205caa:	0ee69063          	bne	a3,a4,80205d8a <sys_munmap+0x190>
     vma->len -= len;
-    80205cb2:	00149793          	slli	a5,s1,0x1
-    80205cb6:	97a6                	add	a5,a5,s1
-    80205cb8:	0792                	slli	a5,a5,0x4
-    80205cba:	993e                	add	s2,s2,a5
-    80205cbc:	9e0d                	subw	a2,a2,a1
-    80205cbe:	44c92823          	sw	a2,1104(s2)
+    80205cae:	00149793          	slli	a5,s1,0x1
+    80205cb2:	97a6                	add	a5,a5,s1
+    80205cb4:	0792                	slli	a5,a5,0x4
+    80205cb6:	993e                	add	s2,s2,a5
+    80205cb8:	9e0d                	subw	a2,a2,a1
+    80205cba:	44c92823          	sw	a2,1104(s2)
   } else {
     printf("munmap neither cover beginning or end of mapped region\n");
     return -1;
   }
   return 0;
-    80205cc2:	4781                	li	a5,0
-    80205cc4:	a011                	j	80205cc8 <sys_munmap+0xca>
+    80205cbe:	4781                	li	a5,0
+    80205cc0:	a011                	j	80205cc4 <sys_munmap+0xca>
     return -1;
-    80205cc6:	57fd                	li	a5,-1
-    80205cc8:	853e                	mv	a0,a5
-    80205cca:	70e2                	ld	ra,56(sp)
-    80205ccc:	7442                	ld	s0,48(sp)
-    80205cce:	74a2                	ld	s1,40(sp)
-    80205cd0:	7902                	ld	s2,32(sp)
-    80205cd2:	69e2                	ld	s3,24(sp)
-    80205cd4:	6a42                	ld	s4,16(sp)
-    80205cd6:	6121                	addi	sp,sp,64
-    80205cd8:	8082                	ret
-    printf("here\n");
-    80205cda:	00005517          	auipc	a0,0x5
-    80205cde:	03e50513          	addi	a0,a0,62 # 8020ad18 <digits+0x998>
-    80205ce2:	ffffa097          	auipc	ra,0xffffa
-    80205ce6:	4ac080e7          	jalr	1196(ra) # 8020018e <printf>
+    80205cc2:	57fd                	li	a5,-1
+    80205cc4:	853e                	mv	a0,a5
+    80205cc6:	70e2                	ld	ra,56(sp)
+    80205cc8:	7442                	ld	s0,48(sp)
+    80205cca:	74a2                	ld	s1,40(sp)
+    80205ccc:	7902                	ld	s2,32(sp)
+    80205cce:	69e2                	ld	s3,24(sp)
+    80205cd0:	6a42                	ld	s4,16(sp)
+    80205cd2:	6121                	addi	sp,sp,64
+    80205cd4:	8082                	ret
     if( walkaddr( p->pagetable , addr ) != 0)
-    80205cea:	fc843583          	ld	a1,-56(s0)
-    80205cee:	05093503          	ld	a0,80(s2)
-    80205cf2:	ffffb097          	auipc	ra,0xffffb
-    80205cf6:	ebc080e7          	jalr	-324(ra) # 80200bae <walkaddr>
-    80205cfa:	d541                	beqz	a0,80205c82 <sys_munmap+0x84>
+    80205cd6:	05093503          	ld	a0,80(s2)
+    80205cda:	ffffb097          	auipc	ra,0xffffb
+    80205cde:	ed4080e7          	jalr	-300(ra) # 80200bae <walkaddr>
+    80205ce2:	dd51                	beqz	a0,80205c7e <sys_munmap+0x84>
       if (vma->flags & MAP_SHARED) {
-    80205cfc:	00149793          	slli	a5,s1,0x1
-    80205d00:	97a6                	add	a5,a5,s1
-    80205d02:	0792                	slli	a5,a5,0x4
-    80205d04:	97ca                	add	a5,a5,s2
-    80205d06:	4587a783          	lw	a5,1112(a5)
-    80205d0a:	8b85                	andi	a5,a5,1
-    80205d0c:	eb9d                	bnez	a5,80205d42 <sys_munmap+0x144>
-      vmunmap(p->pagetable, addr, len/PGSIZE, 1); 
-    80205d0e:	fc442783          	lw	a5,-60(s0)
-    80205d12:	41f7d61b          	sraiw	a2,a5,0x1f
-    80205d16:	0146561b          	srliw	a2,a2,0x14
-    80205d1a:	9e3d                	addw	a2,a2,a5
-    80205d1c:	4685                	li	a3,1
-    80205d1e:	40c6561b          	sraiw	a2,a2,0xc
-    80205d22:	fc843583          	ld	a1,-56(s0)
-    80205d26:	05093503          	ld	a0,80(s2)
-    80205d2a:	ffffb097          	auipc	ra,0xffffb
-    80205d2e:	0f8080e7          	jalr	248(ra) # 80200e22 <vmunmap>
+    80205ce4:	00149793          	slli	a5,s1,0x1
+    80205ce8:	97a6                	add	a5,a5,s1
+    80205cea:	0792                	slli	a5,a5,0x4
+    80205cec:	97ca                	add	a5,a5,s2
+    80205cee:	4587a783          	lw	a5,1112(a5)
+    80205cf2:	8b85                	andi	a5,a5,1
+    80205cf4:	eb89                	bnez	a5,80205d06 <sys_munmap+0x10c>
       vma->alloc = 0;
-    80205d32:	00149793          	slli	a5,s1,0x1
-    80205d36:	97a6                	add	a5,a5,s1
-    80205d38:	0792                	slli	a5,a5,0x4
-    80205d3a:	97ca                	add	a5,a5,s2
-    80205d3c:	4607a623          	sw	zero,1132(a5)
-    80205d40:	b789                	j	80205c82 <sys_munmap+0x84>
+    80205cf6:	00149793          	slli	a5,s1,0x1
+    80205cfa:	97a6                	add	a5,a5,s1
+    80205cfc:	0792                	slli	a5,a5,0x4
+    80205cfe:	97ca                	add	a5,a5,s2
+    80205d00:	4607a623          	sw	zero,1132(a5)
+    80205d04:	bfad                	j	80205c7e <sys_munmap+0x84>
       vma->f->off = vma->off;
-    80205d42:	00149793          	slli	a5,s1,0x1
-    80205d46:	97a6                	add	a5,a5,s1
-    80205d48:	0792                	slli	a5,a5,0x4
-    80205d4a:	97ca                	add	a5,a5,s2
-    80205d4c:	4607b703          	ld	a4,1120(a5)
-    80205d50:	45c7a683          	lw	a3,1116(a5)
-    80205d54:	d314                	sw	a3,32(a4)
+    80205d06:	00149793          	slli	a5,s1,0x1
+    80205d0a:	97a6                	add	a5,a5,s1
+    80205d0c:	0792                	slli	a5,a5,0x4
+    80205d0e:	97ca                	add	a5,a5,s2
+    80205d10:	4607b703          	ld	a4,1120(a5)
+    80205d14:	45c7a683          	lw	a3,1116(a5)
+    80205d18:	d314                	sw	a3,32(a4)
       filewrite(vma->f, addr, len);
-    80205d56:	fc442603          	lw	a2,-60(s0)
-    80205d5a:	fc843583          	ld	a1,-56(s0)
-    80205d5e:	4607b503          	ld	a0,1120(a5)
-    80205d62:	ffffe097          	auipc	ra,0xffffe
-    80205d66:	54a080e7          	jalr	1354(ra) # 802042ac <filewrite>
-    80205d6a:	b755                	j	80205d0e <sys_munmap+0x110>
+    80205d1a:	fc442603          	lw	a2,-60(s0)
+    80205d1e:	fc843583          	ld	a1,-56(s0)
+    80205d22:	4607b503          	ld	a0,1120(a5)
+    80205d26:	ffffe097          	auipc	ra,0xffffe
+    80205d2a:	58a080e7          	jalr	1418(ra) # 802042b0 <filewrite>
+    80205d2e:	b7e1                	j	80205cf6 <sys_munmap+0xfc>
   if (addr == vma->addr && len == vma->len) {
-    80205d6c:	00149793          	slli	a5,s1,0x1
-    80205d70:	97a6                	add	a5,a5,s1
-    80205d72:	0792                	slli	a5,a5,0x4
-    80205d74:	97ca                	add	a5,a5,s2
-    80205d76:	4507a583          	lw	a1,1104(a5)
-    80205d7a:	fc442603          	lw	a2,-60(s0)
-    80205d7e:	02c58563          	beq	a1,a2,80205da8 <sys_munmap+0x1aa>
+    80205d30:	00149793          	slli	a5,s1,0x1
+    80205d34:	97a6                	add	a5,a5,s1
+    80205d36:	0792                	slli	a5,a5,0x4
+    80205d38:	97ca                	add	a5,a5,s2
+    80205d3a:	4507a583          	lw	a1,1104(a5)
+    80205d3e:	fc442603          	lw	a2,-60(s0)
+    80205d42:	02c58563          	beq	a1,a2,80205d6c <sys_munmap+0x172>
     vma->addr += len;
-    80205d82:	00149793          	slli	a5,s1,0x1
-    80205d86:	009786b3          	add	a3,a5,s1
-    80205d8a:	0692                	slli	a3,a3,0x4
-    80205d8c:	96ca                	add	a3,a3,s2
-    80205d8e:	9732                	add	a4,a4,a2
-    80205d90:	44e6b423          	sd	a4,1096(a3) # 2448 <_entry-0x801fdbb8>
+    80205d46:	00149793          	slli	a5,s1,0x1
+    80205d4a:	009786b3          	add	a3,a5,s1
+    80205d4e:	0692                	slli	a3,a3,0x4
+    80205d50:	96ca                	add	a3,a3,s2
+    80205d52:	9732                	add	a4,a4,a2
+    80205d54:	44e6b423          	sd	a4,1096(a3) # 2448 <_entry-0x801fdbb8>
     vma->len -= len;
-    80205d94:	9d91                	subw	a1,a1,a2
-    80205d96:	44b6a823          	sw	a1,1104(a3)
+    80205d58:	9d91                	subw	a1,a1,a2
+    80205d5a:	44b6a823          	sw	a1,1104(a3)
     vma->off += len;
-    80205d9a:	45c6a783          	lw	a5,1116(a3)
-    80205d9e:	9fb1                	addw	a5,a5,a2
-    80205da0:	44f6ae23          	sw	a5,1116(a3)
+    80205d5e:	45c6a783          	lw	a5,1116(a3)
+    80205d62:	9fb1                	addw	a5,a5,a2
+    80205d64:	44f6ae23          	sw	a5,1116(a3)
   return 0;
-    80205da4:	4781                	li	a5,0
-    80205da6:	b70d                	j	80205cc8 <sys_munmap+0xca>
+    80205d68:	4781                	li	a5,0
+    80205d6a:	bfa9                	j	80205cc4 <sys_munmap+0xca>
     fileclose(vma->f);
-    80205da8:	8a3e                	mv	s4,a5
-    80205daa:	4607b503          	ld	a0,1120(a5)
-    80205dae:	ffffe097          	auipc	ra,0xffffe
-    80205db2:	298080e7          	jalr	664(ra) # 80204046 <fileclose>
+    80205d6c:	8a3e                	mv	s4,a5
+    80205d6e:	4607b503          	ld	a0,1120(a5)
+    80205d72:	ffffe097          	auipc	ra,0xffffe
+    80205d76:	2d8080e7          	jalr	728(ra) # 8020404a <fileclose>
     vma->valid = 0;
-    80205db6:	440a2023          	sw	zero,1088(s4)
+    80205d7a:	440a2023          	sw	zero,1088(s4)
     vma->addr = 0;
-    80205dba:	440a3423          	sd	zero,1096(s4)
+    80205d7e:	440a3423          	sd	zero,1096(s4)
     vma->alloc = 0;
-    80205dbe:	460a2623          	sw	zero,1132(s4)
+    80205d82:	460a2623          	sw	zero,1132(s4)
   return 0;
-    80205dc2:	4781                	li	a5,0
+    80205d86:	4781                	li	a5,0
     vma->alloc = 0;
-    80205dc4:	b711                	j	80205cc8 <sys_munmap+0xca>
+    80205d88:	bf35                	j	80205cc4 <sys_munmap+0xca>
     printf("munmap neither cover beginning or end of mapped region\n");
-    80205dc6:	00005517          	auipc	a0,0x5
-    80205dca:	f5a50513          	addi	a0,a0,-166 # 8020ad20 <digits+0x9a0>
-    80205dce:	ffffa097          	auipc	ra,0xffffa
-    80205dd2:	3c0080e7          	jalr	960(ra) # 8020018e <printf>
+    80205d8a:	00005517          	auipc	a0,0x5
+    80205d8e:	f8e50513          	addi	a0,a0,-114 # 8020ad18 <digits+0x998>
+    80205d92:	ffffa097          	auipc	ra,0xffffa
+    80205d96:	3fc080e7          	jalr	1020(ra) # 8020018e <printf>
     return -1;
-    80205dd6:	57fd                	li	a5,-1
-    80205dd8:	bdc5                	j	80205cc8 <sys_munmap+0xca>
-    80205dda:	0000                	unimp
-    80205ddc:	0000                	unimp
+    80205d9a:	57fd                	li	a5,-1
+    80205d9c:	b725                	j	80205cc4 <sys_munmap+0xca>
 	...
 
-0000000080205de0 <kernelvec>:
-    80205de0:	7111                	addi	sp,sp,-256
-    80205de2:	e006                	sd	ra,0(sp)
-    80205de4:	e40a                	sd	sp,8(sp)
-    80205de6:	e80e                	sd	gp,16(sp)
-    80205de8:	ec12                	sd	tp,24(sp)
-    80205dea:	f016                	sd	t0,32(sp)
-    80205dec:	f41a                	sd	t1,40(sp)
-    80205dee:	f81e                	sd	t2,48(sp)
-    80205df0:	fc22                	sd	s0,56(sp)
-    80205df2:	e0a6                	sd	s1,64(sp)
-    80205df4:	e4aa                	sd	a0,72(sp)
-    80205df6:	e8ae                	sd	a1,80(sp)
-    80205df8:	ecb2                	sd	a2,88(sp)
-    80205dfa:	f0b6                	sd	a3,96(sp)
-    80205dfc:	f4ba                	sd	a4,104(sp)
-    80205dfe:	f8be                	sd	a5,112(sp)
-    80205e00:	fcc2                	sd	a6,120(sp)
-    80205e02:	e146                	sd	a7,128(sp)
-    80205e04:	e54a                	sd	s2,136(sp)
-    80205e06:	e94e                	sd	s3,144(sp)
-    80205e08:	ed52                	sd	s4,152(sp)
-    80205e0a:	f156                	sd	s5,160(sp)
-    80205e0c:	f55a                	sd	s6,168(sp)
-    80205e0e:	f95e                	sd	s7,176(sp)
-    80205e10:	fd62                	sd	s8,184(sp)
-    80205e12:	e1e6                	sd	s9,192(sp)
-    80205e14:	e5ea                	sd	s10,200(sp)
-    80205e16:	e9ee                	sd	s11,208(sp)
-    80205e18:	edf2                	sd	t3,216(sp)
-    80205e1a:	f1f6                	sd	t4,224(sp)
-    80205e1c:	f5fa                	sd	t5,232(sp)
-    80205e1e:	f9fe                	sd	t6,240(sp)
-    80205e20:	f73fc0ef          	jal	ra,80202d92 <kerneltrap>
-    80205e24:	6082                	ld	ra,0(sp)
-    80205e26:	6122                	ld	sp,8(sp)
-    80205e28:	61c2                	ld	gp,16(sp)
-    80205e2a:	7282                	ld	t0,32(sp)
-    80205e2c:	7322                	ld	t1,40(sp)
-    80205e2e:	73c2                	ld	t2,48(sp)
-    80205e30:	7462                	ld	s0,56(sp)
-    80205e32:	6486                	ld	s1,64(sp)
-    80205e34:	6526                	ld	a0,72(sp)
-    80205e36:	65c6                	ld	a1,80(sp)
-    80205e38:	6666                	ld	a2,88(sp)
-    80205e3a:	7686                	ld	a3,96(sp)
-    80205e3c:	7726                	ld	a4,104(sp)
-    80205e3e:	77c6                	ld	a5,112(sp)
-    80205e40:	7866                	ld	a6,120(sp)
-    80205e42:	688a                	ld	a7,128(sp)
-    80205e44:	692a                	ld	s2,136(sp)
-    80205e46:	69ca                	ld	s3,144(sp)
-    80205e48:	6a6a                	ld	s4,152(sp)
-    80205e4a:	7a8a                	ld	s5,160(sp)
-    80205e4c:	7b2a                	ld	s6,168(sp)
-    80205e4e:	7bca                	ld	s7,176(sp)
-    80205e50:	7c6a                	ld	s8,184(sp)
-    80205e52:	6c8e                	ld	s9,192(sp)
-    80205e54:	6d2e                	ld	s10,200(sp)
-    80205e56:	6dce                	ld	s11,208(sp)
-    80205e58:	6e6e                	ld	t3,216(sp)
-    80205e5a:	7e8e                	ld	t4,224(sp)
-    80205e5c:	7f2e                	ld	t5,232(sp)
-    80205e5e:	7fce                	ld	t6,240(sp)
-    80205e60:	6111                	addi	sp,sp,256
-    80205e62:	10200073          	sret
+0000000080205da0 <kernelvec>:
+    80205da0:	7111                	addi	sp,sp,-256
+    80205da2:	e006                	sd	ra,0(sp)
+    80205da4:	e40a                	sd	sp,8(sp)
+    80205da6:	e80e                	sd	gp,16(sp)
+    80205da8:	ec12                	sd	tp,24(sp)
+    80205daa:	f016                	sd	t0,32(sp)
+    80205dac:	f41a                	sd	t1,40(sp)
+    80205dae:	f81e                	sd	t2,48(sp)
+    80205db0:	fc22                	sd	s0,56(sp)
+    80205db2:	e0a6                	sd	s1,64(sp)
+    80205db4:	e4aa                	sd	a0,72(sp)
+    80205db6:	e8ae                	sd	a1,80(sp)
+    80205db8:	ecb2                	sd	a2,88(sp)
+    80205dba:	f0b6                	sd	a3,96(sp)
+    80205dbc:	f4ba                	sd	a4,104(sp)
+    80205dbe:	f8be                	sd	a5,112(sp)
+    80205dc0:	fcc2                	sd	a6,120(sp)
+    80205dc2:	e146                	sd	a7,128(sp)
+    80205dc4:	e54a                	sd	s2,136(sp)
+    80205dc6:	e94e                	sd	s3,144(sp)
+    80205dc8:	ed52                	sd	s4,152(sp)
+    80205dca:	f156                	sd	s5,160(sp)
+    80205dcc:	f55a                	sd	s6,168(sp)
+    80205dce:	f95e                	sd	s7,176(sp)
+    80205dd0:	fd62                	sd	s8,184(sp)
+    80205dd2:	e1e6                	sd	s9,192(sp)
+    80205dd4:	e5ea                	sd	s10,200(sp)
+    80205dd6:	e9ee                	sd	s11,208(sp)
+    80205dd8:	edf2                	sd	t3,216(sp)
+    80205dda:	f1f6                	sd	t4,224(sp)
+    80205ddc:	f5fa                	sd	t5,232(sp)
+    80205dde:	f9fe                	sd	t6,240(sp)
+    80205de0:	fb7fc0ef          	jal	ra,80202d96 <kerneltrap>
+    80205de4:	6082                	ld	ra,0(sp)
+    80205de6:	6122                	ld	sp,8(sp)
+    80205de8:	61c2                	ld	gp,16(sp)
+    80205dea:	7282                	ld	t0,32(sp)
+    80205dec:	7322                	ld	t1,40(sp)
+    80205dee:	73c2                	ld	t2,48(sp)
+    80205df0:	7462                	ld	s0,56(sp)
+    80205df2:	6486                	ld	s1,64(sp)
+    80205df4:	6526                	ld	a0,72(sp)
+    80205df6:	65c6                	ld	a1,80(sp)
+    80205df8:	6666                	ld	a2,88(sp)
+    80205dfa:	7686                	ld	a3,96(sp)
+    80205dfc:	7726                	ld	a4,104(sp)
+    80205dfe:	77c6                	ld	a5,112(sp)
+    80205e00:	7866                	ld	a6,120(sp)
+    80205e02:	688a                	ld	a7,128(sp)
+    80205e04:	692a                	ld	s2,136(sp)
+    80205e06:	69ca                	ld	s3,144(sp)
+    80205e08:	6a6a                	ld	s4,152(sp)
+    80205e0a:	7a8a                	ld	s5,160(sp)
+    80205e0c:	7b2a                	ld	s6,168(sp)
+    80205e0e:	7bca                	ld	s7,176(sp)
+    80205e10:	7c6a                	ld	s8,184(sp)
+    80205e12:	6c8e                	ld	s9,192(sp)
+    80205e14:	6d2e                	ld	s10,200(sp)
+    80205e16:	6dce                	ld	s11,208(sp)
+    80205e18:	6e6e                	ld	t3,216(sp)
+    80205e1a:	7e8e                	ld	t4,224(sp)
+    80205e1c:	7f2e                	ld	t5,232(sp)
+    80205e1e:	7fce                	ld	t6,240(sp)
+    80205e20:	6111                	addi	sp,sp,256
+    80205e22:	10200073          	sret
 	...
 
-0000000080205e6e <timerinit>:
+0000000080205e2e <timerinit>:
 #include "include/proc.h"
 
 struct spinlock tickslock;
 uint ticks;
 
 void timerinit() {
-    80205e6e:	1141                	addi	sp,sp,-16
-    80205e70:	e406                	sd	ra,8(sp)
-    80205e72:	e022                	sd	s0,0(sp)
-    80205e74:	0800                	addi	s0,sp,16
+    80205e2e:	1141                	addi	sp,sp,-16
+    80205e30:	e406                	sd	ra,8(sp)
+    80205e32:	e022                	sd	s0,0(sp)
+    80205e34:	0800                	addi	s0,sp,16
     initlock(&tickslock, "time");
-    80205e76:	00005597          	auipc	a1,0x5
-    80205e7a:	ee258593          	addi	a1,a1,-286 # 8020ad58 <digits+0x9d8>
-    80205e7e:	0002d517          	auipc	a0,0x2d
-    80205e82:	cea50513          	addi	a0,a0,-790 # 80232b68 <tickslock>
-    80205e86:	ffffa097          	auipc	ra,0xffffa
-    80205e8a:	7fc080e7          	jalr	2044(ra) # 80200682 <initlock>
+    80205e36:	00005597          	auipc	a1,0x5
+    80205e3a:	f1a58593          	addi	a1,a1,-230 # 8020ad50 <digits+0x9d0>
+    80205e3e:	0002d517          	auipc	a0,0x2d
+    80205e42:	d2a50513          	addi	a0,a0,-726 # 80232b68 <tickslock>
+    80205e46:	ffffb097          	auipc	ra,0xffffb
+    80205e4a:	83c080e7          	jalr	-1988(ra) # 80200682 <initlock>
     #ifdef DEBUG
     printf("timerinit\n");
     #endif
 }
-    80205e8e:	60a2                	ld	ra,8(sp)
-    80205e90:	6402                	ld	s0,0(sp)
-    80205e92:	0141                	addi	sp,sp,16
-    80205e94:	8082                	ret
+    80205e4e:	60a2                	ld	ra,8(sp)
+    80205e50:	6402                	ld	s0,0(sp)
+    80205e52:	0141                	addi	sp,sp,16
+    80205e54:	8082                	ret
 
-0000000080205e96 <set_next_timeout>:
+0000000080205e56 <set_next_timeout>:
 
 void
 set_next_timeout() {
-    80205e96:	1141                	addi	sp,sp,-16
-    80205e98:	e422                	sd	s0,8(sp)
-    80205e9a:	0800                	addi	s0,sp,16
+    80205e56:	1141                	addi	sp,sp,-16
+    80205e58:	e422                	sd	s0,8(sp)
+    80205e5a:	0800                	addi	s0,sp,16
   asm volatile("rdtime %0" : "=r" (x) );
-    80205e9c:	c0102573          	rdtime	a0
+    80205e5c:	c0102573          	rdtime	a0
     // if comment the `printf` line below
     // the timer will not work.
 
     // this bug seems to disappear automatically
     // printf("");
     sbi_set_timer(r_time() + INTERVAL);
-    80205ea0:	001dc7b7          	lui	a5,0x1dc
-    80205ea4:	13078793          	addi	a5,a5,304 # 1dc130 <_entry-0x80023ed0>
-    80205ea8:	953e                	add	a0,a0,a5
+    80205e60:	001dc7b7          	lui	a5,0x1dc
+    80205e64:	13078793          	addi	a5,a5,304 # 1dc130 <_entry-0x80023ed0>
+    80205e68:	953e                	add	a0,a0,a5
 	SBI_CALL_1(SBI_SET_TIMER, stime_value);
-    80205eaa:	4581                	li	a1,0
-    80205eac:	4601                	li	a2,0
-    80205eae:	4681                	li	a3,0
-    80205eb0:	4881                	li	a7,0
-    80205eb2:	00000073          	ecall
+    80205e6a:	4581                	li	a1,0
+    80205e6c:	4601                	li	a2,0
+    80205e6e:	4681                	li	a3,0
+    80205e70:	4881                	li	a7,0
+    80205e72:	00000073          	ecall
 }
-    80205eb6:	6422                	ld	s0,8(sp)
-    80205eb8:	0141                	addi	sp,sp,16
-    80205eba:	8082                	ret
+    80205e76:	6422                	ld	s0,8(sp)
+    80205e78:	0141                	addi	sp,sp,16
+    80205e7a:	8082                	ret
 
-0000000080205ebc <timer_tick>:
+0000000080205e7c <timer_tick>:
 
 void timer_tick() {
-    80205ebc:	1101                	addi	sp,sp,-32
-    80205ebe:	ec06                	sd	ra,24(sp)
-    80205ec0:	e822                	sd	s0,16(sp)
-    80205ec2:	e426                	sd	s1,8(sp)
-    80205ec4:	1000                	addi	s0,sp,32
+    80205e7c:	1101                	addi	sp,sp,-32
+    80205e7e:	ec06                	sd	ra,24(sp)
+    80205e80:	e822                	sd	s0,16(sp)
+    80205e82:	e426                	sd	s1,8(sp)
+    80205e84:	1000                	addi	s0,sp,32
     acquire(&tickslock);
-    80205ec6:	0002d497          	auipc	s1,0x2d
-    80205eca:	ca248493          	addi	s1,s1,-862 # 80232b68 <tickslock>
-    80205ece:	8526                	mv	a0,s1
-    80205ed0:	ffffa097          	auipc	ra,0xffffa
-    80205ed4:	7f6080e7          	jalr	2038(ra) # 802006c6 <acquire>
+    80205e86:	0002d497          	auipc	s1,0x2d
+    80205e8a:	ce248493          	addi	s1,s1,-798 # 80232b68 <tickslock>
+    80205e8e:	8526                	mv	a0,s1
+    80205e90:	ffffb097          	auipc	ra,0xffffb
+    80205e94:	836080e7          	jalr	-1994(ra) # 802006c6 <acquire>
     ticks++;
-    80205ed8:	4c9c                	lw	a5,24(s1)
-    80205eda:	2785                	addiw	a5,a5,1
-    80205edc:	cc9c                	sw	a5,24(s1)
+    80205e98:	4c9c                	lw	a5,24(s1)
+    80205e9a:	2785                	addiw	a5,a5,1
+    80205e9c:	cc9c                	sw	a5,24(s1)
     wakeup(&ticks);
-    80205ede:	0002d517          	auipc	a0,0x2d
-    80205ee2:	ca250513          	addi	a0,a0,-862 # 80232b80 <ticks>
-    80205ee6:	ffffd097          	auipc	ra,0xffffd
-    80205eea:	81a080e7          	jalr	-2022(ra) # 80202700 <wakeup>
+    80205e9e:	0002d517          	auipc	a0,0x2d
+    80205ea2:	ce250513          	addi	a0,a0,-798 # 80232b80 <ticks>
+    80205ea6:	ffffd097          	auipc	ra,0xffffd
+    80205eaa:	854080e7          	jalr	-1964(ra) # 802026fa <wakeup>
     release(&tickslock);
-    80205eee:	8526                	mv	a0,s1
-    80205ef0:	ffffb097          	auipc	ra,0xffffb
-    80205ef4:	82a080e7          	jalr	-2006(ra) # 8020071a <release>
+    80205eae:	8526                	mv	a0,s1
+    80205eb0:	ffffb097          	auipc	ra,0xffffb
+    80205eb4:	86a080e7          	jalr	-1942(ra) # 8020071a <release>
     set_next_timeout();
-    80205ef8:	00000097          	auipc	ra,0x0
-    80205efc:	f9e080e7          	jalr	-98(ra) # 80205e96 <set_next_timeout>
+    80205eb8:	00000097          	auipc	ra,0x0
+    80205ebc:	f9e080e7          	jalr	-98(ra) # 80205e56 <set_next_timeout>
 }
-    80205f00:	60e2                	ld	ra,24(sp)
-    80205f02:	6442                	ld	s0,16(sp)
-    80205f04:	64a2                	ld	s1,8(sp)
-    80205f06:	6105                	addi	sp,sp,32
-    80205f08:	8082                	ret
+    80205ec0:	60e2                	ld	ra,24(sp)
+    80205ec2:	6442                	ld	s0,16(sp)
+    80205ec4:	64a2                	ld	s1,8(sp)
+    80205ec6:	6105                	addi	sp,sp,32
+    80205ec8:	8082                	ret
 
-0000000080205f0a <disk_init>:
+0000000080205eca <disk_init>:
 #else
 #include "include/virtio.h"
 #endif 
 
 void disk_init(void)
 {
-    80205f0a:	1141                	addi	sp,sp,-16
-    80205f0c:	e406                	sd	ra,8(sp)
-    80205f0e:	e022                	sd	s0,0(sp)
-    80205f10:	0800                	addi	s0,sp,16
+    80205eca:	1141                	addi	sp,sp,-16
+    80205ecc:	e406                	sd	ra,8(sp)
+    80205ece:	e022                	sd	s0,0(sp)
+    80205ed0:	0800                	addi	s0,sp,16
     #ifdef QEMU
     virtio_disk_init();
-    80205f12:	00002097          	auipc	ra,0x2
-    80205f16:	eaa080e7          	jalr	-342(ra) # 80207dbc <virtio_disk_init>
+    80205ed2:	00002097          	auipc	ra,0x2
+    80205ed6:	eaa080e7          	jalr	-342(ra) # 80207d7c <virtio_disk_init>
 	#else 
 	sdcard_init();
     #endif
 }
-    80205f1a:	60a2                	ld	ra,8(sp)
-    80205f1c:	6402                	ld	s0,0(sp)
-    80205f1e:	0141                	addi	sp,sp,16
-    80205f20:	8082                	ret
+    80205eda:	60a2                	ld	ra,8(sp)
+    80205edc:	6402                	ld	s0,0(sp)
+    80205ede:	0141                	addi	sp,sp,16
+    80205ee0:	8082                	ret
 
-0000000080205f22 <disk_read>:
+0000000080205ee2 <disk_read>:
 
 void disk_read(struct buf *b)
 {
-    80205f22:	1141                	addi	sp,sp,-16
-    80205f24:	e406                	sd	ra,8(sp)
-    80205f26:	e022                	sd	s0,0(sp)
-    80205f28:	0800                	addi	s0,sp,16
+    80205ee2:	1141                	addi	sp,sp,-16
+    80205ee4:	e406                	sd	ra,8(sp)
+    80205ee6:	e022                	sd	s0,0(sp)
+    80205ee8:	0800                	addi	s0,sp,16
     #ifdef QEMU
 	virtio_disk_rw(b, 0);
-    80205f2a:	4581                	li	a1,0
-    80205f2c:	00002097          	auipc	ra,0x2
-    80205f30:	016080e7          	jalr	22(ra) # 80207f42 <virtio_disk_rw>
+    80205eea:	4581                	li	a1,0
+    80205eec:	00002097          	auipc	ra,0x2
+    80205ef0:	016080e7          	jalr	22(ra) # 80207f02 <virtio_disk_rw>
     #else 
 	sdcard_read_sector(b->data, b->sectorno);
 	#endif
 }
-    80205f34:	60a2                	ld	ra,8(sp)
-    80205f36:	6402                	ld	s0,0(sp)
-    80205f38:	0141                	addi	sp,sp,16
-    80205f3a:	8082                	ret
+    80205ef4:	60a2                	ld	ra,8(sp)
+    80205ef6:	6402                	ld	s0,0(sp)
+    80205ef8:	0141                	addi	sp,sp,16
+    80205efa:	8082                	ret
 
-0000000080205f3c <disk_write>:
+0000000080205efc <disk_write>:
 
 void disk_write(struct buf *b)
 {
-    80205f3c:	1141                	addi	sp,sp,-16
-    80205f3e:	e406                	sd	ra,8(sp)
-    80205f40:	e022                	sd	s0,0(sp)
-    80205f42:	0800                	addi	s0,sp,16
+    80205efc:	1141                	addi	sp,sp,-16
+    80205efe:	e406                	sd	ra,8(sp)
+    80205f00:	e022                	sd	s0,0(sp)
+    80205f02:	0800                	addi	s0,sp,16
     #ifdef QEMU
 	virtio_disk_rw(b, 1);
-    80205f44:	4585                	li	a1,1
-    80205f46:	00002097          	auipc	ra,0x2
-    80205f4a:	ffc080e7          	jalr	-4(ra) # 80207f42 <virtio_disk_rw>
+    80205f04:	4585                	li	a1,1
+    80205f06:	00002097          	auipc	ra,0x2
+    80205f0a:	ffc080e7          	jalr	-4(ra) # 80207f02 <virtio_disk_rw>
     #else 
 	sdcard_write_sector(b->data, b->sectorno);
 	#endif
 }
-    80205f4e:	60a2                	ld	ra,8(sp)
-    80205f50:	6402                	ld	s0,0(sp)
-    80205f52:	0141                	addi	sp,sp,16
-    80205f54:	8082                	ret
+    80205f0e:	60a2                	ld	ra,8(sp)
+    80205f10:	6402                	ld	s0,0(sp)
+    80205f12:	0141                	addi	sp,sp,16
+    80205f14:	8082                	ret
 
-0000000080205f56 <disk_intr>:
+0000000080205f16 <disk_intr>:
 
 void disk_intr(void)
 {
-    80205f56:	1141                	addi	sp,sp,-16
-    80205f58:	e406                	sd	ra,8(sp)
-    80205f5a:	e022                	sd	s0,0(sp)
-    80205f5c:	0800                	addi	s0,sp,16
+    80205f16:	1141                	addi	sp,sp,-16
+    80205f18:	e406                	sd	ra,8(sp)
+    80205f1a:	e022                	sd	s0,0(sp)
+    80205f1c:	0800                	addi	s0,sp,16
     #ifdef QEMU
     virtio_disk_intr();
-    80205f5e:	00002097          	auipc	ra,0x2
-    80205f62:	270080e7          	jalr	624(ra) # 802081ce <virtio_disk_intr>
+    80205f1e:	00002097          	auipc	ra,0x2
+    80205f22:	270080e7          	jalr	624(ra) # 8020818e <virtio_disk_intr>
     #else 
     dmac_intr(DMAC_CHANNEL0);
     #endif
 }
-    80205f66:	60a2                	ld	ra,8(sp)
-    80205f68:	6402                	ld	s0,0(sp)
-    80205f6a:	0141                	addi	sp,sp,16
-    80205f6c:	8082                	ret
+    80205f26:	60a2                	ld	ra,8(sp)
+    80205f28:	6402                	ld	s0,0(sp)
+    80205f2a:	0141                	addi	sp,sp,16
+    80205f2c:	8082                	ret
 
-0000000080205f6e <read_fat>:
+0000000080205f2e <read_fat>:
 /**
  * Read the FAT table content corresponded to the given cluster number.
  * @param   cluster     the number of cluster which you want to read its content in FAT table
  */
 static uint32 read_fat(uint32 cluster)
 {
-    80205f6e:	1101                	addi	sp,sp,-32
-    80205f70:	ec06                	sd	ra,24(sp)
-    80205f72:	e822                	sd	s0,16(sp)
-    80205f74:	e426                	sd	s1,8(sp)
-    80205f76:	e04a                	sd	s2,0(sp)
-    80205f78:	1000                	addi	s0,sp,32
+    80205f2e:	1101                	addi	sp,sp,-32
+    80205f30:	ec06                	sd	ra,24(sp)
+    80205f32:	e822                	sd	s0,16(sp)
+    80205f34:	e426                	sd	s1,8(sp)
+    80205f36:	e04a                	sd	s2,0(sp)
+    80205f38:	1000                	addi	s0,sp,32
     if (cluster >= FAT32_EOC) {
-    80205f7a:	100007b7          	lui	a5,0x10000
-    80205f7e:	17dd                	addi	a5,a5,-9 # ffffff7 <_entry-0x70200009>
+    80205f3a:	100007b7          	lui	a5,0x10000
+    80205f3e:	17dd                	addi	a5,a5,-9 # ffffff7 <_entry-0x70200009>
         return cluster;
-    80205f80:	84aa                	mv	s1,a0
+    80205f40:	84aa                	mv	s1,a0
     if (cluster >= FAT32_EOC) {
-    80205f82:	00a7ea63          	bltu	a5,a0,80205f96 <read_fat+0x28>
+    80205f42:	00a7ea63          	bltu	a5,a0,80205f56 <read_fat+0x28>
     }
     if (cluster > fat.data_clus_cnt + 1) {     // because cluster number starts at 2, not 0
-    80205f86:	0002d797          	auipc	a5,0x2d
-    80205f8a:	c0a7a783          	lw	a5,-1014(a5) # 80232b90 <fat+0x8>
-    80205f8e:	2785                	addiw	a5,a5,1
+    80205f46:	0002d797          	auipc	a5,0x2d
+    80205f4a:	c4a7a783          	lw	a5,-950(a5) # 80232b90 <fat+0x8>
+    80205f4e:	2785                	addiw	a5,a5,1
         return 0;
-    80205f90:	4481                	li	s1,0
+    80205f50:	4481                	li	s1,0
     if (cluster > fat.data_clus_cnt + 1) {     // because cluster number starts at 2, not 0
-    80205f92:	00a7f963          	bgeu	a5,a0,80205fa4 <read_fat+0x36>
+    80205f52:	00a7f963          	bgeu	a5,a0,80205f64 <read_fat+0x36>
     // here should be a cache layer for FAT table, but not implemented yet.
     struct buf *b = bread(0, fat_sec);
     uint32 next_clus = *(uint32 *)(b->data + fat_offset_of_clus(cluster));
     brelse(b);
     return next_clus;
 }
-    80205f96:	8526                	mv	a0,s1
-    80205f98:	60e2                	ld	ra,24(sp)
-    80205f9a:	6442                	ld	s0,16(sp)
-    80205f9c:	64a2                	ld	s1,8(sp)
-    80205f9e:	6902                	ld	s2,0(sp)
-    80205fa0:	6105                	addi	sp,sp,32
-    80205fa2:	8082                	ret
+    80205f56:	8526                	mv	a0,s1
+    80205f58:	60e2                	ld	ra,24(sp)
+    80205f5a:	6442                	ld	s0,16(sp)
+    80205f5c:	64a2                	ld	s1,8(sp)
+    80205f5e:	6902                	ld	s2,0(sp)
+    80205f60:	6105                	addi	sp,sp,32
+    80205f62:	8082                	ret
     return fat.bpb.rsvd_sec_cnt + (cluster << 2) / fat.bpb.byts_per_sec + fat.bpb.fat_sz * (fat_num - 1);
-    80205fa4:	0025149b          	slliw	s1,a0,0x2
-    80205fa8:	0002d917          	auipc	s2,0x2d
-    80205fac:	be090913          	addi	s2,s2,-1056 # 80232b88 <fat>
-    80205fb0:	01095783          	lhu	a5,16(s2)
-    80205fb4:	02f4d7bb          	divuw	a5,s1,a5
-    80205fb8:	01495583          	lhu	a1,20(s2)
+    80205f64:	0025149b          	slliw	s1,a0,0x2
+    80205f68:	0002d917          	auipc	s2,0x2d
+    80205f6c:	c2090913          	addi	s2,s2,-992 # 80232b88 <fat>
+    80205f70:	01095783          	lhu	a5,16(s2)
+    80205f74:	02f4d7bb          	divuw	a5,s1,a5
+    80205f78:	01495583          	lhu	a1,20(s2)
     struct buf *b = bread(0, fat_sec);
-    80205fbc:	9dbd                	addw	a1,a1,a5
-    80205fbe:	4501                	li	a0,0
-    80205fc0:	ffffe097          	auipc	ra,0xffffe
-    80205fc4:	c06080e7          	jalr	-1018(ra) # 80203bc6 <bread>
+    80205f7c:	9dbd                	addw	a1,a1,a5
+    80205f7e:	4501                	li	a0,0
+    80205f80:	ffffe097          	auipc	ra,0xffffe
+    80205f84:	c4a080e7          	jalr	-950(ra) # 80203bca <bread>
     return (cluster << 2) % fat.bpb.byts_per_sec;
-    80205fc8:	01095783          	lhu	a5,16(s2)
-    80205fcc:	02f4f4bb          	remuw	s1,s1,a5
+    80205f88:	01095783          	lhu	a5,16(s2)
+    80205f8c:	02f4f4bb          	remuw	s1,s1,a5
     uint32 next_clus = *(uint32 *)(b->data + fat_offset_of_clus(cluster));
-    80205fd0:	1482                	slli	s1,s1,0x20
-    80205fd2:	9081                	srli	s1,s1,0x20
-    80205fd4:	009507b3          	add	a5,a0,s1
-    80205fd8:	4fa4                	lw	s1,88(a5)
+    80205f90:	1482                	slli	s1,s1,0x20
+    80205f92:	9081                	srli	s1,s1,0x20
+    80205f94:	009507b3          	add	a5,a0,s1
+    80205f98:	4fa4                	lw	s1,88(a5)
     brelse(b);
-    80205fda:	ffffe097          	auipc	ra,0xffffe
-    80205fde:	d18080e7          	jalr	-744(ra) # 80203cf2 <brelse>
+    80205f9a:	ffffe097          	auipc	ra,0xffffe
+    80205f9e:	d5c080e7          	jalr	-676(ra) # 80203cf6 <brelse>
     return next_clus;
-    80205fe2:	bf55                	j	80205f96 <read_fat+0x28>
+    80205fa2:	bf55                	j	80205f56 <read_fat+0x28>
 
-0000000080205fe4 <alloc_clus>:
+0000000080205fa4 <alloc_clus>:
         brelse(b);
     }
 }
 
 static uint32 alloc_clus(uint8 dev)
 {
-    80205fe4:	711d                	addi	sp,sp,-96
-    80205fe6:	ec86                	sd	ra,88(sp)
-    80205fe8:	e8a2                	sd	s0,80(sp)
-    80205fea:	e4a6                	sd	s1,72(sp)
-    80205fec:	e0ca                	sd	s2,64(sp)
-    80205fee:	fc4e                	sd	s3,56(sp)
-    80205ff0:	f852                	sd	s4,48(sp)
-    80205ff2:	f456                	sd	s5,40(sp)
-    80205ff4:	f05a                	sd	s6,32(sp)
-    80205ff6:	ec5e                	sd	s7,24(sp)
-    80205ff8:	e862                	sd	s8,16(sp)
-    80205ffa:	e466                	sd	s9,8(sp)
-    80205ffc:	1080                	addi	s0,sp,96
+    80205fa4:	711d                	addi	sp,sp,-96
+    80205fa6:	ec86                	sd	ra,88(sp)
+    80205fa8:	e8a2                	sd	s0,80(sp)
+    80205faa:	e4a6                	sd	s1,72(sp)
+    80205fac:	e0ca                	sd	s2,64(sp)
+    80205fae:	fc4e                	sd	s3,56(sp)
+    80205fb0:	f852                	sd	s4,48(sp)
+    80205fb2:	f456                	sd	s5,40(sp)
+    80205fb4:	f05a                	sd	s6,32(sp)
+    80205fb6:	ec5e                	sd	s7,24(sp)
+    80205fb8:	e862                	sd	s8,16(sp)
+    80205fba:	e466                	sd	s9,8(sp)
+    80205fbc:	1080                	addi	s0,sp,96
     // should we keep a free cluster list? instead of searching fat every time.
     struct buf *b;
     uint32 sec = fat.bpb.rsvd_sec_cnt;
-    80205ffe:	0002d797          	auipc	a5,0x2d
-    80206002:	b8a78793          	addi	a5,a5,-1142 # 80232b88 <fat>
-    80206006:	0147db83          	lhu	s7,20(a5)
+    80205fbe:	0002d797          	auipc	a5,0x2d
+    80205fc2:	bca78793          	addi	a5,a5,-1078 # 80232b88 <fat>
+    80205fc6:	0147db83          	lhu	s7,20(a5)
     uint32 const ent_per_sec = fat.bpb.byts_per_sec / sizeof(uint32);
-    8020600a:	0107d903          	lhu	s2,16(a5)
+    80205fca:	0107d903          	lhu	s2,16(a5)
     for (uint32 i = 0; i < fat.bpb.fat_sz; i++, sec++) {
-    8020600e:	539c                	lw	a5,32(a5)
-    80206010:	10078363          	beqz	a5,80206116 <alloc_clus+0x132>
-    80206014:	0029591b          	srliw	s2,s2,0x2
-    80206018:	0009099b          	sext.w	s3,s2
-    8020601c:	4b01                	li	s6,0
+    80205fce:	539c                	lw	a5,32(a5)
+    80205fd0:	10078363          	beqz	a5,802060d6 <alloc_clus+0x132>
+    80205fd4:	0029591b          	srliw	s2,s2,0x2
+    80205fd8:	0009099b          	sext.w	s3,s2
+    80205fdc:	4b01                	li	s6,0
         b = bread(dev, sec);
-    8020601e:	00050a9b          	sext.w	s5,a0
+    80205fde:	00050a9b          	sext.w	s5,a0
         for (uint32 j = 0; j < ent_per_sec; j++) {
-    80206022:	4c01                	li	s8,0
+    80205fe2:	4c01                	li	s8,0
     for (uint32 i = 0; i < fat.bpb.fat_sz; i++, sec++) {
-    80206024:	0002dc97          	auipc	s9,0x2d
-    80206028:	b64c8c93          	addi	s9,s9,-1180 # 80232b88 <fat>
-    8020602c:	a0c9                	j	802060ee <alloc_clus+0x10a>
+    80205fe4:	0002dc97          	auipc	s9,0x2d
+    80205fe8:	ba4c8c93          	addi	s9,s9,-1116 # 80232b88 <fat>
+    80205fec:	a0c9                	j	802060ae <alloc_clus+0x10a>
             if (((uint32 *)(b->data))[j] == 0) {
                 ((uint32 *)(b->data))[j] = FAT32_EOC + 7;
-    8020602e:	100007b7          	lui	a5,0x10000
-    80206032:	17fd                	addi	a5,a5,-1 # fffffff <_entry-0x70200001>
-    80206034:	c29c                	sw	a5,0(a3)
+    80205fee:	100007b7          	lui	a5,0x10000
+    80205ff2:	17fd                	addi	a5,a5,-1 # fffffff <_entry-0x70200001>
+    80205ff4:	c29c                	sw	a5,0(a3)
                 bwrite(b);
-    80206036:	8552                	mv	a0,s4
-    80206038:	ffffe097          	auipc	ra,0xffffe
-    8020603c:	c7e080e7          	jalr	-898(ra) # 80203cb6 <bwrite>
+    80205ff6:	8552                	mv	a0,s4
+    80205ff8:	ffffe097          	auipc	ra,0xffffe
+    80205ffc:	cc2080e7          	jalr	-830(ra) # 80203cba <bwrite>
                 brelse(b);
-    80206040:	8552                	mv	a0,s4
-    80206042:	ffffe097          	auipc	ra,0xffffe
-    80206046:	cb0080e7          	jalr	-848(ra) # 80203cf2 <brelse>
+    80206000:	8552                	mv	a0,s4
+    80206002:	ffffe097          	auipc	ra,0xffffe
+    80206006:	cf4080e7          	jalr	-780(ra) # 80203cf6 <brelse>
                 uint32 clus = i * ent_per_sec + j;
-    8020604a:	0369093b          	mulw	s2,s2,s6
-    8020604e:	0099093b          	addw	s2,s2,s1
-    80206052:	00090a9b          	sext.w	s5,s2
+    8020600a:	0369093b          	mulw	s2,s2,s6
+    8020600e:	0099093b          	addw	s2,s2,s1
+    80206012:	00090a9b          	sext.w	s5,s2
     return ((cluster - 2) * fat.bpb.sec_per_clus) + fat.first_data_sec;
-    80206056:	0002d717          	auipc	a4,0x2d
-    8020605a:	b3270713          	addi	a4,a4,-1230 # 80232b88 <fat>
-    8020605e:	01274783          	lbu	a5,18(a4)
-    80206062:	ffe9099b          	addiw	s3,s2,-2
-    80206066:	02f989bb          	mulw	s3,s3,a5
-    8020606a:	4318                	lw	a4,0(a4)
-    8020606c:	00e989bb          	addw	s3,s3,a4
+    80206016:	0002d717          	auipc	a4,0x2d
+    8020601a:	b7270713          	addi	a4,a4,-1166 # 80232b88 <fat>
+    8020601e:	01274783          	lbu	a5,18(a4)
+    80206022:	ffe9099b          	addiw	s3,s2,-2
+    80206026:	02f989bb          	mulw	s3,s3,a5
+    8020602a:	4318                	lw	a4,0(a4)
+    8020602c:	00e989bb          	addw	s3,s3,a4
     for (int i = 0; i < fat.bpb.sec_per_clus; i++) {
-    80206070:	c7b1                	beqz	a5,802060bc <alloc_clus+0xd8>
-    80206072:	4901                	li	s2,0
-    80206074:	0002da17          	auipc	s4,0x2d
-    80206078:	b14a0a13          	addi	s4,s4,-1260 # 80232b88 <fat>
+    80206030:	c7b1                	beqz	a5,8020607c <alloc_clus+0xd8>
+    80206032:	4901                	li	s2,0
+    80206034:	0002da17          	auipc	s4,0x2d
+    80206038:	b54a0a13          	addi	s4,s4,-1196 # 80232b88 <fat>
         b = bread(0, sec++);
-    8020607c:	013905bb          	addw	a1,s2,s3
-    80206080:	4501                	li	a0,0
-    80206082:	ffffe097          	auipc	ra,0xffffe
-    80206086:	b44080e7          	jalr	-1212(ra) # 80203bc6 <bread>
-    8020608a:	84aa                	mv	s1,a0
+    8020603c:	013905bb          	addw	a1,s2,s3
+    80206040:	4501                	li	a0,0
+    80206042:	ffffe097          	auipc	ra,0xffffe
+    80206046:	b88080e7          	jalr	-1144(ra) # 80203bca <bread>
+    8020604a:	84aa                	mv	s1,a0
         memset(b->data, 0, BSIZE);
-    8020608c:	20000613          	li	a2,512
-    80206090:	4581                	li	a1,0
-    80206092:	05850513          	addi	a0,a0,88
-    80206096:	ffffa097          	auipc	ra,0xffffa
-    8020609a:	6cc080e7          	jalr	1740(ra) # 80200762 <memset>
+    8020604c:	20000613          	li	a2,512
+    80206050:	4581                	li	a1,0
+    80206052:	05850513          	addi	a0,a0,88
+    80206056:	ffffa097          	auipc	ra,0xffffa
+    8020605a:	70c080e7          	jalr	1804(ra) # 80200762 <memset>
         bwrite(b);
-    8020609e:	8526                	mv	a0,s1
-    802060a0:	ffffe097          	auipc	ra,0xffffe
-    802060a4:	c16080e7          	jalr	-1002(ra) # 80203cb6 <bwrite>
+    8020605e:	8526                	mv	a0,s1
+    80206060:	ffffe097          	auipc	ra,0xffffe
+    80206064:	c5a080e7          	jalr	-934(ra) # 80203cba <bwrite>
         brelse(b);
-    802060a8:	8526                	mv	a0,s1
-    802060aa:	ffffe097          	auipc	ra,0xffffe
-    802060ae:	c48080e7          	jalr	-952(ra) # 80203cf2 <brelse>
+    80206068:	8526                	mv	a0,s1
+    8020606a:	ffffe097          	auipc	ra,0xffffe
+    8020606e:	c8c080e7          	jalr	-884(ra) # 80203cf6 <brelse>
     for (int i = 0; i < fat.bpb.sec_per_clus; i++) {
-    802060b2:	2905                	addiw	s2,s2,1
-    802060b4:	012a4783          	lbu	a5,18(s4)
-    802060b8:	fcf942e3          	blt	s2,a5,8020607c <alloc_clus+0x98>
+    80206072:	2905                	addiw	s2,s2,1
+    80206074:	012a4783          	lbu	a5,18(s4)
+    80206078:	fcf942e3          	blt	s2,a5,8020603c <alloc_clus+0x98>
             }
         }
         brelse(b);
     }
     panic("no clusters");
 }
-    802060bc:	8556                	mv	a0,s5
-    802060be:	60e6                	ld	ra,88(sp)
-    802060c0:	6446                	ld	s0,80(sp)
-    802060c2:	64a6                	ld	s1,72(sp)
-    802060c4:	6906                	ld	s2,64(sp)
-    802060c6:	79e2                	ld	s3,56(sp)
-    802060c8:	7a42                	ld	s4,48(sp)
-    802060ca:	7aa2                	ld	s5,40(sp)
-    802060cc:	7b02                	ld	s6,32(sp)
-    802060ce:	6be2                	ld	s7,24(sp)
-    802060d0:	6c42                	ld	s8,16(sp)
-    802060d2:	6ca2                	ld	s9,8(sp)
-    802060d4:	6125                	addi	sp,sp,96
-    802060d6:	8082                	ret
+    8020607c:	8556                	mv	a0,s5
+    8020607e:	60e6                	ld	ra,88(sp)
+    80206080:	6446                	ld	s0,80(sp)
+    80206082:	64a6                	ld	s1,72(sp)
+    80206084:	6906                	ld	s2,64(sp)
+    80206086:	79e2                	ld	s3,56(sp)
+    80206088:	7a42                	ld	s4,48(sp)
+    8020608a:	7aa2                	ld	s5,40(sp)
+    8020608c:	7b02                	ld	s6,32(sp)
+    8020608e:	6be2                	ld	s7,24(sp)
+    80206090:	6c42                	ld	s8,16(sp)
+    80206092:	6ca2                	ld	s9,8(sp)
+    80206094:	6125                	addi	sp,sp,96
+    80206096:	8082                	ret
         brelse(b);
-    802060d8:	8552                	mv	a0,s4
-    802060da:	ffffe097          	auipc	ra,0xffffe
-    802060de:	c18080e7          	jalr	-1000(ra) # 80203cf2 <brelse>
+    80206098:	8552                	mv	a0,s4
+    8020609a:	ffffe097          	auipc	ra,0xffffe
+    8020609e:	c5c080e7          	jalr	-932(ra) # 80203cf6 <brelse>
     for (uint32 i = 0; i < fat.bpb.fat_sz; i++, sec++) {
-    802060e2:	2b05                	addiw	s6,s6,1
-    802060e4:	2b85                	addiw	s7,s7,1 # fffffffffffff001 <ebss_clear+0xffffffff7fdc4001>
-    802060e6:	020ca783          	lw	a5,32(s9)
-    802060ea:	02fb7663          	bgeu	s6,a5,80206116 <alloc_clus+0x132>
+    802060a2:	2b05                	addiw	s6,s6,1
+    802060a4:	2b85                	addiw	s7,s7,1 # fffffffffffff001 <ebss_clear+0xffffffff7fdc4001>
+    802060a6:	020ca783          	lw	a5,32(s9)
+    802060aa:	02fb7663          	bgeu	s6,a5,802060d6 <alloc_clus+0x132>
         b = bread(dev, sec);
-    802060ee:	85de                	mv	a1,s7
-    802060f0:	8556                	mv	a0,s5
-    802060f2:	ffffe097          	auipc	ra,0xffffe
-    802060f6:	ad4080e7          	jalr	-1324(ra) # 80203bc6 <bread>
-    802060fa:	8a2a                	mv	s4,a0
+    802060ae:	85de                	mv	a1,s7
+    802060b0:	8556                	mv	a0,s5
+    802060b2:	ffffe097          	auipc	ra,0xffffe
+    802060b6:	b18080e7          	jalr	-1256(ra) # 80203bca <bread>
+    802060ba:	8a2a                	mv	s4,a0
         for (uint32 j = 0; j < ent_per_sec; j++) {
-    802060fc:	fc098ee3          	beqz	s3,802060d8 <alloc_clus+0xf4>
-    80206100:	05850793          	addi	a5,a0,88
-    80206104:	84e2                	mv	s1,s8
+    802060bc:	fc098ee3          	beqz	s3,80206098 <alloc_clus+0xf4>
+    802060c0:	05850793          	addi	a5,a0,88
+    802060c4:	84e2                	mv	s1,s8
             if (((uint32 *)(b->data))[j] == 0) {
-    80206106:	86be                	mv	a3,a5
-    80206108:	4398                	lw	a4,0(a5)
-    8020610a:	d315                	beqz	a4,8020602e <alloc_clus+0x4a>
+    802060c6:	86be                	mv	a3,a5
+    802060c8:	4398                	lw	a4,0(a5)
+    802060ca:	d315                	beqz	a4,80205fee <alloc_clus+0x4a>
         for (uint32 j = 0; j < ent_per_sec; j++) {
-    8020610c:	2485                	addiw	s1,s1,1
-    8020610e:	0791                	addi	a5,a5,4
-    80206110:	fe999be3          	bne	s3,s1,80206106 <alloc_clus+0x122>
-    80206114:	b7d1                	j	802060d8 <alloc_clus+0xf4>
+    802060cc:	2485                	addiw	s1,s1,1
+    802060ce:	0791                	addi	a5,a5,4
+    802060d0:	fe999be3          	bne	s3,s1,802060c6 <alloc_clus+0x122>
+    802060d4:	b7d1                	j	80206098 <alloc_clus+0xf4>
     panic("no clusters");
-    80206116:	00005517          	auipc	a0,0x5
-    8020611a:	c4a50513          	addi	a0,a0,-950 # 8020ad60 <digits+0x9e0>
-    8020611e:	ffffa097          	auipc	ra,0xffffa
-    80206122:	026080e7          	jalr	38(ra) # 80200144 <panic>
+    802060d6:	00005517          	auipc	a0,0x5
+    802060da:	c8250513          	addi	a0,a0,-894 # 8020ad58 <digits+0x9d8>
+    802060de:	ffffa097          	auipc	ra,0xffffa
+    802060e2:	066080e7          	jalr	102(ra) # 80200144 <panic>
 
-0000000080206126 <write_fat>:
+00000000802060e6 <write_fat>:
     if (cluster > fat.data_clus_cnt + 1) {
-    80206126:	0002d797          	auipc	a5,0x2d
-    8020612a:	a6a7a783          	lw	a5,-1430(a5) # 80232b90 <fat+0x8>
-    8020612e:	2785                	addiw	a5,a5,1
-    80206130:	06a7e963          	bltu	a5,a0,802061a2 <write_fat+0x7c>
+    802060e6:	0002d797          	auipc	a5,0x2d
+    802060ea:	aaa7a783          	lw	a5,-1366(a5) # 80232b90 <fat+0x8>
+    802060ee:	2785                	addiw	a5,a5,1
+    802060f0:	06a7e963          	bltu	a5,a0,80206162 <write_fat+0x7c>
 {
-    80206134:	7179                	addi	sp,sp,-48
-    80206136:	f406                	sd	ra,40(sp)
-    80206138:	f022                	sd	s0,32(sp)
-    8020613a:	ec26                	sd	s1,24(sp)
-    8020613c:	e84a                	sd	s2,16(sp)
-    8020613e:	e44e                	sd	s3,8(sp)
-    80206140:	e052                	sd	s4,0(sp)
-    80206142:	1800                	addi	s0,sp,48
-    80206144:	89ae                	mv	s3,a1
+    802060f4:	7179                	addi	sp,sp,-48
+    802060f6:	f406                	sd	ra,40(sp)
+    802060f8:	f022                	sd	s0,32(sp)
+    802060fa:	ec26                	sd	s1,24(sp)
+    802060fc:	e84a                	sd	s2,16(sp)
+    802060fe:	e44e                	sd	s3,8(sp)
+    80206100:	e052                	sd	s4,0(sp)
+    80206102:	1800                	addi	s0,sp,48
+    80206104:	89ae                	mv	s3,a1
     return fat.bpb.rsvd_sec_cnt + (cluster << 2) / fat.bpb.byts_per_sec + fat.bpb.fat_sz * (fat_num - 1);
-    80206146:	0025149b          	slliw	s1,a0,0x2
-    8020614a:	0002da17          	auipc	s4,0x2d
-    8020614e:	a3ea0a13          	addi	s4,s4,-1474 # 80232b88 <fat>
-    80206152:	010a5783          	lhu	a5,16(s4)
-    80206156:	02f4d7bb          	divuw	a5,s1,a5
-    8020615a:	014a5583          	lhu	a1,20(s4)
+    80206106:	0025149b          	slliw	s1,a0,0x2
+    8020610a:	0002da17          	auipc	s4,0x2d
+    8020610e:	a7ea0a13          	addi	s4,s4,-1410 # 80232b88 <fat>
+    80206112:	010a5783          	lhu	a5,16(s4)
+    80206116:	02f4d7bb          	divuw	a5,s1,a5
+    8020611a:	014a5583          	lhu	a1,20(s4)
     struct buf *b = bread(0, fat_sec);
-    8020615e:	9dbd                	addw	a1,a1,a5
-    80206160:	4501                	li	a0,0
-    80206162:	ffffe097          	auipc	ra,0xffffe
-    80206166:	a64080e7          	jalr	-1436(ra) # 80203bc6 <bread>
-    8020616a:	892a                	mv	s2,a0
+    8020611e:	9dbd                	addw	a1,a1,a5
+    80206120:	4501                	li	a0,0
+    80206122:	ffffe097          	auipc	ra,0xffffe
+    80206126:	aa8080e7          	jalr	-1368(ra) # 80203bca <bread>
+    8020612a:	892a                	mv	s2,a0
     return (cluster << 2) % fat.bpb.byts_per_sec;
-    8020616c:	010a5783          	lhu	a5,16(s4)
-    80206170:	02f4f4bb          	remuw	s1,s1,a5
+    8020612c:	010a5783          	lhu	a5,16(s4)
+    80206130:	02f4f4bb          	remuw	s1,s1,a5
     *(uint32 *)(b->data + off) = content;
-    80206174:	1482                	slli	s1,s1,0x20
-    80206176:	9081                	srli	s1,s1,0x20
-    80206178:	94aa                	add	s1,s1,a0
-    8020617a:	0534ac23          	sw	s3,88(s1)
+    80206134:	1482                	slli	s1,s1,0x20
+    80206136:	9081                	srli	s1,s1,0x20
+    80206138:	94aa                	add	s1,s1,a0
+    8020613a:	0534ac23          	sw	s3,88(s1)
     bwrite(b);
-    8020617e:	ffffe097          	auipc	ra,0xffffe
-    80206182:	b38080e7          	jalr	-1224(ra) # 80203cb6 <bwrite>
+    8020613e:	ffffe097          	auipc	ra,0xffffe
+    80206142:	b7c080e7          	jalr	-1156(ra) # 80203cba <bwrite>
     brelse(b);
-    80206186:	854a                	mv	a0,s2
-    80206188:	ffffe097          	auipc	ra,0xffffe
-    8020618c:	b6a080e7          	jalr	-1174(ra) # 80203cf2 <brelse>
+    80206146:	854a                	mv	a0,s2
+    80206148:	ffffe097          	auipc	ra,0xffffe
+    8020614c:	bae080e7          	jalr	-1106(ra) # 80203cf6 <brelse>
     return 0;
-    80206190:	4501                	li	a0,0
+    80206150:	4501                	li	a0,0
 }
-    80206192:	70a2                	ld	ra,40(sp)
-    80206194:	7402                	ld	s0,32(sp)
-    80206196:	64e2                	ld	s1,24(sp)
-    80206198:	6942                	ld	s2,16(sp)
-    8020619a:	69a2                	ld	s3,8(sp)
-    8020619c:	6a02                	ld	s4,0(sp)
-    8020619e:	6145                	addi	sp,sp,48
-    802061a0:	8082                	ret
+    80206152:	70a2                	ld	ra,40(sp)
+    80206154:	7402                	ld	s0,32(sp)
+    80206156:	64e2                	ld	s1,24(sp)
+    80206158:	6942                	ld	s2,16(sp)
+    8020615a:	69a2                	ld	s3,8(sp)
+    8020615c:	6a02                	ld	s4,0(sp)
+    8020615e:	6145                	addi	sp,sp,48
+    80206160:	8082                	ret
         return -1;
-    802061a2:	557d                	li	a0,-1
+    80206162:	557d                	li	a0,-1
 }
-    802061a4:	8082                	ret
+    80206164:	8082                	ret
 
-00000000802061a6 <reloc_clus>:
+0000000080206166 <reloc_clus>:
  * @param   off         the offset from the beginning of the relative file
  * @param   alloc       whether alloc new cluster when meeting end of FAT chains
  * @return              the offset from the new cur_clus
  */
 static int reloc_clus(struct dirent *entry, uint off, int alloc)
 {
-    802061a6:	715d                	addi	sp,sp,-80
-    802061a8:	e486                	sd	ra,72(sp)
-    802061aa:	e0a2                	sd	s0,64(sp)
-    802061ac:	fc26                	sd	s1,56(sp)
-    802061ae:	f84a                	sd	s2,48(sp)
-    802061b0:	f44e                	sd	s3,40(sp)
-    802061b2:	f052                	sd	s4,32(sp)
-    802061b4:	ec56                	sd	s5,24(sp)
-    802061b6:	e85a                	sd	s6,16(sp)
-    802061b8:	e45e                	sd	s7,8(sp)
-    802061ba:	0880                	addi	s0,sp,80
-    802061bc:	84aa                	mv	s1,a0
-    802061be:	8a2e                	mv	s4,a1
+    80206166:	715d                	addi	sp,sp,-80
+    80206168:	e486                	sd	ra,72(sp)
+    8020616a:	e0a2                	sd	s0,64(sp)
+    8020616c:	fc26                	sd	s1,56(sp)
+    8020616e:	f84a                	sd	s2,48(sp)
+    80206170:	f44e                	sd	s3,40(sp)
+    80206172:	f052                	sd	s4,32(sp)
+    80206174:	ec56                	sd	s5,24(sp)
+    80206176:	e85a                	sd	s6,16(sp)
+    80206178:	e45e                	sd	s7,8(sp)
+    8020617a:	0880                	addi	s0,sp,80
+    8020617c:	84aa                	mv	s1,a0
+    8020617e:	8a2e                	mv	s4,a1
     int clus_num = off / fat.byts_per_clus;
-    802061c0:	0002db97          	auipc	s7,0x2d
-    802061c4:	9d4bab83          	lw	s7,-1580(s7) # 80232b94 <fat+0xc>
-    802061c8:	0375d9bb          	divuw	s3,a1,s7
+    80206180:	0002db97          	auipc	s7,0x2d
+    80206184:	a14bab83          	lw	s7,-1516(s7) # 80232b94 <fat+0xc>
+    80206188:	0375d9bb          	divuw	s3,a1,s7
     while (clus_num > entry->clus_cnt) {
-    802061cc:	11052703          	lw	a4,272(a0)
-    802061d0:	07377563          	bgeu	a4,s3,8020623a <reloc_clus+0x94>
-    802061d4:	8b32                	mv	s6,a2
+    8020618c:	11052703          	lw	a4,272(a0)
+    80206190:	07377563          	bgeu	a4,s3,802061fa <reloc_clus+0x94>
+    80206194:	8b32                	mv	s6,a2
         int clus = read_fat(entry->cur_clus);
         if (clus >= FAT32_EOC) {
-    802061d6:	10000ab7          	lui	s5,0x10000
-    802061da:	1add                	addi	s5,s5,-9 # ffffff7 <_entry-0x70200009>
-    802061dc:	a81d                	j	80206212 <reloc_clus+0x6c>
+    80206196:	10000ab7          	lui	s5,0x10000
+    8020619a:	1add                	addi	s5,s5,-9 # ffffff7 <_entry-0x70200009>
+    8020619c:	a81d                	j	802061d2 <reloc_clus+0x6c>
             if (alloc) {
                 clus = alloc_clus(entry->dev);
-    802061de:	1144c503          	lbu	a0,276(s1)
-    802061e2:	00000097          	auipc	ra,0x0
-    802061e6:	e02080e7          	jalr	-510(ra) # 80205fe4 <alloc_clus>
-    802061ea:	0005091b          	sext.w	s2,a0
+    8020619e:	1144c503          	lbu	a0,276(s1)
+    802061a2:	00000097          	auipc	ra,0x0
+    802061a6:	e02080e7          	jalr	-510(ra) # 80205fa4 <alloc_clus>
+    802061aa:	0005091b          	sext.w	s2,a0
                 write_fat(entry->cur_clus, clus);
-    802061ee:	85ca                	mv	a1,s2
-    802061f0:	10c4a503          	lw	a0,268(s1)
-    802061f4:	00000097          	auipc	ra,0x0
-    802061f8:	f32080e7          	jalr	-206(ra) # 80206126 <write_fat>
+    802061ae:	85ca                	mv	a1,s2
+    802061b0:	10c4a503          	lw	a0,268(s1)
+    802061b4:	00000097          	auipc	ra,0x0
+    802061b8:	f32080e7          	jalr	-206(ra) # 802060e6 <write_fat>
                 entry->cur_clus = entry->first_clus;
                 entry->clus_cnt = 0;
                 return -1;
             }
         }
         entry->cur_clus = clus;
-    802061fc:	1124a623          	sw	s2,268(s1)
+    802061bc:	1124a623          	sw	s2,268(s1)
         entry->clus_cnt++;
-    80206200:	1104a783          	lw	a5,272(s1)
-    80206204:	2785                	addiw	a5,a5,1
-    80206206:	0007871b          	sext.w	a4,a5
-    8020620a:	10f4a823          	sw	a5,272(s1)
+    802061c0:	1104a783          	lw	a5,272(s1)
+    802061c4:	2785                	addiw	a5,a5,1
+    802061c6:	0007871b          	sext.w	a4,a5
+    802061ca:	10f4a823          	sw	a5,272(s1)
     while (clus_num > entry->clus_cnt) {
-    8020620e:	03377663          	bgeu	a4,s3,8020623a <reloc_clus+0x94>
+    802061ce:	03377663          	bgeu	a4,s3,802061fa <reloc_clus+0x94>
         int clus = read_fat(entry->cur_clus);
-    80206212:	10c4a503          	lw	a0,268(s1)
-    80206216:	00000097          	auipc	ra,0x0
-    8020621a:	d58080e7          	jalr	-680(ra) # 80205f6e <read_fat>
-    8020621e:	0005091b          	sext.w	s2,a0
+    802061d2:	10c4a503          	lw	a0,268(s1)
+    802061d6:	00000097          	auipc	ra,0x0
+    802061da:	d58080e7          	jalr	-680(ra) # 80205f2e <read_fat>
+    802061de:	0005091b          	sext.w	s2,a0
         if (clus >= FAT32_EOC) {
-    80206222:	fd2adde3          	bge	s5,s2,802061fc <reloc_clus+0x56>
+    802061e2:	fd2adde3          	bge	s5,s2,802061bc <reloc_clus+0x56>
             if (alloc) {
-    80206226:	fa0b1ce3          	bnez	s6,802061de <reloc_clus+0x38>
+    802061e6:	fa0b1ce3          	bnez	s6,8020619e <reloc_clus+0x38>
                 entry->cur_clus = entry->first_clus;
-    8020622a:	1044a783          	lw	a5,260(s1)
-    8020622e:	10f4a623          	sw	a5,268(s1)
+    802061ea:	1044a783          	lw	a5,260(s1)
+    802061ee:	10f4a623          	sw	a5,268(s1)
                 entry->clus_cnt = 0;
-    80206232:	1004a823          	sw	zero,272(s1)
+    802061f2:	1004a823          	sw	zero,272(s1)
                 return -1;
-    80206236:	557d                	li	a0,-1
-    80206238:	a881                	j	80206288 <reloc_clus+0xe2>
+    802061f6:	557d                	li	a0,-1
+    802061f8:	a881                	j	80206248 <reloc_clus+0xe2>
     }
     if (clus_num < entry->clus_cnt) {
-    8020623a:	04e9f163          	bgeu	s3,a4,8020627c <reloc_clus+0xd6>
+    802061fa:	04e9f163          	bgeu	s3,a4,8020623c <reloc_clus+0xd6>
         entry->cur_clus = entry->first_clus;
-    8020623e:	1044a783          	lw	a5,260(s1)
-    80206242:	10f4a623          	sw	a5,268(s1)
+    802061fe:	1044a783          	lw	a5,260(s1)
+    80206202:	10f4a623          	sw	a5,268(s1)
         entry->clus_cnt = 0;
-    80206246:	1004a823          	sw	zero,272(s1)
+    80206206:	1004a823          	sw	zero,272(s1)
         while (entry->clus_cnt < clus_num) {
-    8020624a:	037a6963          	bltu	s4,s7,8020627c <reloc_clus+0xd6>
+    8020620a:	037a6963          	bltu	s4,s7,8020623c <reloc_clus+0xd6>
             entry->cur_clus = read_fat(entry->cur_clus);
             if (entry->cur_clus >= FAT32_EOC) {
-    8020624e:	10000937          	lui	s2,0x10000
-    80206252:	195d                	addi	s2,s2,-9 # ffffff7 <_entry-0x70200009>
+    8020620e:	10000937          	lui	s2,0x10000
+    80206212:	195d                	addi	s2,s2,-9 # ffffff7 <_entry-0x70200009>
             entry->cur_clus = read_fat(entry->cur_clus);
-    80206254:	10c4a503          	lw	a0,268(s1)
-    80206258:	00000097          	auipc	ra,0x0
-    8020625c:	d16080e7          	jalr	-746(ra) # 80205f6e <read_fat>
-    80206260:	2501                	sext.w	a0,a0
-    80206262:	10a4a623          	sw	a0,268(s1)
+    80206214:	10c4a503          	lw	a0,268(s1)
+    80206218:	00000097          	auipc	ra,0x0
+    8020621c:	d16080e7          	jalr	-746(ra) # 80205f2e <read_fat>
+    80206220:	2501                	sext.w	a0,a0
+    80206222:	10a4a623          	sw	a0,268(s1)
             if (entry->cur_clus >= FAT32_EOC) {
-    80206266:	02a96c63          	bltu	s2,a0,8020629e <reloc_clus+0xf8>
+    80206226:	02a96c63          	bltu	s2,a0,8020625e <reloc_clus+0xf8>
                 panic("reloc_clus");
             }
             entry->clus_cnt++;
-    8020626a:	1104a783          	lw	a5,272(s1)
-    8020626e:	2785                	addiw	a5,a5,1
-    80206270:	0007871b          	sext.w	a4,a5
-    80206274:	10f4a823          	sw	a5,272(s1)
+    8020622a:	1104a783          	lw	a5,272(s1)
+    8020622e:	2785                	addiw	a5,a5,1
+    80206230:	0007871b          	sext.w	a4,a5
+    80206234:	10f4a823          	sw	a5,272(s1)
         while (entry->clus_cnt < clus_num) {
-    80206278:	fd376ee3          	bltu	a4,s3,80206254 <reloc_clus+0xae>
+    80206238:	fd376ee3          	bltu	a4,s3,80206214 <reloc_clus+0xae>
         }
     }
     return off % fat.byts_per_clus;
-    8020627c:	0002d797          	auipc	a5,0x2d
-    80206280:	9187a783          	lw	a5,-1768(a5) # 80232b94 <fat+0xc>
-    80206284:	02fa753b          	remuw	a0,s4,a5
+    8020623c:	0002d797          	auipc	a5,0x2d
+    80206240:	9587a783          	lw	a5,-1704(a5) # 80232b94 <fat+0xc>
+    80206244:	02fa753b          	remuw	a0,s4,a5
 }
-    80206288:	60a6                	ld	ra,72(sp)
-    8020628a:	6406                	ld	s0,64(sp)
-    8020628c:	74e2                	ld	s1,56(sp)
-    8020628e:	7942                	ld	s2,48(sp)
-    80206290:	79a2                	ld	s3,40(sp)
-    80206292:	7a02                	ld	s4,32(sp)
-    80206294:	6ae2                	ld	s5,24(sp)
-    80206296:	6b42                	ld	s6,16(sp)
-    80206298:	6ba2                	ld	s7,8(sp)
-    8020629a:	6161                	addi	sp,sp,80
-    8020629c:	8082                	ret
+    80206248:	60a6                	ld	ra,72(sp)
+    8020624a:	6406                	ld	s0,64(sp)
+    8020624c:	74e2                	ld	s1,56(sp)
+    8020624e:	7942                	ld	s2,48(sp)
+    80206250:	79a2                	ld	s3,40(sp)
+    80206252:	7a02                	ld	s4,32(sp)
+    80206254:	6ae2                	ld	s5,24(sp)
+    80206256:	6b42                	ld	s6,16(sp)
+    80206258:	6ba2                	ld	s7,8(sp)
+    8020625a:	6161                	addi	sp,sp,80
+    8020625c:	8082                	ret
                 panic("reloc_clus");
-    8020629e:	00005517          	auipc	a0,0x5
-    802062a2:	ad250513          	addi	a0,a0,-1326 # 8020ad70 <digits+0x9f0>
-    802062a6:	ffffa097          	auipc	ra,0xffffa
-    802062aa:	e9e080e7          	jalr	-354(ra) # 80200144 <panic>
+    8020625e:	00005517          	auipc	a0,0x5
+    80206262:	b0a50513          	addi	a0,a0,-1270 # 8020ad68 <digits+0x9e8>
+    80206266:	ffffa097          	auipc	ra,0xffffa
+    8020626a:	ede080e7          	jalr	-290(ra) # 80200144 <panic>
 
-00000000802062ae <rw_clus>:
+000000008020626e <rw_clus>:
 {
-    802062ae:	7119                	addi	sp,sp,-128
-    802062b0:	fc86                	sd	ra,120(sp)
-    802062b2:	f8a2                	sd	s0,112(sp)
-    802062b4:	f4a6                	sd	s1,104(sp)
-    802062b6:	f0ca                	sd	s2,96(sp)
-    802062b8:	ecce                	sd	s3,88(sp)
-    802062ba:	e8d2                	sd	s4,80(sp)
-    802062bc:	e4d6                	sd	s5,72(sp)
-    802062be:	e0da                	sd	s6,64(sp)
-    802062c0:	fc5e                	sd	s7,56(sp)
-    802062c2:	f862                	sd	s8,48(sp)
-    802062c4:	f466                	sd	s9,40(sp)
-    802062c6:	f06a                	sd	s10,32(sp)
-    802062c8:	ec6e                	sd	s11,24(sp)
-    802062ca:	0100                	addi	s0,sp,128
-    802062cc:	f8c43423          	sd	a2,-120(s0)
-    802062d0:	8b36                	mv	s6,a3
-    802062d2:	8c3e                	mv	s8,a5
+    8020626e:	7119                	addi	sp,sp,-128
+    80206270:	fc86                	sd	ra,120(sp)
+    80206272:	f8a2                	sd	s0,112(sp)
+    80206274:	f4a6                	sd	s1,104(sp)
+    80206276:	f0ca                	sd	s2,96(sp)
+    80206278:	ecce                	sd	s3,88(sp)
+    8020627a:	e8d2                	sd	s4,80(sp)
+    8020627c:	e4d6                	sd	s5,72(sp)
+    8020627e:	e0da                	sd	s6,64(sp)
+    80206280:	fc5e                	sd	s7,56(sp)
+    80206282:	f862                	sd	s8,48(sp)
+    80206284:	f466                	sd	s9,40(sp)
+    80206286:	f06a                	sd	s10,32(sp)
+    80206288:	ec6e                	sd	s11,24(sp)
+    8020628a:	0100                	addi	s0,sp,128
+    8020628c:	f8c43423          	sd	a2,-120(s0)
+    80206290:	8b36                	mv	s6,a3
+    80206292:	8c3e                	mv	s8,a5
     if (off + n > fat.byts_per_clus)
-    802062d4:	00f706bb          	addw	a3,a4,a5
-    802062d8:	0002d797          	auipc	a5,0x2d
-    802062dc:	8bc7a783          	lw	a5,-1860(a5) # 80232b94 <fat+0xc>
-    802062e0:	02d7ef63          	bltu	a5,a3,8020631e <rw_clus+0x70>
-    802062e4:	8cae                	mv	s9,a1
+    80206294:	00f706bb          	addw	a3,a4,a5
+    80206298:	0002d797          	auipc	a5,0x2d
+    8020629c:	8fc7a783          	lw	a5,-1796(a5) # 80232b94 <fat+0xc>
+    802062a0:	02d7ef63          	bltu	a5,a3,802062de <rw_clus+0x70>
+    802062a4:	8cae                	mv	s9,a1
     uint sec = first_sec_of_clus(cluster) + off / fat.bpb.byts_per_sec;
-    802062e6:	0002d797          	auipc	a5,0x2d
-    802062ea:	8a278793          	addi	a5,a5,-1886 # 80232b88 <fat>
-    802062ee:	0107d683          	lhu	a3,16(a5)
+    802062a6:	0002d797          	auipc	a5,0x2d
+    802062aa:	8e278793          	addi	a5,a5,-1822 # 80232b88 <fat>
+    802062ae:	0107d683          	lhu	a3,16(a5)
     return ((cluster - 2) * fat.bpb.sec_per_clus) + fat.first_data_sec;
-    802062f2:	ffe5099b          	addiw	s3,a0,-2
-    802062f6:	0127c603          	lbu	a2,18(a5)
-    802062fa:	02c989bb          	mulw	s3,s3,a2
-    802062fe:	439c                	lw	a5,0(a5)
-    80206300:	00f989bb          	addw	s3,s3,a5
+    802062b2:	ffe5099b          	addiw	s3,a0,-2
+    802062b6:	0127c603          	lbu	a2,18(a5)
+    802062ba:	02c989bb          	mulw	s3,s3,a2
+    802062be:	439c                	lw	a5,0(a5)
+    802062c0:	00f989bb          	addw	s3,s3,a5
     uint sec = first_sec_of_clus(cluster) + off / fat.bpb.byts_per_sec;
-    80206304:	02d757bb          	divuw	a5,a4,a3
-    80206308:	00f989bb          	addw	s3,s3,a5
+    802062c4:	02d757bb          	divuw	a5,a4,a3
+    802062c8:	00f989bb          	addw	s3,s3,a5
     off = off % fat.bpb.byts_per_sec;
-    8020630c:	02d77abb          	remuw	s5,a4,a3
+    802062cc:	02d77abb          	remuw	s5,a4,a3
     for (tot = 0; tot < n; tot += m, off += m, data += m, sec++) {
-    80206310:	0e0c0363          	beqz	s8,802063f6 <rw_clus+0x148>
-    80206314:	4a01                	li	s4,0
+    802062d0:	0e0c0363          	beqz	s8,802063b6 <rw_clus+0x148>
+    802062d4:	4a01                	li	s4,0
         m = BSIZE - off % BSIZE;
-    80206316:	20000d93          	li	s11,512
+    802062d6:	20000d93          	li	s11,512
         if (bad == -1) {
-    8020631a:	5d7d                	li	s10,-1
-    8020631c:	a095                	j	80206380 <rw_clus+0xd2>
+    802062da:	5d7d                	li	s10,-1
+    802062dc:	a095                	j	80206340 <rw_clus+0xd2>
         panic("offset out of range");
-    8020631e:	00005517          	auipc	a0,0x5
-    80206322:	a6250513          	addi	a0,a0,-1438 # 8020ad80 <digits+0xa00>
-    80206326:	ffffa097          	auipc	ra,0xffffa
-    8020632a:	e1e080e7          	jalr	-482(ra) # 80200144 <panic>
+    802062de:	00005517          	auipc	a0,0x5
+    802062e2:	a9a50513          	addi	a0,a0,-1382 # 8020ad78 <digits+0x9f8>
+    802062e6:	ffffa097          	auipc	ra,0xffffa
+    802062ea:	e5e080e7          	jalr	-418(ra) # 80200144 <panic>
                 bwrite(bp);
-    8020632e:	854a                	mv	a0,s2
-    80206330:	ffffe097          	auipc	ra,0xffffe
-    80206334:	986080e7          	jalr	-1658(ra) # 80203cb6 <bwrite>
+    802062ee:	854a                	mv	a0,s2
+    802062f0:	ffffe097          	auipc	ra,0xffffe
+    802062f4:	9ca080e7          	jalr	-1590(ra) # 80203cba <bwrite>
         brelse(bp);
-    80206338:	854a                	mv	a0,s2
-    8020633a:	ffffe097          	auipc	ra,0xffffe
-    8020633e:	9b8080e7          	jalr	-1608(ra) # 80203cf2 <brelse>
+    802062f8:	854a                	mv	a0,s2
+    802062fa:	ffffe097          	auipc	ra,0xffffe
+    802062fe:	9fc080e7          	jalr	-1540(ra) # 80203cf6 <brelse>
         if (bad == -1) {
-    80206342:	a02d                	j	8020636c <rw_clus+0xbe>
+    80206302:	a02d                	j	8020632c <rw_clus+0xbe>
             bad = either_copyout(user, data, bp->data + (off % BSIZE), m);
-    80206344:	05890613          	addi	a2,s2,88
-    80206348:	1682                	slli	a3,a3,0x20
-    8020634a:	9281                	srli	a3,a3,0x20
-    8020634c:	963a                	add	a2,a2,a4
-    8020634e:	85da                	mv	a1,s6
-    80206350:	f8843503          	ld	a0,-120(s0)
-    80206354:	ffffc097          	auipc	ra,0xffffc
-    80206358:	486080e7          	jalr	1158(ra) # 802027da <either_copyout>
-    8020635c:	8baa                	mv	s7,a0
+    80206304:	05890613          	addi	a2,s2,88
+    80206308:	1682                	slli	a3,a3,0x20
+    8020630a:	9281                	srli	a3,a3,0x20
+    8020630c:	963a                	add	a2,a2,a4
+    8020630e:	85da                	mv	a1,s6
+    80206310:	f8843503          	ld	a0,-120(s0)
+    80206314:	ffffc097          	auipc	ra,0xffffc
+    80206318:	4c0080e7          	jalr	1216(ra) # 802027d4 <either_copyout>
+    8020631c:	8baa                	mv	s7,a0
         brelse(bp);
-    8020635e:	854a                	mv	a0,s2
-    80206360:	ffffe097          	auipc	ra,0xffffe
-    80206364:	992080e7          	jalr	-1646(ra) # 80203cf2 <brelse>
+    8020631e:	854a                	mv	a0,s2
+    80206320:	ffffe097          	auipc	ra,0xffffe
+    80206324:	9d6080e7          	jalr	-1578(ra) # 80203cf6 <brelse>
         if (bad == -1) {
-    80206368:	07ab8763          	beq	s7,s10,802063d6 <rw_clus+0x128>
+    80206328:	07ab8763          	beq	s7,s10,80206396 <rw_clus+0x128>
     for (tot = 0; tot < n; tot += m, off += m, data += m, sec++) {
-    8020636c:	01448a3b          	addw	s4,s1,s4
-    80206370:	01548abb          	addw	s5,s1,s5
-    80206374:	1482                	slli	s1,s1,0x20
-    80206376:	9081                	srli	s1,s1,0x20
-    80206378:	9b26                	add	s6,s6,s1
-    8020637a:	2985                	addiw	s3,s3,1
-    8020637c:	058a7d63          	bgeu	s4,s8,802063d6 <rw_clus+0x128>
+    8020632c:	01448a3b          	addw	s4,s1,s4
+    80206330:	01548abb          	addw	s5,s1,s5
+    80206334:	1482                	slli	s1,s1,0x20
+    80206336:	9081                	srli	s1,s1,0x20
+    80206338:	9b26                	add	s6,s6,s1
+    8020633a:	2985                	addiw	s3,s3,1
+    8020633c:	058a7d63          	bgeu	s4,s8,80206396 <rw_clus+0x128>
         bp = bread(0, sec);
-    80206380:	85ce                	mv	a1,s3
-    80206382:	4501                	li	a0,0
-    80206384:	ffffe097          	auipc	ra,0xffffe
-    80206388:	842080e7          	jalr	-1982(ra) # 80203bc6 <bread>
-    8020638c:	892a                	mv	s2,a0
+    80206340:	85ce                	mv	a1,s3
+    80206342:	4501                	li	a0,0
+    80206344:	ffffe097          	auipc	ra,0xffffe
+    80206348:	886080e7          	jalr	-1914(ra) # 80203bca <bread>
+    8020634c:	892a                	mv	s2,a0
         m = BSIZE - off % BSIZE;
-    8020638e:	1ffaf713          	andi	a4,s5,511
+    8020634e:	1ffaf713          	andi	a4,s5,511
         if (n - tot < m) {
-    80206392:	414c07bb          	subw	a5,s8,s4
+    80206352:	414c07bb          	subw	a5,s8,s4
         m = BSIZE - off % BSIZE;
-    80206396:	40ed863b          	subw	a2,s11,a4
-    8020639a:	86be                	mv	a3,a5
-    8020639c:	2781                	sext.w	a5,a5
-    8020639e:	0006059b          	sext.w	a1,a2
-    802063a2:	00f5f363          	bgeu	a1,a5,802063a8 <rw_clus+0xfa>
-    802063a6:	86b2                	mv	a3,a2
-    802063a8:	0006849b          	sext.w	s1,a3
+    80206356:	40ed863b          	subw	a2,s11,a4
+    8020635a:	86be                	mv	a3,a5
+    8020635c:	2781                	sext.w	a5,a5
+    8020635e:	0006059b          	sext.w	a1,a2
+    80206362:	00f5f363          	bgeu	a1,a5,80206368 <rw_clus+0xfa>
+    80206366:	86b2                	mv	a3,a2
+    80206368:	0006849b          	sext.w	s1,a3
         if (write) {
-    802063ac:	f80c8ce3          	beqz	s9,80206344 <rw_clus+0x96>
+    8020636c:	f80c8ce3          	beqz	s9,80206304 <rw_clus+0x96>
             if ((bad = either_copyin(bp->data + (off % BSIZE), user, data, m)) != -1) {
-    802063b0:	05890513          	addi	a0,s2,88
-    802063b4:	1682                	slli	a3,a3,0x20
-    802063b6:	9281                	srli	a3,a3,0x20
-    802063b8:	865a                	mv	a2,s6
-    802063ba:	f8843583          	ld	a1,-120(s0)
-    802063be:	953a                	add	a0,a0,a4
-    802063c0:	ffffc097          	auipc	ra,0xffffc
-    802063c4:	450080e7          	jalr	1104(ra) # 80202810 <either_copyin>
-    802063c8:	f7a513e3          	bne	a0,s10,8020632e <rw_clus+0x80>
+    80206370:	05890513          	addi	a0,s2,88
+    80206374:	1682                	slli	a3,a3,0x20
+    80206376:	9281                	srli	a3,a3,0x20
+    80206378:	865a                	mv	a2,s6
+    8020637a:	f8843583          	ld	a1,-120(s0)
+    8020637e:	953a                	add	a0,a0,a4
+    80206380:	ffffc097          	auipc	ra,0xffffc
+    80206384:	48a080e7          	jalr	1162(ra) # 8020280a <either_copyin>
+    80206388:	f7a513e3          	bne	a0,s10,802062ee <rw_clus+0x80>
         brelse(bp);
-    802063cc:	854a                	mv	a0,s2
-    802063ce:	ffffe097          	auipc	ra,0xffffe
-    802063d2:	924080e7          	jalr	-1756(ra) # 80203cf2 <brelse>
+    8020638c:	854a                	mv	a0,s2
+    8020638e:	ffffe097          	auipc	ra,0xffffe
+    80206392:	968080e7          	jalr	-1688(ra) # 80203cf6 <brelse>
 }
-    802063d6:	8552                	mv	a0,s4
-    802063d8:	70e6                	ld	ra,120(sp)
-    802063da:	7446                	ld	s0,112(sp)
-    802063dc:	74a6                	ld	s1,104(sp)
-    802063de:	7906                	ld	s2,96(sp)
-    802063e0:	69e6                	ld	s3,88(sp)
-    802063e2:	6a46                	ld	s4,80(sp)
-    802063e4:	6aa6                	ld	s5,72(sp)
-    802063e6:	6b06                	ld	s6,64(sp)
-    802063e8:	7be2                	ld	s7,56(sp)
-    802063ea:	7c42                	ld	s8,48(sp)
-    802063ec:	7ca2                	ld	s9,40(sp)
-    802063ee:	7d02                	ld	s10,32(sp)
-    802063f0:	6de2                	ld	s11,24(sp)
-    802063f2:	6109                	addi	sp,sp,128
-    802063f4:	8082                	ret
+    80206396:	8552                	mv	a0,s4
+    80206398:	70e6                	ld	ra,120(sp)
+    8020639a:	7446                	ld	s0,112(sp)
+    8020639c:	74a6                	ld	s1,104(sp)
+    8020639e:	7906                	ld	s2,96(sp)
+    802063a0:	69e6                	ld	s3,88(sp)
+    802063a2:	6a46                	ld	s4,80(sp)
+    802063a4:	6aa6                	ld	s5,72(sp)
+    802063a6:	6b06                	ld	s6,64(sp)
+    802063a8:	7be2                	ld	s7,56(sp)
+    802063aa:	7c42                	ld	s8,48(sp)
+    802063ac:	7ca2                	ld	s9,40(sp)
+    802063ae:	7d02                	ld	s10,32(sp)
+    802063b0:	6de2                	ld	s11,24(sp)
+    802063b2:	6109                	addi	sp,sp,128
+    802063b4:	8082                	ret
     for (tot = 0; tot < n; tot += m, off += m, data += m, sec++) {
-    802063f6:	8a62                	mv	s4,s8
-    802063f8:	bff9                	j	802063d6 <rw_clus+0x128>
+    802063b6:	8a62                	mv	s4,s8
+    802063b8:	bff9                	j	80206396 <rw_clus+0x128>
 
-00000000802063fa <eget>:
+00000000802063ba <eget>:
 // by their whole path. But when parsing a path, we open all the directories through it, 
 // which forms a linked list from the final file to the root. Thus, we use the "parent" pointer 
 // to recognize whether an entry with the "name" as given is really the file we want in the right path.
 // Should never get root by eget, it's easy to understand.
 static struct dirent *eget(struct dirent *parent, char *name)
 {
-    802063fa:	7139                	addi	sp,sp,-64
-    802063fc:	fc06                	sd	ra,56(sp)
-    802063fe:	f822                	sd	s0,48(sp)
-    80206400:	f426                	sd	s1,40(sp)
-    80206402:	f04a                	sd	s2,32(sp)
-    80206404:	ec4e                	sd	s3,24(sp)
-    80206406:	e852                	sd	s4,16(sp)
-    80206408:	e456                	sd	s5,8(sp)
-    8020640a:	0080                	addi	s0,sp,64
-    8020640c:	8a2a                	mv	s4,a0
-    8020640e:	8aae                	mv	s5,a1
+    802063ba:	7139                	addi	sp,sp,-64
+    802063bc:	fc06                	sd	ra,56(sp)
+    802063be:	f822                	sd	s0,48(sp)
+    802063c0:	f426                	sd	s1,40(sp)
+    802063c2:	f04a                	sd	s2,32(sp)
+    802063c4:	ec4e                	sd	s3,24(sp)
+    802063c6:	e852                	sd	s4,16(sp)
+    802063c8:	e456                	sd	s5,8(sp)
+    802063ca:	0080                	addi	s0,sp,64
+    802063cc:	8a2a                	mv	s4,a0
+    802063ce:	8aae                	mv	s5,a1
     struct dirent *ep;
     acquire(&ecache.lock);
-    80206410:	0002d517          	auipc	a0,0x2d
-    80206414:	90850513          	addi	a0,a0,-1784 # 80232d18 <ecache>
-    80206418:	ffffa097          	auipc	ra,0xffffa
-    8020641c:	2ae080e7          	jalr	686(ra) # 802006c6 <acquire>
+    802063d0:	0002d517          	auipc	a0,0x2d
+    802063d4:	94850513          	addi	a0,a0,-1720 # 80232d18 <ecache>
+    802063d8:	ffffa097          	auipc	ra,0xffffa
+    802063dc:	2ee080e7          	jalr	750(ra) # 802006c6 <acquire>
     if (name) {
-    80206420:	060a8b63          	beqz	s5,80206496 <eget+0x9c>
+    802063e0:	060a8b63          	beqz	s5,80206456 <eget+0x9c>
         for (ep = root.next; ep != &root; ep = ep->next) {          // LRU algo
-    80206424:	0002d497          	auipc	s1,0x2d
-    80206428:	8b44b483          	ld	s1,-1868(s1) # 80232cd8 <root+0x128>
-    8020642c:	0002c797          	auipc	a5,0x2c
-    80206430:	78478793          	addi	a5,a5,1924 # 80232bb0 <root>
-    80206434:	06f48163          	beq	s1,a5,80206496 <eget+0x9c>
+    802063e4:	0002d497          	auipc	s1,0x2d
+    802063e8:	8f44b483          	ld	s1,-1804(s1) # 80232cd8 <root+0x128>
+    802063ec:	0002c797          	auipc	a5,0x2c
+    802063f0:	7c478793          	addi	a5,a5,1988 # 80232bb0 <root>
+    802063f4:	06f48163          	beq	s1,a5,80206456 <eget+0x9c>
             if (ep->valid == 1 && ep->parent == parent
-    80206438:	4905                	li	s2,1
+    802063f8:	4905                	li	s2,1
         for (ep = root.next; ep != &root; ep = ep->next) {          // LRU algo
-    8020643a:	89be                	mv	s3,a5
-    8020643c:	a029                	j	80206446 <eget+0x4c>
-    8020643e:	1284b483          	ld	s1,296(s1)
-    80206442:	05348a63          	beq	s1,s3,80206496 <eget+0x9c>
+    802063fa:	89be                	mv	s3,a5
+    802063fc:	a029                	j	80206406 <eget+0x4c>
+    802063fe:	1284b483          	ld	s1,296(s1)
+    80206402:	05348a63          	beq	s1,s3,80206456 <eget+0x9c>
             if (ep->valid == 1 && ep->parent == parent
-    80206446:	11649783          	lh	a5,278(s1)
-    8020644a:	ff279ae3          	bne	a5,s2,8020643e <eget+0x44>
-    8020644e:	1204b783          	ld	a5,288(s1)
-    80206452:	ff4796e3          	bne	a5,s4,8020643e <eget+0x44>
+    80206406:	11649783          	lh	a5,278(s1)
+    8020640a:	ff279ae3          	bne	a5,s2,802063fe <eget+0x44>
+    8020640e:	1204b783          	ld	a5,288(s1)
+    80206412:	ff4796e3          	bne	a5,s4,802063fe <eget+0x44>
                 && strncmp(ep->filename, name, FAT32_MAX_FILENAME) == 0) {
-    80206456:	0ff00613          	li	a2,255
-    8020645a:	85d6                	mv	a1,s5
-    8020645c:	8526                	mv	a0,s1
-    8020645e:	ffffa097          	auipc	ra,0xffffa
-    80206462:	3dc080e7          	jalr	988(ra) # 8020083a <strncmp>
-    80206466:	fd61                	bnez	a0,8020643e <eget+0x44>
+    80206416:	0ff00613          	li	a2,255
+    8020641a:	85d6                	mv	a1,s5
+    8020641c:	8526                	mv	a0,s1
+    8020641e:	ffffa097          	auipc	ra,0xffffa
+    80206422:	41c080e7          	jalr	1052(ra) # 8020083a <strncmp>
+    80206426:	fd61                	bnez	a0,802063fe <eget+0x44>
                 if (ep->ref++ == 0) {
-    80206468:	1184a783          	lw	a5,280(s1)
-    8020646c:	0017871b          	addiw	a4,a5,1
-    80206470:	10e4ac23          	sw	a4,280(s1)
-    80206474:	eb81                	bnez	a5,80206484 <eget+0x8a>
+    80206428:	1184a783          	lw	a5,280(s1)
+    8020642c:	0017871b          	addiw	a4,a5,1
+    80206430:	10e4ac23          	sw	a4,280(s1)
+    80206434:	eb81                	bnez	a5,80206444 <eget+0x8a>
                     ep->parent->ref++;
-    80206476:	1204b703          	ld	a4,288(s1)
-    8020647a:	11872783          	lw	a5,280(a4)
-    8020647e:	2785                	addiw	a5,a5,1
-    80206480:	10f72c23          	sw	a5,280(a4)
+    80206436:	1204b703          	ld	a4,288(s1)
+    8020643a:	11872783          	lw	a5,280(a4)
+    8020643e:	2785                	addiw	a5,a5,1
+    80206440:	10f72c23          	sw	a5,280(a4)
                 }
                 release(&ecache.lock);
-    80206484:	0002d517          	auipc	a0,0x2d
-    80206488:	89450513          	addi	a0,a0,-1900 # 80232d18 <ecache>
-    8020648c:	ffffa097          	auipc	ra,0xffffa
-    80206490:	28e080e7          	jalr	654(ra) # 8020071a <release>
+    80206444:	0002d517          	auipc	a0,0x2d
+    80206448:	8d450513          	addi	a0,a0,-1836 # 80232d18 <ecache>
+    8020644c:	ffffa097          	auipc	ra,0xffffa
+    80206450:	2ce080e7          	jalr	718(ra) # 8020071a <release>
                 // edup(ep->parent);
                 return ep;
-    80206494:	a085                	j	802064f4 <eget+0xfa>
+    80206454:	a085                	j	802064b4 <eget+0xfa>
             }
         }
     }
     for (ep = root.prev; ep != &root; ep = ep->prev) {              // LRU algo
-    80206496:	0002d497          	auipc	s1,0x2d
-    8020649a:	84a4b483          	ld	s1,-1974(s1) # 80232ce0 <root+0x130>
-    8020649e:	0002c797          	auipc	a5,0x2c
-    802064a2:	71278793          	addi	a5,a5,1810 # 80232bb0 <root>
-    802064a6:	00f48a63          	beq	s1,a5,802064ba <eget+0xc0>
-    802064aa:	873e                	mv	a4,a5
+    80206456:	0002d497          	auipc	s1,0x2d
+    8020645a:	88a4b483          	ld	s1,-1910(s1) # 80232ce0 <root+0x130>
+    8020645e:	0002c797          	auipc	a5,0x2c
+    80206462:	75278793          	addi	a5,a5,1874 # 80232bb0 <root>
+    80206466:	00f48a63          	beq	s1,a5,8020647a <eget+0xc0>
+    8020646a:	873e                	mv	a4,a5
         if (ep->ref == 0) {
-    802064ac:	1184a783          	lw	a5,280(s1)
-    802064b0:	cf89                	beqz	a5,802064ca <eget+0xd0>
+    8020646c:	1184a783          	lw	a5,280(s1)
+    80206470:	cf89                	beqz	a5,8020648a <eget+0xd0>
     for (ep = root.prev; ep != &root; ep = ep->prev) {              // LRU algo
-    802064b2:	1304b483          	ld	s1,304(s1)
-    802064b6:	fee49be3          	bne	s1,a4,802064ac <eget+0xb2>
+    80206472:	1304b483          	ld	s1,304(s1)
+    80206476:	fee49be3          	bne	s1,a4,8020646c <eget+0xb2>
             ep->dirty = 0;
             release(&ecache.lock);
             return ep;
         }
     }
     panic("eget: insufficient ecache");
-    802064ba:	00005517          	auipc	a0,0x5
-    802064be:	8de50513          	addi	a0,a0,-1826 # 8020ad98 <digits+0xa18>
-    802064c2:	ffffa097          	auipc	ra,0xffffa
-    802064c6:	c82080e7          	jalr	-894(ra) # 80200144 <panic>
+    8020647a:	00005517          	auipc	a0,0x5
+    8020647e:	91650513          	addi	a0,a0,-1770 # 8020ad90 <digits+0xa10>
+    80206482:	ffffa097          	auipc	ra,0xffffa
+    80206486:	cc2080e7          	jalr	-830(ra) # 80200144 <panic>
             ep->ref = 1;
-    802064ca:	4785                	li	a5,1
-    802064cc:	10f4ac23          	sw	a5,280(s1)
+    8020648a:	4785                	li	a5,1
+    8020648c:	10f4ac23          	sw	a5,280(s1)
             ep->dev = parent->dev;
-    802064d0:	114a4783          	lbu	a5,276(s4)
-    802064d4:	10f48a23          	sb	a5,276(s1)
+    80206490:	114a4783          	lbu	a5,276(s4)
+    80206494:	10f48a23          	sb	a5,276(s1)
             ep->off = 0;
-    802064d8:	1004ae23          	sw	zero,284(s1)
+    80206498:	1004ae23          	sw	zero,284(s1)
             ep->valid = 0;
-    802064dc:	10049b23          	sh	zero,278(s1)
+    8020649c:	10049b23          	sh	zero,278(s1)
             ep->dirty = 0;
-    802064e0:	10048aa3          	sb	zero,277(s1)
+    802064a0:	10048aa3          	sb	zero,277(s1)
             release(&ecache.lock);
-    802064e4:	0002d517          	auipc	a0,0x2d
-    802064e8:	83450513          	addi	a0,a0,-1996 # 80232d18 <ecache>
-    802064ec:	ffffa097          	auipc	ra,0xffffa
-    802064f0:	22e080e7          	jalr	558(ra) # 8020071a <release>
+    802064a4:	0002d517          	auipc	a0,0x2d
+    802064a8:	87450513          	addi	a0,a0,-1932 # 80232d18 <ecache>
+    802064ac:	ffffa097          	auipc	ra,0xffffa
+    802064b0:	26e080e7          	jalr	622(ra) # 8020071a <release>
     return 0;
 }
-    802064f4:	8526                	mv	a0,s1
-    802064f6:	70e2                	ld	ra,56(sp)
-    802064f8:	7442                	ld	s0,48(sp)
-    802064fa:	74a2                	ld	s1,40(sp)
-    802064fc:	7902                	ld	s2,32(sp)
-    802064fe:	69e2                	ld	s3,24(sp)
-    80206500:	6a42                	ld	s4,16(sp)
-    80206502:	6aa2                	ld	s5,8(sp)
-    80206504:	6121                	addi	sp,sp,64
-    80206506:	8082                	ret
-
-0000000080206508 <read_entry_name>:
+    802064b4:	8526                	mv	a0,s1
+    802064b6:	70e2                	ld	ra,56(sp)
+    802064b8:	7442                	ld	s0,48(sp)
+    802064ba:	74a2                	ld	s1,40(sp)
+    802064bc:	7902                	ld	s2,32(sp)
+    802064be:	69e2                	ld	s3,24(sp)
+    802064c0:	6a42                	ld	s4,16(sp)
+    802064c2:	6aa2                	ld	s5,8(sp)
+    802064c4:	6121                	addi	sp,sp,64
+    802064c6:	8082                	ret
+
+00000000802064c8 <read_entry_name>:
  * @param   buffer      pointer to the array that stores the name
  * @param   raw_entry   pointer to the entry in a sector buffer
  * @param   islong      if non-zero, read as l-n-e, otherwise s-n-e.
  */
 static void read_entry_name(char *buffer, union dentry *d)
 {
-    80206508:	7139                	addi	sp,sp,-64
-    8020650a:	fc06                	sd	ra,56(sp)
-    8020650c:	f822                	sd	s0,48(sp)
-    8020650e:	f426                	sd	s1,40(sp)
-    80206510:	f04a                	sd	s2,32(sp)
-    80206512:	ec4e                	sd	s3,24(sp)
-    80206514:	0080                	addi	s0,sp,64
-    80206516:	84aa                	mv	s1,a0
-    80206518:	892e                	mv	s2,a1
+    802064c8:	7139                	addi	sp,sp,-64
+    802064ca:	fc06                	sd	ra,56(sp)
+    802064cc:	f822                	sd	s0,48(sp)
+    802064ce:	f426                	sd	s1,40(sp)
+    802064d0:	f04a                	sd	s2,32(sp)
+    802064d2:	ec4e                	sd	s3,24(sp)
+    802064d4:	0080                	addi	s0,sp,64
+    802064d6:	84aa                	mv	s1,a0
+    802064d8:	892e                	mv	s2,a1
     if (d->lne.attr == ATTR_LONG_NAME) {                       // long entry branch
-    8020651a:	00b5c703          	lbu	a4,11(a1)
-    8020651e:	47bd                	li	a5,15
-    80206520:	08f70563          	beq	a4,a5,802065aa <read_entry_name+0xa2>
+    802064da:	00b5c703          	lbu	a4,11(a1)
+    802064de:	47bd                	li	a5,15
+    802064e0:	08f70563          	beq	a4,a5,8020656a <read_entry_name+0xa2>
         snstr(buffer, d->lne.name2, NELEM(d->lne.name2));
         buffer += NELEM(d->lne.name2);
         snstr(buffer, d->lne.name3, NELEM(d->lne.name3));
     } else {
         // assert: only "." and ".." will enter this branch
         memset(buffer, 0, CHAR_SHORT_NAME + 2); // plus '.' and '\0'
-    80206524:	4635                	li	a2,13
-    80206526:	4581                	li	a1,0
-    80206528:	ffffa097          	auipc	ra,0xffffa
-    8020652c:	23a080e7          	jalr	570(ra) # 80200762 <memset>
+    802064e4:	4635                	li	a2,13
+    802064e6:	4581                	li	a1,0
+    802064e8:	ffffa097          	auipc	ra,0xffffa
+    802064ec:	27a080e7          	jalr	634(ra) # 80200762 <memset>
         int i;
         for (i = 0; d->sne.name[i] != ' ' && i < 8; i++) {
-    80206530:	00094703          	lbu	a4,0(s2)
-    80206534:	02000793          	li	a5,32
-    80206538:	0af70c63          	beq	a4,a5,802065f0 <read_entry_name+0xe8>
-    8020653c:	4785                	li	a5,1
-    8020653e:	02000613          	li	a2,32
-    80206542:	45a5                	li	a1,9
+    802064f0:	00094703          	lbu	a4,0(s2)
+    802064f4:	02000793          	li	a5,32
+    802064f8:	0af70c63          	beq	a4,a5,802065b0 <read_entry_name+0xe8>
+    802064fc:	4785                	li	a5,1
+    802064fe:	02000613          	li	a2,32
+    80206502:	45a5                	li	a1,9
             buffer[i] = d->sne.name[i];
-    80206544:	00f486b3          	add	a3,s1,a5
-    80206548:	fee68fa3          	sb	a4,-1(a3)
+    80206504:	00f486b3          	add	a3,s1,a5
+    80206508:	fee68fa3          	sb	a4,-1(a3)
         for (i = 0; d->sne.name[i] != ' ' && i < 8; i++) {
-    8020654c:	0007869b          	sext.w	a3,a5
-    80206550:	00f90733          	add	a4,s2,a5
-    80206554:	00074703          	lbu	a4,0(a4)
-    80206558:	00c70563          	beq	a4,a2,80206562 <read_entry_name+0x5a>
-    8020655c:	0785                	addi	a5,a5,1
-    8020655e:	feb793e3          	bne	a5,a1,80206544 <read_entry_name+0x3c>
+    8020650c:	0007869b          	sext.w	a3,a5
+    80206510:	00f90733          	add	a4,s2,a5
+    80206514:	00074703          	lbu	a4,0(a4)
+    80206518:	00c70563          	beq	a4,a2,80206522 <read_entry_name+0x5a>
+    8020651c:	0785                	addi	a5,a5,1
+    8020651e:	feb793e3          	bne	a5,a1,80206504 <read_entry_name+0x3c>
         }
         if (d->sne.name[8] != ' ') {
-    80206562:	00894703          	lbu	a4,8(s2)
-    80206566:	02000793          	li	a5,32
-    8020656a:	00f70963          	beq	a4,a5,8020657c <read_entry_name+0x74>
+    80206522:	00894703          	lbu	a4,8(s2)
+    80206526:	02000793          	li	a5,32
+    8020652a:	00f70963          	beq	a4,a5,8020653c <read_entry_name+0x74>
             buffer[i++] = '.';
-    8020656e:	00d487b3          	add	a5,s1,a3
-    80206572:	02e00713          	li	a4,46
-    80206576:	00e78023          	sb	a4,0(a5)
-    8020657a:	2685                	addiw	a3,a3,1
+    8020652e:	00d487b3          	add	a5,s1,a3
+    80206532:	02e00713          	li	a4,46
+    80206536:	00e78023          	sb	a4,0(a5)
+    8020653a:	2685                	addiw	a3,a3,1
         }
         for (int j = 8; j < CHAR_SHORT_NAME; j++, i++) {
-    8020657c:	00890793          	addi	a5,s2,8
-    80206580:	94b6                	add	s1,s1,a3
-    80206582:	092d                	addi	s2,s2,11
+    8020653c:	00890793          	addi	a5,s2,8
+    80206540:	94b6                	add	s1,s1,a3
+    80206542:	092d                	addi	s2,s2,11
             if (d->sne.name[j] == ' ') { break; }
-    80206584:	02000693          	li	a3,32
-    80206588:	0007c703          	lbu	a4,0(a5)
-    8020658c:	00d70863          	beq	a4,a3,8020659c <read_entry_name+0x94>
+    80206544:	02000693          	li	a3,32
+    80206548:	0007c703          	lbu	a4,0(a5)
+    8020654c:	00d70863          	beq	a4,a3,8020655c <read_entry_name+0x94>
             buffer[i] = d->sne.name[j];
-    80206590:	00e48023          	sb	a4,0(s1)
+    80206550:	00e48023          	sb	a4,0(s1)
         for (int j = 8; j < CHAR_SHORT_NAME; j++, i++) {
-    80206594:	0785                	addi	a5,a5,1
-    80206596:	0485                	addi	s1,s1,1
-    80206598:	ff2798e3          	bne	a5,s2,80206588 <read_entry_name+0x80>
+    80206554:	0785                	addi	a5,a5,1
+    80206556:	0485                	addi	s1,s1,1
+    80206558:	ff2798e3          	bne	a5,s2,80206548 <read_entry_name+0x80>
         }
     }
 }
-    8020659c:	70e2                	ld	ra,56(sp)
-    8020659e:	7442                	ld	s0,48(sp)
-    802065a0:	74a2                	ld	s1,40(sp)
-    802065a2:	7902                	ld	s2,32(sp)
-    802065a4:	69e2                	ld	s3,24(sp)
-    802065a6:	6121                	addi	sp,sp,64
-    802065a8:	8082                	ret
+    8020655c:	70e2                	ld	ra,56(sp)
+    8020655e:	7442                	ld	s0,48(sp)
+    80206560:	74a2                	ld	s1,40(sp)
+    80206562:	7902                	ld	s2,32(sp)
+    80206564:	69e2                	ld	s3,24(sp)
+    80206566:	6121                	addi	sp,sp,64
+    80206568:	8082                	ret
         memmove(temp, d->lne.name1, sizeof(temp));
-    802065aa:	4629                	li	a2,10
-    802065ac:	0585                	addi	a1,a1,1
-    802065ae:	fc040993          	addi	s3,s0,-64
-    802065b2:	854e                	mv	a0,s3
-    802065b4:	ffffa097          	auipc	ra,0xffffa
-    802065b8:	20a080e7          	jalr	522(ra) # 802007be <memmove>
+    8020656a:	4629                	li	a2,10
+    8020656c:	0585                	addi	a1,a1,1
+    8020656e:	fc040993          	addi	s3,s0,-64
+    80206572:	854e                	mv	a0,s3
+    80206574:	ffffa097          	auipc	ra,0xffffa
+    80206578:	24a080e7          	jalr	586(ra) # 802007be <memmove>
         snstr(buffer, temp, NELEM(d->lne.name1));
-    802065bc:	4615                	li	a2,5
-    802065be:	85ce                	mv	a1,s3
-    802065c0:	8526                	mv	a0,s1
-    802065c2:	ffffa097          	auipc	ra,0xffffa
-    802065c6:	380080e7          	jalr	896(ra) # 80200942 <snstr>
+    8020657c:	4615                	li	a2,5
+    8020657e:	85ce                	mv	a1,s3
+    80206580:	8526                	mv	a0,s1
+    80206582:	ffffa097          	auipc	ra,0xffffa
+    80206586:	3c0080e7          	jalr	960(ra) # 80200942 <snstr>
         snstr(buffer, d->lne.name2, NELEM(d->lne.name2));
-    802065ca:	4619                	li	a2,6
-    802065cc:	00e90593          	addi	a1,s2,14
-    802065d0:	00548513          	addi	a0,s1,5
-    802065d4:	ffffa097          	auipc	ra,0xffffa
-    802065d8:	36e080e7          	jalr	878(ra) # 80200942 <snstr>
+    8020658a:	4619                	li	a2,6
+    8020658c:	00e90593          	addi	a1,s2,14
+    80206590:	00548513          	addi	a0,s1,5
+    80206594:	ffffa097          	auipc	ra,0xffffa
+    80206598:	3ae080e7          	jalr	942(ra) # 80200942 <snstr>
         snstr(buffer, d->lne.name3, NELEM(d->lne.name3));
-    802065dc:	4609                	li	a2,2
-    802065de:	01c90593          	addi	a1,s2,28
-    802065e2:	00b48513          	addi	a0,s1,11
-    802065e6:	ffffa097          	auipc	ra,0xffffa
-    802065ea:	35c080e7          	jalr	860(ra) # 80200942 <snstr>
-    802065ee:	b77d                	j	8020659c <read_entry_name+0x94>
+    8020659c:	4609                	li	a2,2
+    8020659e:	01c90593          	addi	a1,s2,28
+    802065a2:	00b48513          	addi	a0,s1,11
+    802065a6:	ffffa097          	auipc	ra,0xffffa
+    802065aa:	39c080e7          	jalr	924(ra) # 80200942 <snstr>
+    802065ae:	b77d                	j	8020655c <read_entry_name+0x94>
         for (i = 0; d->sne.name[i] != ' ' && i < 8; i++) {
-    802065f0:	4681                	li	a3,0
-    802065f2:	bf85                	j	80206562 <read_entry_name+0x5a>
+    802065b0:	4681                	li	a3,0
+    802065b2:	bf85                	j	80206522 <read_entry_name+0x5a>
 
-00000000802065f4 <fat32_init>:
+00000000802065b4 <fat32_init>:
 {
-    802065f4:	7139                	addi	sp,sp,-64
-    802065f6:	fc06                	sd	ra,56(sp)
-    802065f8:	f822                	sd	s0,48(sp)
-    802065fa:	f426                	sd	s1,40(sp)
-    802065fc:	f04a                	sd	s2,32(sp)
-    802065fe:	ec4e                	sd	s3,24(sp)
-    80206600:	e852                	sd	s4,16(sp)
-    80206602:	e456                	sd	s5,8(sp)
-    80206604:	0080                	addi	s0,sp,64
+    802065b4:	7139                	addi	sp,sp,-64
+    802065b6:	fc06                	sd	ra,56(sp)
+    802065b8:	f822                	sd	s0,48(sp)
+    802065ba:	f426                	sd	s1,40(sp)
+    802065bc:	f04a                	sd	s2,32(sp)
+    802065be:	ec4e                	sd	s3,24(sp)
+    802065c0:	e852                	sd	s4,16(sp)
+    802065c2:	e456                	sd	s5,8(sp)
+    802065c4:	0080                	addi	s0,sp,64
     struct buf *b = bread(0, 0);
-    80206606:	4581                	li	a1,0
-    80206608:	4501                	li	a0,0
-    8020660a:	ffffd097          	auipc	ra,0xffffd
-    8020660e:	5bc080e7          	jalr	1468(ra) # 80203bc6 <bread>
-    80206612:	892a                	mv	s2,a0
+    802065c6:	4581                	li	a1,0
+    802065c8:	4501                	li	a0,0
+    802065ca:	ffffd097          	auipc	ra,0xffffd
+    802065ce:	600080e7          	jalr	1536(ra) # 80203bca <bread>
+    802065d2:	892a                	mv	s2,a0
     if (strncmp((char const*)(b->data + 82), "FAT32", 5))
-    80206614:	4615                	li	a2,5
-    80206616:	00004597          	auipc	a1,0x4
-    8020661a:	7a258593          	addi	a1,a1,1954 # 8020adb8 <digits+0xa38>
-    8020661e:	0aa50513          	addi	a0,a0,170
-    80206622:	ffffa097          	auipc	ra,0xffffa
-    80206626:	218080e7          	jalr	536(ra) # 8020083a <strncmp>
-    8020662a:	16051863          	bnez	a0,8020679a <fat32_init+0x1a6>
+    802065d4:	4615                	li	a2,5
+    802065d6:	00004597          	auipc	a1,0x4
+    802065da:	7da58593          	addi	a1,a1,2010 # 8020adb0 <digits+0xa30>
+    802065de:	0aa50513          	addi	a0,a0,170
+    802065e2:	ffffa097          	auipc	ra,0xffffa
+    802065e6:	258080e7          	jalr	600(ra) # 8020083a <strncmp>
+    802065ea:	16051863          	bnez	a0,8020675a <fat32_init+0x1a6>
     memmove(&fat.bpb.byts_per_sec, b->data + 11, 2);            // avoid misaligned load on k210
-    8020662e:	0002c497          	auipc	s1,0x2c
-    80206632:	55a48493          	addi	s1,s1,1370 # 80232b88 <fat>
-    80206636:	4609                	li	a2,2
-    80206638:	06390593          	addi	a1,s2,99
-    8020663c:	0002c517          	auipc	a0,0x2c
-    80206640:	55c50513          	addi	a0,a0,1372 # 80232b98 <fat+0x10>
-    80206644:	ffffa097          	auipc	ra,0xffffa
-    80206648:	17a080e7          	jalr	378(ra) # 802007be <memmove>
+    802065ee:	0002c497          	auipc	s1,0x2c
+    802065f2:	59a48493          	addi	s1,s1,1434 # 80232b88 <fat>
+    802065f6:	4609                	li	a2,2
+    802065f8:	06390593          	addi	a1,s2,99
+    802065fc:	0002c517          	auipc	a0,0x2c
+    80206600:	59c50513          	addi	a0,a0,1436 # 80232b98 <fat+0x10>
+    80206604:	ffffa097          	auipc	ra,0xffffa
+    80206608:	1ba080e7          	jalr	442(ra) # 802007be <memmove>
     fat.bpb.sec_per_clus = *(b->data + 13);
-    8020664c:	06594683          	lbu	a3,101(s2)
-    80206650:	00d48923          	sb	a3,18(s1)
+    8020660c:	06594683          	lbu	a3,101(s2)
+    80206610:	00d48923          	sb	a3,18(s1)
     fat.bpb.rsvd_sec_cnt = *(uint16 *)(b->data + 14);
-    80206654:	06695603          	lhu	a2,102(s2)
-    80206658:	00c49a23          	sh	a2,20(s1)
+    80206614:	06695603          	lhu	a2,102(s2)
+    80206618:	00c49a23          	sh	a2,20(s1)
     fat.bpb.fat_cnt = *(b->data + 16);
-    8020665c:	06894703          	lbu	a4,104(s2)
-    80206660:	00e48b23          	sb	a4,22(s1)
+    8020661c:	06894703          	lbu	a4,104(s2)
+    80206620:	00e48b23          	sb	a4,22(s1)
     fat.bpb.hidd_sec = *(uint32 *)(b->data + 28);
-    80206664:	07492783          	lw	a5,116(s2)
-    80206668:	cc9c                	sw	a5,24(s1)
+    80206624:	07492783          	lw	a5,116(s2)
+    80206628:	cc9c                	sw	a5,24(s1)
     fat.bpb.tot_sec = *(uint32 *)(b->data + 32);
-    8020666a:	07892783          	lw	a5,120(s2)
-    8020666e:	ccdc                	sw	a5,28(s1)
+    8020662a:	07892783          	lw	a5,120(s2)
+    8020662e:	ccdc                	sw	a5,28(s1)
     fat.bpb.fat_sz = *(uint32 *)(b->data + 36);
-    80206670:	07c92583          	lw	a1,124(s2)
-    80206674:	d08c                	sw	a1,32(s1)
+    80206630:	07c92583          	lw	a1,124(s2)
+    80206634:	d08c                	sw	a1,32(s1)
     fat.bpb.root_clus = *(uint32 *)(b->data + 44);
-    80206676:	08492503          	lw	a0,132(s2)
-    8020667a:	d0c8                	sw	a0,36(s1)
+    80206636:	08492503          	lw	a0,132(s2)
+    8020663a:	d0c8                	sw	a0,36(s1)
     fat.first_data_sec = fat.bpb.rsvd_sec_cnt + fat.bpb.fat_cnt * fat.bpb.fat_sz;
-    8020667c:	02b7073b          	mulw	a4,a4,a1
-    80206680:	9f31                	addw	a4,a4,a2
-    80206682:	c098                	sw	a4,0(s1)
+    8020663c:	02b7073b          	mulw	a4,a4,a1
+    80206640:	9f31                	addw	a4,a4,a2
+    80206642:	c098                	sw	a4,0(s1)
     fat.data_sec_cnt = fat.bpb.tot_sec - fat.first_data_sec;
-    80206684:	9f99                	subw	a5,a5,a4
-    80206686:	c0dc                	sw	a5,4(s1)
+    80206644:	9f99                	subw	a5,a5,a4
+    80206646:	c0dc                	sw	a5,4(s1)
     fat.data_clus_cnt = fat.data_sec_cnt / fat.bpb.sec_per_clus;
-    80206688:	02d7d7bb          	divuw	a5,a5,a3
-    8020668c:	c49c                	sw	a5,8(s1)
+    80206648:	02d7d7bb          	divuw	a5,a5,a3
+    8020664c:	c49c                	sw	a5,8(s1)
     fat.byts_per_clus = fat.bpb.sec_per_clus * fat.bpb.byts_per_sec;
-    8020668e:	0104d783          	lhu	a5,16(s1)
-    80206692:	02d787bb          	mulw	a5,a5,a3
-    80206696:	c4dc                	sw	a5,12(s1)
+    8020664e:	0104d783          	lhu	a5,16(s1)
+    80206652:	02d787bb          	mulw	a5,a5,a3
+    80206656:	c4dc                	sw	a5,12(s1)
     brelse(b);
-    80206698:	854a                	mv	a0,s2
-    8020669a:	ffffd097          	auipc	ra,0xffffd
-    8020669e:	658080e7          	jalr	1624(ra) # 80203cf2 <brelse>
+    80206658:	854a                	mv	a0,s2
+    8020665a:	ffffd097          	auipc	ra,0xffffd
+    8020665e:	69c080e7          	jalr	1692(ra) # 80203cf6 <brelse>
     if (BSIZE != fat.bpb.byts_per_sec) 
-    802066a2:	0104d703          	lhu	a4,16(s1)
-    802066a6:	20000793          	li	a5,512
-    802066aa:	10f71063          	bne	a4,a5,802067aa <fat32_init+0x1b6>
+    80206662:	0104d703          	lhu	a4,16(s1)
+    80206666:	20000793          	li	a5,512
+    8020666a:	10f71063          	bne	a4,a5,8020676a <fat32_init+0x1b6>
     initlock(&ecache.lock, "ecache");
-    802066ae:	00004597          	auipc	a1,0x4
-    802066b2:	74258593          	addi	a1,a1,1858 # 8020adf0 <digits+0xa70>
-    802066b6:	0002c517          	auipc	a0,0x2c
-    802066ba:	66250513          	addi	a0,a0,1634 # 80232d18 <ecache>
-    802066be:	ffffa097          	auipc	ra,0xffffa
-    802066c2:	fc4080e7          	jalr	-60(ra) # 80200682 <initlock>
+    8020666e:	00004597          	auipc	a1,0x4
+    80206672:	77a58593          	addi	a1,a1,1914 # 8020ade8 <digits+0xa68>
+    80206676:	0002c517          	auipc	a0,0x2c
+    8020667a:	6a250513          	addi	a0,a0,1698 # 80232d18 <ecache>
+    8020667e:	ffffa097          	auipc	ra,0xffffa
+    80206682:	004080e7          	jalr	4(ra) # 80200682 <initlock>
     memset(&root, 0, sizeof(root));
-    802066c6:	0002c497          	auipc	s1,0x2c
-    802066ca:	4c248493          	addi	s1,s1,1218 # 80232b88 <fat>
-    802066ce:	0002c917          	auipc	s2,0x2c
-    802066d2:	4e290913          	addi	s2,s2,1250 # 80232bb0 <root>
-    802066d6:	16800613          	li	a2,360
-    802066da:	4581                	li	a1,0
-    802066dc:	854a                	mv	a0,s2
-    802066de:	ffffa097          	auipc	ra,0xffffa
-    802066e2:	084080e7          	jalr	132(ra) # 80200762 <memset>
+    80206686:	0002c497          	auipc	s1,0x2c
+    8020668a:	50248493          	addi	s1,s1,1282 # 80232b88 <fat>
+    8020668e:	0002c917          	auipc	s2,0x2c
+    80206692:	52290913          	addi	s2,s2,1314 # 80232bb0 <root>
+    80206696:	16800613          	li	a2,360
+    8020669a:	4581                	li	a1,0
+    8020669c:	854a                	mv	a0,s2
+    8020669e:	ffffa097          	auipc	ra,0xffffa
+    802066a2:	0c4080e7          	jalr	196(ra) # 80200762 <memset>
     initsleeplock(&root.lock, "entry");
-    802066e6:	00004597          	auipc	a1,0x4
-    802066ea:	71258593          	addi	a1,a1,1810 # 8020adf8 <digits+0xa78>
-    802066ee:	0002c517          	auipc	a0,0x2c
-    802066f2:	5fa50513          	addi	a0,a0,1530 # 80232ce8 <root+0x138>
-    802066f6:	ffffd097          	auipc	ra,0xffffd
-    802066fa:	712080e7          	jalr	1810(ra) # 80203e08 <initsleeplock>
+    802066a6:	00004597          	auipc	a1,0x4
+    802066aa:	74a58593          	addi	a1,a1,1866 # 8020adf0 <digits+0xa70>
+    802066ae:	0002c517          	auipc	a0,0x2c
+    802066b2:	63a50513          	addi	a0,a0,1594 # 80232ce8 <root+0x138>
+    802066b6:	ffffd097          	auipc	ra,0xffffd
+    802066ba:	756080e7          	jalr	1878(ra) # 80203e0c <initsleeplock>
     root.attribute = (ATTR_DIRECTORY | ATTR_SYSTEM);
-    802066fe:	47d1                	li	a5,20
-    80206700:	12f48423          	sb	a5,296(s1)
+    802066be:	47d1                	li	a5,20
+    802066c0:	12f48423          	sb	a5,296(s1)
     root.first_clus = root.cur_clus = fat.bpb.root_clus;
-    80206704:	50dc                	lw	a5,36(s1)
-    80206706:	12f4aa23          	sw	a5,308(s1)
-    8020670a:	12f4a623          	sw	a5,300(s1)
+    802066c4:	50dc                	lw	a5,36(s1)
+    802066c6:	12f4aa23          	sw	a5,308(s1)
+    802066ca:	12f4a623          	sw	a5,300(s1)
     root.valid = 1;
-    8020670e:	4785                	li	a5,1
-    80206710:	12f49f23          	sh	a5,318(s1)
+    802066ce:	4785                	li	a5,1
+    802066d0:	12f49f23          	sh	a5,318(s1)
     root.prev = &root;
-    80206714:	1524bc23          	sd	s2,344(s1)
+    802066d4:	1524bc23          	sd	s2,344(s1)
     root.next = &root;
-    80206718:	1524b823          	sd	s2,336(s1)
+    802066d8:	1524b823          	sd	s2,336(s1)
     for(struct dirent *de = ecache.entries; de < ecache.entries + ENTRY_CACHE_NUM; de++) {
-    8020671c:	0002c497          	auipc	s1,0x2c
-    80206720:	61448493          	addi	s1,s1,1556 # 80232d30 <ecache+0x18>
+    802066dc:	0002c497          	auipc	s1,0x2c
+    802066e0:	65448493          	addi	s1,s1,1620 # 80232d30 <ecache+0x18>
         de->next = root.next;
-    80206724:	0002c917          	auipc	s2,0x2c
-    80206728:	46490913          	addi	s2,s2,1124 # 80232b88 <fat>
+    802066e4:	0002c917          	auipc	s2,0x2c
+    802066e8:	4a490913          	addi	s2,s2,1188 # 80232b88 <fat>
         de->prev = &root;
-    8020672c:	0002ca97          	auipc	s5,0x2c
-    80206730:	484a8a93          	addi	s5,s5,1156 # 80232bb0 <root>
+    802066ec:	0002ca97          	auipc	s5,0x2c
+    802066f0:	4c4a8a93          	addi	s5,s5,1220 # 80232bb0 <root>
         initsleeplock(&de->lock, "entry");
-    80206734:	00004a17          	auipc	s4,0x4
-    80206738:	6c4a0a13          	addi	s4,s4,1732 # 8020adf8 <digits+0xa78>
+    802066f4:	00004a17          	auipc	s4,0x4
+    802066f8:	6fca0a13          	addi	s4,s4,1788 # 8020adf0 <digits+0xa70>
     for(struct dirent *de = ecache.entries; de < ecache.entries + ENTRY_CACHE_NUM; de++) {
-    8020673c:	00031997          	auipc	s3,0x31
-    80206740:	c4498993          	addi	s3,s3,-956 # 80237380 <cons>
+    802066fc:	00031997          	auipc	s3,0x31
+    80206700:	c8498993          	addi	s3,s3,-892 # 80237380 <cons>
         de->dev = 0;
-    80206744:	10048a23          	sb	zero,276(s1)
+    80206704:	10048a23          	sb	zero,276(s1)
         de->valid = 0;
-    80206748:	10049b23          	sh	zero,278(s1)
+    80206708:	10049b23          	sh	zero,278(s1)
         de->ref = 0;
-    8020674c:	1004ac23          	sw	zero,280(s1)
+    8020670c:	1004ac23          	sw	zero,280(s1)
         de->dirty = 0;
-    80206750:	10048aa3          	sb	zero,277(s1)
+    80206710:	10048aa3          	sb	zero,277(s1)
         de->parent = 0;
-    80206754:	1204b023          	sd	zero,288(s1)
+    80206714:	1204b023          	sd	zero,288(s1)
         de->next = root.next;
-    80206758:	15093783          	ld	a5,336(s2)
-    8020675c:	12f4b423          	sd	a5,296(s1)
+    80206718:	15093783          	ld	a5,336(s2)
+    8020671c:	12f4b423          	sd	a5,296(s1)
         de->prev = &root;
-    80206760:	1354b823          	sd	s5,304(s1)
+    80206720:	1354b823          	sd	s5,304(s1)
         initsleeplock(&de->lock, "entry");
-    80206764:	85d2                	mv	a1,s4
-    80206766:	13848513          	addi	a0,s1,312
-    8020676a:	ffffd097          	auipc	ra,0xffffd
-    8020676e:	69e080e7          	jalr	1694(ra) # 80203e08 <initsleeplock>
+    80206724:	85d2                	mv	a1,s4
+    80206726:	13848513          	addi	a0,s1,312
+    8020672a:	ffffd097          	auipc	ra,0xffffd
+    8020672e:	6e2080e7          	jalr	1762(ra) # 80203e0c <initsleeplock>
         root.next->prev = de;
-    80206772:	15093783          	ld	a5,336(s2)
-    80206776:	1297b823          	sd	s1,304(a5)
+    80206732:	15093783          	ld	a5,336(s2)
+    80206736:	1297b823          	sd	s1,304(a5)
         root.next = de;
-    8020677a:	14993823          	sd	s1,336(s2)
+    8020673a:	14993823          	sd	s1,336(s2)
     for(struct dirent *de = ecache.entries; de < ecache.entries + ENTRY_CACHE_NUM; de++) {
-    8020677e:	16848493          	addi	s1,s1,360
-    80206782:	fd3491e3          	bne	s1,s3,80206744 <fat32_init+0x150>
+    8020673e:	16848493          	addi	s1,s1,360
+    80206742:	fd3491e3          	bne	s1,s3,80206704 <fat32_init+0x150>
 }
-    80206786:	4501                	li	a0,0
-    80206788:	70e2                	ld	ra,56(sp)
-    8020678a:	7442                	ld	s0,48(sp)
-    8020678c:	74a2                	ld	s1,40(sp)
-    8020678e:	7902                	ld	s2,32(sp)
-    80206790:	69e2                	ld	s3,24(sp)
-    80206792:	6a42                	ld	s4,16(sp)
-    80206794:	6aa2                	ld	s5,8(sp)
-    80206796:	6121                	addi	sp,sp,64
-    80206798:	8082                	ret
+    80206746:	4501                	li	a0,0
+    80206748:	70e2                	ld	ra,56(sp)
+    8020674a:	7442                	ld	s0,48(sp)
+    8020674c:	74a2                	ld	s1,40(sp)
+    8020674e:	7902                	ld	s2,32(sp)
+    80206750:	69e2                	ld	s3,24(sp)
+    80206752:	6a42                	ld	s4,16(sp)
+    80206754:	6aa2                	ld	s5,8(sp)
+    80206756:	6121                	addi	sp,sp,64
+    80206758:	8082                	ret
         panic("not FAT32 volume");
-    8020679a:	00004517          	auipc	a0,0x4
-    8020679e:	62650513          	addi	a0,a0,1574 # 8020adc0 <digits+0xa40>
-    802067a2:	ffffa097          	auipc	ra,0xffffa
-    802067a6:	9a2080e7          	jalr	-1630(ra) # 80200144 <panic>
+    8020675a:	00004517          	auipc	a0,0x4
+    8020675e:	65e50513          	addi	a0,a0,1630 # 8020adb8 <digits+0xa38>
+    80206762:	ffffa097          	auipc	ra,0xffffa
+    80206766:	9e2080e7          	jalr	-1566(ra) # 80200144 <panic>
         panic("byts_per_sec != BSIZE");
-    802067aa:	00004517          	auipc	a0,0x4
-    802067ae:	62e50513          	addi	a0,a0,1582 # 8020add8 <digits+0xa58>
-    802067b2:	ffffa097          	auipc	ra,0xffffa
-    802067b6:	992080e7          	jalr	-1646(ra) # 80200144 <panic>
+    8020676a:	00004517          	auipc	a0,0x4
+    8020676e:	66650513          	addi	a0,a0,1638 # 8020add0 <digits+0xa50>
+    80206772:	ffffa097          	auipc	ra,0xffffa
+    80206776:	9d2080e7          	jalr	-1582(ra) # 80200144 <panic>
 
-00000000802067ba <eread>:
+000000008020677a <eread>:
     if (off > entry->file_size || off + n < off || (entry->attribute & ATTR_DIRECTORY)) {
-    802067ba:	10852783          	lw	a5,264(a0)
-    802067be:	0ed7e863          	bltu	a5,a3,802068ae <eread+0xf4>
+    8020677a:	10852783          	lw	a5,264(a0)
+    8020677e:	0ed7e863          	bltu	a5,a3,8020686e <eread+0xf4>
 {
-    802067c2:	711d                	addi	sp,sp,-96
-    802067c4:	ec86                	sd	ra,88(sp)
-    802067c6:	e8a2                	sd	s0,80(sp)
-    802067c8:	e4a6                	sd	s1,72(sp)
-    802067ca:	e0ca                	sd	s2,64(sp)
-    802067cc:	fc4e                	sd	s3,56(sp)
-    802067ce:	f852                	sd	s4,48(sp)
-    802067d0:	f456                	sd	s5,40(sp)
-    802067d2:	f05a                	sd	s6,32(sp)
-    802067d4:	ec5e                	sd	s7,24(sp)
-    802067d6:	e862                	sd	s8,16(sp)
-    802067d8:	e466                	sd	s9,8(sp)
-    802067da:	e06a                	sd	s10,0(sp)
-    802067dc:	1080                	addi	s0,sp,96
-    802067de:	8a2a                	mv	s4,a0
-    802067e0:	8bae                	mv	s7,a1
-    802067e2:	8ab2                	mv	s5,a2
-    802067e4:	8936                	mv	s2,a3
-    802067e6:	8b3a                	mv	s6,a4
+    80206782:	711d                	addi	sp,sp,-96
+    80206784:	ec86                	sd	ra,88(sp)
+    80206786:	e8a2                	sd	s0,80(sp)
+    80206788:	e4a6                	sd	s1,72(sp)
+    8020678a:	e0ca                	sd	s2,64(sp)
+    8020678c:	fc4e                	sd	s3,56(sp)
+    8020678e:	f852                	sd	s4,48(sp)
+    80206790:	f456                	sd	s5,40(sp)
+    80206792:	f05a                	sd	s6,32(sp)
+    80206794:	ec5e                	sd	s7,24(sp)
+    80206796:	e862                	sd	s8,16(sp)
+    80206798:	e466                	sd	s9,8(sp)
+    8020679a:	e06a                	sd	s10,0(sp)
+    8020679c:	1080                	addi	s0,sp,96
+    8020679e:	8a2a                	mv	s4,a0
+    802067a0:	8bae                	mv	s7,a1
+    802067a2:	8ab2                	mv	s5,a2
+    802067a4:	8936                	mv	s2,a3
+    802067a6:	8b3a                	mv	s6,a4
     if (off > entry->file_size || off + n < off || (entry->attribute & ATTR_DIRECTORY)) {
-    802067e8:	9eb9                	addw	a3,a3,a4
+    802067a8:	9eb9                	addw	a3,a3,a4
         return 0;
-    802067ea:	4501                	li	a0,0
+    802067aa:	4501                	li	a0,0
     if (off > entry->file_size || off + n < off || (entry->attribute & ATTR_DIRECTORY)) {
-    802067ec:	0b26e163          	bltu	a3,s2,8020688e <eread+0xd4>
-    802067f0:	100a4703          	lbu	a4,256(s4)
-    802067f4:	8b41                	andi	a4,a4,16
-    802067f6:	ef41                	bnez	a4,8020688e <eread+0xd4>
+    802067ac:	0b26e163          	bltu	a3,s2,8020684e <eread+0xd4>
+    802067b0:	100a4703          	lbu	a4,256(s4)
+    802067b4:	8b41                	andi	a4,a4,16
+    802067b6:	ef41                	bnez	a4,8020684e <eread+0xd4>
     if (off + n > entry->file_size) {
-    802067f8:	00d7f463          	bgeu	a5,a3,80206800 <eread+0x46>
+    802067b8:	00d7f463          	bgeu	a5,a3,802067c0 <eread+0x46>
         n = entry->file_size - off;
-    802067fc:	41278b3b          	subw	s6,a5,s2
+    802067bc:	41278b3b          	subw	s6,a5,s2
     for (tot = 0; entry->cur_clus < FAT32_EOC && tot < n; tot += m, off += m, dst += m) {
-    80206800:	10ca2703          	lw	a4,268(s4)
-    80206804:	100007b7          	lui	a5,0x10000
-    80206808:	17dd                	addi	a5,a5,-9 # ffffff7 <_entry-0x70200009>
-    8020680a:	06e7ef63          	bltu	a5,a4,80206888 <eread+0xce>
-    8020680e:	080b0e63          	beqz	s6,802068aa <eread+0xf0>
-    80206812:	4981                	li	s3,0
+    802067c0:	10ca2703          	lw	a4,268(s4)
+    802067c4:	100007b7          	lui	a5,0x10000
+    802067c8:	17dd                	addi	a5,a5,-9 # ffffff7 <_entry-0x70200009>
+    802067ca:	06e7ef63          	bltu	a5,a4,80206848 <eread+0xce>
+    802067ce:	080b0e63          	beqz	s6,8020686a <eread+0xf0>
+    802067d2:	4981                	li	s3,0
         m = fat.byts_per_clus - off % fat.byts_per_clus;
-    80206814:	0002cc97          	auipc	s9,0x2c
-    80206818:	374c8c93          	addi	s9,s9,884 # 80232b88 <fat>
+    802067d4:	0002cc97          	auipc	s9,0x2c
+    802067d8:	3b4c8c93          	addi	s9,s9,948 # 80232b88 <fat>
     for (tot = 0; entry->cur_clus < FAT32_EOC && tot < n; tot += m, off += m, dst += m) {
-    8020681c:	8c3e                	mv	s8,a5
-    8020681e:	a82d                	j	80206858 <eread+0x9e>
-    80206820:	00048d1b          	sext.w	s10,s1
+    802067dc:	8c3e                	mv	s8,a5
+    802067de:	a82d                	j	80206818 <eread+0x9e>
+    802067e0:	00048d1b          	sext.w	s10,s1
         if (rw_clus(entry->cur_clus, 0, user_dst, dst, off % fat.byts_per_clus, m) != m) {
-    80206824:	87ea                	mv	a5,s10
-    80206826:	86d6                	mv	a3,s5
-    80206828:	865e                	mv	a2,s7
-    8020682a:	4581                	li	a1,0
-    8020682c:	10ca2503          	lw	a0,268(s4)
-    80206830:	00000097          	auipc	ra,0x0
-    80206834:	a7e080e7          	jalr	-1410(ra) # 802062ae <rw_clus>
-    80206838:	2501                	sext.w	a0,a0
-    8020683a:	04ad1863          	bne	s10,a0,8020688a <eread+0xd0>
+    802067e4:	87ea                	mv	a5,s10
+    802067e6:	86d6                	mv	a3,s5
+    802067e8:	865e                	mv	a2,s7
+    802067ea:	4581                	li	a1,0
+    802067ec:	10ca2503          	lw	a0,268(s4)
+    802067f0:	00000097          	auipc	ra,0x0
+    802067f4:	a7e080e7          	jalr	-1410(ra) # 8020626e <rw_clus>
+    802067f8:	2501                	sext.w	a0,a0
+    802067fa:	04ad1863          	bne	s10,a0,8020684a <eread+0xd0>
     for (tot = 0; entry->cur_clus < FAT32_EOC && tot < n; tot += m, off += m, dst += m) {
-    8020683e:	013489bb          	addw	s3,s1,s3
-    80206842:	0124893b          	addw	s2,s1,s2
-    80206846:	1482                	slli	s1,s1,0x20
-    80206848:	9081                	srli	s1,s1,0x20
-    8020684a:	9aa6                	add	s5,s5,s1
-    8020684c:	10ca2783          	lw	a5,268(s4)
-    80206850:	02fc6d63          	bltu	s8,a5,8020688a <eread+0xd0>
-    80206854:	0369fb63          	bgeu	s3,s6,8020688a <eread+0xd0>
+    802067fe:	013489bb          	addw	s3,s1,s3
+    80206802:	0124893b          	addw	s2,s1,s2
+    80206806:	1482                	slli	s1,s1,0x20
+    80206808:	9081                	srli	s1,s1,0x20
+    8020680a:	9aa6                	add	s5,s5,s1
+    8020680c:	10ca2783          	lw	a5,268(s4)
+    80206810:	02fc6d63          	bltu	s8,a5,8020684a <eread+0xd0>
+    80206814:	0369fb63          	bgeu	s3,s6,8020684a <eread+0xd0>
         reloc_clus(entry, off, 0);
-    80206858:	4601                	li	a2,0
-    8020685a:	85ca                	mv	a1,s2
-    8020685c:	8552                	mv	a0,s4
-    8020685e:	00000097          	auipc	ra,0x0
-    80206862:	948080e7          	jalr	-1720(ra) # 802061a6 <reloc_clus>
+    80206818:	4601                	li	a2,0
+    8020681a:	85ca                	mv	a1,s2
+    8020681c:	8552                	mv	a0,s4
+    8020681e:	00000097          	auipc	ra,0x0
+    80206822:	948080e7          	jalr	-1720(ra) # 80206166 <reloc_clus>
         m = fat.byts_per_clus - off % fat.byts_per_clus;
-    80206866:	00cca683          	lw	a3,12(s9)
-    8020686a:	02d9763b          	remuw	a2,s2,a3
-    8020686e:	0006071b          	sext.w	a4,a2
+    80206826:	00cca683          	lw	a3,12(s9)
+    8020682a:	02d9763b          	remuw	a2,s2,a3
+    8020682e:	0006071b          	sext.w	a4,a2
         if (n - tot < m) {
-    80206872:	413b07bb          	subw	a5,s6,s3
+    80206832:	413b07bb          	subw	a5,s6,s3
         m = fat.byts_per_clus - off % fat.byts_per_clus;
-    80206876:	9e91                	subw	a3,a3,a2
-    80206878:	84be                	mv	s1,a5
-    8020687a:	2781                	sext.w	a5,a5
-    8020687c:	0006861b          	sext.w	a2,a3
-    80206880:	faf670e3          	bgeu	a2,a5,80206820 <eread+0x66>
-    80206884:	84b6                	mv	s1,a3
-    80206886:	bf69                	j	80206820 <eread+0x66>
+    80206836:	9e91                	subw	a3,a3,a2
+    80206838:	84be                	mv	s1,a5
+    8020683a:	2781                	sext.w	a5,a5
+    8020683c:	0006861b          	sext.w	a2,a3
+    80206840:	faf670e3          	bgeu	a2,a5,802067e0 <eread+0x66>
+    80206844:	84b6                	mv	s1,a3
+    80206846:	bf69                	j	802067e0 <eread+0x66>
     for (tot = 0; entry->cur_clus < FAT32_EOC && tot < n; tot += m, off += m, dst += m) {
-    80206888:	4981                	li	s3,0
+    80206848:	4981                	li	s3,0
     return tot;
-    8020688a:	0009851b          	sext.w	a0,s3
+    8020684a:	0009851b          	sext.w	a0,s3
 }
-    8020688e:	60e6                	ld	ra,88(sp)
-    80206890:	6446                	ld	s0,80(sp)
-    80206892:	64a6                	ld	s1,72(sp)
-    80206894:	6906                	ld	s2,64(sp)
-    80206896:	79e2                	ld	s3,56(sp)
-    80206898:	7a42                	ld	s4,48(sp)
-    8020689a:	7aa2                	ld	s5,40(sp)
-    8020689c:	7b02                	ld	s6,32(sp)
-    8020689e:	6be2                	ld	s7,24(sp)
-    802068a0:	6c42                	ld	s8,16(sp)
-    802068a2:	6ca2                	ld	s9,8(sp)
-    802068a4:	6d02                	ld	s10,0(sp)
-    802068a6:	6125                	addi	sp,sp,96
-    802068a8:	8082                	ret
+    8020684e:	60e6                	ld	ra,88(sp)
+    80206850:	6446                	ld	s0,80(sp)
+    80206852:	64a6                	ld	s1,72(sp)
+    80206854:	6906                	ld	s2,64(sp)
+    80206856:	79e2                	ld	s3,56(sp)
+    80206858:	7a42                	ld	s4,48(sp)
+    8020685a:	7aa2                	ld	s5,40(sp)
+    8020685c:	7b02                	ld	s6,32(sp)
+    8020685e:	6be2                	ld	s7,24(sp)
+    80206860:	6c42                	ld	s8,16(sp)
+    80206862:	6ca2                	ld	s9,8(sp)
+    80206864:	6d02                	ld	s10,0(sp)
+    80206866:	6125                	addi	sp,sp,96
+    80206868:	8082                	ret
     for (tot = 0; entry->cur_clus < FAT32_EOC && tot < n; tot += m, off += m, dst += m) {
-    802068aa:	89da                	mv	s3,s6
-    802068ac:	bff9                	j	8020688a <eread+0xd0>
+    8020686a:	89da                	mv	s3,s6
+    8020686c:	bff9                	j	8020684a <eread+0xd0>
         return 0;
-    802068ae:	4501                	li	a0,0
+    8020686e:	4501                	li	a0,0
 }
-    802068b0:	8082                	ret
+    80206870:	8082                	ret
 
-00000000802068b2 <ewrite>:
+0000000080206872 <ewrite>:
     if (off > entry->file_size || off + n < off || (uint64)off + n > 0xffffffff
-    802068b2:	10852783          	lw	a5,264(a0)
-    802068b6:	0ed7e463          	bltu	a5,a3,8020699e <ewrite+0xec>
+    80206872:	10852783          	lw	a5,264(a0)
+    80206876:	0ed7e463          	bltu	a5,a3,8020695e <ewrite+0xec>
 {
-    802068ba:	711d                	addi	sp,sp,-96
-    802068bc:	ec86                	sd	ra,88(sp)
-    802068be:	e8a2                	sd	s0,80(sp)
-    802068c0:	e4a6                	sd	s1,72(sp)
-    802068c2:	e0ca                	sd	s2,64(sp)
-    802068c4:	fc4e                	sd	s3,56(sp)
-    802068c6:	f852                	sd	s4,48(sp)
-    802068c8:	f456                	sd	s5,40(sp)
-    802068ca:	f05a                	sd	s6,32(sp)
-    802068cc:	ec5e                	sd	s7,24(sp)
-    802068ce:	e862                	sd	s8,16(sp)
-    802068d0:	e466                	sd	s9,8(sp)
-    802068d2:	1080                	addi	s0,sp,96
-    802068d4:	8aaa                	mv	s5,a0
-    802068d6:	8bae                	mv	s7,a1
-    802068d8:	8a32                	mv	s4,a2
-    802068da:	8936                	mv	s2,a3
-    802068dc:	8b3a                	mv	s6,a4
+    8020687a:	711d                	addi	sp,sp,-96
+    8020687c:	ec86                	sd	ra,88(sp)
+    8020687e:	e8a2                	sd	s0,80(sp)
+    80206880:	e4a6                	sd	s1,72(sp)
+    80206882:	e0ca                	sd	s2,64(sp)
+    80206884:	fc4e                	sd	s3,56(sp)
+    80206886:	f852                	sd	s4,48(sp)
+    80206888:	f456                	sd	s5,40(sp)
+    8020688a:	f05a                	sd	s6,32(sp)
+    8020688c:	ec5e                	sd	s7,24(sp)
+    8020688e:	e862                	sd	s8,16(sp)
+    80206890:	e466                	sd	s9,8(sp)
+    80206892:	1080                	addi	s0,sp,96
+    80206894:	8aaa                	mv	s5,a0
+    80206896:	8bae                	mv	s7,a1
+    80206898:	8a32                	mv	s4,a2
+    8020689a:	8936                	mv	s2,a3
+    8020689c:	8b3a                	mv	s6,a4
     if (off > entry->file_size || off + n < off || (uint64)off + n > 0xffffffff
-    802068de:	00e687bb          	addw	a5,a3,a4
-    802068e2:	0cd7e063          	bltu	a5,a3,802069a2 <ewrite+0xf0>
-    802068e6:	02069793          	slli	a5,a3,0x20
-    802068ea:	9381                	srli	a5,a5,0x20
-    802068ec:	1702                	slli	a4,a4,0x20
-    802068ee:	9301                	srli	a4,a4,0x20
-    802068f0:	97ba                	add	a5,a5,a4
-    802068f2:	577d                	li	a4,-1
-    802068f4:	9301                	srli	a4,a4,0x20
-    802068f6:	0af76863          	bltu	a4,a5,802069a6 <ewrite+0xf4>
+    8020689e:	00e687bb          	addw	a5,a3,a4
+    802068a2:	0cd7e063          	bltu	a5,a3,80206962 <ewrite+0xf0>
+    802068a6:	02069793          	slli	a5,a3,0x20
+    802068aa:	9381                	srli	a5,a5,0x20
+    802068ac:	1702                	slli	a4,a4,0x20
+    802068ae:	9301                	srli	a4,a4,0x20
+    802068b0:	97ba                	add	a5,a5,a4
+    802068b2:	577d                	li	a4,-1
+    802068b4:	9301                	srli	a4,a4,0x20
+    802068b6:	0af76863          	bltu	a4,a5,80206966 <ewrite+0xf4>
         || (entry->attribute & ATTR_READ_ONLY)) {
-    802068fa:	10054783          	lbu	a5,256(a0)
-    802068fe:	8b85                	andi	a5,a5,1
-    80206900:	e7cd                	bnez	a5,802069aa <ewrite+0xf8>
+    802068ba:	10054783          	lbu	a5,256(a0)
+    802068be:	8b85                	andi	a5,a5,1
+    802068c0:	e7cd                	bnez	a5,8020696a <ewrite+0xf8>
     if (entry->first_clus == 0) {   // so file_size if 0 too, which requests off == 0
-    80206902:	10452783          	lw	a5,260(a0)
-    80206906:	cb89                	beqz	a5,80206918 <ewrite+0x66>
+    802068c2:	10452783          	lw	a5,260(a0)
+    802068c6:	cb89                	beqz	a5,802068d8 <ewrite+0x66>
     for (tot = 0; tot < n; tot += m, off += m, src += m) {
-    80206908:	080b0963          	beqz	s6,8020699a <ewrite+0xe8>
-    8020690c:	4981                	li	s3,0
+    802068c8:	080b0963          	beqz	s6,8020695a <ewrite+0xe8>
+    802068cc:	4981                	li	s3,0
         m = fat.byts_per_clus - off % fat.byts_per_clus;
-    8020690e:	0002cc17          	auipc	s8,0x2c
-    80206912:	27ac0c13          	addi	s8,s8,634 # 80232b88 <fat>
-    80206916:	a891                	j	8020696a <ewrite+0xb8>
+    802068ce:	0002cc17          	auipc	s8,0x2c
+    802068d2:	2bac0c13          	addi	s8,s8,698 # 80232b88 <fat>
+    802068d6:	a891                	j	8020692a <ewrite+0xb8>
         entry->cur_clus = entry->first_clus = alloc_clus(entry->dev);
-    80206918:	11454503          	lbu	a0,276(a0)
-    8020691c:	fffff097          	auipc	ra,0xfffff
-    80206920:	6c8080e7          	jalr	1736(ra) # 80205fe4 <alloc_clus>
-    80206924:	2501                	sext.w	a0,a0
-    80206926:	10aaa223          	sw	a0,260(s5)
-    8020692a:	10aaa623          	sw	a0,268(s5)
+    802068d8:	11454503          	lbu	a0,276(a0)
+    802068dc:	fffff097          	auipc	ra,0xfffff
+    802068e0:	6c8080e7          	jalr	1736(ra) # 80205fa4 <alloc_clus>
+    802068e4:	2501                	sext.w	a0,a0
+    802068e6:	10aaa223          	sw	a0,260(s5)
+    802068ea:	10aaa623          	sw	a0,268(s5)
         entry->clus_cnt = 0;
-    8020692e:	100aa823          	sw	zero,272(s5)
+    802068ee:	100aa823          	sw	zero,272(s5)
         entry->dirty = 1;
-    80206932:	4785                	li	a5,1
-    80206934:	10fa8aa3          	sb	a5,277(s5)
-    80206938:	bfc1                	j	80206908 <ewrite+0x56>
-    8020693a:	00048c9b          	sext.w	s9,s1
+    802068f2:	4785                	li	a5,1
+    802068f4:	10fa8aa3          	sb	a5,277(s5)
+    802068f8:	bfc1                	j	802068c8 <ewrite+0x56>
+    802068fa:	00048c9b          	sext.w	s9,s1
         if (rw_clus(entry->cur_clus, 1, user_src, src, off % fat.byts_per_clus, m) != m) {
-    8020693e:	87e6                	mv	a5,s9
-    80206940:	86d2                	mv	a3,s4
-    80206942:	865e                	mv	a2,s7
-    80206944:	4585                	li	a1,1
-    80206946:	10caa503          	lw	a0,268(s5)
-    8020694a:	00000097          	auipc	ra,0x0
-    8020694e:	964080e7          	jalr	-1692(ra) # 802062ae <rw_clus>
-    80206952:	2501                	sext.w	a0,a0
-    80206954:	04ac9d63          	bne	s9,a0,802069ae <ewrite+0xfc>
+    802068fe:	87e6                	mv	a5,s9
+    80206900:	86d2                	mv	a3,s4
+    80206902:	865e                	mv	a2,s7
+    80206904:	4585                	li	a1,1
+    80206906:	10caa503          	lw	a0,268(s5)
+    8020690a:	00000097          	auipc	ra,0x0
+    8020690e:	964080e7          	jalr	-1692(ra) # 8020626e <rw_clus>
+    80206912:	2501                	sext.w	a0,a0
+    80206914:	04ac9d63          	bne	s9,a0,8020696e <ewrite+0xfc>
     for (tot = 0; tot < n; tot += m, off += m, src += m) {
-    80206958:	013489bb          	addw	s3,s1,s3
-    8020695c:	0124893b          	addw	s2,s1,s2
-    80206960:	1482                	slli	s1,s1,0x20
-    80206962:	9081                	srli	s1,s1,0x20
-    80206964:	9a26                	add	s4,s4,s1
-    80206966:	0569f463          	bgeu	s3,s6,802069ae <ewrite+0xfc>
+    80206918:	013489bb          	addw	s3,s1,s3
+    8020691c:	0124893b          	addw	s2,s1,s2
+    80206920:	1482                	slli	s1,s1,0x20
+    80206922:	9081                	srli	s1,s1,0x20
+    80206924:	9a26                	add	s4,s4,s1
+    80206926:	0569f463          	bgeu	s3,s6,8020696e <ewrite+0xfc>
         reloc_clus(entry, off, 1);
-    8020696a:	4605                	li	a2,1
-    8020696c:	85ca                	mv	a1,s2
-    8020696e:	8556                	mv	a0,s5
-    80206970:	00000097          	auipc	ra,0x0
-    80206974:	836080e7          	jalr	-1994(ra) # 802061a6 <reloc_clus>
+    8020692a:	4605                	li	a2,1
+    8020692c:	85ca                	mv	a1,s2
+    8020692e:	8556                	mv	a0,s5
+    80206930:	00000097          	auipc	ra,0x0
+    80206934:	836080e7          	jalr	-1994(ra) # 80206166 <reloc_clus>
         m = fat.byts_per_clus - off % fat.byts_per_clus;
-    80206978:	00cc2683          	lw	a3,12(s8)
-    8020697c:	02d9763b          	remuw	a2,s2,a3
-    80206980:	0006071b          	sext.w	a4,a2
+    80206938:	00cc2683          	lw	a3,12(s8)
+    8020693c:	02d9763b          	remuw	a2,s2,a3
+    80206940:	0006071b          	sext.w	a4,a2
         if (n - tot < m) {
-    80206984:	413b07bb          	subw	a5,s6,s3
+    80206944:	413b07bb          	subw	a5,s6,s3
         m = fat.byts_per_clus - off % fat.byts_per_clus;
-    80206988:	9e91                	subw	a3,a3,a2
-    8020698a:	84be                	mv	s1,a5
-    8020698c:	2781                	sext.w	a5,a5
-    8020698e:	0006861b          	sext.w	a2,a3
-    80206992:	faf674e3          	bgeu	a2,a5,8020693a <ewrite+0x88>
-    80206996:	84b6                	mv	s1,a3
-    80206998:	b74d                	j	8020693a <ewrite+0x88>
+    80206948:	9e91                	subw	a3,a3,a2
+    8020694a:	84be                	mv	s1,a5
+    8020694c:	2781                	sext.w	a5,a5
+    8020694e:	0006861b          	sext.w	a2,a3
+    80206952:	faf674e3          	bgeu	a2,a5,802068fa <ewrite+0x88>
+    80206956:	84b6                	mv	s1,a3
+    80206958:	b74d                	j	802068fa <ewrite+0x88>
     for (tot = 0; tot < n; tot += m, off += m, src += m) {
-    8020699a:	89da                	mv	s3,s6
-    8020699c:	a015                	j	802069c0 <ewrite+0x10e>
+    8020695a:	89da                	mv	s3,s6
+    8020695c:	a015                	j	80206980 <ewrite+0x10e>
         return -1;
-    8020699e:	557d                	li	a0,-1
+    8020695e:	557d                	li	a0,-1
 }
-    802069a0:	8082                	ret
+    80206960:	8082                	ret
         return -1;
-    802069a2:	557d                	li	a0,-1
-    802069a4:	a005                	j	802069c4 <ewrite+0x112>
-    802069a6:	557d                	li	a0,-1
-    802069a8:	a831                	j	802069c4 <ewrite+0x112>
-    802069aa:	557d                	li	a0,-1
-    802069ac:	a821                	j	802069c4 <ewrite+0x112>
+    80206962:	557d                	li	a0,-1
+    80206964:	a005                	j	80206984 <ewrite+0x112>
+    80206966:	557d                	li	a0,-1
+    80206968:	a831                	j	80206984 <ewrite+0x112>
+    8020696a:	557d                	li	a0,-1
+    8020696c:	a821                	j	80206984 <ewrite+0x112>
         if(off > entry->file_size) {
-    802069ae:	108aa783          	lw	a5,264(s5)
-    802069b2:	0127f763          	bgeu	a5,s2,802069c0 <ewrite+0x10e>
+    8020696e:	108aa783          	lw	a5,264(s5)
+    80206972:	0127f763          	bgeu	a5,s2,80206980 <ewrite+0x10e>
             entry->file_size = off;
-    802069b6:	112aa423          	sw	s2,264(s5)
+    80206976:	112aa423          	sw	s2,264(s5)
             entry->dirty = 1;
-    802069ba:	4785                	li	a5,1
-    802069bc:	10fa8aa3          	sb	a5,277(s5)
+    8020697a:	4785                	li	a5,1
+    8020697c:	10fa8aa3          	sb	a5,277(s5)
     return tot;
-    802069c0:	0009851b          	sext.w	a0,s3
+    80206980:	0009851b          	sext.w	a0,s3
 }
-    802069c4:	60e6                	ld	ra,88(sp)
-    802069c6:	6446                	ld	s0,80(sp)
-    802069c8:	64a6                	ld	s1,72(sp)
-    802069ca:	6906                	ld	s2,64(sp)
-    802069cc:	79e2                	ld	s3,56(sp)
-    802069ce:	7a42                	ld	s4,48(sp)
-    802069d0:	7aa2                	ld	s5,40(sp)
-    802069d2:	7b02                	ld	s6,32(sp)
-    802069d4:	6be2                	ld	s7,24(sp)
-    802069d6:	6c42                	ld	s8,16(sp)
-    802069d8:	6ca2                	ld	s9,8(sp)
-    802069da:	6125                	addi	sp,sp,96
-    802069dc:	8082                	ret
-
-00000000802069de <formatname>:
+    80206984:	60e6                	ld	ra,88(sp)
+    80206986:	6446                	ld	s0,80(sp)
+    80206988:	64a6                	ld	s1,72(sp)
+    8020698a:	6906                	ld	s2,64(sp)
+    8020698c:	79e2                	ld	s3,56(sp)
+    8020698e:	7a42                	ld	s4,48(sp)
+    80206990:	7aa2                	ld	s5,40(sp)
+    80206992:	7b02                	ld	s6,32(sp)
+    80206994:	6be2                	ld	s7,24(sp)
+    80206996:	6c42                	ld	s8,16(sp)
+    80206998:	6ca2                	ld	s9,8(sp)
+    8020699a:	6125                	addi	sp,sp,96
+    8020699c:	8082                	ret
+
+000000008020699e <formatname>:
 {
-    802069de:	7179                	addi	sp,sp,-48
-    802069e0:	f406                	sd	ra,40(sp)
-    802069e2:	f022                	sd	s0,32(sp)
-    802069e4:	ec26                	sd	s1,24(sp)
-    802069e6:	e84a                	sd	s2,16(sp)
-    802069e8:	e44e                	sd	s3,8(sp)
-    802069ea:	e052                	sd	s4,0(sp)
-    802069ec:	1800                	addi	s0,sp,48
-    802069ee:	84aa                	mv	s1,a0
+    8020699e:	7179                	addi	sp,sp,-48
+    802069a0:	f406                	sd	ra,40(sp)
+    802069a2:	f022                	sd	s0,32(sp)
+    802069a4:	ec26                	sd	s1,24(sp)
+    802069a6:	e84a                	sd	s2,16(sp)
+    802069a8:	e44e                	sd	s3,8(sp)
+    802069aa:	e052                	sd	s4,0(sp)
+    802069ac:	1800                	addi	s0,sp,48
+    802069ae:	84aa                	mv	s1,a0
     while (*name == ' ' || *name == '.') { name++; }
-    802069f0:	02000793          	li	a5,32
-    802069f4:	02e00713          	li	a4,46
-    802069f8:	a011                	j	802069fc <formatname+0x1e>
-    802069fa:	0485                	addi	s1,s1,1
-    802069fc:	0004c583          	lbu	a1,0(s1)
-    80206a00:	fef58de3          	beq	a1,a5,802069fa <formatname+0x1c>
-    80206a04:	fee58be3          	beq	a1,a4,802069fa <formatname+0x1c>
+    802069b0:	02000793          	li	a5,32
+    802069b4:	02e00713          	li	a4,46
+    802069b8:	a011                	j	802069bc <formatname+0x1e>
+    802069ba:	0485                	addi	s1,s1,1
+    802069bc:	0004c583          	lbu	a1,0(s1)
+    802069c0:	fef58de3          	beq	a1,a5,802069ba <formatname+0x1c>
+    802069c4:	fee58be3          	beq	a1,a4,802069ba <formatname+0x1c>
     for (p = name; *p; p++) {
-    80206a08:	c1b9                	beqz	a1,80206a4e <formatname+0x70>
-    80206a0a:	8926                	mv	s2,s1
+    802069c8:	c1b9                	beqz	a1,80206a0e <formatname+0x70>
+    802069ca:	8926                	mv	s2,s1
         if (c < 0x20 || strchr(illegal, c)) {
-    80206a0c:	49fd                	li	s3,31
-    80206a0e:	00006a17          	auipc	s4,0x6
-    80206a12:	5f2a0a13          	addi	s4,s4,1522 # 8020d000 <illegal.1>
-    80206a16:	02b9fe63          	bgeu	s3,a1,80206a52 <formatname+0x74>
-    80206a1a:	8552                	mv	a0,s4
-    80206a1c:	ffffa097          	auipc	ra,0xffffa
-    80206a20:	fa4080e7          	jalr	-92(ra) # 802009c0 <strchr>
-    80206a24:	e121                	bnez	a0,80206a64 <formatname+0x86>
+    802069cc:	49fd                	li	s3,31
+    802069ce:	00006a17          	auipc	s4,0x6
+    802069d2:	632a0a13          	addi	s4,s4,1586 # 8020d000 <illegal.1>
+    802069d6:	02b9fe63          	bgeu	s3,a1,80206a12 <formatname+0x74>
+    802069da:	8552                	mv	a0,s4
+    802069dc:	ffffa097          	auipc	ra,0xffffa
+    802069e0:	fe4080e7          	jalr	-28(ra) # 802009c0 <strchr>
+    802069e4:	e121                	bnez	a0,80206a24 <formatname+0x86>
     for (p = name; *p; p++) {
-    80206a26:	0905                	addi	s2,s2,1
-    80206a28:	00094583          	lbu	a1,0(s2)
-    80206a2c:	f5ed                	bnez	a1,80206a16 <formatname+0x38>
+    802069e6:	0905                	addi	s2,s2,1
+    802069e8:	00094583          	lbu	a1,0(s2)
+    802069ec:	f5ed                	bnez	a1,802069d6 <formatname+0x38>
         if (*p != ' ') {
-    80206a2e:	02000693          	li	a3,32
-    80206a32:	874a                	mv	a4,s2
+    802069ee:	02000693          	li	a3,32
+    802069f2:	874a                	mv	a4,s2
     while (p-- > name) {
-    80206a34:	0124fb63          	bgeu	s1,s2,80206a4a <formatname+0x6c>
+    802069f4:	0124fb63          	bgeu	s1,s2,80206a0a <formatname+0x6c>
         if (*p != ' ') {
-    80206a38:	197d                	addi	s2,s2,-1
-    80206a3a:	00094783          	lbu	a5,0(s2)
-    80206a3e:	fed78ae3          	beq	a5,a3,80206a32 <formatname+0x54>
+    802069f8:	197d                	addi	s2,s2,-1
+    802069fa:	00094783          	lbu	a5,0(s2)
+    802069fe:	fed78ae3          	beq	a5,a3,802069f2 <formatname+0x54>
             p[1] = '\0';
-    80206a42:	00070023          	sb	zero,0(a4)
+    80206a02:	00070023          	sb	zero,0(a4)
             break;
-    80206a46:	8526                	mv	a0,s1
-    80206a48:	a031                	j	80206a54 <formatname+0x76>
-    80206a4a:	8526                	mv	a0,s1
-    80206a4c:	a021                	j	80206a54 <formatname+0x76>
+    80206a06:	8526                	mv	a0,s1
+    80206a08:	a031                	j	80206a14 <formatname+0x76>
+    80206a0a:	8526                	mv	a0,s1
+    80206a0c:	a021                	j	80206a14 <formatname+0x76>
     for (p = name; *p; p++) {
-    80206a4e:	8526                	mv	a0,s1
-    80206a50:	a011                	j	80206a54 <formatname+0x76>
+    80206a0e:	8526                	mv	a0,s1
+    80206a10:	a011                	j	80206a14 <formatname+0x76>
             return 0;
-    80206a52:	4501                	li	a0,0
+    80206a12:	4501                	li	a0,0
 }
-    80206a54:	70a2                	ld	ra,40(sp)
-    80206a56:	7402                	ld	s0,32(sp)
-    80206a58:	64e2                	ld	s1,24(sp)
-    80206a5a:	6942                	ld	s2,16(sp)
-    80206a5c:	69a2                	ld	s3,8(sp)
-    80206a5e:	6a02                	ld	s4,0(sp)
-    80206a60:	6145                	addi	sp,sp,48
-    80206a62:	8082                	ret
+    80206a14:	70a2                	ld	ra,40(sp)
+    80206a16:	7402                	ld	s0,32(sp)
+    80206a18:	64e2                	ld	s1,24(sp)
+    80206a1a:	6942                	ld	s2,16(sp)
+    80206a1c:	69a2                	ld	s3,8(sp)
+    80206a1e:	6a02                	ld	s4,0(sp)
+    80206a20:	6145                	addi	sp,sp,48
+    80206a22:	8082                	ret
             return 0;
-    80206a64:	4501                	li	a0,0
-    80206a66:	b7fd                	j	80206a54 <formatname+0x76>
+    80206a24:	4501                	li	a0,0
+    80206a26:	b7fd                	j	80206a14 <formatname+0x76>
 
-0000000080206a68 <cal_checksum>:
+0000000080206a28 <cal_checksum>:
 {
-    80206a68:	1141                	addi	sp,sp,-16
-    80206a6a:	e422                	sd	s0,8(sp)
-    80206a6c:	0800                	addi	s0,sp,16
-    80206a6e:	87aa                	mv	a5,a0
+    80206a28:	1141                	addi	sp,sp,-16
+    80206a2a:	e422                	sd	s0,8(sp)
+    80206a2c:	0800                	addi	s0,sp,16
+    80206a2e:	87aa                	mv	a5,a0
     for (int i = CHAR_SHORT_NAME; i != 0; i--) {
-    80206a70:	00b50613          	addi	a2,a0,11
+    80206a30:	00b50613          	addi	a2,a0,11
     uint8 sum = 0;
-    80206a74:	4501                	li	a0,0
+    80206a34:	4501                	li	a0,0
         sum = ((sum & 1) ? 0x80 : 0) + (sum >> 1) + *shortname++;
-    80206a76:	0075171b          	slliw	a4,a0,0x7
-    80206a7a:	0785                	addi	a5,a5,1
-    80206a7c:	0015551b          	srliw	a0,a0,0x1
-    80206a80:	fff7c683          	lbu	a3,-1(a5)
-    80206a84:	9d35                	addw	a0,a0,a3
-    80206a86:	953a                	add	a0,a0,a4
-    80206a88:	0ff57513          	zext.b	a0,a0
+    80206a36:	0075171b          	slliw	a4,a0,0x7
+    80206a3a:	0785                	addi	a5,a5,1
+    80206a3c:	0015551b          	srliw	a0,a0,0x1
+    80206a40:	fff7c683          	lbu	a3,-1(a5)
+    80206a44:	9d35                	addw	a0,a0,a3
+    80206a46:	953a                	add	a0,a0,a4
+    80206a48:	0ff57513          	zext.b	a0,a0
     for (int i = CHAR_SHORT_NAME; i != 0; i--) {
-    80206a8c:	fef615e3          	bne	a2,a5,80206a76 <cal_checksum+0xe>
+    80206a4c:	fef615e3          	bne	a2,a5,80206a36 <cal_checksum+0xe>
 }
-    80206a90:	6422                	ld	s0,8(sp)
-    80206a92:	0141                	addi	sp,sp,16
-    80206a94:	8082                	ret
+    80206a50:	6422                	ld	s0,8(sp)
+    80206a52:	0141                	addi	sp,sp,16
+    80206a54:	8082                	ret
 
-0000000080206a96 <emake>:
+0000000080206a56 <emake>:
 {
-    80206a96:	7131                	addi	sp,sp,-192
-    80206a98:	fd06                	sd	ra,184(sp)
-    80206a9a:	f922                	sd	s0,176(sp)
-    80206a9c:	f526                	sd	s1,168(sp)
-    80206a9e:	f14a                	sd	s2,160(sp)
-    80206aa0:	ed4e                	sd	s3,152(sp)
-    80206aa2:	e952                	sd	s4,144(sp)
-    80206aa4:	e556                	sd	s5,136(sp)
-    80206aa6:	e15a                	sd	s6,128(sp)
-    80206aa8:	fcde                	sd	s7,120(sp)
-    80206aaa:	f8e2                	sd	s8,112(sp)
-    80206aac:	f4e6                	sd	s9,104(sp)
-    80206aae:	f0ea                	sd	s10,96(sp)
-    80206ab0:	ecee                	sd	s11,88(sp)
-    80206ab2:	0180                	addi	s0,sp,192
+    80206a56:	7131                	addi	sp,sp,-192
+    80206a58:	fd06                	sd	ra,184(sp)
+    80206a5a:	f922                	sd	s0,176(sp)
+    80206a5c:	f526                	sd	s1,168(sp)
+    80206a5e:	f14a                	sd	s2,160(sp)
+    80206a60:	ed4e                	sd	s3,152(sp)
+    80206a62:	e952                	sd	s4,144(sp)
+    80206a64:	e556                	sd	s5,136(sp)
+    80206a66:	e15a                	sd	s6,128(sp)
+    80206a68:	fcde                	sd	s7,120(sp)
+    80206a6a:	f8e2                	sd	s8,112(sp)
+    80206a6c:	f4e6                	sd	s9,104(sp)
+    80206a6e:	f0ea                	sd	s10,96(sp)
+    80206a70:	ecee                	sd	s11,88(sp)
+    80206a72:	0180                	addi	s0,sp,192
     if (!(dp->attribute & ATTR_DIRECTORY))
-    80206ab4:	10054783          	lbu	a5,256(a0)
-    80206ab8:	8bc1                	andi	a5,a5,16
-    80206aba:	c3d5                	beqz	a5,80206b5e <emake+0xc8>
-    80206abc:	8b2a                	mv	s6,a0
-    80206abe:	8d2e                	mv	s10,a1
-    80206ac0:	8cb2                	mv	s9,a2
+    80206a74:	10054783          	lbu	a5,256(a0)
+    80206a78:	8bc1                	andi	a5,a5,16
+    80206a7a:	c3d5                	beqz	a5,80206b1e <emake+0xc8>
+    80206a7c:	8b2a                	mv	s6,a0
+    80206a7e:	8d2e                	mv	s10,a1
+    80206a80:	8cb2                	mv	s9,a2
     if (off % sizeof(union dentry))
-    80206ac2:	01f67793          	andi	a5,a2,31
-    80206ac6:	e7c5                	bnez	a5,80206b6e <emake+0xd8>
+    80206a82:	01f67793          	andi	a5,a2,31
+    80206a86:	e7c5                	bnez	a5,80206b2e <emake+0xd8>
     memset(&de, 0, sizeof(de));
-    80206ac8:	02000613          	li	a2,32
-    80206acc:	4581                	li	a1,0
-    80206ace:	f7040513          	addi	a0,s0,-144
-    80206ad2:	ffffa097          	auipc	ra,0xffffa
-    80206ad6:	c90080e7          	jalr	-880(ra) # 80200762 <memset>
+    80206a88:	02000613          	li	a2,32
+    80206a8c:	4581                	li	a1,0
+    80206a8e:	f7040513          	addi	a0,s0,-144
+    80206a92:	ffffa097          	auipc	ra,0xffffa
+    80206a96:	cd0080e7          	jalr	-816(ra) # 80200762 <memset>
     if (off <= 32) {
-    80206ada:	02000793          	li	a5,32
-    80206ade:	0b97ec63          	bltu	a5,s9,80206b96 <emake+0x100>
+    80206a9a:	02000793          	li	a5,32
+    80206a9e:	0b97ec63          	bltu	a5,s9,80206b56 <emake+0x100>
         if (off == 0) {
-    80206ae2:	080c9e63          	bnez	s9,80206b7e <emake+0xe8>
+    80206aa2:	080c9e63          	bnez	s9,80206b3e <emake+0xe8>
             strncpy(de.sne.name, ".          ", sizeof(de.sne.name));
-    80206ae6:	462d                	li	a2,11
-    80206ae8:	00004597          	auipc	a1,0x4
-    80206aec:	34058593          	addi	a1,a1,832 # 8020ae28 <digits+0xaa8>
-    80206af0:	f7040513          	addi	a0,s0,-144
-    80206af4:	ffffa097          	auipc	ra,0xffffa
-    80206af8:	d82080e7          	jalr	-638(ra) # 80200876 <strncpy>
+    80206aa6:	462d                	li	a2,11
+    80206aa8:	00004597          	auipc	a1,0x4
+    80206aac:	37858593          	addi	a1,a1,888 # 8020ae20 <digits+0xaa0>
+    80206ab0:	f7040513          	addi	a0,s0,-144
+    80206ab4:	ffffa097          	auipc	ra,0xffffa
+    80206ab8:	dc2080e7          	jalr	-574(ra) # 80200876 <strncpy>
         de.sne.attr = ATTR_DIRECTORY;
-    80206afc:	47c1                	li	a5,16
-    80206afe:	f6f40da3          	sb	a5,-133(s0)
+    80206abc:	47c1                	li	a5,16
+    80206abe:	f6f40da3          	sb	a5,-133(s0)
         de.sne.fst_clus_hi = (uint16)(ep->first_clus >> 16);        // first clus high 16 bits
-    80206b02:	104d2783          	lw	a5,260(s10) # fffffffffffff104 <ebss_clear+0xffffffff7fdc4104>
-    80206b06:	0107d71b          	srliw	a4,a5,0x10
-    80206b0a:	f8e41223          	sh	a4,-124(s0)
+    80206ac2:	104d2783          	lw	a5,260(s10) # fffffffffffff104 <ebss_clear+0xffffffff7fdc4104>
+    80206ac6:	0107d71b          	srliw	a4,a5,0x10
+    80206aca:	f8e41223          	sh	a4,-124(s0)
         de.sne.fst_clus_lo = (uint16)(ep->first_clus & 0xffff);       // low 16 bits
-    80206b0e:	f8f41523          	sh	a5,-118(s0)
+    80206ace:	f8f41523          	sh	a5,-118(s0)
         de.sne.file_size = 0;                                       // filesize is updated in eupdate()
-    80206b12:	f8042623          	sw	zero,-116(s0)
+    80206ad2:	f8042623          	sw	zero,-116(s0)
         off = reloc_clus(dp, off, 1);
-    80206b16:	4605                	li	a2,1
-    80206b18:	85e6                	mv	a1,s9
-    80206b1a:	855a                	mv	a0,s6
-    80206b1c:	fffff097          	auipc	ra,0xfffff
-    80206b20:	68a080e7          	jalr	1674(ra) # 802061a6 <reloc_clus>
+    80206ad6:	4605                	li	a2,1
+    80206ad8:	85e6                	mv	a1,s9
+    80206ada:	855a                	mv	a0,s6
+    80206adc:	fffff097          	auipc	ra,0xfffff
+    80206ae0:	68a080e7          	jalr	1674(ra) # 80206166 <reloc_clus>
         rw_clus(dp->cur_clus, 1, 0, (uint64)&de, off, sizeof(de));
-    80206b24:	02000793          	li	a5,32
-    80206b28:	0005071b          	sext.w	a4,a0
-    80206b2c:	f7040693          	addi	a3,s0,-144
-    80206b30:	4601                	li	a2,0
-    80206b32:	4585                	li	a1,1
-    80206b34:	10cb2503          	lw	a0,268(s6)
-    80206b38:	fffff097          	auipc	ra,0xfffff
-    80206b3c:	776080e7          	jalr	1910(ra) # 802062ae <rw_clus>
+    80206ae4:	02000793          	li	a5,32
+    80206ae8:	0005071b          	sext.w	a4,a0
+    80206aec:	f7040693          	addi	a3,s0,-144
+    80206af0:	4601                	li	a2,0
+    80206af2:	4585                	li	a1,1
+    80206af4:	10cb2503          	lw	a0,268(s6)
+    80206af8:	fffff097          	auipc	ra,0xfffff
+    80206afc:	776080e7          	jalr	1910(ra) # 8020626e <rw_clus>
 }
-    80206b40:	70ea                	ld	ra,184(sp)
-    80206b42:	744a                	ld	s0,176(sp)
-    80206b44:	74aa                	ld	s1,168(sp)
-    80206b46:	790a                	ld	s2,160(sp)
-    80206b48:	69ea                	ld	s3,152(sp)
-    80206b4a:	6a4a                	ld	s4,144(sp)
-    80206b4c:	6aaa                	ld	s5,136(sp)
-    80206b4e:	6b0a                	ld	s6,128(sp)
-    80206b50:	7be6                	ld	s7,120(sp)
-    80206b52:	7c46                	ld	s8,112(sp)
-    80206b54:	7ca6                	ld	s9,104(sp)
-    80206b56:	7d06                	ld	s10,96(sp)
-    80206b58:	6de6                	ld	s11,88(sp)
-    80206b5a:	6129                	addi	sp,sp,192
-    80206b5c:	8082                	ret
+    80206b00:	70ea                	ld	ra,184(sp)
+    80206b02:	744a                	ld	s0,176(sp)
+    80206b04:	74aa                	ld	s1,168(sp)
+    80206b06:	790a                	ld	s2,160(sp)
+    80206b08:	69ea                	ld	s3,152(sp)
+    80206b0a:	6a4a                	ld	s4,144(sp)
+    80206b0c:	6aaa                	ld	s5,136(sp)
+    80206b0e:	6b0a                	ld	s6,128(sp)
+    80206b10:	7be6                	ld	s7,120(sp)
+    80206b12:	7c46                	ld	s8,112(sp)
+    80206b14:	7ca6                	ld	s9,104(sp)
+    80206b16:	7d06                	ld	s10,96(sp)
+    80206b18:	6de6                	ld	s11,88(sp)
+    80206b1a:	6129                	addi	sp,sp,192
+    80206b1c:	8082                	ret
         panic("emake: not dir");
-    80206b5e:	00004517          	auipc	a0,0x4
-    80206b62:	2a250513          	addi	a0,a0,674 # 8020ae00 <digits+0xa80>
-    80206b66:	ffff9097          	auipc	ra,0xffff9
-    80206b6a:	5de080e7          	jalr	1502(ra) # 80200144 <panic>
+    80206b1e:	00004517          	auipc	a0,0x4
+    80206b22:	2da50513          	addi	a0,a0,730 # 8020adf8 <digits+0xa78>
+    80206b26:	ffff9097          	auipc	ra,0xffff9
+    80206b2a:	61e080e7          	jalr	1566(ra) # 80200144 <panic>
         panic("emake: not aligned");
-    80206b6e:	00004517          	auipc	a0,0x4
-    80206b72:	2a250513          	addi	a0,a0,674 # 8020ae10 <digits+0xa90>
-    80206b76:	ffff9097          	auipc	ra,0xffff9
-    80206b7a:	5ce080e7          	jalr	1486(ra) # 80200144 <panic>
+    80206b2e:	00004517          	auipc	a0,0x4
+    80206b32:	2da50513          	addi	a0,a0,730 # 8020ae08 <digits+0xa88>
+    80206b36:	ffff9097          	auipc	ra,0xffff9
+    80206b3a:	60e080e7          	jalr	1550(ra) # 80200144 <panic>
             strncpy(de.sne.name, "..         ", sizeof(de.sne.name));
-    80206b7e:	462d                	li	a2,11
-    80206b80:	00004597          	auipc	a1,0x4
-    80206b84:	2b858593          	addi	a1,a1,696 # 8020ae38 <digits+0xab8>
-    80206b88:	f7040513          	addi	a0,s0,-144
-    80206b8c:	ffffa097          	auipc	ra,0xffffa
-    80206b90:	cea080e7          	jalr	-790(ra) # 80200876 <strncpy>
-    80206b94:	b7a5                	j	80206afc <emake+0x66>
+    80206b3e:	462d                	li	a2,11
+    80206b40:	00004597          	auipc	a1,0x4
+    80206b44:	2f058593          	addi	a1,a1,752 # 8020ae30 <digits+0xab0>
+    80206b48:	f7040513          	addi	a0,s0,-144
+    80206b4c:	ffffa097          	auipc	ra,0xffffa
+    80206b50:	d2a080e7          	jalr	-726(ra) # 80200876 <strncpy>
+    80206b54:	b7a5                	j	80206abc <emake+0x66>
         int entcnt = (strlen(ep->filename) + CHAR_LONG_NAME - 1) / CHAR_LONG_NAME;   // count of l-n-entries, rounds up
-    80206b96:	896a                	mv	s2,s10
-    80206b98:	856a                	mv	a0,s10
-    80206b9a:	ffffa097          	auipc	ra,0xffffa
-    80206b9e:	d4c080e7          	jalr	-692(ra) # 802008e6 <strlen>
-    80206ba2:	f4a43423          	sd	a0,-184(s0)
-    80206ba6:	00c5071b          	addiw	a4,a0,12
-    80206baa:	47b5                	li	a5,13
-    80206bac:	02f747bb          	divw	a5,a4,a5
-    80206bb0:	f4f42c23          	sw	a5,-168(s0)
-    80206bb4:	00078d9b          	sext.w	s11,a5
+    80206b56:	896a                	mv	s2,s10
+    80206b58:	856a                	mv	a0,s10
+    80206b5a:	ffffa097          	auipc	ra,0xffffa
+    80206b5e:	d8c080e7          	jalr	-628(ra) # 802008e6 <strlen>
+    80206b62:	f4a43423          	sd	a0,-184(s0)
+    80206b66:	00c5071b          	addiw	a4,a0,12
+    80206b6a:	47b5                	li	a5,13
+    80206b6c:	02f747bb          	divw	a5,a4,a5
+    80206b70:	f4f42c23          	sw	a5,-168(s0)
+    80206b74:	00078d9b          	sext.w	s11,a5
         memset(shortname, 0, sizeof(shortname));
-    80206bb8:	4631                	li	a2,12
-    80206bba:	4581                	li	a1,0
-    80206bbc:	f6040513          	addi	a0,s0,-160
-    80206bc0:	ffffa097          	auipc	ra,0xffffa
-    80206bc4:	ba2080e7          	jalr	-1118(ra) # 80200762 <memset>
+    80206b78:	4631                	li	a2,12
+    80206b7a:	4581                	li	a1,0
+    80206b7c:	f6040513          	addi	a0,s0,-160
+    80206b80:	ffffa097          	auipc	ra,0xffffa
+    80206b84:	be2080e7          	jalr	-1054(ra) # 80200762 <memset>
     for (int j = strlen(name) - 1; j >= 0; j--) {
-    80206bc8:	856a                	mv	a0,s10
-    80206bca:	ffffa097          	auipc	ra,0xffffa
-    80206bce:	d1c080e7          	jalr	-740(ra) # 802008e6 <strlen>
-    80206bd2:	fff5079b          	addiw	a5,a0,-1
-    80206bd6:	0207cf63          	bltz	a5,80206c14 <emake+0x17e>
-    80206bda:	97ea                	add	a5,a5,s10
-    80206bdc:	ffed0693          	addi	a3,s10,-2
-    80206be0:	96aa                	add	a3,a3,a0
-    80206be2:	fff5071b          	addiw	a4,a0,-1
-    80206be6:	1702                	slli	a4,a4,0x20
-    80206be8:	9301                	srli	a4,a4,0x20
-    80206bea:	8e99                	sub	a3,a3,a4
+    80206b88:	856a                	mv	a0,s10
+    80206b8a:	ffffa097          	auipc	ra,0xffffa
+    80206b8e:	d5c080e7          	jalr	-676(ra) # 802008e6 <strlen>
+    80206b92:	fff5079b          	addiw	a5,a0,-1
+    80206b96:	0207cf63          	bltz	a5,80206bd4 <emake+0x17e>
+    80206b9a:	97ea                	add	a5,a5,s10
+    80206b9c:	ffed0693          	addi	a3,s10,-2
+    80206ba0:	96aa                	add	a3,a3,a0
+    80206ba2:	fff5071b          	addiw	a4,a0,-1
+    80206ba6:	1702                	slli	a4,a4,0x20
+    80206ba8:	9301                	srli	a4,a4,0x20
+    80206baa:	8e99                	sub	a3,a3,a4
         if (name[j] == '.') {
-    80206bec:	02e00613          	li	a2,46
-    80206bf0:	89be                	mv	s3,a5
-    80206bf2:	0007c703          	lbu	a4,0(a5)
-    80206bf6:	00c70663          	beq	a4,a2,80206c02 <emake+0x16c>
+    80206bac:	02e00613          	li	a2,46
+    80206bb0:	89be                	mv	s3,a5
+    80206bb2:	0007c703          	lbu	a4,0(a5)
+    80206bb6:	00c70663          	beq	a4,a2,80206bc2 <emake+0x16c>
     for (int j = strlen(name) - 1; j >= 0; j--) {
-    80206bfa:	17fd                	addi	a5,a5,-1
-    80206bfc:	fed79ae3          	bne	a5,a3,80206bf0 <emake+0x15a>
+    80206bba:	17fd                	addi	a5,a5,-1
+    80206bbc:	fed79ae3          	bne	a5,a3,80206bb0 <emake+0x15a>
     char c, *p = name;
-    80206c00:	89ea                	mv	s3,s10
+    80206bc0:	89ea                	mv	s3,s10
         shortname[i++] = c;
-    80206c02:	4481                	li	s1,0
+    80206bc2:	4481                	li	s1,0
         if (i == 8 && p) {
-    80206c04:	4aa1                	li	s5,8
+    80206bc4:	4aa1                	li	s5,8
     while (i < CHAR_SHORT_NAME && (c = *name++)) {
-    80206c06:	4ba9                	li	s7,10
+    80206bc6:	4ba9                	li	s7,10
         if (c >= 'a' && c <= 'z') {
-    80206c08:	4c65                	li	s8,25
+    80206bc8:	4c65                	li	s8,25
                 memset(shortname + i, ' ', 8 - i);
-    80206c0a:	f6040793          	addi	a5,s0,-160
-    80206c0e:	f4f43823          	sd	a5,-176(s0)
-    80206c12:	a8d9                	j	80206ce8 <emake+0x252>
+    80206bca:	f6040793          	addi	a5,s0,-160
+    80206bce:	f4f43823          	sd	a5,-176(s0)
+    80206bd2:	a8d9                	j	80206ca8 <emake+0x252>
     char c, *p = name;
-    80206c14:	89ea                	mv	s3,s10
-    80206c16:	b7f5                	j	80206c02 <emake+0x16c>
+    80206bd4:	89ea                	mv	s3,s10
+    80206bd6:	b7f5                	j	80206bc2 <emake+0x16c>
         if (i == 8 && p) {
-    80206c18:	22098b63          	beqz	s3,80206e4e <emake+0x3b8>
+    80206bd8:	22098b63          	beqz	s3,80206e0e <emake+0x3b8>
             if (p + 1 < name) { break; }            // no '.'
-    80206c1c:	0985                	addi	s3,s3,1
-    80206c1e:	0949fc63          	bgeu	s3,s4,80206cb6 <emake+0x220>
-    80206c22:	f6040793          	addi	a5,s0,-160
-    80206c26:	97a6                	add	a5,a5,s1
+    80206bdc:	0985                	addi	s3,s3,1
+    80206bde:	0949fc63          	bgeu	s3,s4,80206c76 <emake+0x220>
+    80206be2:	f6040793          	addi	a5,s0,-160
+    80206be6:	97a6                	add	a5,a5,s1
         shortname[i++] = ' ';
-    80206c28:	02000693          	li	a3,32
+    80206be8:	02000693          	li	a3,32
     while (i < CHAR_SHORT_NAME) {
-    80206c2c:	4729                	li	a4,10
+    80206bec:	4729                	li	a4,10
         shortname[i++] = ' ';
-    80206c2e:	2485                	addiw	s1,s1,1
-    80206c30:	00d78023          	sb	a3,0(a5)
+    80206bee:	2485                	addiw	s1,s1,1
+    80206bf0:	00d78023          	sb	a3,0(a5)
     while (i < CHAR_SHORT_NAME) {
-    80206c34:	0785                	addi	a5,a5,1
-    80206c36:	fe975ce3          	bge	a4,s1,80206c2e <emake+0x198>
+    80206bf4:	0785                	addi	a5,a5,1
+    80206bf6:	fe975ce3          	bge	a4,s1,80206bee <emake+0x198>
         de.lne.checksum = cal_checksum((uchar *)shortname);
-    80206c3a:	f6040513          	addi	a0,s0,-160
-    80206c3e:	00000097          	auipc	ra,0x0
-    80206c42:	e2a080e7          	jalr	-470(ra) # 80206a68 <cal_checksum>
-    80206c46:	f6a40ea3          	sb	a0,-131(s0)
+    80206bfa:	f6040513          	addi	a0,s0,-160
+    80206bfe:	00000097          	auipc	ra,0x0
+    80206c02:	e2a080e7          	jalr	-470(ra) # 80206a28 <cal_checksum>
+    80206c06:	f6a40ea3          	sb	a0,-131(s0)
         de.lne.attr = ATTR_LONG_NAME;
-    80206c4a:	47bd                	li	a5,15
-    80206c4c:	f6f40da3          	sb	a5,-133(s0)
+    80206c0a:	47bd                	li	a5,15
+    80206c0c:	f6f40da3          	sb	a5,-133(s0)
         for (int i = entcnt; i > 0; i--) {
-    80206c50:	f4843783          	ld	a5,-184(s0)
-    80206c54:	14f05c63          	blez	a5,80206dac <emake+0x316>
-    80206c58:	f5842783          	lw	a5,-168(s0)
-    80206c5c:	37fd                	addiw	a5,a5,-1
-    80206c5e:	f4f42223          	sw	a5,-188(s0)
-    80206c62:	00179b9b          	slliw	s7,a5,0x1
-    80206c66:	00fb8bbb          	addw	s7,s7,a5
-    80206c6a:	002b9b9b          	slliw	s7,s7,0x2
-    80206c6e:	00fb8bbb          	addw	s7,s7,a5
-    80206c72:	9bea                	add	s7,s7,s10
-    80206c74:	8aee                	mv	s5,s11
-    80206c76:	8c66                	mv	s8,s9
+    80206c10:	f4843783          	ld	a5,-184(s0)
+    80206c14:	14f05c63          	blez	a5,80206d6c <emake+0x316>
+    80206c18:	f5842783          	lw	a5,-168(s0)
+    80206c1c:	37fd                	addiw	a5,a5,-1
+    80206c1e:	f4f42223          	sw	a5,-188(s0)
+    80206c22:	00179b9b          	slliw	s7,a5,0x1
+    80206c26:	00fb8bbb          	addw	s7,s7,a5
+    80206c2a:	002b9b9b          	slliw	s7,s7,0x2
+    80206c2e:	00fb8bbb          	addw	s7,s7,a5
+    80206c32:	9bea                	add	s7,s7,s10
+    80206c34:	8aee                	mv	s5,s11
+    80206c36:	8c66                	mv	s8,s9
             int end = 0;
-    80206c78:	4981                	li	s3,0
+    80206c38:	4981                	li	s3,0
             uint8 *w = (uint8 *)de.lne.name1;
-    80206c7a:	f7140793          	addi	a5,s0,-143
-    80206c7e:	f4f43823          	sd	a5,-176(s0)
-    80206c82:	0ff00913          	li	s2,255
+    80206c3a:	f7140793          	addi	a5,s0,-143
+    80206c3e:	f4f43823          	sd	a5,-176(s0)
+    80206c42:	0ff00913          	li	s2,255
                     case 5:     w = (uint8 *)de.lne.name2; break;
-    80206c86:	f7e40793          	addi	a5,s0,-130
-    80206c8a:	f4f43c23          	sd	a5,-168(s0)
+    80206c46:	f7e40793          	addi	a5,s0,-130
+    80206c4a:	f4f43c23          	sd	a5,-168(s0)
                 switch (j) {
-    80206c8e:	44ad                	li	s1,11
-    80206c90:	f8c40a13          	addi	s4,s0,-116
-    80206c94:	a0c5                	j	80206d74 <emake+0x2de>
+    80206c4e:	44ad                	li	s1,11
+    80206c50:	f8c40a13          	addi	s4,s0,-116
+    80206c54:	a0c5                	j	80206d34 <emake+0x2de>
             if (name > p) {                    // last '.'
-    80206c96:	0549f663          	bgeu	s3,s4,80206ce2 <emake+0x24c>
+    80206c56:	0549f663          	bgeu	s3,s4,80206ca2 <emake+0x24c>
                 memset(shortname + i, ' ', 8 - i);
-    80206c9a:	47a1                	li	a5,8
-    80206c9c:	4097863b          	subw	a2,a5,s1
-    80206ca0:	02000593          	li	a1,32
-    80206ca4:	f5043783          	ld	a5,-176(s0)
-    80206ca8:	00978533          	add	a0,a5,s1
-    80206cac:	ffffa097          	auipc	ra,0xffffa
-    80206cb0:	ab6080e7          	jalr	-1354(ra) # 80200762 <memset>
+    80206c5a:	47a1                	li	a5,8
+    80206c5c:	4097863b          	subw	a2,a5,s1
+    80206c60:	02000593          	li	a1,32
+    80206c64:	f5043783          	ld	a5,-176(s0)
+    80206c68:	00978533          	add	a0,a5,s1
+    80206c6c:	ffffa097          	auipc	ra,0xffffa
+    80206c70:	af6080e7          	jalr	-1290(ra) # 80200762 <memset>
     while (i < CHAR_SHORT_NAME && (c = *name++)) {
-    80206cb4:	89d2                	mv	s3,s4
+    80206c74:	89d2                	mv	s3,s4
         shortname[i++] = c;
-    80206cb6:	8a4e                	mv	s4,s3
-    80206cb8:	84d6                	mv	s1,s5
-    80206cba:	4981                	li	s3,0
-    80206cbc:	a02d                	j	80206ce6 <emake+0x250>
+    80206c76:	8a4e                	mv	s4,s3
+    80206c78:	84d6                	mv	s1,s5
+    80206c7a:	4981                	li	s3,0
+    80206c7c:	a02d                	j	80206ca6 <emake+0x250>
             if (strchr(illegal, c) != NULL) {
-    80206cbe:	85ca                	mv	a1,s2
-    80206cc0:	00006517          	auipc	a0,0x6
-    80206cc4:	35050513          	addi	a0,a0,848 # 8020d010 <illegal.0>
-    80206cc8:	ffffa097          	auipc	ra,0xffffa
-    80206ccc:	cf8080e7          	jalr	-776(ra) # 802009c0 <strchr>
-    80206cd0:	c119                	beqz	a0,80206cd6 <emake+0x240>
+    80206c7e:	85ca                	mv	a1,s2
+    80206c80:	00006517          	auipc	a0,0x6
+    80206c84:	39050513          	addi	a0,a0,912 # 8020d010 <illegal.0>
+    80206c88:	ffffa097          	auipc	ra,0xffffa
+    80206c8c:	d38080e7          	jalr	-712(ra) # 802009c0 <strchr>
+    80206c90:	c119                	beqz	a0,80206c96 <emake+0x240>
                 c = '_';
-    80206cd2:	05f00913          	li	s2,95
+    80206c92:	05f00913          	li	s2,95
         shortname[i++] = c;
-    80206cd6:	f9048793          	addi	a5,s1,-112
-    80206cda:	97a2                	add	a5,a5,s0
-    80206cdc:	fd278823          	sb	s2,-48(a5)
-    80206ce0:	2485                	addiw	s1,s1,1
+    80206c96:	f9048793          	addi	a5,s1,-112
+    80206c9a:	97a2                	add	a5,a5,s0
+    80206c9c:	fd278823          	sb	s2,-48(a5)
+    80206ca0:	2485                	addiw	s1,s1,1
     while (i < CHAR_SHORT_NAME && (c = *name++)) {
-    80206ce2:	f49bcce3          	blt	s7,s1,80206c3a <emake+0x1a4>
+    80206ca2:	f49bcce3          	blt	s7,s1,80206bfa <emake+0x1a4>
         shortname[i++] = c;
-    80206ce6:	8952                	mv	s2,s4
+    80206ca6:	8952                	mv	s2,s4
     while (i < CHAR_SHORT_NAME && (c = *name++)) {
-    80206ce8:	00190a13          	addi	s4,s2,1
-    80206cec:	00094903          	lbu	s2,0(s2)
-    80206cf0:	02090663          	beqz	s2,80206d1c <emake+0x286>
+    80206ca8:	00190a13          	addi	s4,s2,1
+    80206cac:	00094903          	lbu	s2,0(s2)
+    80206cb0:	02090663          	beqz	s2,80206cdc <emake+0x286>
         if (i == 8 && p) {
-    80206cf4:	f35482e3          	beq	s1,s5,80206c18 <emake+0x182>
+    80206cb4:	f35482e3          	beq	s1,s5,80206bd8 <emake+0x182>
         if (c == ' ') { continue; }
-    80206cf8:	02000793          	li	a5,32
-    80206cfc:	fef903e3          	beq	s2,a5,80206ce2 <emake+0x24c>
+    80206cb8:	02000793          	li	a5,32
+    80206cbc:	fef903e3          	beq	s2,a5,80206ca2 <emake+0x24c>
         if (c == '.') {
-    80206d00:	02e00793          	li	a5,46
-    80206d04:	f8f909e3          	beq	s2,a5,80206c96 <emake+0x200>
+    80206cc0:	02e00793          	li	a5,46
+    80206cc4:	f8f909e3          	beq	s2,a5,80206c56 <emake+0x200>
         if (c >= 'a' && c <= 'z') {
-    80206d08:	f9f9079b          	addiw	a5,s2,-97
-    80206d0c:	0ff7f793          	zext.b	a5,a5
-    80206d10:	fafc67e3          	bltu	s8,a5,80206cbe <emake+0x228>
+    80206cc8:	f9f9079b          	addiw	a5,s2,-97
+    80206ccc:	0ff7f793          	zext.b	a5,a5
+    80206cd0:	fafc67e3          	bltu	s8,a5,80206c7e <emake+0x228>
             c += 'A' - 'a';
-    80206d14:	3901                	addiw	s2,s2,-32
-    80206d16:	0ff97913          	zext.b	s2,s2
-    80206d1a:	bf75                	j	80206cd6 <emake+0x240>
+    80206cd4:	3901                	addiw	s2,s2,-32
+    80206cd6:	0ff97913          	zext.b	s2,s2
+    80206cda:	bf75                	j	80206c96 <emake+0x240>
     while (i < CHAR_SHORT_NAME) {
-    80206d1c:	47a9                	li	a5,10
-    80206d1e:	f097d2e3          	bge	a5,s1,80206c22 <emake+0x18c>
-    80206d22:	bf21                	j	80206c3a <emake+0x1a4>
+    80206cdc:	47a9                	li	a5,10
+    80206cde:	f097d2e3          	bge	a5,s1,80206be2 <emake+0x18c>
+    80206ce2:	bf21                	j	80206bfa <emake+0x1a4>
                 de.lne.order |= LAST_LONG_ENTRY;
-    80206d24:	0407e793          	ori	a5,a5,64
-    80206d28:	f6f40823          	sb	a5,-144(s0)
-    80206d2c:	a891                	j	80206d80 <emake+0x2ea>
+    80206ce4:	0407e793          	ori	a5,a5,64
+    80206ce8:	f6f40823          	sb	a5,-144(s0)
+    80206cec:	a891                	j	80206d40 <emake+0x2ea>
                     if ((*w++ = *p++) == 0) {
-    80206d2e:	00084603          	lbu	a2,0(a6)
+    80206cee:	00084603          	lbu	a2,0(a6)
                         end = 1;
-    80206d32:	00163513          	seqz	a0,a2
+    80206cf2:	00163513          	seqz	a0,a2
                     *w++ = 0;
-    80206d36:	00278893          	addi	a7,a5,2
+    80206cf6:	00278893          	addi	a7,a5,2
                     if ((*w++ = *p++) == 0) {
-    80206d3a:	0805                	addi	a6,a6,1
+    80206cfa:	0805                	addi	a6,a6,1
                     *w++ = 0;
-    80206d3c:	85ce                	mv	a1,s3
-    80206d3e:	a8d5                	j	80206e32 <emake+0x39c>
+    80206cfc:	85ce                	mv	a1,s3
+    80206cfe:	a8d5                	j	80206df2 <emake+0x39c>
             uint off2 = reloc_clus(dp, off, 1);
-    80206d40:	4605                	li	a2,1
-    80206d42:	85e2                	mv	a1,s8
-    80206d44:	855a                	mv	a0,s6
-    80206d46:	fffff097          	auipc	ra,0xfffff
-    80206d4a:	460080e7          	jalr	1120(ra) # 802061a6 <reloc_clus>
+    80206d00:	4605                	li	a2,1
+    80206d02:	85e2                	mv	a1,s8
+    80206d04:	855a                	mv	a0,s6
+    80206d06:	fffff097          	auipc	ra,0xfffff
+    80206d0a:	460080e7          	jalr	1120(ra) # 80206166 <reloc_clus>
             rw_clus(dp->cur_clus, 1, 0, (uint64)&de, off2, sizeof(de));
-    80206d4e:	02000793          	li	a5,32
-    80206d52:	0005071b          	sext.w	a4,a0
-    80206d56:	f7040693          	addi	a3,s0,-144
-    80206d5a:	864e                	mv	a2,s3
-    80206d5c:	4585                	li	a1,1
-    80206d5e:	10cb2503          	lw	a0,268(s6)
-    80206d62:	fffff097          	auipc	ra,0xfffff
-    80206d66:	54c080e7          	jalr	1356(ra) # 802062ae <rw_clus>
+    80206d0e:	02000793          	li	a5,32
+    80206d12:	0005071b          	sext.w	a4,a0
+    80206d16:	f7040693          	addi	a3,s0,-144
+    80206d1a:	864e                	mv	a2,s3
+    80206d1c:	4585                	li	a1,1
+    80206d1e:	10cb2503          	lw	a0,268(s6)
+    80206d22:	fffff097          	auipc	ra,0xfffff
+    80206d26:	54c080e7          	jalr	1356(ra) # 8020626e <rw_clus>
             off += sizeof(de);
-    80206d6a:	020c0c1b          	addiw	s8,s8,32
+    80206d2a:	020c0c1b          	addiw	s8,s8,32
         for (int i = entcnt; i > 0; i--) {
-    80206d6e:	1bcd                	addi	s7,s7,-13
-    80206d70:	03505163          	blez	s5,80206d92 <emake+0x2fc>
+    80206d2e:	1bcd                	addi	s7,s7,-13
+    80206d30:	03505163          	blez	s5,80206d52 <emake+0x2fc>
             if ((de.lne.order = i) == entcnt) {
-    80206d74:	0ffaf793          	zext.b	a5,s5
-    80206d78:	fafd86e3          	beq	s11,a5,80206d24 <emake+0x28e>
-    80206d7c:	f6f40823          	sb	a5,-144(s0)
+    80206d34:	0ffaf793          	zext.b	a5,s5
+    80206d38:	fafd86e3          	beq	s11,a5,80206ce4 <emake+0x28e>
+    80206d3c:	f6f40823          	sb	a5,-144(s0)
             char *p = ep->filename + (i - 1) * CHAR_LONG_NAME;
-    80206d80:	3afd                	addiw	s5,s5,-1
-    80206d82:	885e                	mv	a6,s7
-    80206d84:	4709                	li	a4,2
+    80206d40:	3afd                	addiw	s5,s5,-1
+    80206d42:	885e                	mv	a6,s7
+    80206d44:	4709                	li	a4,2
             int end = 0;
-    80206d86:	854e                	mv	a0,s3
+    80206d46:	854e                	mv	a0,s3
             uint8 *w = (uint8 *)de.lne.name1;
-    80206d88:	f5043783          	ld	a5,-176(s0)
+    80206d48:	f5043783          	ld	a5,-176(s0)
                 switch (j) {
-    80206d8c:	4315                	li	t1,5
+    80206d4c:	4315                	li	t1,5
             for (int j = 1; j <= CHAR_LONG_NAME; j++) {
-    80206d8e:	4e35                	li	t3,13
-    80206d90:	a851                	j	80206e24 <emake+0x38e>
-    80206d92:	020c8c9b          	addiw	s9,s9,32
+    80206d4e:	4e35                	li	t3,13
+    80206d50:	a851                	j	80206de4 <emake+0x38e>
+    80206d52:	020c8c9b          	addiw	s9,s9,32
             off += sizeof(de);
-    80206d96:	4781                	li	a5,0
-    80206d98:	f4843703          	ld	a4,-184(s0)
-    80206d9c:	00e05663          	blez	a4,80206da8 <emake+0x312>
-    80206da0:	f4442783          	lw	a5,-188(s0)
-    80206da4:	0057979b          	slliw	a5,a5,0x5
-    80206da8:	01978cbb          	addw	s9,a5,s9
+    80206d56:	4781                	li	a5,0
+    80206d58:	f4843703          	ld	a4,-184(s0)
+    80206d5c:	00e05663          	blez	a4,80206d68 <emake+0x312>
+    80206d60:	f4442783          	lw	a5,-188(s0)
+    80206d64:	0057979b          	slliw	a5,a5,0x5
+    80206d68:	01978cbb          	addw	s9,a5,s9
         memset(&de, 0, sizeof(de));
-    80206dac:	02000613          	li	a2,32
-    80206db0:	4581                	li	a1,0
-    80206db2:	f7040493          	addi	s1,s0,-144
-    80206db6:	8526                	mv	a0,s1
-    80206db8:	ffffa097          	auipc	ra,0xffffa
-    80206dbc:	9aa080e7          	jalr	-1622(ra) # 80200762 <memset>
+    80206d6c:	02000613          	li	a2,32
+    80206d70:	4581                	li	a1,0
+    80206d72:	f7040493          	addi	s1,s0,-144
+    80206d76:	8526                	mv	a0,s1
+    80206d78:	ffffa097          	auipc	ra,0xffffa
+    80206d7c:	9ea080e7          	jalr	-1558(ra) # 80200762 <memset>
         strncpy(de.sne.name, shortname, sizeof(de.sne.name));
-    80206dc0:	462d                	li	a2,11
-    80206dc2:	f6040593          	addi	a1,s0,-160
-    80206dc6:	8526                	mv	a0,s1
-    80206dc8:	ffffa097          	auipc	ra,0xffffa
-    80206dcc:	aae080e7          	jalr	-1362(ra) # 80200876 <strncpy>
+    80206d80:	462d                	li	a2,11
+    80206d82:	f6040593          	addi	a1,s0,-160
+    80206d86:	8526                	mv	a0,s1
+    80206d88:	ffffa097          	auipc	ra,0xffffa
+    80206d8c:	aee080e7          	jalr	-1298(ra) # 80200876 <strncpy>
         de.sne.attr = ep->attribute;
-    80206dd0:	100d4783          	lbu	a5,256(s10)
-    80206dd4:	f6f40da3          	sb	a5,-133(s0)
+    80206d90:	100d4783          	lbu	a5,256(s10)
+    80206d94:	f6f40da3          	sb	a5,-133(s0)
         de.sne.fst_clus_hi = (uint16)(ep->first_clus >> 16);      // first clus high 16 bits
-    80206dd8:	104d2783          	lw	a5,260(s10)
-    80206ddc:	0107d71b          	srliw	a4,a5,0x10
-    80206de0:	f8e41223          	sh	a4,-124(s0)
+    80206d98:	104d2783          	lw	a5,260(s10)
+    80206d9c:	0107d71b          	srliw	a4,a5,0x10
+    80206da0:	f8e41223          	sh	a4,-124(s0)
         de.sne.fst_clus_lo = (uint16)(ep->first_clus & 0xffff);     // low 16 bits
-    80206de4:	f8f41523          	sh	a5,-118(s0)
+    80206da4:	f8f41523          	sh	a5,-118(s0)
         de.sne.file_size = ep->file_size;                         // filesize is updated in eupdate()
-    80206de8:	108d2783          	lw	a5,264(s10)
-    80206dec:	f8f42623          	sw	a5,-116(s0)
+    80206da8:	108d2783          	lw	a5,264(s10)
+    80206dac:	f8f42623          	sw	a5,-116(s0)
         off = reloc_clus(dp, off, 1);
-    80206df0:	4605                	li	a2,1
-    80206df2:	85e6                	mv	a1,s9
-    80206df4:	855a                	mv	a0,s6
-    80206df6:	fffff097          	auipc	ra,0xfffff
-    80206dfa:	3b0080e7          	jalr	944(ra) # 802061a6 <reloc_clus>
+    80206db0:	4605                	li	a2,1
+    80206db2:	85e6                	mv	a1,s9
+    80206db4:	855a                	mv	a0,s6
+    80206db6:	fffff097          	auipc	ra,0xfffff
+    80206dba:	3b0080e7          	jalr	944(ra) # 80206166 <reloc_clus>
         rw_clus(dp->cur_clus, 1, 0, (uint64)&de, off, sizeof(de));
-    80206dfe:	02000793          	li	a5,32
-    80206e02:	0005071b          	sext.w	a4,a0
-    80206e06:	86a6                	mv	a3,s1
-    80206e08:	4601                	li	a2,0
-    80206e0a:	4585                	li	a1,1
-    80206e0c:	10cb2503          	lw	a0,268(s6)
-    80206e10:	fffff097          	auipc	ra,0xfffff
-    80206e14:	49e080e7          	jalr	1182(ra) # 802062ae <rw_clus>
+    80206dbe:	02000793          	li	a5,32
+    80206dc2:	0005071b          	sext.w	a4,a0
+    80206dc6:	86a6                	mv	a3,s1
+    80206dc8:	4601                	li	a2,0
+    80206dca:	4585                	li	a1,1
+    80206dcc:	10cb2503          	lw	a0,268(s6)
+    80206dd0:	fffff097          	auipc	ra,0xfffff
+    80206dd4:	49e080e7          	jalr	1182(ra) # 8020626e <rw_clus>
 }
-    80206e18:	b325                	j	80206b40 <emake+0xaa>
+    80206dd8:	b325                	j	80206b00 <emake+0xaa>
                     case 5:     w = (uint8 *)de.lne.name2; break;
-    80206e1a:	f5843783          	ld	a5,-168(s0)
-    80206e1e:	a011                	j	80206e22 <emake+0x38c>
+    80206dda:	f5843783          	ld	a5,-168(s0)
+    80206dde:	a011                	j	80206de2 <emake+0x38c>
                 switch (j) {
-    80206e20:	87d2                	mv	a5,s4
+    80206de0:	87d2                	mv	a5,s4
             for (int j = 1; j <= CHAR_LONG_NAME; j++) {
-    80206e22:	2705                	addiw	a4,a4,1
-    80206e24:	fff7069b          	addiw	a3,a4,-1
+    80206de2:	2705                	addiw	a4,a4,1
+    80206de4:	fff7069b          	addiw	a3,a4,-1
                 if (end) {
-    80206e28:	d119                	beqz	a0,80206d2e <emake+0x298>
+    80206de8:	d119                	beqz	a0,80206cee <emake+0x298>
                     *w++ = 0xff;
-    80206e2a:	00278893          	addi	a7,a5,2
-    80206e2e:	864a                	mv	a2,s2
-    80206e30:	85ca                	mv	a1,s2
+    80206dea:	00278893          	addi	a7,a5,2
+    80206dee:	864a                	mv	a2,s2
+    80206df0:	85ca                	mv	a1,s2
                     *w++ = 0xff;            // on k210, unaligned reading is illegal
-    80206e32:	00c78023          	sb	a2,0(a5)
+    80206df2:	00c78023          	sb	a2,0(a5)
                     *w++ = 0xff;
-    80206e36:	00b780a3          	sb	a1,1(a5)
+    80206df6:	00b780a3          	sb	a1,1(a5)
                 switch (j) {
-    80206e3a:	fe6680e3          	beq	a3,t1,80206e1a <emake+0x384>
-    80206e3e:	fe9681e3          	beq	a3,s1,80206e20 <emake+0x38a>
+    80206dfa:	fe6680e3          	beq	a3,t1,80206dda <emake+0x384>
+    80206dfe:	fe9681e3          	beq	a3,s1,80206de0 <emake+0x38a>
             for (int j = 1; j <= CHAR_LONG_NAME; j++) {
-    80206e42:	0007079b          	sext.w	a5,a4
-    80206e46:	eefe4de3          	blt	t3,a5,80206d40 <emake+0x2aa>
-    80206e4a:	87c6                	mv	a5,a7
-    80206e4c:	bfd9                	j	80206e22 <emake+0x38c>
+    80206e02:	0007079b          	sext.w	a5,a4
+    80206e06:	eefe4de3          	blt	t3,a5,80206d00 <emake+0x2aa>
+    80206e0a:	87c6                	mv	a5,a7
+    80206e0c:	bfd9                	j	80206de2 <emake+0x38c>
         if (c == ' ') { continue; }
-    80206e4e:	02000793          	li	a5,32
-    80206e52:	e8f90ae3          	beq	s2,a5,80206ce6 <emake+0x250>
+    80206e0e:	02000793          	li	a5,32
+    80206e12:	e8f90ae3          	beq	s2,a5,80206ca6 <emake+0x250>
         if (c == '.') {
-    80206e56:	02e00793          	li	a5,46
-    80206e5a:	eaf917e3          	bne	s2,a5,80206d08 <emake+0x272>
-    80206e5e:	bd35                	j	80206c9a <emake+0x204>
+    80206e16:	02e00793          	li	a5,46
+    80206e1a:	eaf917e3          	bne	s2,a5,80206cc8 <emake+0x272>
+    80206e1e:	bd35                	j	80206c5a <emake+0x204>
 
-0000000080206e60 <edup>:
+0000000080206e20 <edup>:
 {
-    80206e60:	1101                	addi	sp,sp,-32
-    80206e62:	ec06                	sd	ra,24(sp)
-    80206e64:	e822                	sd	s0,16(sp)
-    80206e66:	e426                	sd	s1,8(sp)
-    80206e68:	1000                	addi	s0,sp,32
-    80206e6a:	84aa                	mv	s1,a0
+    80206e20:	1101                	addi	sp,sp,-32
+    80206e22:	ec06                	sd	ra,24(sp)
+    80206e24:	e822                	sd	s0,16(sp)
+    80206e26:	e426                	sd	s1,8(sp)
+    80206e28:	1000                	addi	s0,sp,32
+    80206e2a:	84aa                	mv	s1,a0
     if (entry != 0) {
-    80206e6c:	c515                	beqz	a0,80206e98 <edup+0x38>
+    80206e2c:	c515                	beqz	a0,80206e58 <edup+0x38>
         acquire(&ecache.lock);
-    80206e6e:	0002c517          	auipc	a0,0x2c
-    80206e72:	eaa50513          	addi	a0,a0,-342 # 80232d18 <ecache>
-    80206e76:	ffffa097          	auipc	ra,0xffffa
-    80206e7a:	850080e7          	jalr	-1968(ra) # 802006c6 <acquire>
+    80206e2e:	0002c517          	auipc	a0,0x2c
+    80206e32:	eea50513          	addi	a0,a0,-278 # 80232d18 <ecache>
+    80206e36:	ffffa097          	auipc	ra,0xffffa
+    80206e3a:	890080e7          	jalr	-1904(ra) # 802006c6 <acquire>
         entry->ref++;
-    80206e7e:	1184a783          	lw	a5,280(s1)
-    80206e82:	2785                	addiw	a5,a5,1
-    80206e84:	10f4ac23          	sw	a5,280(s1)
+    80206e3e:	1184a783          	lw	a5,280(s1)
+    80206e42:	2785                	addiw	a5,a5,1
+    80206e44:	10f4ac23          	sw	a5,280(s1)
         release(&ecache.lock);
-    80206e88:	0002c517          	auipc	a0,0x2c
-    80206e8c:	e9050513          	addi	a0,a0,-368 # 80232d18 <ecache>
-    80206e90:	ffffa097          	auipc	ra,0xffffa
-    80206e94:	88a080e7          	jalr	-1910(ra) # 8020071a <release>
+    80206e48:	0002c517          	auipc	a0,0x2c
+    80206e4c:	ed050513          	addi	a0,a0,-304 # 80232d18 <ecache>
+    80206e50:	ffffa097          	auipc	ra,0xffffa
+    80206e54:	8ca080e7          	jalr	-1846(ra) # 8020071a <release>
 }
-    80206e98:	8526                	mv	a0,s1
-    80206e9a:	60e2                	ld	ra,24(sp)
-    80206e9c:	6442                	ld	s0,16(sp)
-    80206e9e:	64a2                	ld	s1,8(sp)
-    80206ea0:	6105                	addi	sp,sp,32
-    80206ea2:	8082                	ret
-
-0000000080206ea4 <eupdate>:
+    80206e58:	8526                	mv	a0,s1
+    80206e5a:	60e2                	ld	ra,24(sp)
+    80206e5c:	6442                	ld	s0,16(sp)
+    80206e5e:	64a2                	ld	s1,8(sp)
+    80206e60:	6105                	addi	sp,sp,32
+    80206e62:	8082                	ret
+
+0000000080206e64 <eupdate>:
     if (!entry->dirty || entry->valid != 1) { return; }
-    80206ea4:	11554783          	lbu	a5,277(a0)
-    80206ea8:	c3e5                	beqz	a5,80206f88 <eupdate+0xe4>
+    80206e64:	11554783          	lbu	a5,277(a0)
+    80206e68:	c3e5                	beqz	a5,80206f48 <eupdate+0xe4>
 {
-    80206eaa:	711d                	addi	sp,sp,-96
-    80206eac:	ec86                	sd	ra,88(sp)
-    80206eae:	e8a2                	sd	s0,80(sp)
-    80206eb0:	e4a6                	sd	s1,72(sp)
-    80206eb2:	e0ca                	sd	s2,64(sp)
-    80206eb4:	fc4e                	sd	s3,56(sp)
-    80206eb6:	1080                	addi	s0,sp,96
-    80206eb8:	84aa                	mv	s1,a0
+    80206e6a:	711d                	addi	sp,sp,-96
+    80206e6c:	ec86                	sd	ra,88(sp)
+    80206e6e:	e8a2                	sd	s0,80(sp)
+    80206e70:	e4a6                	sd	s1,72(sp)
+    80206e72:	e0ca                	sd	s2,64(sp)
+    80206e74:	fc4e                	sd	s3,56(sp)
+    80206e76:	1080                	addi	s0,sp,96
+    80206e78:	84aa                	mv	s1,a0
     if (!entry->dirty || entry->valid != 1) { return; }
-    80206eba:	11651703          	lh	a4,278(a0)
-    80206ebe:	4785                	li	a5,1
-    80206ec0:	00f70963          	beq	a4,a5,80206ed2 <eupdate+0x2e>
+    80206e7a:	11651703          	lh	a4,278(a0)
+    80206e7e:	4785                	li	a5,1
+    80206e80:	00f70963          	beq	a4,a5,80206e92 <eupdate+0x2e>
 }
-    80206ec4:	60e6                	ld	ra,88(sp)
-    80206ec6:	6446                	ld	s0,80(sp)
-    80206ec8:	64a6                	ld	s1,72(sp)
-    80206eca:	6906                	ld	s2,64(sp)
-    80206ecc:	79e2                	ld	s3,56(sp)
-    80206ece:	6125                	addi	sp,sp,96
-    80206ed0:	8082                	ret
+    80206e84:	60e6                	ld	ra,88(sp)
+    80206e86:	6446                	ld	s0,80(sp)
+    80206e88:	64a6                	ld	s1,72(sp)
+    80206e8a:	6906                	ld	s2,64(sp)
+    80206e8c:	79e2                	ld	s3,56(sp)
+    80206e8e:	6125                	addi	sp,sp,96
+    80206e90:	8082                	ret
     uint entcnt = 0;
-    80206ed2:	fc042623          	sw	zero,-52(s0)
+    80206e92:	fc042623          	sw	zero,-52(s0)
     uint32 off = reloc_clus(entry->parent, entry->off, 0);
-    80206ed6:	4601                	li	a2,0
-    80206ed8:	11c52583          	lw	a1,284(a0)
-    80206edc:	12053503          	ld	a0,288(a0)
-    80206ee0:	fffff097          	auipc	ra,0xfffff
-    80206ee4:	2c6080e7          	jalr	710(ra) # 802061a6 <reloc_clus>
+    80206e96:	4601                	li	a2,0
+    80206e98:	11c52583          	lw	a1,284(a0)
+    80206e9c:	12053503          	ld	a0,288(a0)
+    80206ea0:	fffff097          	auipc	ra,0xfffff
+    80206ea4:	2c6080e7          	jalr	710(ra) # 80206166 <reloc_clus>
     rw_clus(entry->parent->cur_clus, 0, 0, (uint64) &entcnt, off, 1);
-    80206ee8:	1204b803          	ld	a6,288(s1)
-    80206eec:	4785                	li	a5,1
-    80206eee:	0005071b          	sext.w	a4,a0
-    80206ef2:	fcc40693          	addi	a3,s0,-52
-    80206ef6:	4601                	li	a2,0
-    80206ef8:	4581                	li	a1,0
-    80206efa:	10c82503          	lw	a0,268(a6)
-    80206efe:	fffff097          	auipc	ra,0xfffff
-    80206f02:	3b0080e7          	jalr	944(ra) # 802062ae <rw_clus>
+    80206ea8:	1204b803          	ld	a6,288(s1)
+    80206eac:	4785                	li	a5,1
+    80206eae:	0005071b          	sext.w	a4,a0
+    80206eb2:	fcc40693          	addi	a3,s0,-52
+    80206eb6:	4601                	li	a2,0
+    80206eb8:	4581                	li	a1,0
+    80206eba:	10c82503          	lw	a0,268(a6)
+    80206ebe:	fffff097          	auipc	ra,0xfffff
+    80206ec2:	3b0080e7          	jalr	944(ra) # 8020626e <rw_clus>
     entcnt &= ~LAST_LONG_ENTRY;
-    80206f06:	fcc42583          	lw	a1,-52(s0)
-    80206f0a:	fbf5f593          	andi	a1,a1,-65
-    80206f0e:	fcb42623          	sw	a1,-52(s0)
+    80206ec6:	fcc42583          	lw	a1,-52(s0)
+    80206eca:	fbf5f593          	andi	a1,a1,-65
+    80206ece:	fcb42623          	sw	a1,-52(s0)
     off = reloc_clus(entry->parent, entry->off + (entcnt << 5), 0);
-    80206f12:	0055959b          	slliw	a1,a1,0x5
-    80206f16:	11c4a783          	lw	a5,284(s1)
-    80206f1a:	4601                	li	a2,0
-    80206f1c:	9dbd                	addw	a1,a1,a5
-    80206f1e:	1204b503          	ld	a0,288(s1)
-    80206f22:	fffff097          	auipc	ra,0xfffff
-    80206f26:	284080e7          	jalr	644(ra) # 802061a6 <reloc_clus>
-    80206f2a:	0005099b          	sext.w	s3,a0
+    80206ed2:	0055959b          	slliw	a1,a1,0x5
+    80206ed6:	11c4a783          	lw	a5,284(s1)
+    80206eda:	4601                	li	a2,0
+    80206edc:	9dbd                	addw	a1,a1,a5
+    80206ede:	1204b503          	ld	a0,288(s1)
+    80206ee2:	fffff097          	auipc	ra,0xfffff
+    80206ee6:	284080e7          	jalr	644(ra) # 80206166 <reloc_clus>
+    80206eea:	0005099b          	sext.w	s3,a0
     rw_clus(entry->parent->cur_clus, 0, 0, (uint64)&de, off, sizeof(de));
-    80206f2e:	1204b503          	ld	a0,288(s1)
-    80206f32:	02000793          	li	a5,32
-    80206f36:	874e                	mv	a4,s3
-    80206f38:	fa840913          	addi	s2,s0,-88
-    80206f3c:	86ca                	mv	a3,s2
-    80206f3e:	4601                	li	a2,0
-    80206f40:	4581                	li	a1,0
-    80206f42:	10c52503          	lw	a0,268(a0)
-    80206f46:	fffff097          	auipc	ra,0xfffff
-    80206f4a:	368080e7          	jalr	872(ra) # 802062ae <rw_clus>
+    80206eee:	1204b503          	ld	a0,288(s1)
+    80206ef2:	02000793          	li	a5,32
+    80206ef6:	874e                	mv	a4,s3
+    80206ef8:	fa840913          	addi	s2,s0,-88
+    80206efc:	86ca                	mv	a3,s2
+    80206efe:	4601                	li	a2,0
+    80206f00:	4581                	li	a1,0
+    80206f02:	10c52503          	lw	a0,268(a0)
+    80206f06:	fffff097          	auipc	ra,0xfffff
+    80206f0a:	368080e7          	jalr	872(ra) # 8020626e <rw_clus>
     de.sne.fst_clus_hi = (uint16)(entry->first_clus >> 16);
-    80206f4e:	1044a783          	lw	a5,260(s1)
-    80206f52:	0107d71b          	srliw	a4,a5,0x10
-    80206f56:	fae41e23          	sh	a4,-68(s0)
+    80206f0e:	1044a783          	lw	a5,260(s1)
+    80206f12:	0107d71b          	srliw	a4,a5,0x10
+    80206f16:	fae41e23          	sh	a4,-68(s0)
     de.sne.fst_clus_lo = (uint16)(entry->first_clus & 0xffff);
-    80206f5a:	fcf41123          	sh	a5,-62(s0)
+    80206f1a:	fcf41123          	sh	a5,-62(s0)
     de.sne.file_size = entry->file_size;
-    80206f5e:	1084a783          	lw	a5,264(s1)
-    80206f62:	fcf42223          	sw	a5,-60(s0)
+    80206f1e:	1084a783          	lw	a5,264(s1)
+    80206f22:	fcf42223          	sw	a5,-60(s0)
     rw_clus(entry->parent->cur_clus, 1, 0, (uint64)&de, off, sizeof(de));
-    80206f66:	1204b503          	ld	a0,288(s1)
-    80206f6a:	02000793          	li	a5,32
-    80206f6e:	874e                	mv	a4,s3
-    80206f70:	86ca                	mv	a3,s2
-    80206f72:	4601                	li	a2,0
-    80206f74:	4585                	li	a1,1
-    80206f76:	10c52503          	lw	a0,268(a0)
-    80206f7a:	fffff097          	auipc	ra,0xfffff
-    80206f7e:	334080e7          	jalr	820(ra) # 802062ae <rw_clus>
+    80206f26:	1204b503          	ld	a0,288(s1)
+    80206f2a:	02000793          	li	a5,32
+    80206f2e:	874e                	mv	a4,s3
+    80206f30:	86ca                	mv	a3,s2
+    80206f32:	4601                	li	a2,0
+    80206f34:	4585                	li	a1,1
+    80206f36:	10c52503          	lw	a0,268(a0)
+    80206f3a:	fffff097          	auipc	ra,0xfffff
+    80206f3e:	334080e7          	jalr	820(ra) # 8020626e <rw_clus>
     entry->dirty = 0;
-    80206f82:	10048aa3          	sb	zero,277(s1)
-    80206f86:	bf3d                	j	80206ec4 <eupdate+0x20>
-    80206f88:	8082                	ret
+    80206f42:	10048aa3          	sb	zero,277(s1)
+    80206f46:	bf3d                	j	80206e84 <eupdate+0x20>
+    80206f48:	8082                	ret
 
-0000000080206f8a <eremove>:
+0000000080206f4a <eremove>:
     if (entry->valid != 1) { return; }
-    80206f8a:	11651703          	lh	a4,278(a0)
-    80206f8e:	4785                	li	a5,1
-    80206f90:	00f70363          	beq	a4,a5,80206f96 <eremove+0xc>
-    80206f94:	8082                	ret
+    80206f4a:	11651703          	lh	a4,278(a0)
+    80206f4e:	4785                	li	a5,1
+    80206f50:	00f70363          	beq	a4,a5,80206f56 <eremove+0xc>
+    80206f54:	8082                	ret
 {
-    80206f96:	715d                	addi	sp,sp,-80
-    80206f98:	e486                	sd	ra,72(sp)
-    80206f9a:	e0a2                	sd	s0,64(sp)
-    80206f9c:	fc26                	sd	s1,56(sp)
-    80206f9e:	f84a                	sd	s2,48(sp)
-    80206fa0:	f44e                	sd	s3,40(sp)
-    80206fa2:	f052                	sd	s4,32(sp)
-    80206fa4:	ec56                	sd	s5,24(sp)
-    80206fa6:	0880                	addi	s0,sp,80
-    80206fa8:	89aa                	mv	s3,a0
+    80206f56:	715d                	addi	sp,sp,-80
+    80206f58:	e486                	sd	ra,72(sp)
+    80206f5a:	e0a2                	sd	s0,64(sp)
+    80206f5c:	fc26                	sd	s1,56(sp)
+    80206f5e:	f84a                	sd	s2,48(sp)
+    80206f60:	f44e                	sd	s3,40(sp)
+    80206f62:	f052                	sd	s4,32(sp)
+    80206f64:	ec56                	sd	s5,24(sp)
+    80206f66:	0880                	addi	s0,sp,80
+    80206f68:	89aa                	mv	s3,a0
     uint entcnt = 0;
-    80206faa:	fa042e23          	sw	zero,-68(s0)
+    80206f6a:	fa042e23          	sw	zero,-68(s0)
     uint32 off = entry->off;
-    80206fae:	11c52a03          	lw	s4,284(a0)
+    80206f6e:	11c52a03          	lw	s4,284(a0)
     uint32 off2 = reloc_clus(entry->parent, off, 0);
-    80206fb2:	4601                	li	a2,0
-    80206fb4:	85d2                	mv	a1,s4
-    80206fb6:	12053503          	ld	a0,288(a0)
-    80206fba:	fffff097          	auipc	ra,0xfffff
-    80206fbe:	1ec080e7          	jalr	492(ra) # 802061a6 <reloc_clus>
-    80206fc2:	0005049b          	sext.w	s1,a0
+    80206f72:	4601                	li	a2,0
+    80206f74:	85d2                	mv	a1,s4
+    80206f76:	12053503          	ld	a0,288(a0)
+    80206f7a:	fffff097          	auipc	ra,0xfffff
+    80206f7e:	1ec080e7          	jalr	492(ra) # 80206166 <reloc_clus>
+    80206f82:	0005049b          	sext.w	s1,a0
     rw_clus(entry->parent->cur_clus, 0, 0, (uint64) &entcnt, off2, 1);
-    80206fc6:	1209b503          	ld	a0,288(s3)
-    80206fca:	4785                	li	a5,1
-    80206fcc:	8726                	mv	a4,s1
-    80206fce:	fbc40693          	addi	a3,s0,-68
-    80206fd2:	4601                	li	a2,0
-    80206fd4:	4581                	li	a1,0
-    80206fd6:	10c52503          	lw	a0,268(a0)
-    80206fda:	fffff097          	auipc	ra,0xfffff
-    80206fde:	2d4080e7          	jalr	724(ra) # 802062ae <rw_clus>
+    80206f86:	1209b503          	ld	a0,288(s3)
+    80206f8a:	4785                	li	a5,1
+    80206f8c:	8726                	mv	a4,s1
+    80206f8e:	fbc40693          	addi	a3,s0,-68
+    80206f92:	4601                	li	a2,0
+    80206f94:	4581                	li	a1,0
+    80206f96:	10c52503          	lw	a0,268(a0)
+    80206f9a:	fffff097          	auipc	ra,0xfffff
+    80206f9e:	2d4080e7          	jalr	724(ra) # 8020626e <rw_clus>
     entcnt &= ~LAST_LONG_ENTRY;
-    80206fe2:	fbc42783          	lw	a5,-68(s0)
-    80206fe6:	fbf7f793          	andi	a5,a5,-65
-    80206fea:	faf42e23          	sw	a5,-68(s0)
+    80206fa2:	fbc42783          	lw	a5,-68(s0)
+    80206fa6:	fbf7f793          	andi	a5,a5,-65
+    80206faa:	faf42e23          	sw	a5,-68(s0)
     uint8 flag = EMPTY_ENTRY;
-    80206fee:	5795                	li	a5,-27
-    80206ff0:	faf40da3          	sb	a5,-69(s0)
+    80206fae:	5795                	li	a5,-27
+    80206fb0:	faf40da3          	sb	a5,-69(s0)
     for (int i = 0; i <= entcnt; i++) {
-    80206ff4:	4901                	li	s2,0
+    80206fb4:	4901                	li	s2,0
         rw_clus(entry->parent->cur_clus, 1, 0, (uint64) &flag, off2, 1);
-    80206ff6:	fbb40a93          	addi	s5,s0,-69
-    80206ffa:	1209b503          	ld	a0,288(s3)
-    80206ffe:	4785                	li	a5,1
-    80207000:	8726                	mv	a4,s1
-    80207002:	86d6                	mv	a3,s5
-    80207004:	4601                	li	a2,0
-    80207006:	4585                	li	a1,1
-    80207008:	10c52503          	lw	a0,268(a0)
-    8020700c:	fffff097          	auipc	ra,0xfffff
-    80207010:	2a2080e7          	jalr	674(ra) # 802062ae <rw_clus>
+    80206fb6:	fbb40a93          	addi	s5,s0,-69
+    80206fba:	1209b503          	ld	a0,288(s3)
+    80206fbe:	4785                	li	a5,1
+    80206fc0:	8726                	mv	a4,s1
+    80206fc2:	86d6                	mv	a3,s5
+    80206fc4:	4601                	li	a2,0
+    80206fc6:	4585                	li	a1,1
+    80206fc8:	10c52503          	lw	a0,268(a0)
+    80206fcc:	fffff097          	auipc	ra,0xfffff
+    80206fd0:	2a2080e7          	jalr	674(ra) # 8020626e <rw_clus>
         off += 32;
-    80207014:	020a0a1b          	addiw	s4,s4,32
+    80206fd4:	020a0a1b          	addiw	s4,s4,32
         off2 = reloc_clus(entry->parent, off, 0);
-    80207018:	4601                	li	a2,0
-    8020701a:	85d2                	mv	a1,s4
-    8020701c:	1209b503          	ld	a0,288(s3)
-    80207020:	fffff097          	auipc	ra,0xfffff
-    80207024:	186080e7          	jalr	390(ra) # 802061a6 <reloc_clus>
-    80207028:	0005049b          	sext.w	s1,a0
+    80206fd8:	4601                	li	a2,0
+    80206fda:	85d2                	mv	a1,s4
+    80206fdc:	1209b503          	ld	a0,288(s3)
+    80206fe0:	fffff097          	auipc	ra,0xfffff
+    80206fe4:	186080e7          	jalr	390(ra) # 80206166 <reloc_clus>
+    80206fe8:	0005049b          	sext.w	s1,a0
     for (int i = 0; i <= entcnt; i++) {
-    8020702c:	0019079b          	addiw	a5,s2,1
-    80207030:	0007891b          	sext.w	s2,a5
-    80207034:	fbc42703          	lw	a4,-68(s0)
-    80207038:	fd2771e3          	bgeu	a4,s2,80206ffa <eremove+0x70>
+    80206fec:	0019079b          	addiw	a5,s2,1
+    80206ff0:	0007891b          	sext.w	s2,a5
+    80206ff4:	fbc42703          	lw	a4,-68(s0)
+    80206ff8:	fd2771e3          	bgeu	a4,s2,80206fba <eremove+0x70>
     entry->valid = -1;
-    8020703c:	57fd                	li	a5,-1
-    8020703e:	10f99b23          	sh	a5,278(s3)
+    80206ffc:	57fd                	li	a5,-1
+    80206ffe:	10f99b23          	sh	a5,278(s3)
 }
-    80207042:	60a6                	ld	ra,72(sp)
-    80207044:	6406                	ld	s0,64(sp)
-    80207046:	74e2                	ld	s1,56(sp)
-    80207048:	7942                	ld	s2,48(sp)
-    8020704a:	79a2                	ld	s3,40(sp)
-    8020704c:	7a02                	ld	s4,32(sp)
-    8020704e:	6ae2                	ld	s5,24(sp)
-    80207050:	6161                	addi	sp,sp,80
-    80207052:	8082                	ret
-
-0000000080207054 <etrunc>:
+    80207002:	60a6                	ld	ra,72(sp)
+    80207004:	6406                	ld	s0,64(sp)
+    80207006:	74e2                	ld	s1,56(sp)
+    80207008:	7942                	ld	s2,48(sp)
+    8020700a:	79a2                	ld	s3,40(sp)
+    8020700c:	7a02                	ld	s4,32(sp)
+    8020700e:	6ae2                	ld	s5,24(sp)
+    80207010:	6161                	addi	sp,sp,80
+    80207012:	8082                	ret
+
+0000000080207014 <etrunc>:
 {
-    80207054:	7179                	addi	sp,sp,-48
-    80207056:	f406                	sd	ra,40(sp)
-    80207058:	f022                	sd	s0,32(sp)
-    8020705a:	ec26                	sd	s1,24(sp)
-    8020705c:	e84a                	sd	s2,16(sp)
-    8020705e:	e44e                	sd	s3,8(sp)
-    80207060:	e052                	sd	s4,0(sp)
-    80207062:	1800                	addi	s0,sp,48
-    80207064:	8a2a                	mv	s4,a0
+    80207014:	7179                	addi	sp,sp,-48
+    80207016:	f406                	sd	ra,40(sp)
+    80207018:	f022                	sd	s0,32(sp)
+    8020701a:	ec26                	sd	s1,24(sp)
+    8020701c:	e84a                	sd	s2,16(sp)
+    8020701e:	e44e                	sd	s3,8(sp)
+    80207020:	e052                	sd	s4,0(sp)
+    80207022:	1800                	addi	s0,sp,48
+    80207024:	8a2a                	mv	s4,a0
     for (uint32 clus = entry->first_clus; clus >= 2 && clus < FAT32_EOC; ) {
-    80207066:	10452483          	lw	s1,260(a0)
-    8020706a:	ffe4871b          	addiw	a4,s1,-2
-    8020706e:	100007b7          	lui	a5,0x10000
-    80207072:	17d5                	addi	a5,a5,-11 # ffffff5 <_entry-0x7020000b>
-    80207074:	02e7e663          	bltu	a5,a4,802070a0 <etrunc+0x4c>
-    80207078:	89be                	mv	s3,a5
+    80207026:	10452483          	lw	s1,260(a0)
+    8020702a:	ffe4871b          	addiw	a4,s1,-2
+    8020702e:	100007b7          	lui	a5,0x10000
+    80207032:	17d5                	addi	a5,a5,-11 # ffffff5 <_entry-0x7020000b>
+    80207034:	02e7e663          	bltu	a5,a4,80207060 <etrunc+0x4c>
+    80207038:	89be                	mv	s3,a5
         uint32 next = read_fat(clus);
-    8020707a:	0004891b          	sext.w	s2,s1
-    8020707e:	8526                	mv	a0,s1
-    80207080:	fffff097          	auipc	ra,0xfffff
-    80207084:	eee080e7          	jalr	-274(ra) # 80205f6e <read_fat>
-    80207088:	0005049b          	sext.w	s1,a0
+    8020703a:	0004891b          	sext.w	s2,s1
+    8020703e:	8526                	mv	a0,s1
+    80207040:	fffff097          	auipc	ra,0xfffff
+    80207044:	eee080e7          	jalr	-274(ra) # 80205f2e <read_fat>
+    80207048:	0005049b          	sext.w	s1,a0
     write_fat(cluster, 0);
-    8020708c:	4581                	li	a1,0
-    8020708e:	854a                	mv	a0,s2
-    80207090:	fffff097          	auipc	ra,0xfffff
-    80207094:	096080e7          	jalr	150(ra) # 80206126 <write_fat>
+    8020704c:	4581                	li	a1,0
+    8020704e:	854a                	mv	a0,s2
+    80207050:	fffff097          	auipc	ra,0xfffff
+    80207054:	096080e7          	jalr	150(ra) # 802060e6 <write_fat>
     for (uint32 clus = entry->first_clus; clus >= 2 && clus < FAT32_EOC; ) {
-    80207098:	ffe4879b          	addiw	a5,s1,-2
-    8020709c:	fcf9ffe3          	bgeu	s3,a5,8020707a <etrunc+0x26>
+    80207058:	ffe4879b          	addiw	a5,s1,-2
+    8020705c:	fcf9ffe3          	bgeu	s3,a5,8020703a <etrunc+0x26>
     entry->file_size = 0;
-    802070a0:	100a2423          	sw	zero,264(s4)
+    80207060:	100a2423          	sw	zero,264(s4)
     entry->first_clus = 0;
-    802070a4:	100a2223          	sw	zero,260(s4)
+    80207064:	100a2223          	sw	zero,260(s4)
     entry->dirty = 1;
-    802070a8:	4785                	li	a5,1
-    802070aa:	10fa0aa3          	sb	a5,277(s4)
+    80207068:	4785                	li	a5,1
+    8020706a:	10fa0aa3          	sb	a5,277(s4)
 }
-    802070ae:	70a2                	ld	ra,40(sp)
-    802070b0:	7402                	ld	s0,32(sp)
-    802070b2:	64e2                	ld	s1,24(sp)
-    802070b4:	6942                	ld	s2,16(sp)
-    802070b6:	69a2                	ld	s3,8(sp)
-    802070b8:	6a02                	ld	s4,0(sp)
-    802070ba:	6145                	addi	sp,sp,48
-    802070bc:	8082                	ret
-
-00000000802070be <elock>:
+    8020706e:	70a2                	ld	ra,40(sp)
+    80207070:	7402                	ld	s0,32(sp)
+    80207072:	64e2                	ld	s1,24(sp)
+    80207074:	6942                	ld	s2,16(sp)
+    80207076:	69a2                	ld	s3,8(sp)
+    80207078:	6a02                	ld	s4,0(sp)
+    8020707a:	6145                	addi	sp,sp,48
+    8020707c:	8082                	ret
+
+000000008020707e <elock>:
 {
-    802070be:	1141                	addi	sp,sp,-16
-    802070c0:	e406                	sd	ra,8(sp)
-    802070c2:	e022                	sd	s0,0(sp)
-    802070c4:	0800                	addi	s0,sp,16
+    8020707e:	1141                	addi	sp,sp,-16
+    80207080:	e406                	sd	ra,8(sp)
+    80207082:	e022                	sd	s0,0(sp)
+    80207084:	0800                	addi	s0,sp,16
     if (entry == 0 || entry->ref < 1)
-    802070c6:	cd19                	beqz	a0,802070e4 <elock+0x26>
-    802070c8:	11852783          	lw	a5,280(a0)
-    802070cc:	00f05c63          	blez	a5,802070e4 <elock+0x26>
+    80207086:	cd19                	beqz	a0,802070a4 <elock+0x26>
+    80207088:	11852783          	lw	a5,280(a0)
+    8020708c:	00f05c63          	blez	a5,802070a4 <elock+0x26>
     acquiresleep(&entry->lock);
-    802070d0:	13850513          	addi	a0,a0,312
-    802070d4:	ffffd097          	auipc	ra,0xffffd
-    802070d8:	d6e080e7          	jalr	-658(ra) # 80203e42 <acquiresleep>
+    80207090:	13850513          	addi	a0,a0,312
+    80207094:	ffffd097          	auipc	ra,0xffffd
+    80207098:	db2080e7          	jalr	-590(ra) # 80203e46 <acquiresleep>
 }
-    802070dc:	60a2                	ld	ra,8(sp)
-    802070de:	6402                	ld	s0,0(sp)
-    802070e0:	0141                	addi	sp,sp,16
-    802070e2:	8082                	ret
+    8020709c:	60a2                	ld	ra,8(sp)
+    8020709e:	6402                	ld	s0,0(sp)
+    802070a0:	0141                	addi	sp,sp,16
+    802070a2:	8082                	ret
         panic("elock");
-    802070e4:	00004517          	auipc	a0,0x4
-    802070e8:	d6450513          	addi	a0,a0,-668 # 8020ae48 <digits+0xac8>
-    802070ec:	ffff9097          	auipc	ra,0xffff9
-    802070f0:	058080e7          	jalr	88(ra) # 80200144 <panic>
+    802070a4:	00004517          	auipc	a0,0x4
+    802070a8:	d9c50513          	addi	a0,a0,-612 # 8020ae40 <digits+0xac0>
+    802070ac:	ffff9097          	auipc	ra,0xffff9
+    802070b0:	098080e7          	jalr	152(ra) # 80200144 <panic>
 
-00000000802070f4 <eunlock>:
+00000000802070b4 <eunlock>:
 {
-    802070f4:	1101                	addi	sp,sp,-32
-    802070f6:	ec06                	sd	ra,24(sp)
-    802070f8:	e822                	sd	s0,16(sp)
-    802070fa:	e426                	sd	s1,8(sp)
-    802070fc:	e04a                	sd	s2,0(sp)
-    802070fe:	1000                	addi	s0,sp,32
+    802070b4:	1101                	addi	sp,sp,-32
+    802070b6:	ec06                	sd	ra,24(sp)
+    802070b8:	e822                	sd	s0,16(sp)
+    802070ba:	e426                	sd	s1,8(sp)
+    802070bc:	e04a                	sd	s2,0(sp)
+    802070be:	1000                	addi	s0,sp,32
     if (entry == 0 || !holdingsleep(&entry->lock) || entry->ref < 1)
-    80207100:	c90d                	beqz	a0,80207132 <eunlock+0x3e>
-    80207102:	84aa                	mv	s1,a0
-    80207104:	13850913          	addi	s2,a0,312
-    80207108:	854a                	mv	a0,s2
-    8020710a:	ffffd097          	auipc	ra,0xffffd
-    8020710e:	dd2080e7          	jalr	-558(ra) # 80203edc <holdingsleep>
-    80207112:	c105                	beqz	a0,80207132 <eunlock+0x3e>
-    80207114:	1184a783          	lw	a5,280(s1)
-    80207118:	00f05d63          	blez	a5,80207132 <eunlock+0x3e>
+    802070c0:	c90d                	beqz	a0,802070f2 <eunlock+0x3e>
+    802070c2:	84aa                	mv	s1,a0
+    802070c4:	13850913          	addi	s2,a0,312
+    802070c8:	854a                	mv	a0,s2
+    802070ca:	ffffd097          	auipc	ra,0xffffd
+    802070ce:	e16080e7          	jalr	-490(ra) # 80203ee0 <holdingsleep>
+    802070d2:	c105                	beqz	a0,802070f2 <eunlock+0x3e>
+    802070d4:	1184a783          	lw	a5,280(s1)
+    802070d8:	00f05d63          	blez	a5,802070f2 <eunlock+0x3e>
     releasesleep(&entry->lock);
-    8020711c:	854a                	mv	a0,s2
-    8020711e:	ffffd097          	auipc	ra,0xffffd
-    80207122:	d7a080e7          	jalr	-646(ra) # 80203e98 <releasesleep>
+    802070dc:	854a                	mv	a0,s2
+    802070de:	ffffd097          	auipc	ra,0xffffd
+    802070e2:	dbe080e7          	jalr	-578(ra) # 80203e9c <releasesleep>
 }
-    80207126:	60e2                	ld	ra,24(sp)
-    80207128:	6442                	ld	s0,16(sp)
-    8020712a:	64a2                	ld	s1,8(sp)
-    8020712c:	6902                	ld	s2,0(sp)
-    8020712e:	6105                	addi	sp,sp,32
-    80207130:	8082                	ret
+    802070e6:	60e2                	ld	ra,24(sp)
+    802070e8:	6442                	ld	s0,16(sp)
+    802070ea:	64a2                	ld	s1,8(sp)
+    802070ec:	6902                	ld	s2,0(sp)
+    802070ee:	6105                	addi	sp,sp,32
+    802070f0:	8082                	ret
         panic("eunlock");
-    80207132:	00004517          	auipc	a0,0x4
-    80207136:	d1e50513          	addi	a0,a0,-738 # 8020ae50 <digits+0xad0>
-    8020713a:	ffff9097          	auipc	ra,0xffff9
-    8020713e:	00a080e7          	jalr	10(ra) # 80200144 <panic>
+    802070f2:	00004517          	auipc	a0,0x4
+    802070f6:	d5650513          	addi	a0,a0,-682 # 8020ae48 <digits+0xac8>
+    802070fa:	ffff9097          	auipc	ra,0xffff9
+    802070fe:	04a080e7          	jalr	74(ra) # 80200144 <panic>
 
-0000000080207142 <eput>:
+0000000080207102 <eput>:
 {
-    80207142:	1101                	addi	sp,sp,-32
-    80207144:	ec06                	sd	ra,24(sp)
-    80207146:	e822                	sd	s0,16(sp)
-    80207148:	e426                	sd	s1,8(sp)
-    8020714a:	e04a                	sd	s2,0(sp)
-    8020714c:	1000                	addi	s0,sp,32
-    8020714e:	84aa                	mv	s1,a0
+    80207102:	1101                	addi	sp,sp,-32
+    80207104:	ec06                	sd	ra,24(sp)
+    80207106:	e822                	sd	s0,16(sp)
+    80207108:	e426                	sd	s1,8(sp)
+    8020710a:	e04a                	sd	s2,0(sp)
+    8020710c:	1000                	addi	s0,sp,32
+    8020710e:	84aa                	mv	s1,a0
     acquire(&ecache.lock);
-    80207150:	0002c517          	auipc	a0,0x2c
-    80207154:	bc850513          	addi	a0,a0,-1080 # 80232d18 <ecache>
-    80207158:	ffff9097          	auipc	ra,0xffff9
-    8020715c:	56e080e7          	jalr	1390(ra) # 802006c6 <acquire>
+    80207110:	0002c517          	auipc	a0,0x2c
+    80207114:	c0850513          	addi	a0,a0,-1016 # 80232d18 <ecache>
+    80207118:	ffff9097          	auipc	ra,0xffff9
+    8020711c:	5ae080e7          	jalr	1454(ra) # 802006c6 <acquire>
     if (entry != &root && entry->valid != 0 && entry->ref == 1) {
-    80207160:	0002c797          	auipc	a5,0x2c
-    80207164:	a5078793          	addi	a5,a5,-1456 # 80232bb0 <root>
-    80207168:	00f48a63          	beq	s1,a5,8020717c <eput+0x3a>
-    8020716c:	11649783          	lh	a5,278(s1)
-    80207170:	c791                	beqz	a5,8020717c <eput+0x3a>
-    80207172:	1184a703          	lw	a4,280(s1)
-    80207176:	4785                	li	a5,1
-    80207178:	02f70563          	beq	a4,a5,802071a2 <eput+0x60>
+    80207120:	0002c797          	auipc	a5,0x2c
+    80207124:	a9078793          	addi	a5,a5,-1392 # 80232bb0 <root>
+    80207128:	00f48a63          	beq	s1,a5,8020713c <eput+0x3a>
+    8020712c:	11649783          	lh	a5,278(s1)
+    80207130:	c791                	beqz	a5,8020713c <eput+0x3a>
+    80207132:	1184a703          	lw	a4,280(s1)
+    80207136:	4785                	li	a5,1
+    80207138:	02f70563          	beq	a4,a5,80207162 <eput+0x60>
     entry->ref--;
-    8020717c:	1184a783          	lw	a5,280(s1)
-    80207180:	37fd                	addiw	a5,a5,-1
-    80207182:	10f4ac23          	sw	a5,280(s1)
+    8020713c:	1184a783          	lw	a5,280(s1)
+    80207140:	37fd                	addiw	a5,a5,-1
+    80207142:	10f4ac23          	sw	a5,280(s1)
     release(&ecache.lock);
-    80207186:	0002c517          	auipc	a0,0x2c
-    8020718a:	b9250513          	addi	a0,a0,-1134 # 80232d18 <ecache>
-    8020718e:	ffff9097          	auipc	ra,0xffff9
-    80207192:	58c080e7          	jalr	1420(ra) # 8020071a <release>
+    80207146:	0002c517          	auipc	a0,0x2c
+    8020714a:	bd250513          	addi	a0,a0,-1070 # 80232d18 <ecache>
+    8020714e:	ffff9097          	auipc	ra,0xffff9
+    80207152:	5cc080e7          	jalr	1484(ra) # 8020071a <release>
 }
-    80207196:	60e2                	ld	ra,24(sp)
-    80207198:	6442                	ld	s0,16(sp)
-    8020719a:	64a2                	ld	s1,8(sp)
-    8020719c:	6902                	ld	s2,0(sp)
-    8020719e:	6105                	addi	sp,sp,32
-    802071a0:	8082                	ret
+    80207156:	60e2                	ld	ra,24(sp)
+    80207158:	6442                	ld	s0,16(sp)
+    8020715a:	64a2                	ld	s1,8(sp)
+    8020715c:	6902                	ld	s2,0(sp)
+    8020715e:	6105                	addi	sp,sp,32
+    80207160:	8082                	ret
         acquiresleep(&entry->lock);
-    802071a2:	13848913          	addi	s2,s1,312
-    802071a6:	854a                	mv	a0,s2
-    802071a8:	ffffd097          	auipc	ra,0xffffd
-    802071ac:	c9a080e7          	jalr	-870(ra) # 80203e42 <acquiresleep>
+    80207162:	13848913          	addi	s2,s1,312
+    80207166:	854a                	mv	a0,s2
+    80207168:	ffffd097          	auipc	ra,0xffffd
+    8020716c:	cde080e7          	jalr	-802(ra) # 80203e46 <acquiresleep>
         entry->next->prev = entry->prev;
-    802071b0:	1284b703          	ld	a4,296(s1)
-    802071b4:	1304b783          	ld	a5,304(s1)
-    802071b8:	12f73823          	sd	a5,304(a4)
+    80207170:	1284b703          	ld	a4,296(s1)
+    80207174:	1304b783          	ld	a5,304(s1)
+    80207178:	12f73823          	sd	a5,304(a4)
         entry->prev->next = entry->next;
-    802071bc:	1284b703          	ld	a4,296(s1)
-    802071c0:	12e7b423          	sd	a4,296(a5)
+    8020717c:	1284b703          	ld	a4,296(s1)
+    80207180:	12e7b423          	sd	a4,296(a5)
         entry->next = root.next;
-    802071c4:	0002c797          	auipc	a5,0x2c
-    802071c8:	9c478793          	addi	a5,a5,-1596 # 80232b88 <fat>
-    802071cc:	1507b703          	ld	a4,336(a5)
-    802071d0:	12e4b423          	sd	a4,296(s1)
+    80207184:	0002c797          	auipc	a5,0x2c
+    80207188:	a0478793          	addi	a5,a5,-1532 # 80232b88 <fat>
+    8020718c:	1507b703          	ld	a4,336(a5)
+    80207190:	12e4b423          	sd	a4,296(s1)
         entry->prev = &root;
-    802071d4:	0002c697          	auipc	a3,0x2c
-    802071d8:	9dc68693          	addi	a3,a3,-1572 # 80232bb0 <root>
-    802071dc:	12d4b823          	sd	a3,304(s1)
+    80207194:	0002c697          	auipc	a3,0x2c
+    80207198:	a1c68693          	addi	a3,a3,-1508 # 80232bb0 <root>
+    8020719c:	12d4b823          	sd	a3,304(s1)
         root.next->prev = entry;
-    802071e0:	12973823          	sd	s1,304(a4)
+    802071a0:	12973823          	sd	s1,304(a4)
         root.next = entry;
-    802071e4:	1497b823          	sd	s1,336(a5)
+    802071a4:	1497b823          	sd	s1,336(a5)
         release(&ecache.lock);
-    802071e8:	0002c517          	auipc	a0,0x2c
-    802071ec:	b3050513          	addi	a0,a0,-1232 # 80232d18 <ecache>
-    802071f0:	ffff9097          	auipc	ra,0xffff9
-    802071f4:	52a080e7          	jalr	1322(ra) # 8020071a <release>
+    802071a8:	0002c517          	auipc	a0,0x2c
+    802071ac:	b7050513          	addi	a0,a0,-1168 # 80232d18 <ecache>
+    802071b0:	ffff9097          	auipc	ra,0xffff9
+    802071b4:	56a080e7          	jalr	1386(ra) # 8020071a <release>
         if (entry->valid == -1) {       // this means some one has called eremove()
-    802071f8:	11649703          	lh	a4,278(s1)
-    802071fc:	57fd                	li	a5,-1
-    802071fe:	06f70863          	beq	a4,a5,8020726e <eput+0x12c>
+    802071b8:	11649703          	lh	a4,278(s1)
+    802071bc:	57fd                	li	a5,-1
+    802071be:	06f70863          	beq	a4,a5,8020722e <eput+0x12c>
             elock(entry->parent);
-    80207202:	1204b503          	ld	a0,288(s1)
-    80207206:	00000097          	auipc	ra,0x0
-    8020720a:	eb8080e7          	jalr	-328(ra) # 802070be <elock>
+    802071c2:	1204b503          	ld	a0,288(s1)
+    802071c6:	00000097          	auipc	ra,0x0
+    802071ca:	eb8080e7          	jalr	-328(ra) # 8020707e <elock>
             eupdate(entry);
-    8020720e:	8526                	mv	a0,s1
-    80207210:	00000097          	auipc	ra,0x0
-    80207214:	c94080e7          	jalr	-876(ra) # 80206ea4 <eupdate>
+    802071ce:	8526                	mv	a0,s1
+    802071d0:	00000097          	auipc	ra,0x0
+    802071d4:	c94080e7          	jalr	-876(ra) # 80206e64 <eupdate>
             eunlock(entry->parent);
-    80207218:	1204b503          	ld	a0,288(s1)
-    8020721c:	00000097          	auipc	ra,0x0
-    80207220:	ed8080e7          	jalr	-296(ra) # 802070f4 <eunlock>
+    802071d8:	1204b503          	ld	a0,288(s1)
+    802071dc:	00000097          	auipc	ra,0x0
+    802071e0:	ed8080e7          	jalr	-296(ra) # 802070b4 <eunlock>
         releasesleep(&entry->lock);
-    80207224:	854a                	mv	a0,s2
-    80207226:	ffffd097          	auipc	ra,0xffffd
-    8020722a:	c72080e7          	jalr	-910(ra) # 80203e98 <releasesleep>
+    802071e4:	854a                	mv	a0,s2
+    802071e6:	ffffd097          	auipc	ra,0xffffd
+    802071ea:	cb6080e7          	jalr	-842(ra) # 80203e9c <releasesleep>
         struct dirent *eparent = entry->parent;
-    8020722e:	1204b903          	ld	s2,288(s1)
+    802071ee:	1204b903          	ld	s2,288(s1)
         acquire(&ecache.lock);
-    80207232:	0002c517          	auipc	a0,0x2c
-    80207236:	ae650513          	addi	a0,a0,-1306 # 80232d18 <ecache>
-    8020723a:	ffff9097          	auipc	ra,0xffff9
-    8020723e:	48c080e7          	jalr	1164(ra) # 802006c6 <acquire>
+    802071f2:	0002c517          	auipc	a0,0x2c
+    802071f6:	b2650513          	addi	a0,a0,-1242 # 80232d18 <ecache>
+    802071fa:	ffff9097          	auipc	ra,0xffff9
+    802071fe:	4cc080e7          	jalr	1228(ra) # 802006c6 <acquire>
         entry->ref--;
-    80207242:	1184a783          	lw	a5,280(s1)
-    80207246:	37fd                	addiw	a5,a5,-1
-    80207248:	10f4ac23          	sw	a5,280(s1)
+    80207202:	1184a783          	lw	a5,280(s1)
+    80207206:	37fd                	addiw	a5,a5,-1
+    80207208:	10f4ac23          	sw	a5,280(s1)
         release(&ecache.lock);
-    8020724c:	0002c517          	auipc	a0,0x2c
-    80207250:	acc50513          	addi	a0,a0,-1332 # 80232d18 <ecache>
-    80207254:	ffff9097          	auipc	ra,0xffff9
-    80207258:	4c6080e7          	jalr	1222(ra) # 8020071a <release>
+    8020720c:	0002c517          	auipc	a0,0x2c
+    80207210:	b0c50513          	addi	a0,a0,-1268 # 80232d18 <ecache>
+    80207214:	ffff9097          	auipc	ra,0xffff9
+    80207218:	506080e7          	jalr	1286(ra) # 8020071a <release>
         if (entry->ref == 0) {
-    8020725c:	1184a783          	lw	a5,280(s1)
-    80207260:	fb9d                	bnez	a5,80207196 <eput+0x54>
+    8020721c:	1184a783          	lw	a5,280(s1)
+    80207220:	fb9d                	bnez	a5,80207156 <eput+0x54>
             eput(eparent);
-    80207262:	854a                	mv	a0,s2
-    80207264:	00000097          	auipc	ra,0x0
-    80207268:	ede080e7          	jalr	-290(ra) # 80207142 <eput>
-    8020726c:	b72d                	j	80207196 <eput+0x54>
+    80207222:	854a                	mv	a0,s2
+    80207224:	00000097          	auipc	ra,0x0
+    80207228:	ede080e7          	jalr	-290(ra) # 80207102 <eput>
+    8020722c:	b72d                	j	80207156 <eput+0x54>
             etrunc(entry);
-    8020726e:	8526                	mv	a0,s1
-    80207270:	00000097          	auipc	ra,0x0
-    80207274:	de4080e7          	jalr	-540(ra) # 80207054 <etrunc>
-    80207278:	b775                	j	80207224 <eput+0xe2>
+    8020722e:	8526                	mv	a0,s1
+    80207230:	00000097          	auipc	ra,0x0
+    80207234:	de4080e7          	jalr	-540(ra) # 80207014 <etrunc>
+    80207238:	b775                	j	802071e4 <eput+0xe2>
 
-000000008020727a <estat>:
+000000008020723a <estat>:
 {
-    8020727a:	1101                	addi	sp,sp,-32
-    8020727c:	ec06                	sd	ra,24(sp)
-    8020727e:	e822                	sd	s0,16(sp)
-    80207280:	e426                	sd	s1,8(sp)
-    80207282:	e04a                	sd	s2,0(sp)
-    80207284:	1000                	addi	s0,sp,32
-    80207286:	892a                	mv	s2,a0
-    80207288:	84ae                	mv	s1,a1
+    8020723a:	1101                	addi	sp,sp,-32
+    8020723c:	ec06                	sd	ra,24(sp)
+    8020723e:	e822                	sd	s0,16(sp)
+    80207240:	e426                	sd	s1,8(sp)
+    80207242:	e04a                	sd	s2,0(sp)
+    80207244:	1000                	addi	s0,sp,32
+    80207246:	892a                	mv	s2,a0
+    80207248:	84ae                	mv	s1,a1
     strncpy(st->name, de->filename, STAT_MAX_NAME);
-    8020728a:	02000613          	li	a2,32
-    8020728e:	85aa                	mv	a1,a0
-    80207290:	8526                	mv	a0,s1
-    80207292:	ffff9097          	auipc	ra,0xffff9
-    80207296:	5e4080e7          	jalr	1508(ra) # 80200876 <strncpy>
+    8020724a:	02000613          	li	a2,32
+    8020724e:	85aa                	mv	a1,a0
+    80207250:	8526                	mv	a0,s1
+    80207252:	ffff9097          	auipc	ra,0xffff9
+    80207256:	624080e7          	jalr	1572(ra) # 80200876 <strncpy>
     st->type = (de->attribute & ATTR_DIRECTORY) ? T_DIR : T_FILE;
-    8020729a:	10094783          	lbu	a5,256(s2)
-    8020729e:	8bc1                	andi	a5,a5,16
-    802072a0:	0017b793          	seqz	a5,a5
-    802072a4:	0785                	addi	a5,a5,1
-    802072a6:	02f49423          	sh	a5,40(s1)
+    8020725a:	10094783          	lbu	a5,256(s2)
+    8020725e:	8bc1                	andi	a5,a5,16
+    80207260:	0017b793          	seqz	a5,a5
+    80207264:	0785                	addi	a5,a5,1
+    80207266:	02f49423          	sh	a5,40(s1)
     st->dev = de->dev;
-    802072aa:	11494783          	lbu	a5,276(s2)
-    802072ae:	d0dc                	sw	a5,36(s1)
+    8020726a:	11494783          	lbu	a5,276(s2)
+    8020726e:	d0dc                	sw	a5,36(s1)
     st->size = de->file_size;
-    802072b0:	10896783          	lwu	a5,264(s2)
-    802072b4:	f89c                	sd	a5,48(s1)
+    80207270:	10896783          	lwu	a5,264(s2)
+    80207274:	f89c                	sd	a5,48(s1)
 }
-    802072b6:	60e2                	ld	ra,24(sp)
-    802072b8:	6442                	ld	s0,16(sp)
-    802072ba:	64a2                	ld	s1,8(sp)
-    802072bc:	6902                	ld	s2,0(sp)
-    802072be:	6105                	addi	sp,sp,32
-    802072c0:	8082                	ret
-
-00000000802072c2 <enext>:
+    80207276:	60e2                	ld	ra,24(sp)
+    80207278:	6442                	ld	s0,16(sp)
+    8020727a:	64a2                	ld	s1,8(sp)
+    8020727c:	6902                	ld	s2,0(sp)
+    8020727e:	6105                	addi	sp,sp,32
+    80207280:	8082                	ret
+
+0000000080207282 <enext>:
  * @return  -1      meet the end of dir
  *          0       find empty slots
  *          1       find a file with all its entries
  */
 int enext(struct dirent *dp, struct dirent *ep, uint off, int *count)
 {
-    802072c2:	7119                	addi	sp,sp,-128
-    802072c4:	fc86                	sd	ra,120(sp)
-    802072c6:	f8a2                	sd	s0,112(sp)
-    802072c8:	f4a6                	sd	s1,104(sp)
-    802072ca:	f0ca                	sd	s2,96(sp)
-    802072cc:	ecce                	sd	s3,88(sp)
-    802072ce:	e8d2                	sd	s4,80(sp)
-    802072d0:	e4d6                	sd	s5,72(sp)
-    802072d2:	e0da                	sd	s6,64(sp)
-    802072d4:	fc5e                	sd	s7,56(sp)
-    802072d6:	f862                	sd	s8,48(sp)
-    802072d8:	f466                	sd	s9,40(sp)
-    802072da:	0100                	addi	s0,sp,128
+    80207282:	7119                	addi	sp,sp,-128
+    80207284:	fc86                	sd	ra,120(sp)
+    80207286:	f8a2                	sd	s0,112(sp)
+    80207288:	f4a6                	sd	s1,104(sp)
+    8020728a:	f0ca                	sd	s2,96(sp)
+    8020728c:	ecce                	sd	s3,88(sp)
+    8020728e:	e8d2                	sd	s4,80(sp)
+    80207290:	e4d6                	sd	s5,72(sp)
+    80207292:	e0da                	sd	s6,64(sp)
+    80207294:	fc5e                	sd	s7,56(sp)
+    80207296:	f862                	sd	s8,48(sp)
+    80207298:	f466                	sd	s9,40(sp)
+    8020729a:	0100                	addi	s0,sp,128
     if (!(dp->attribute & ATTR_DIRECTORY))
-    802072dc:	10054783          	lbu	a5,256(a0)
-    802072e0:	8bc1                	andi	a5,a5,16
-    802072e2:	cf95                	beqz	a5,8020731e <enext+0x5c>
-    802072e4:	892a                	mv	s2,a0
-    802072e6:	89ae                	mv	s3,a1
-    802072e8:	84b2                	mv	s1,a2
-    802072ea:	8ab6                	mv	s5,a3
+    8020729c:	10054783          	lbu	a5,256(a0)
+    802072a0:	8bc1                	andi	a5,a5,16
+    802072a2:	cf95                	beqz	a5,802072de <enext+0x5c>
+    802072a4:	892a                	mv	s2,a0
+    802072a6:	89ae                	mv	s3,a1
+    802072a8:	84b2                	mv	s1,a2
+    802072aa:	8ab6                	mv	s5,a3
         panic("enext not dir");
     if (ep->valid)
-    802072ec:	11659783          	lh	a5,278(a1)
-    802072f0:	ef9d                	bnez	a5,8020732e <enext+0x6c>
+    802072ac:	11659783          	lh	a5,278(a1)
+    802072b0:	ef9d                	bnez	a5,802072ee <enext+0x6c>
         panic("enext ep valid");
     if (off % 32)
-    802072f2:	01f67793          	andi	a5,a2,31
-    802072f6:	e7a1                	bnez	a5,8020733e <enext+0x7c>
+    802072b2:	01f67793          	andi	a5,a2,31
+    802072b6:	e7a1                	bnez	a5,802072fe <enext+0x7c>
         panic("enext not align");
     if (dp->valid != 1) { return -1; }
-    802072f8:	11651703          	lh	a4,278(a0)
-    802072fc:	4785                	li	a5,1
-    802072fe:	557d                	li	a0,-1
-    80207300:	04f70763          	beq	a4,a5,8020734e <enext+0x8c>
+    802072b8:	11651703          	lh	a4,278(a0)
+    802072bc:	4785                	li	a5,1
+    802072be:	557d                	li	a0,-1
+    802072c0:	04f70763          	beq	a4,a5,8020730e <enext+0x8c>
             read_entry_info(ep, &de);
             return 1;
         }
     }
     return -1;
 }
-    80207304:	70e6                	ld	ra,120(sp)
-    80207306:	7446                	ld	s0,112(sp)
-    80207308:	74a6                	ld	s1,104(sp)
-    8020730a:	7906                	ld	s2,96(sp)
-    8020730c:	69e6                	ld	s3,88(sp)
-    8020730e:	6a46                	ld	s4,80(sp)
-    80207310:	6aa6                	ld	s5,72(sp)
-    80207312:	6b06                	ld	s6,64(sp)
-    80207314:	7be2                	ld	s7,56(sp)
-    80207316:	7c42                	ld	s8,48(sp)
-    80207318:	7ca2                	ld	s9,40(sp)
-    8020731a:	6109                	addi	sp,sp,128
-    8020731c:	8082                	ret
+    802072c4:	70e6                	ld	ra,120(sp)
+    802072c6:	7446                	ld	s0,112(sp)
+    802072c8:	74a6                	ld	s1,104(sp)
+    802072ca:	7906                	ld	s2,96(sp)
+    802072cc:	69e6                	ld	s3,88(sp)
+    802072ce:	6a46                	ld	s4,80(sp)
+    802072d0:	6aa6                	ld	s5,72(sp)
+    802072d2:	6b06                	ld	s6,64(sp)
+    802072d4:	7be2                	ld	s7,56(sp)
+    802072d6:	7c42                	ld	s8,48(sp)
+    802072d8:	7ca2                	ld	s9,40(sp)
+    802072da:	6109                	addi	sp,sp,128
+    802072dc:	8082                	ret
         panic("enext not dir");
-    8020731e:	00004517          	auipc	a0,0x4
-    80207322:	b3a50513          	addi	a0,a0,-1222 # 8020ae58 <digits+0xad8>
-    80207326:	ffff9097          	auipc	ra,0xffff9
-    8020732a:	e1e080e7          	jalr	-482(ra) # 80200144 <panic>
+    802072de:	00004517          	auipc	a0,0x4
+    802072e2:	b7250513          	addi	a0,a0,-1166 # 8020ae50 <digits+0xad0>
+    802072e6:	ffff9097          	auipc	ra,0xffff9
+    802072ea:	e5e080e7          	jalr	-418(ra) # 80200144 <panic>
         panic("enext ep valid");
-    8020732e:	00004517          	auipc	a0,0x4
-    80207332:	b3a50513          	addi	a0,a0,-1222 # 8020ae68 <digits+0xae8>
-    80207336:	ffff9097          	auipc	ra,0xffff9
-    8020733a:	e0e080e7          	jalr	-498(ra) # 80200144 <panic>
+    802072ee:	00004517          	auipc	a0,0x4
+    802072f2:	b7250513          	addi	a0,a0,-1166 # 8020ae60 <digits+0xae0>
+    802072f6:	ffff9097          	auipc	ra,0xffff9
+    802072fa:	e4e080e7          	jalr	-434(ra) # 80200144 <panic>
         panic("enext not align");
-    8020733e:	00004517          	auipc	a0,0x4
-    80207342:	b3a50513          	addi	a0,a0,-1222 # 8020ae78 <digits+0xaf8>
-    80207346:	ffff9097          	auipc	ra,0xffff9
-    8020734a:	dfe080e7          	jalr	-514(ra) # 80200144 <panic>
+    802072fe:	00004517          	auipc	a0,0x4
+    80207302:	b7250513          	addi	a0,a0,-1166 # 8020ae70 <digits+0xaf0>
+    80207306:	ffff9097          	auipc	ra,0xffff9
+    8020730a:	e3e080e7          	jalr	-450(ra) # 80200144 <panic>
     memset(ep->filename, 0, FAT32_MAX_FILENAME + 1);
-    8020734e:	10000613          	li	a2,256
-    80207352:	4581                	li	a1,0
-    80207354:	854e                	mv	a0,s3
-    80207356:	ffff9097          	auipc	ra,0xffff9
-    8020735a:	40c080e7          	jalr	1036(ra) # 80200762 <memset>
+    8020730e:	10000613          	li	a2,256
+    80207312:	4581                	li	a1,0
+    80207314:	854e                	mv	a0,s3
+    80207316:	ffff9097          	auipc	ra,0xffff9
+    8020731a:	44c080e7          	jalr	1100(ra) # 80200762 <memset>
     int cnt = 0;
-    8020735e:	4b01                	li	s6,0
+    8020731e:	4b01                	li	s6,0
     for (int off2; (off2 = reloc_clus(dp, off, 0)) != -1; off += 32) {
-    80207360:	5bfd                	li	s7,-1
+    80207320:	5bfd                	li	s7,-1
         if (rw_clus(dp->cur_clus, 0, 0, (uint64)&de, off2, 32) != 32 || de.lne.order == END_OF_ENTRY) {
-    80207362:	f8040a13          	addi	s4,s0,-128
+    80207322:	f8040a13          	addi	s4,s0,-128
         if (de.lne.order == EMPTY_ENTRY) {
-    80207366:	0e500c13          	li	s8,229
+    80207326:	0e500c13          	li	s8,229
         if (de.lne.attr == ATTR_LONG_NAME) {
-    8020736a:	4cbd                	li	s9,15
+    8020732a:	4cbd                	li	s9,15
     for (int off2; (off2 = reloc_clus(dp, off, 0)) != -1; off += 32) {
-    8020736c:	a03d                	j	8020739a <enext+0xd8>
+    8020732c:	a03d                	j	8020735a <enext+0xd8>
             cnt++;
-    8020736e:	2b05                	addiw	s6,s6,1
+    8020732e:	2b05                	addiw	s6,s6,1
             continue;
-    80207370:	a01d                	j	80207396 <enext+0xd4>
+    80207330:	a01d                	j	80207356 <enext+0xd4>
             *count = cnt;
-    80207372:	016aa023          	sw	s6,0(s5)
+    80207332:	016aa023          	sw	s6,0(s5)
             return 0;
-    80207376:	4501                	li	a0,0
-    80207378:	b771                	j	80207304 <enext+0x42>
+    80207336:	4501                	li	a0,0
+    80207338:	b771                	j	802072c4 <enext+0x42>
             read_entry_name(ep->filename + (lcnt - 1) * CHAR_LONG_NAME, &de);
-    8020737a:	fff7079b          	addiw	a5,a4,-1
-    8020737e:	0017951b          	slliw	a0,a5,0x1
-    80207382:	9d3d                	addw	a0,a0,a5
-    80207384:	0025151b          	slliw	a0,a0,0x2
-    80207388:	9d3d                	addw	a0,a0,a5
-    8020738a:	85d2                	mv	a1,s4
-    8020738c:	954e                	add	a0,a0,s3
-    8020738e:	fffff097          	auipc	ra,0xfffff
-    80207392:	17a080e7          	jalr	378(ra) # 80206508 <read_entry_name>
+    8020733a:	fff7079b          	addiw	a5,a4,-1
+    8020733e:	0017951b          	slliw	a0,a5,0x1
+    80207342:	9d3d                	addw	a0,a0,a5
+    80207344:	0025151b          	slliw	a0,a0,0x2
+    80207348:	9d3d                	addw	a0,a0,a5
+    8020734a:	85d2                	mv	a1,s4
+    8020734c:	954e                	add	a0,a0,s3
+    8020734e:	fffff097          	auipc	ra,0xfffff
+    80207352:	17a080e7          	jalr	378(ra) # 802064c8 <read_entry_name>
     for (int off2; (off2 = reloc_clus(dp, off, 0)) != -1; off += 32) {
-    80207396:	0204849b          	addiw	s1,s1,32
-    8020739a:	4601                	li	a2,0
-    8020739c:	85a6                	mv	a1,s1
-    8020739e:	854a                	mv	a0,s2
-    802073a0:	fffff097          	auipc	ra,0xfffff
-    802073a4:	e06080e7          	jalr	-506(ra) # 802061a6 <reloc_clus>
-    802073a8:	f5750ee3          	beq	a0,s7,80207304 <enext+0x42>
+    80207356:	0204849b          	addiw	s1,s1,32
+    8020735a:	4601                	li	a2,0
+    8020735c:	85a6                	mv	a1,s1
+    8020735e:	854a                	mv	a0,s2
+    80207360:	fffff097          	auipc	ra,0xfffff
+    80207364:	e06080e7          	jalr	-506(ra) # 80206166 <reloc_clus>
+    80207368:	f5750ee3          	beq	a0,s7,802072c4 <enext+0x42>
         if (rw_clus(dp->cur_clus, 0, 0, (uint64)&de, off2, 32) != 32 || de.lne.order == END_OF_ENTRY) {
-    802073ac:	02000793          	li	a5,32
-    802073b0:	0005071b          	sext.w	a4,a0
-    802073b4:	86d2                	mv	a3,s4
-    802073b6:	4601                	li	a2,0
-    802073b8:	4581                	li	a1,0
-    802073ba:	10c92503          	lw	a0,268(s2)
-    802073be:	fffff097          	auipc	ra,0xfffff
-    802073c2:	ef0080e7          	jalr	-272(ra) # 802062ae <rw_clus>
-    802073c6:	2501                	sext.w	a0,a0
-    802073c8:	02000793          	li	a5,32
-    802073cc:	06f51c63          	bne	a0,a5,80207444 <enext+0x182>
-    802073d0:	f8044783          	lbu	a5,-128(s0)
-    802073d4:	cbb5                	beqz	a5,80207448 <enext+0x186>
+    8020736c:	02000793          	li	a5,32
+    80207370:	0005071b          	sext.w	a4,a0
+    80207374:	86d2                	mv	a3,s4
+    80207376:	4601                	li	a2,0
+    80207378:	4581                	li	a1,0
+    8020737a:	10c92503          	lw	a0,268(s2)
+    8020737e:	fffff097          	auipc	ra,0xfffff
+    80207382:	ef0080e7          	jalr	-272(ra) # 8020626e <rw_clus>
+    80207386:	2501                	sext.w	a0,a0
+    80207388:	02000793          	li	a5,32
+    8020738c:	06f51c63          	bne	a0,a5,80207404 <enext+0x182>
+    80207390:	f8044783          	lbu	a5,-128(s0)
+    80207394:	cbb5                	beqz	a5,80207408 <enext+0x186>
         if (de.lne.order == EMPTY_ENTRY) {
-    802073d6:	f9878ce3          	beq	a5,s8,8020736e <enext+0xac>
+    80207396:	f9878ce3          	beq	a5,s8,8020732e <enext+0xac>
         } else if (cnt) {
-    802073da:	f80b1ce3          	bnez	s6,80207372 <enext+0xb0>
+    8020739a:	f80b1ce3          	bnez	s6,80207332 <enext+0xb0>
         if (de.lne.attr == ATTR_LONG_NAME) {
-    802073de:	f8b44703          	lbu	a4,-117(s0)
-    802073e2:	01971d63          	bne	a4,s9,802073fc <enext+0x13a>
+    8020739e:	f8b44703          	lbu	a4,-117(s0)
+    802073a2:	01971d63          	bne	a4,s9,802073bc <enext+0x13a>
             int lcnt = de.lne.order & ~LAST_LONG_ENTRY;
-    802073e6:	0bf7f713          	andi	a4,a5,191
+    802073a6:	0bf7f713          	andi	a4,a5,191
             if (de.lne.order & LAST_LONG_ENTRY) {
-    802073ea:	0407f793          	andi	a5,a5,64
-    802073ee:	d7d1                	beqz	a5,8020737a <enext+0xb8>
+    802073aa:	0407f793          	andi	a5,a5,64
+    802073ae:	d7d1                	beqz	a5,8020733a <enext+0xb8>
                 *count = lcnt + 1;                              // plus the s-n-e;
-    802073f0:	0017079b          	addiw	a5,a4,1
-    802073f4:	00faa023          	sw	a5,0(s5)
+    802073b0:	0017079b          	addiw	a5,a4,1
+    802073b4:	00faa023          	sw	a5,0(s5)
                 count = 0;
-    802073f8:	4a81                	li	s5,0
-    802073fa:	b741                	j	8020737a <enext+0xb8>
+    802073b8:	4a81                	li	s5,0
+    802073ba:	b741                	j	8020733a <enext+0xb8>
             if (count) {
-    802073fc:	000a8c63          	beqz	s5,80207414 <enext+0x152>
+    802073bc:	000a8c63          	beqz	s5,802073d4 <enext+0x152>
                 *count = 1;
-    80207400:	4785                	li	a5,1
-    80207402:	00faa023          	sw	a5,0(s5)
+    802073c0:	4785                	li	a5,1
+    802073c2:	00faa023          	sw	a5,0(s5)
                 read_entry_name(ep->filename, &de);
-    80207406:	f8040593          	addi	a1,s0,-128
-    8020740a:	854e                	mv	a0,s3
-    8020740c:	fffff097          	auipc	ra,0xfffff
-    80207410:	0fc080e7          	jalr	252(ra) # 80206508 <read_entry_name>
+    802073c6:	f8040593          	addi	a1,s0,-128
+    802073ca:	854e                	mv	a0,s3
+    802073cc:	fffff097          	auipc	ra,0xfffff
+    802073d0:	0fc080e7          	jalr	252(ra) # 802064c8 <read_entry_name>
     entry->attribute = d->sne.attr;
-    80207414:	f8b44783          	lbu	a5,-117(s0)
-    80207418:	10f98023          	sb	a5,256(s3)
+    802073d4:	f8b44783          	lbu	a5,-117(s0)
+    802073d8:	10f98023          	sb	a5,256(s3)
     entry->first_clus = ((uint32)d->sne.fst_clus_hi << 16) | d->sne.fst_clus_lo;
-    8020741c:	f9445783          	lhu	a5,-108(s0)
-    80207420:	0107979b          	slliw	a5,a5,0x10
-    80207424:	f9a45703          	lhu	a4,-102(s0)
-    80207428:	8fd9                	or	a5,a5,a4
-    8020742a:	2781                	sext.w	a5,a5
-    8020742c:	10f9a223          	sw	a5,260(s3)
+    802073dc:	f9445783          	lhu	a5,-108(s0)
+    802073e0:	0107979b          	slliw	a5,a5,0x10
+    802073e4:	f9a45703          	lhu	a4,-102(s0)
+    802073e8:	8fd9                	or	a5,a5,a4
+    802073ea:	2781                	sext.w	a5,a5
+    802073ec:	10f9a223          	sw	a5,260(s3)
     entry->file_size = d->sne.file_size;
-    80207430:	f9c42703          	lw	a4,-100(s0)
-    80207434:	10e9a423          	sw	a4,264(s3)
+    802073f0:	f9c42703          	lw	a4,-100(s0)
+    802073f4:	10e9a423          	sw	a4,264(s3)
     entry->cur_clus = entry->first_clus;
-    80207438:	10f9a623          	sw	a5,268(s3)
+    802073f8:	10f9a623          	sw	a5,268(s3)
     entry->clus_cnt = 0;
-    8020743c:	1009a823          	sw	zero,272(s3)
+    802073fc:	1009a823          	sw	zero,272(s3)
             return 1;
-    80207440:	4505                	li	a0,1
+    80207400:	4505                	li	a0,1
 }
-    80207442:	b5c9                	j	80207304 <enext+0x42>
+    80207402:	b5c9                	j	802072c4 <enext+0x42>
             return -1;
-    80207444:	557d                	li	a0,-1
-    80207446:	bd7d                	j	80207304 <enext+0x42>
-    80207448:	557d                	li	a0,-1
-    8020744a:	bd6d                	j	80207304 <enext+0x42>
+    80207404:	557d                	li	a0,-1
+    80207406:	bd7d                	j	802072c4 <enext+0x42>
+    80207408:	557d                	li	a0,-1
+    8020740a:	bd6d                	j	802072c4 <enext+0x42>
 
-000000008020744c <dirlookup>:
+000000008020740c <dirlookup>:
  * @param   dp          entry of a directory file
  * @param   filename    target filename
  * @param   poff        offset of proper empty entry slots from the beginning of the dir
  */
 struct dirent *dirlookup(struct dirent *dp, char *filename, uint *poff)
 {
-    8020744c:	711d                	addi	sp,sp,-96
-    8020744e:	ec86                	sd	ra,88(sp)
-    80207450:	e8a2                	sd	s0,80(sp)
-    80207452:	e4a6                	sd	s1,72(sp)
-    80207454:	e0ca                	sd	s2,64(sp)
-    80207456:	fc4e                	sd	s3,56(sp)
-    80207458:	f852                	sd	s4,48(sp)
-    8020745a:	f456                	sd	s5,40(sp)
-    8020745c:	f05a                	sd	s6,32(sp)
-    8020745e:	ec5e                	sd	s7,24(sp)
-    80207460:	1080                	addi	s0,sp,96
+    8020740c:	711d                	addi	sp,sp,-96
+    8020740e:	ec86                	sd	ra,88(sp)
+    80207410:	e8a2                	sd	s0,80(sp)
+    80207412:	e4a6                	sd	s1,72(sp)
+    80207414:	e0ca                	sd	s2,64(sp)
+    80207416:	fc4e                	sd	s3,56(sp)
+    80207418:	f852                	sd	s4,48(sp)
+    8020741a:	f456                	sd	s5,40(sp)
+    8020741c:	f05a                	sd	s6,32(sp)
+    8020741e:	ec5e                	sd	s7,24(sp)
+    80207420:	1080                	addi	s0,sp,96
     if (!(dp->attribute & ATTR_DIRECTORY))
-    80207462:	10054783          	lbu	a5,256(a0)
-    80207466:	8bc1                	andi	a5,a5,16
-    80207468:	cbb1                	beqz	a5,802074bc <dirlookup+0x70>
-    8020746a:	84aa                	mv	s1,a0
-    8020746c:	89ae                	mv	s3,a1
-    8020746e:	8ab2                	mv	s5,a2
+    80207422:	10054783          	lbu	a5,256(a0)
+    80207426:	8bc1                	andi	a5,a5,16
+    80207428:	cbb1                	beqz	a5,8020747c <dirlookup+0x70>
+    8020742a:	84aa                	mv	s1,a0
+    8020742c:	89ae                	mv	s3,a1
+    8020742e:	8ab2                	mv	s5,a2
         panic("dirlookup not DIR");
     if (strncmp(filename, ".", FAT32_MAX_FILENAME) == 0) {
-    80207470:	0ff00613          	li	a2,255
-    80207474:	00004597          	auipc	a1,0x4
-    80207478:	a2c58593          	addi	a1,a1,-1492 # 8020aea0 <digits+0xb20>
-    8020747c:	854e                	mv	a0,s3
-    8020747e:	ffff9097          	auipc	ra,0xffff9
-    80207482:	3bc080e7          	jalr	956(ra) # 8020083a <strncmp>
-    80207486:	c139                	beqz	a0,802074cc <dirlookup+0x80>
+    80207430:	0ff00613          	li	a2,255
+    80207434:	00004597          	auipc	a1,0x4
+    80207438:	a6458593          	addi	a1,a1,-1436 # 8020ae98 <digits+0xb18>
+    8020743c:	854e                	mv	a0,s3
+    8020743e:	ffff9097          	auipc	ra,0xffff9
+    80207442:	3fc080e7          	jalr	1020(ra) # 8020083a <strncmp>
+    80207446:	c139                	beqz	a0,8020748c <dirlookup+0x80>
         return edup(dp);
     } else if (strncmp(filename, "..", FAT32_MAX_FILENAME) == 0) {
-    80207488:	0ff00613          	li	a2,255
-    8020748c:	00004597          	auipc	a1,0x4
-    80207490:	a1c58593          	addi	a1,a1,-1508 # 8020aea8 <digits+0xb28>
-    80207494:	854e                	mv	a0,s3
-    80207496:	ffff9097          	auipc	ra,0xffff9
-    8020749a:	3a4080e7          	jalr	932(ra) # 8020083a <strncmp>
-    8020749e:	e125                	bnez	a0,802074fe <dirlookup+0xb2>
+    80207448:	0ff00613          	li	a2,255
+    8020744c:	00004597          	auipc	a1,0x4
+    80207450:	a5458593          	addi	a1,a1,-1452 # 8020aea0 <digits+0xb20>
+    80207454:	854e                	mv	a0,s3
+    80207456:	ffff9097          	auipc	ra,0xffff9
+    8020745a:	3e4080e7          	jalr	996(ra) # 8020083a <strncmp>
+    8020745e:	e125                	bnez	a0,802074be <dirlookup+0xb2>
         if (dp == &root) {
-    802074a0:	0002b797          	auipc	a5,0x2b
-    802074a4:	71078793          	addi	a5,a5,1808 # 80232bb0 <root>
-    802074a8:	04f48463          	beq	s1,a5,802074f0 <dirlookup+0xa4>
+    80207460:	0002b797          	auipc	a5,0x2b
+    80207464:	75078793          	addi	a5,a5,1872 # 80232bb0 <root>
+    80207468:	04f48463          	beq	s1,a5,802074b0 <dirlookup+0xa4>
             return edup(&root);
         }
         return edup(dp->parent);
-    802074ac:	1204b503          	ld	a0,288(s1)
-    802074b0:	00000097          	auipc	ra,0x0
-    802074b4:	9b0080e7          	jalr	-1616(ra) # 80206e60 <edup>
-    802074b8:	892a                	mv	s2,a0
-    802074ba:	a839                	j	802074d8 <dirlookup+0x8c>
+    8020746c:	1204b503          	ld	a0,288(s1)
+    80207470:	00000097          	auipc	ra,0x0
+    80207474:	9b0080e7          	jalr	-1616(ra) # 80206e20 <edup>
+    80207478:	892a                	mv	s2,a0
+    8020747a:	a839                	j	80207498 <dirlookup+0x8c>
         panic("dirlookup not DIR");
-    802074bc:	00004517          	auipc	a0,0x4
-    802074c0:	9cc50513          	addi	a0,a0,-1588 # 8020ae88 <digits+0xb08>
-    802074c4:	ffff9097          	auipc	ra,0xffff9
-    802074c8:	c80080e7          	jalr	-896(ra) # 80200144 <panic>
+    8020747c:	00004517          	auipc	a0,0x4
+    80207480:	a0450513          	addi	a0,a0,-1532 # 8020ae80 <digits+0xb00>
+    80207484:	ffff9097          	auipc	ra,0xffff9
+    80207488:	cc0080e7          	jalr	-832(ra) # 80200144 <panic>
         return edup(dp);
-    802074cc:	8526                	mv	a0,s1
-    802074ce:	00000097          	auipc	ra,0x0
-    802074d2:	992080e7          	jalr	-1646(ra) # 80206e60 <edup>
-    802074d6:	892a                	mv	s2,a0
+    8020748c:	8526                	mv	a0,s1
+    8020748e:	00000097          	auipc	ra,0x0
+    80207492:	992080e7          	jalr	-1646(ra) # 80206e20 <edup>
+    80207496:	892a                	mv	s2,a0
     if (poff) {
         *poff = off;
     }
     eput(ep);
     return NULL;
 }
-    802074d8:	854a                	mv	a0,s2
-    802074da:	60e6                	ld	ra,88(sp)
-    802074dc:	6446                	ld	s0,80(sp)
-    802074de:	64a6                	ld	s1,72(sp)
-    802074e0:	6906                	ld	s2,64(sp)
-    802074e2:	79e2                	ld	s3,56(sp)
-    802074e4:	7a42                	ld	s4,48(sp)
-    802074e6:	7aa2                	ld	s5,40(sp)
-    802074e8:	7b02                	ld	s6,32(sp)
-    802074ea:	6be2                	ld	s7,24(sp)
-    802074ec:	6125                	addi	sp,sp,96
-    802074ee:	8082                	ret
+    80207498:	854a                	mv	a0,s2
+    8020749a:	60e6                	ld	ra,88(sp)
+    8020749c:	6446                	ld	s0,80(sp)
+    8020749e:	64a6                	ld	s1,72(sp)
+    802074a0:	6906                	ld	s2,64(sp)
+    802074a2:	79e2                	ld	s3,56(sp)
+    802074a4:	7a42                	ld	s4,48(sp)
+    802074a6:	7aa2                	ld	s5,40(sp)
+    802074a8:	7b02                	ld	s6,32(sp)
+    802074aa:	6be2                	ld	s7,24(sp)
+    802074ac:	6125                	addi	sp,sp,96
+    802074ae:	8082                	ret
             return edup(&root);
-    802074f0:	853e                	mv	a0,a5
-    802074f2:	00000097          	auipc	ra,0x0
-    802074f6:	96e080e7          	jalr	-1682(ra) # 80206e60 <edup>
-    802074fa:	892a                	mv	s2,a0
-    802074fc:	bff1                	j	802074d8 <dirlookup+0x8c>
+    802074b0:	853e                	mv	a0,a5
+    802074b2:	00000097          	auipc	ra,0x0
+    802074b6:	96e080e7          	jalr	-1682(ra) # 80206e20 <edup>
+    802074ba:	892a                	mv	s2,a0
+    802074bc:	bff1                	j	80207498 <dirlookup+0x8c>
     if (dp->valid != 1) {
-    802074fe:	11649703          	lh	a4,278(s1)
-    80207502:	4785                	li	a5,1
+    802074be:	11649703          	lh	a4,278(s1)
+    802074c2:	4785                	li	a5,1
         return NULL;
-    80207504:	4901                	li	s2,0
+    802074c4:	4901                	li	s2,0
     if (dp->valid != 1) {
-    80207506:	fcf719e3          	bne	a4,a5,802074d8 <dirlookup+0x8c>
+    802074c6:	fcf719e3          	bne	a4,a5,80207498 <dirlookup+0x8c>
     struct dirent *ep = eget(dp, filename);
-    8020750a:	85ce                	mv	a1,s3
-    8020750c:	8526                	mv	a0,s1
-    8020750e:	fffff097          	auipc	ra,0xfffff
-    80207512:	eec080e7          	jalr	-276(ra) # 802063fa <eget>
-    80207516:	892a                	mv	s2,a0
+    802074ca:	85ce                	mv	a1,s3
+    802074cc:	8526                	mv	a0,s1
+    802074ce:	fffff097          	auipc	ra,0xfffff
+    802074d2:	eec080e7          	jalr	-276(ra) # 802063ba <eget>
+    802074d6:	892a                	mv	s2,a0
     if (ep->valid == 1) { return ep; }                               // ecache hits
-    80207518:	11651703          	lh	a4,278(a0)
-    8020751c:	4785                	li	a5,1
-    8020751e:	faf70de3          	beq	a4,a5,802074d8 <dirlookup+0x8c>
+    802074d8:	11651703          	lh	a4,278(a0)
+    802074dc:	4785                	li	a5,1
+    802074de:	faf70de3          	beq	a4,a5,80207498 <dirlookup+0x8c>
     int len = strlen(filename);
-    80207522:	854e                	mv	a0,s3
-    80207524:	ffff9097          	auipc	ra,0xffff9
-    80207528:	3c2080e7          	jalr	962(ra) # 802008e6 <strlen>
+    802074e2:	854e                	mv	a0,s3
+    802074e4:	ffff9097          	auipc	ra,0xffff9
+    802074e8:	402080e7          	jalr	1026(ra) # 802008e6 <strlen>
     int count = 0;
-    8020752c:	fa042623          	sw	zero,-84(s0)
+    802074ec:	fa042623          	sw	zero,-84(s0)
     reloc_clus(dp, 0, 0);
-    80207530:	4601                	li	a2,0
-    80207532:	4581                	li	a1,0
-    80207534:	8526                	mv	a0,s1
-    80207536:	fffff097          	auipc	ra,0xfffff
-    8020753a:	c70080e7          	jalr	-912(ra) # 802061a6 <reloc_clus>
+    802074f0:	4601                	li	a2,0
+    802074f2:	4581                	li	a1,0
+    802074f4:	8526                	mv	a0,s1
+    802074f6:	fffff097          	auipc	ra,0xfffff
+    802074fa:	c70080e7          	jalr	-912(ra) # 80206166 <reloc_clus>
     uint off = 0;
-    8020753e:	4a01                	li	s4,0
+    802074fe:	4a01                	li	s4,0
     while ((type = enext(dp, ep, off, &count) != -1)) {
-    80207540:	fac40b93          	addi	s7,s0,-84
-    80207544:	5b7d                	li	s6,-1
-    80207546:	86de                	mv	a3,s7
-    80207548:	8652                	mv	a2,s4
-    8020754a:	85ca                	mv	a1,s2
-    8020754c:	8526                	mv	a0,s1
-    8020754e:	00000097          	auipc	ra,0x0
-    80207552:	d74080e7          	jalr	-652(ra) # 802072c2 <enext>
-    80207556:	03650f63          	beq	a0,s6,80207594 <dirlookup+0x148>
+    80207500:	fac40b93          	addi	s7,s0,-84
+    80207504:	5b7d                	li	s6,-1
+    80207506:	86de                	mv	a3,s7
+    80207508:	8652                	mv	a2,s4
+    8020750a:	85ca                	mv	a1,s2
+    8020750c:	8526                	mv	a0,s1
+    8020750e:	00000097          	auipc	ra,0x0
+    80207512:	d74080e7          	jalr	-652(ra) # 80207282 <enext>
+    80207516:	03650f63          	beq	a0,s6,80207554 <dirlookup+0x148>
         } else if (strncmp(filename, ep->filename, FAT32_MAX_FILENAME) == 0) {
-    8020755a:	0ff00613          	li	a2,255
-    8020755e:	85ca                	mv	a1,s2
-    80207560:	854e                	mv	a0,s3
-    80207562:	ffff9097          	auipc	ra,0xffff9
-    80207566:	2d8080e7          	jalr	728(ra) # 8020083a <strncmp>
-    8020756a:	c901                	beqz	a0,8020757a <dirlookup+0x12e>
+    8020751a:	0ff00613          	li	a2,255
+    8020751e:	85ca                	mv	a1,s2
+    80207520:	854e                	mv	a0,s3
+    80207522:	ffff9097          	auipc	ra,0xffff9
+    80207526:	318080e7          	jalr	792(ra) # 8020083a <strncmp>
+    8020752a:	c901                	beqz	a0,8020753a <dirlookup+0x12e>
         off += count << 5;
-    8020756c:	fac42783          	lw	a5,-84(s0)
-    80207570:	0057979b          	slliw	a5,a5,0x5
-    80207574:	01478a3b          	addw	s4,a5,s4
-    80207578:	b7f9                	j	80207546 <dirlookup+0xfa>
+    8020752c:	fac42783          	lw	a5,-84(s0)
+    80207530:	0057979b          	slliw	a5,a5,0x5
+    80207534:	01478a3b          	addw	s4,a5,s4
+    80207538:	b7f9                	j	80207506 <dirlookup+0xfa>
             ep->parent = edup(dp);
-    8020757a:	8526                	mv	a0,s1
-    8020757c:	00000097          	auipc	ra,0x0
-    80207580:	8e4080e7          	jalr	-1820(ra) # 80206e60 <edup>
-    80207584:	12a93023          	sd	a0,288(s2)
+    8020753a:	8526                	mv	a0,s1
+    8020753c:	00000097          	auipc	ra,0x0
+    80207540:	8e4080e7          	jalr	-1820(ra) # 80206e20 <edup>
+    80207544:	12a93023          	sd	a0,288(s2)
             ep->off = off;
-    80207588:	11492e23          	sw	s4,284(s2)
+    80207548:	11492e23          	sw	s4,284(s2)
             ep->valid = 1;
-    8020758c:	4785                	li	a5,1
-    8020758e:	10f91b23          	sh	a5,278(s2)
+    8020754c:	4785                	li	a5,1
+    8020754e:	10f91b23          	sh	a5,278(s2)
             return ep;
-    80207592:	b799                	j	802074d8 <dirlookup+0x8c>
+    80207552:	b799                	j	80207498 <dirlookup+0x8c>
     if (poff) {
-    80207594:	000a8463          	beqz	s5,8020759c <dirlookup+0x150>
+    80207554:	000a8463          	beqz	s5,8020755c <dirlookup+0x150>
         *poff = off;
-    80207598:	014aa023          	sw	s4,0(s5)
+    80207558:	014aa023          	sw	s4,0(s5)
     eput(ep);
-    8020759c:	854a                	mv	a0,s2
-    8020759e:	00000097          	auipc	ra,0x0
-    802075a2:	ba4080e7          	jalr	-1116(ra) # 80207142 <eput>
+    8020755c:	854a                	mv	a0,s2
+    8020755e:	00000097          	auipc	ra,0x0
+    80207562:	ba4080e7          	jalr	-1116(ra) # 80207102 <eput>
     return NULL;
-    802075a6:	4901                	li	s2,0
-    802075a8:	bf05                	j	802074d8 <dirlookup+0x8c>
+    80207566:	4901                	li	s2,0
+    80207568:	bf05                	j	80207498 <dirlookup+0x8c>
 
-00000000802075aa <ealloc>:
+000000008020756a <ealloc>:
 {
-    802075aa:	715d                	addi	sp,sp,-80
-    802075ac:	e486                	sd	ra,72(sp)
-    802075ae:	e0a2                	sd	s0,64(sp)
-    802075b0:	fc26                	sd	s1,56(sp)
-    802075b2:	f84a                	sd	s2,48(sp)
-    802075b4:	f44e                	sd	s3,40(sp)
-    802075b6:	f052                	sd	s4,32(sp)
-    802075b8:	ec56                	sd	s5,24(sp)
-    802075ba:	0880                	addi	s0,sp,80
-    802075bc:	892a                	mv	s2,a0
+    8020756a:	715d                	addi	sp,sp,-80
+    8020756c:	e486                	sd	ra,72(sp)
+    8020756e:	e0a2                	sd	s0,64(sp)
+    80207570:	fc26                	sd	s1,56(sp)
+    80207572:	f84a                	sd	s2,48(sp)
+    80207574:	f44e                	sd	s3,40(sp)
+    80207576:	f052                	sd	s4,32(sp)
+    80207578:	ec56                	sd	s5,24(sp)
+    8020757a:	0880                	addi	s0,sp,80
+    8020757c:	892a                	mv	s2,a0
     if (!(dp->attribute & ATTR_DIRECTORY)) {
-    802075be:	10054783          	lbu	a5,256(a0)
-    802075c2:	8bc1                	andi	a5,a5,16
-    802075c4:	c7b1                	beqz	a5,80207610 <ealloc+0x66>
-    802075c6:	852e                	mv	a0,a1
-    802075c8:	8a32                	mv	s4,a2
+    8020757e:	10054783          	lbu	a5,256(a0)
+    80207582:	8bc1                	andi	a5,a5,16
+    80207584:	c7b1                	beqz	a5,802075d0 <ealloc+0x66>
+    80207586:	852e                	mv	a0,a1
+    80207588:	8a32                	mv	s4,a2
     if (dp->valid != 1 || !(name = formatname(name))) {        // detect illegal character
-    802075ca:	11691703          	lh	a4,278(s2)
-    802075ce:	4785                	li	a5,1
+    8020758a:	11691703          	lh	a4,278(s2)
+    8020758e:	4785                	li	a5,1
         return NULL;
-    802075d0:	4481                	li	s1,0
+    80207590:	4481                	li	s1,0
     if (dp->valid != 1 || !(name = formatname(name))) {        // detect illegal character
-    802075d2:	02f71563          	bne	a4,a5,802075fc <ealloc+0x52>
-    802075d6:	fffff097          	auipc	ra,0xfffff
-    802075da:	408080e7          	jalr	1032(ra) # 802069de <formatname>
-    802075de:	89aa                	mv	s3,a0
-    802075e0:	10050663          	beqz	a0,802076ec <ealloc+0x142>
+    80207592:	02f71563          	bne	a4,a5,802075bc <ealloc+0x52>
+    80207596:	fffff097          	auipc	ra,0xfffff
+    8020759a:	408080e7          	jalr	1032(ra) # 8020699e <formatname>
+    8020759e:	89aa                	mv	s3,a0
+    802075a0:	10050663          	beqz	a0,802076ac <ealloc+0x142>
     uint off = 0;
-    802075e4:	fa042e23          	sw	zero,-68(s0)
+    802075a4:	fa042e23          	sw	zero,-68(s0)
     if ((ep = dirlookup(dp, name, &off)) != 0) {      // entry exists
-    802075e8:	fbc40613          	addi	a2,s0,-68
-    802075ec:	85aa                	mv	a1,a0
-    802075ee:	854a                	mv	a0,s2
-    802075f0:	00000097          	auipc	ra,0x0
-    802075f4:	e5c080e7          	jalr	-420(ra) # 8020744c <dirlookup>
-    802075f8:	84aa                	mv	s1,a0
-    802075fa:	c11d                	beqz	a0,80207620 <ealloc+0x76>
+    802075a8:	fbc40613          	addi	a2,s0,-68
+    802075ac:	85aa                	mv	a1,a0
+    802075ae:	854a                	mv	a0,s2
+    802075b0:	00000097          	auipc	ra,0x0
+    802075b4:	e5c080e7          	jalr	-420(ra) # 8020740c <dirlookup>
+    802075b8:	84aa                	mv	s1,a0
+    802075ba:	c11d                	beqz	a0,802075e0 <ealloc+0x76>
 }
-    802075fc:	8526                	mv	a0,s1
-    802075fe:	60a6                	ld	ra,72(sp)
-    80207600:	6406                	ld	s0,64(sp)
-    80207602:	74e2                	ld	s1,56(sp)
-    80207604:	7942                	ld	s2,48(sp)
-    80207606:	79a2                	ld	s3,40(sp)
-    80207608:	7a02                	ld	s4,32(sp)
-    8020760a:	6ae2                	ld	s5,24(sp)
-    8020760c:	6161                	addi	sp,sp,80
-    8020760e:	8082                	ret
+    802075bc:	8526                	mv	a0,s1
+    802075be:	60a6                	ld	ra,72(sp)
+    802075c0:	6406                	ld	s0,64(sp)
+    802075c2:	74e2                	ld	s1,56(sp)
+    802075c4:	7942                	ld	s2,48(sp)
+    802075c6:	79a2                	ld	s3,40(sp)
+    802075c8:	7a02                	ld	s4,32(sp)
+    802075ca:	6ae2                	ld	s5,24(sp)
+    802075cc:	6161                	addi	sp,sp,80
+    802075ce:	8082                	ret
         panic("ealloc not dir");
-    80207610:	00004517          	auipc	a0,0x4
-    80207614:	8a050513          	addi	a0,a0,-1888 # 8020aeb0 <digits+0xb30>
-    80207618:	ffff9097          	auipc	ra,0xffff9
-    8020761c:	b2c080e7          	jalr	-1236(ra) # 80200144 <panic>
+    802075d0:	00004517          	auipc	a0,0x4
+    802075d4:	8d850513          	addi	a0,a0,-1832 # 8020aea8 <digits+0xb28>
+    802075d8:	ffff9097          	auipc	ra,0xffff9
+    802075dc:	b6c080e7          	jalr	-1172(ra) # 80200144 <panic>
     ep = eget(dp, name);
-    80207620:	85ce                	mv	a1,s3
-    80207622:	854a                	mv	a0,s2
-    80207624:	fffff097          	auipc	ra,0xfffff
-    80207628:	dd6080e7          	jalr	-554(ra) # 802063fa <eget>
-    8020762c:	84aa                	mv	s1,a0
+    802075e0:	85ce                	mv	a1,s3
+    802075e2:	854a                	mv	a0,s2
+    802075e4:	fffff097          	auipc	ra,0xfffff
+    802075e8:	dd6080e7          	jalr	-554(ra) # 802063ba <eget>
+    802075ec:	84aa                	mv	s1,a0
     elock(ep);
-    8020762e:	00000097          	auipc	ra,0x0
-    80207632:	a90080e7          	jalr	-1392(ra) # 802070be <elock>
+    802075ee:	00000097          	auipc	ra,0x0
+    802075f2:	a90080e7          	jalr	-1392(ra) # 8020707e <elock>
     ep->attribute = attr;
-    80207636:	11448023          	sb	s4,256(s1)
+    802075f6:	11448023          	sb	s4,256(s1)
     ep->file_size = 0;
-    8020763a:	1004a423          	sw	zero,264(s1)
+    802075fa:	1004a423          	sw	zero,264(s1)
     ep->first_clus = 0;
-    8020763e:	1004a223          	sw	zero,260(s1)
+    802075fe:	1004a223          	sw	zero,260(s1)
     ep->parent = edup(dp);
-    80207642:	854a                	mv	a0,s2
-    80207644:	00000097          	auipc	ra,0x0
-    80207648:	81c080e7          	jalr	-2020(ra) # 80206e60 <edup>
-    8020764c:	12a4b023          	sd	a0,288(s1)
+    80207602:	854a                	mv	a0,s2
+    80207604:	00000097          	auipc	ra,0x0
+    80207608:	81c080e7          	jalr	-2020(ra) # 80206e20 <edup>
+    8020760c:	12a4b023          	sd	a0,288(s1)
     ep->off = off;
-    80207650:	fbc42a83          	lw	s5,-68(s0)
-    80207654:	1154ae23          	sw	s5,284(s1)
+    80207610:	fbc42a83          	lw	s5,-68(s0)
+    80207614:	1154ae23          	sw	s5,284(s1)
     ep->clus_cnt = 0;
-    80207658:	1004a823          	sw	zero,272(s1)
+    80207618:	1004a823          	sw	zero,272(s1)
     ep->cur_clus = 0;
-    8020765c:	1004a623          	sw	zero,268(s1)
+    8020761c:	1004a623          	sw	zero,268(s1)
     ep->dirty = 0;
-    80207660:	10048aa3          	sb	zero,277(s1)
+    80207620:	10048aa3          	sb	zero,277(s1)
     strncpy(ep->filename, name, FAT32_MAX_FILENAME);
-    80207664:	0ff00613          	li	a2,255
-    80207668:	85ce                	mv	a1,s3
-    8020766a:	8526                	mv	a0,s1
-    8020766c:	ffff9097          	auipc	ra,0xffff9
-    80207670:	20a080e7          	jalr	522(ra) # 80200876 <strncpy>
+    80207624:	0ff00613          	li	a2,255
+    80207628:	85ce                	mv	a1,s3
+    8020762a:	8526                	mv	a0,s1
+    8020762c:	ffff9097          	auipc	ra,0xffff9
+    80207630:	24a080e7          	jalr	586(ra) # 80200876 <strncpy>
     ep->filename[FAT32_MAX_FILENAME] = '\0';
-    80207674:	0e048fa3          	sb	zero,255(s1)
+    80207634:	0e048fa3          	sb	zero,255(s1)
     if (attr == ATTR_DIRECTORY) {    // generate "." and ".." for ep
-    80207678:	47c1                	li	a5,16
-    8020767a:	02fa0863          	beq	s4,a5,802076aa <ealloc+0x100>
+    80207638:	47c1                	li	a5,16
+    8020763a:	02fa0863          	beq	s4,a5,8020766a <ealloc+0x100>
         ep->attribute |= ATTR_ARCHIVE;
-    8020767e:	1004c783          	lbu	a5,256(s1)
-    80207682:	0207e793          	ori	a5,a5,32
-    80207686:	10f48023          	sb	a5,256(s1)
+    8020763e:	1004c783          	lbu	a5,256(s1)
+    80207642:	0207e793          	ori	a5,a5,32
+    80207646:	10f48023          	sb	a5,256(s1)
     emake(dp, ep, off);
-    8020768a:	8656                	mv	a2,s5
-    8020768c:	85a6                	mv	a1,s1
-    8020768e:	854a                	mv	a0,s2
-    80207690:	fffff097          	auipc	ra,0xfffff
-    80207694:	406080e7          	jalr	1030(ra) # 80206a96 <emake>
+    8020764a:	8656                	mv	a2,s5
+    8020764c:	85a6                	mv	a1,s1
+    8020764e:	854a                	mv	a0,s2
+    80207650:	fffff097          	auipc	ra,0xfffff
+    80207654:	406080e7          	jalr	1030(ra) # 80206a56 <emake>
     ep->valid = 1;
-    80207698:	4785                	li	a5,1
-    8020769a:	10f49b23          	sh	a5,278(s1)
+    80207658:	4785                	li	a5,1
+    8020765a:	10f49b23          	sh	a5,278(s1)
     eunlock(ep);
-    8020769e:	8526                	mv	a0,s1
-    802076a0:	00000097          	auipc	ra,0x0
-    802076a4:	a54080e7          	jalr	-1452(ra) # 802070f4 <eunlock>
+    8020765e:	8526                	mv	a0,s1
+    80207660:	00000097          	auipc	ra,0x0
+    80207664:	a54080e7          	jalr	-1452(ra) # 802070b4 <eunlock>
     return ep;
-    802076a8:	bf91                	j	802075fc <ealloc+0x52>
+    80207668:	bf91                	j	802075bc <ealloc+0x52>
         ep->attribute |= ATTR_DIRECTORY;
-    802076aa:	1004c783          	lbu	a5,256(s1)
-    802076ae:	0107e793          	ori	a5,a5,16
-    802076b2:	10f48023          	sb	a5,256(s1)
+    8020766a:	1004c783          	lbu	a5,256(s1)
+    8020766e:	0107e793          	ori	a5,a5,16
+    80207672:	10f48023          	sb	a5,256(s1)
         ep->cur_clus = ep->first_clus = alloc_clus(dp->dev);
-    802076b6:	11494503          	lbu	a0,276(s2)
-    802076ba:	fffff097          	auipc	ra,0xfffff
-    802076be:	92a080e7          	jalr	-1750(ra) # 80205fe4 <alloc_clus>
-    802076c2:	2501                	sext.w	a0,a0
-    802076c4:	10a4a223          	sw	a0,260(s1)
-    802076c8:	10a4a623          	sw	a0,268(s1)
+    80207676:	11494503          	lbu	a0,276(s2)
+    8020767a:	fffff097          	auipc	ra,0xfffff
+    8020767e:	92a080e7          	jalr	-1750(ra) # 80205fa4 <alloc_clus>
+    80207682:	2501                	sext.w	a0,a0
+    80207684:	10a4a223          	sw	a0,260(s1)
+    80207688:	10a4a623          	sw	a0,268(s1)
         emake(ep, ep, 0);
-    802076cc:	4601                	li	a2,0
-    802076ce:	85a6                	mv	a1,s1
-    802076d0:	8526                	mv	a0,s1
-    802076d2:	fffff097          	auipc	ra,0xfffff
-    802076d6:	3c4080e7          	jalr	964(ra) # 80206a96 <emake>
+    8020768c:	4601                	li	a2,0
+    8020768e:	85a6                	mv	a1,s1
+    80207690:	8526                	mv	a0,s1
+    80207692:	fffff097          	auipc	ra,0xfffff
+    80207696:	3c4080e7          	jalr	964(ra) # 80206a56 <emake>
         emake(ep, dp, 32);
-    802076da:	02000613          	li	a2,32
-    802076de:	85ca                	mv	a1,s2
-    802076e0:	8526                	mv	a0,s1
-    802076e2:	fffff097          	auipc	ra,0xfffff
-    802076e6:	3b4080e7          	jalr	948(ra) # 80206a96 <emake>
-    802076ea:	b745                	j	8020768a <ealloc+0xe0>
+    8020769a:	02000613          	li	a2,32
+    8020769e:	85ca                	mv	a1,s2
+    802076a0:	8526                	mv	a0,s1
+    802076a2:	fffff097          	auipc	ra,0xfffff
+    802076a6:	3b4080e7          	jalr	948(ra) # 80206a56 <emake>
+    802076aa:	b745                	j	8020764a <ealloc+0xe0>
         return NULL;
-    802076ec:	84aa                	mv	s1,a0
-    802076ee:	b739                	j	802075fc <ealloc+0x52>
+    802076ac:	84aa                	mv	s1,a0
+    802076ae:	b739                	j	802075bc <ealloc+0x52>
 
-00000000802076f0 <lookup_path>:
+00000000802076b0 <lookup_path>:
     return path;
 }
 
 // FAT32 version of namex in xv6's original file system.
 static struct dirent *lookup_path(char *path, int parent, char *name)
 {
-    802076f0:	715d                	addi	sp,sp,-80
-    802076f2:	e486                	sd	ra,72(sp)
-    802076f4:	e0a2                	sd	s0,64(sp)
-    802076f6:	fc26                	sd	s1,56(sp)
-    802076f8:	f84a                	sd	s2,48(sp)
-    802076fa:	f44e                	sd	s3,40(sp)
-    802076fc:	f052                	sd	s4,32(sp)
-    802076fe:	ec56                	sd	s5,24(sp)
-    80207700:	e85a                	sd	s6,16(sp)
-    80207702:	e45e                	sd	s7,8(sp)
-    80207704:	e062                	sd	s8,0(sp)
-    80207706:	0880                	addi	s0,sp,80
-    80207708:	892a                	mv	s2,a0
-    8020770a:	8b2e                	mv	s6,a1
-    8020770c:	8ab2                	mv	s5,a2
+    802076b0:	715d                	addi	sp,sp,-80
+    802076b2:	e486                	sd	ra,72(sp)
+    802076b4:	e0a2                	sd	s0,64(sp)
+    802076b6:	fc26                	sd	s1,56(sp)
+    802076b8:	f84a                	sd	s2,48(sp)
+    802076ba:	f44e                	sd	s3,40(sp)
+    802076bc:	f052                	sd	s4,32(sp)
+    802076be:	ec56                	sd	s5,24(sp)
+    802076c0:	e85a                	sd	s6,16(sp)
+    802076c2:	e45e                	sd	s7,8(sp)
+    802076c4:	e062                	sd	s8,0(sp)
+    802076c6:	0880                	addi	s0,sp,80
+    802076c8:	892a                	mv	s2,a0
+    802076ca:	8b2e                	mv	s6,a1
+    802076cc:	8ab2                	mv	s5,a2
     struct dirent *entry, *next;
     if (*path == '/') {
-    8020770e:	00054783          	lbu	a5,0(a0)
-    80207712:	02f00713          	li	a4,47
-    80207716:	02e78663          	beq	a5,a4,80207742 <lookup_path+0x52>
+    802076ce:	00054783          	lbu	a5,0(a0)
+    802076d2:	02f00713          	li	a4,47
+    802076d6:	02e78663          	beq	a5,a4,80207702 <lookup_path+0x52>
         entry = edup(&root);
     } else if (*path != '\0') {
         entry = edup(myproc()->cwd);
     } else {
         return NULL;
-    8020771a:	4a01                	li	s4,0
+    802076da:	4a01                	li	s4,0
     } else if (*path != '\0') {
-    8020771c:	cba1                	beqz	a5,8020776c <lookup_path+0x7c>
+    802076dc:	cba1                	beqz	a5,8020772c <lookup_path+0x7c>
         entry = edup(myproc()->cwd);
-    8020771e:	ffffa097          	auipc	ra,0xffffa
-    80207722:	31e080e7          	jalr	798(ra) # 80201a3c <myproc>
-    80207726:	40053503          	ld	a0,1024(a0)
-    8020772a:	fffff097          	auipc	ra,0xfffff
-    8020772e:	736080e7          	jalr	1846(ra) # 80206e60 <edup>
-    80207732:	8a2a                	mv	s4,a0
+    802076de:	ffffa097          	auipc	ra,0xffffa
+    802076e2:	35e080e7          	jalr	862(ra) # 80201a3c <myproc>
+    802076e6:	40053503          	ld	a0,1024(a0)
+    802076ea:	fffff097          	auipc	ra,0xfffff
+    802076ee:	736080e7          	jalr	1846(ra) # 80206e20 <edup>
+    802076f2:	8a2a                	mv	s4,a0
     while (*path == '/') {
-    80207734:	02f00993          	li	s3,47
-    80207738:	0ff00b93          	li	s7,255
-    8020773c:	0ff00c13          	li	s8,255
-    80207740:	a0e5                	j	80207828 <lookup_path+0x138>
+    802076f4:	02f00993          	li	s3,47
+    802076f8:	0ff00b93          	li	s7,255
+    802076fc:	0ff00c13          	li	s8,255
+    80207700:	a0e5                	j	802077e8 <lookup_path+0x138>
         entry = edup(&root);
-    80207742:	0002b517          	auipc	a0,0x2b
-    80207746:	46e50513          	addi	a0,a0,1134 # 80232bb0 <root>
-    8020774a:	fffff097          	auipc	ra,0xfffff
-    8020774e:	716080e7          	jalr	1814(ra) # 80206e60 <edup>
-    80207752:	8a2a                	mv	s4,a0
-    80207754:	b7c5                	j	80207734 <lookup_path+0x44>
+    80207702:	0002b517          	auipc	a0,0x2b
+    80207706:	4ae50513          	addi	a0,a0,1198 # 80232bb0 <root>
+    8020770a:	fffff097          	auipc	ra,0xfffff
+    8020770e:	716080e7          	jalr	1814(ra) # 80206e20 <edup>
+    80207712:	8a2a                	mv	s4,a0
+    80207714:	b7c5                	j	802076f4 <lookup_path+0x44>
     }
     while ((path = skipelem(path, name)) != 0) {
         elock(entry);
         if (!(entry->attribute & ATTR_DIRECTORY)) {
             eunlock(entry);
-    80207756:	8552                	mv	a0,s4
-    80207758:	00000097          	auipc	ra,0x0
-    8020775c:	99c080e7          	jalr	-1636(ra) # 802070f4 <eunlock>
+    80207716:	8552                	mv	a0,s4
+    80207718:	00000097          	auipc	ra,0x0
+    8020771c:	99c080e7          	jalr	-1636(ra) # 802070b4 <eunlock>
             eput(entry);
-    80207760:	8552                	mv	a0,s4
-    80207762:	00000097          	auipc	ra,0x0
-    80207766:	9e0080e7          	jalr	-1568(ra) # 80207142 <eput>
+    80207720:	8552                	mv	a0,s4
+    80207722:	00000097          	auipc	ra,0x0
+    80207726:	9e0080e7          	jalr	-1568(ra) # 80207102 <eput>
             return NULL;
-    8020776a:	4a01                	li	s4,0
+    8020772a:	4a01                	li	s4,0
     if (parent) {
         eput(entry);
         return NULL;
     }
     return entry;
 }
-    8020776c:	8552                	mv	a0,s4
-    8020776e:	60a6                	ld	ra,72(sp)
-    80207770:	6406                	ld	s0,64(sp)
-    80207772:	74e2                	ld	s1,56(sp)
-    80207774:	7942                	ld	s2,48(sp)
-    80207776:	79a2                	ld	s3,40(sp)
-    80207778:	7a02                	ld	s4,32(sp)
-    8020777a:	6ae2                	ld	s5,24(sp)
-    8020777c:	6b42                	ld	s6,16(sp)
-    8020777e:	6ba2                	ld	s7,8(sp)
-    80207780:	6c02                	ld	s8,0(sp)
-    80207782:	6161                	addi	sp,sp,80
-    80207784:	8082                	ret
+    8020772c:	8552                	mv	a0,s4
+    8020772e:	60a6                	ld	ra,72(sp)
+    80207730:	6406                	ld	s0,64(sp)
+    80207732:	74e2                	ld	s1,56(sp)
+    80207734:	7942                	ld	s2,48(sp)
+    80207736:	79a2                	ld	s3,40(sp)
+    80207738:	7a02                	ld	s4,32(sp)
+    8020773a:	6ae2                	ld	s5,24(sp)
+    8020773c:	6b42                	ld	s6,16(sp)
+    8020773e:	6ba2                	ld	s7,8(sp)
+    80207740:	6c02                	ld	s8,0(sp)
+    80207742:	6161                	addi	sp,sp,80
+    80207744:	8082                	ret
             eunlock(entry);
-    80207786:	8552                	mv	a0,s4
-    80207788:	00000097          	auipc	ra,0x0
-    8020778c:	96c080e7          	jalr	-1684(ra) # 802070f4 <eunlock>
+    80207746:	8552                	mv	a0,s4
+    80207748:	00000097          	auipc	ra,0x0
+    8020774c:	96c080e7          	jalr	-1684(ra) # 802070b4 <eunlock>
             return entry;
-    80207790:	bff1                	j	8020776c <lookup_path+0x7c>
+    80207750:	bff1                	j	8020772c <lookup_path+0x7c>
             eunlock(entry);
-    80207792:	8552                	mv	a0,s4
-    80207794:	00000097          	auipc	ra,0x0
-    80207798:	960080e7          	jalr	-1696(ra) # 802070f4 <eunlock>
+    80207752:	8552                	mv	a0,s4
+    80207754:	00000097          	auipc	ra,0x0
+    80207758:	960080e7          	jalr	-1696(ra) # 802070b4 <eunlock>
             eput(entry);
-    8020779c:	8552                	mv	a0,s4
-    8020779e:	00000097          	auipc	ra,0x0
-    802077a2:	9a4080e7          	jalr	-1628(ra) # 80207142 <eput>
+    8020775c:	8552                	mv	a0,s4
+    8020775e:	00000097          	auipc	ra,0x0
+    80207762:	9a4080e7          	jalr	-1628(ra) # 80207102 <eput>
             return NULL;
-    802077a6:	8a4a                	mv	s4,s2
-    802077a8:	b7d1                	j	8020776c <lookup_path+0x7c>
+    80207766:	8a4a                	mv	s4,s2
+    80207768:	b7d1                	j	8020772c <lookup_path+0x7c>
     int len = path - s;
-    802077aa:	412487b3          	sub	a5,s1,s2
-    802077ae:	863e                	mv	a2,a5
-    802077b0:	2781                	sext.w	a5,a5
-    802077b2:	00fbd363          	bge	s7,a5,802077b8 <lookup_path+0xc8>
-    802077b6:	8662                	mv	a2,s8
-    802077b8:	0006079b          	sext.w	a5,a2
+    8020776a:	412487b3          	sub	a5,s1,s2
+    8020776e:	863e                	mv	a2,a5
+    80207770:	2781                	sext.w	a5,a5
+    80207772:	00fbd363          	bge	s7,a5,80207778 <lookup_path+0xc8>
+    80207776:	8662                	mv	a2,s8
+    80207778:	0006079b          	sext.w	a5,a2
     name[len] = 0;
-    802077bc:	97d6                	add	a5,a5,s5
-    802077be:	00078023          	sb	zero,0(a5)
+    8020777c:	97d6                	add	a5,a5,s5
+    8020777e:	00078023          	sb	zero,0(a5)
     memmove(name, s, len);
-    802077c2:	2601                	sext.w	a2,a2
-    802077c4:	85ca                	mv	a1,s2
-    802077c6:	8556                	mv	a0,s5
-    802077c8:	ffff9097          	auipc	ra,0xffff9
-    802077cc:	ff6080e7          	jalr	-10(ra) # 802007be <memmove>
+    80207782:	2601                	sext.w	a2,a2
+    80207784:	85ca                	mv	a1,s2
+    80207786:	8556                	mv	a0,s5
+    80207788:	ffff9097          	auipc	ra,0xffff9
+    8020778c:	036080e7          	jalr	54(ra) # 802007be <memmove>
     while (*path == '/') {
-    802077d0:	0004c783          	lbu	a5,0(s1)
-    802077d4:	01379763          	bne	a5,s3,802077e2 <lookup_path+0xf2>
+    80207790:	0004c783          	lbu	a5,0(s1)
+    80207794:	01379763          	bne	a5,s3,802077a2 <lookup_path+0xf2>
         path++;
-    802077d8:	0485                	addi	s1,s1,1
+    80207798:	0485                	addi	s1,s1,1
     while (*path == '/') {
-    802077da:	0004c783          	lbu	a5,0(s1)
-    802077de:	ff378de3          	beq	a5,s3,802077d8 <lookup_path+0xe8>
+    8020779a:	0004c783          	lbu	a5,0(s1)
+    8020779e:	ff378de3          	beq	a5,s3,80207798 <lookup_path+0xe8>
         elock(entry);
-    802077e2:	8552                	mv	a0,s4
-    802077e4:	00000097          	auipc	ra,0x0
-    802077e8:	8da080e7          	jalr	-1830(ra) # 802070be <elock>
+    802077a2:	8552                	mv	a0,s4
+    802077a4:	00000097          	auipc	ra,0x0
+    802077a8:	8da080e7          	jalr	-1830(ra) # 8020707e <elock>
         if (!(entry->attribute & ATTR_DIRECTORY)) {
-    802077ec:	100a4783          	lbu	a5,256(s4)
-    802077f0:	8bc1                	andi	a5,a5,16
-    802077f2:	d3b5                	beqz	a5,80207756 <lookup_path+0x66>
+    802077ac:	100a4783          	lbu	a5,256(s4)
+    802077b0:	8bc1                	andi	a5,a5,16
+    802077b2:	d3b5                	beqz	a5,80207716 <lookup_path+0x66>
         if (parent && *path == '\0') {
-    802077f4:	000b0563          	beqz	s6,802077fe <lookup_path+0x10e>
-    802077f8:	0004c783          	lbu	a5,0(s1)
-    802077fc:	d7c9                	beqz	a5,80207786 <lookup_path+0x96>
+    802077b4:	000b0563          	beqz	s6,802077be <lookup_path+0x10e>
+    802077b8:	0004c783          	lbu	a5,0(s1)
+    802077bc:	d7c9                	beqz	a5,80207746 <lookup_path+0x96>
         if ((next = dirlookup(entry, name, 0)) == 0) {
-    802077fe:	4601                	li	a2,0
-    80207800:	85d6                	mv	a1,s5
-    80207802:	8552                	mv	a0,s4
-    80207804:	00000097          	auipc	ra,0x0
-    80207808:	c48080e7          	jalr	-952(ra) # 8020744c <dirlookup>
-    8020780c:	892a                	mv	s2,a0
-    8020780e:	d151                	beqz	a0,80207792 <lookup_path+0xa2>
+    802077be:	4601                	li	a2,0
+    802077c0:	85d6                	mv	a1,s5
+    802077c2:	8552                	mv	a0,s4
+    802077c4:	00000097          	auipc	ra,0x0
+    802077c8:	c48080e7          	jalr	-952(ra) # 8020740c <dirlookup>
+    802077cc:	892a                	mv	s2,a0
+    802077ce:	d151                	beqz	a0,80207752 <lookup_path+0xa2>
         eunlock(entry);
-    80207810:	8552                	mv	a0,s4
-    80207812:	00000097          	auipc	ra,0x0
-    80207816:	8e2080e7          	jalr	-1822(ra) # 802070f4 <eunlock>
+    802077d0:	8552                	mv	a0,s4
+    802077d2:	00000097          	auipc	ra,0x0
+    802077d6:	8e2080e7          	jalr	-1822(ra) # 802070b4 <eunlock>
         eput(entry);
-    8020781a:	8552                	mv	a0,s4
-    8020781c:	00000097          	auipc	ra,0x0
-    80207820:	926080e7          	jalr	-1754(ra) # 80207142 <eput>
+    802077da:	8552                	mv	a0,s4
+    802077dc:	00000097          	auipc	ra,0x0
+    802077e0:	926080e7          	jalr	-1754(ra) # 80207102 <eput>
         entry = next;
-    80207824:	8a4a                	mv	s4,s2
+    802077e4:	8a4a                	mv	s4,s2
         eput(entry);
-    80207826:	8926                	mv	s2,s1
+    802077e6:	8926                	mv	s2,s1
     while (*path == '/') {
-    80207828:	00094783          	lbu	a5,0(s2)
-    8020782c:	03379363          	bne	a5,s3,80207852 <lookup_path+0x162>
+    802077e8:	00094783          	lbu	a5,0(s2)
+    802077ec:	03379363          	bne	a5,s3,80207812 <lookup_path+0x162>
         path++;
-    80207830:	0905                	addi	s2,s2,1
+    802077f0:	0905                	addi	s2,s2,1
     while (*path == '/') {
-    80207832:	00094783          	lbu	a5,0(s2)
-    80207836:	ff378de3          	beq	a5,s3,80207830 <lookup_path+0x140>
+    802077f2:	00094783          	lbu	a5,0(s2)
+    802077f6:	ff378de3          	beq	a5,s3,802077f0 <lookup_path+0x140>
     if (*path == 0) { return NULL; }
-    8020783a:	cf89                	beqz	a5,80207854 <lookup_path+0x164>
+    802077fa:	cf89                	beqz	a5,80207814 <lookup_path+0x164>
         path++;
-    8020783c:	84ca                	mv	s1,s2
+    802077fc:	84ca                	mv	s1,s2
     while (*path != '/' && *path != 0) {
-    8020783e:	f73786e3          	beq	a5,s3,802077aa <lookup_path+0xba>
+    802077fe:	f73786e3          	beq	a5,s3,8020776a <lookup_path+0xba>
         eput(entry);
-    80207842:	84ca                	mv	s1,s2
+    80207802:	84ca                	mv	s1,s2
     while (*path != '/' && *path != 0) {
-    80207844:	d3bd                	beqz	a5,802077aa <lookup_path+0xba>
+    80207804:	d3bd                	beqz	a5,8020776a <lookup_path+0xba>
         path++;
-    80207846:	0485                	addi	s1,s1,1
+    80207806:	0485                	addi	s1,s1,1
     while (*path != '/' && *path != 0) {
-    80207848:	0004c783          	lbu	a5,0(s1)
-    8020784c:	ff379ce3          	bne	a5,s3,80207844 <lookup_path+0x154>
-    80207850:	bfa9                	j	802077aa <lookup_path+0xba>
+    80207808:	0004c783          	lbu	a5,0(s1)
+    8020780c:	ff379ce3          	bne	a5,s3,80207804 <lookup_path+0x154>
+    80207810:	bfa9                	j	8020776a <lookup_path+0xba>
     if (*path == 0) { return NULL; }
-    80207852:	fbe5                	bnez	a5,80207842 <lookup_path+0x152>
+    80207812:	fbe5                	bnez	a5,80207802 <lookup_path+0x152>
     if (parent) {
-    80207854:	f00b0ce3          	beqz	s6,8020776c <lookup_path+0x7c>
+    80207814:	f00b0ce3          	beqz	s6,8020772c <lookup_path+0x7c>
         eput(entry);
-    80207858:	8552                	mv	a0,s4
-    8020785a:	00000097          	auipc	ra,0x0
-    8020785e:	8e8080e7          	jalr	-1816(ra) # 80207142 <eput>
+    80207818:	8552                	mv	a0,s4
+    8020781a:	00000097          	auipc	ra,0x0
+    8020781e:	8e8080e7          	jalr	-1816(ra) # 80207102 <eput>
         return NULL;
-    80207862:	4a01                	li	s4,0
-    80207864:	b721                	j	8020776c <lookup_path+0x7c>
+    80207822:	4a01                	li	s4,0
+    80207824:	b721                	j	8020772c <lookup_path+0x7c>
 
-0000000080207866 <ename>:
+0000000080207826 <ename>:
 
 struct dirent *ename(char *path)
 {
-    80207866:	716d                	addi	sp,sp,-272
-    80207868:	e606                	sd	ra,264(sp)
-    8020786a:	e222                	sd	s0,256(sp)
-    8020786c:	0a00                	addi	s0,sp,272
+    80207826:	716d                	addi	sp,sp,-272
+    80207828:	e606                	sd	ra,264(sp)
+    8020782a:	e222                	sd	s0,256(sp)
+    8020782c:	0a00                	addi	s0,sp,272
     char name[FAT32_MAX_FILENAME + 1];
     return lookup_path(path, 0, name);
-    8020786e:	ef040613          	addi	a2,s0,-272
-    80207872:	4581                	li	a1,0
-    80207874:	00000097          	auipc	ra,0x0
-    80207878:	e7c080e7          	jalr	-388(ra) # 802076f0 <lookup_path>
+    8020782e:	ef040613          	addi	a2,s0,-272
+    80207832:	4581                	li	a1,0
+    80207834:	00000097          	auipc	ra,0x0
+    80207838:	e7c080e7          	jalr	-388(ra) # 802076b0 <lookup_path>
 }
-    8020787c:	60b2                	ld	ra,264(sp)
-    8020787e:	6412                	ld	s0,256(sp)
-    80207880:	6151                	addi	sp,sp,272
-    80207882:	8082                	ret
+    8020783c:	60b2                	ld	ra,264(sp)
+    8020783e:	6412                	ld	s0,256(sp)
+    80207840:	6151                	addi	sp,sp,272
+    80207842:	8082                	ret
 
-0000000080207884 <enameparent>:
+0000000080207844 <enameparent>:
 
 struct dirent *enameparent(char *path, char *name)
 {
-    80207884:	1141                	addi	sp,sp,-16
-    80207886:	e406                	sd	ra,8(sp)
-    80207888:	e022                	sd	s0,0(sp)
-    8020788a:	0800                	addi	s0,sp,16
-    8020788c:	862e                	mv	a2,a1
+    80207844:	1141                	addi	sp,sp,-16
+    80207846:	e406                	sd	ra,8(sp)
+    80207848:	e022                	sd	s0,0(sp)
+    8020784a:	0800                	addi	s0,sp,16
+    8020784c:	862e                	mv	a2,a1
     return lookup_path(path, 1, name);
-    8020788e:	4585                	li	a1,1
-    80207890:	00000097          	auipc	ra,0x0
-    80207894:	e60080e7          	jalr	-416(ra) # 802076f0 <lookup_path>
+    8020784e:	4585                	li	a1,1
+    80207850:	00000097          	auipc	ra,0x0
+    80207854:	e60080e7          	jalr	-416(ra) # 802076b0 <lookup_path>
 }
-    80207898:	60a2                	ld	ra,8(sp)
-    8020789a:	6402                	ld	s0,0(sp)
-    8020789c:	0141                	addi	sp,sp,16
-    8020789e:	8082                	ret
+    80207858:	60a2                	ld	ra,8(sp)
+    8020785a:	6402                	ld	s0,0(sp)
+    8020785c:	0141                	addi	sp,sp,16
+    8020785e:	8082                	ret
 
-00000000802078a0 <plicinit>:
+0000000080207860 <plicinit>:
 
 //
 // the riscv Platform Level Interrupt Controller (PLIC).
 //
 
 void plicinit(void) {
-    802078a0:	1141                	addi	sp,sp,-16
-    802078a2:	e422                	sd	s0,8(sp)
-    802078a4:	0800                	addi	s0,sp,16
+    80207860:	1141                	addi	sp,sp,-16
+    80207862:	e422                	sd	s0,8(sp)
+    80207864:	0800                	addi	s0,sp,16
 	writed(1, PLIC_V + DISK_IRQ * sizeof(uint32));
-    802078a6:	00fc37b7          	lui	a5,0xfc3
-    802078aa:	07ba                	slli	a5,a5,0xe
-    802078ac:	4705                	li	a4,1
-    802078ae:	c3d8                	sw	a4,4(a5)
+    80207866:	00fc37b7          	lui	a5,0xfc3
+    8020786a:	07ba                	slli	a5,a5,0xe
+    8020786c:	4705                	li	a4,1
+    8020786e:	c3d8                	sw	a4,4(a5)
 	writed(1, PLIC_V + UART_IRQ * sizeof(uint32));
-    802078b0:	d798                	sw	a4,40(a5)
+    80207870:	d798                	sw	a4,40(a5)
 
 	#ifdef DEBUG 
 	printf("plicinit\n");
 	#endif 
 }
-    802078b2:	6422                	ld	s0,8(sp)
-    802078b4:	0141                	addi	sp,sp,16
-    802078b6:	8082                	ret
+    80207872:	6422                	ld	s0,8(sp)
+    80207874:	0141                	addi	sp,sp,16
+    80207876:	8082                	ret
 
-00000000802078b8 <plicinithart>:
+0000000080207878 <plicinithart>:
 
 void
 plicinithart(void)
 {
-    802078b8:	1141                	addi	sp,sp,-16
-    802078ba:	e406                	sd	ra,8(sp)
-    802078bc:	e022                	sd	s0,0(sp)
-    802078be:	0800                	addi	s0,sp,16
+    80207878:	1141                	addi	sp,sp,-16
+    8020787a:	e406                	sd	ra,8(sp)
+    8020787c:	e022                	sd	s0,0(sp)
+    8020787e:	0800                	addi	s0,sp,16
   int hart = cpuid();
-    802078c0:	ffffa097          	auipc	ra,0xffffa
-    802078c4:	150080e7          	jalr	336(ra) # 80201a10 <cpuid>
+    80207880:	ffffa097          	auipc	ra,0xffffa
+    80207884:	190080e7          	jalr	400(ra) # 80201a10 <cpuid>
   #ifdef QEMU
   // set uart's enable bit for this hart's S-mode. 
   *(uint32*)PLIC_SENABLE(hart)= (1 << UART_IRQ) | (1 << DISK_IRQ);
-    802078c8:	0085171b          	slliw	a4,a0,0x8
-    802078cc:	01f867b7          	lui	a5,0x1f86
-    802078d0:	0785                	addi	a5,a5,1 # 1f86001 <_entry-0x7e279fff>
-    802078d2:	07b6                	slli	a5,a5,0xd
-    802078d4:	97ba                	add	a5,a5,a4
-    802078d6:	40200713          	li	a4,1026
-    802078da:	08e7a023          	sw	a4,128(a5)
+    80207888:	0085171b          	slliw	a4,a0,0x8
+    8020788c:	01f867b7          	lui	a5,0x1f86
+    80207890:	0785                	addi	a5,a5,1 # 1f86001 <_entry-0x7e279fff>
+    80207892:	07b6                	slli	a5,a5,0xd
+    80207894:	97ba                	add	a5,a5,a4
+    80207896:	40200713          	li	a4,1026
+    8020789a:	08e7a023          	sw	a4,128(a5)
   // set this hart's S-mode priority threshold to 0.
   *(uint32*)PLIC_SPRIORITY(hart) = 0;
-    802078de:	00d5151b          	slliw	a0,a0,0xd
-    802078e2:	03f0c7b7          	lui	a5,0x3f0c
-    802078e6:	20178793          	addi	a5,a5,513 # 3f0c201 <_entry-0x7c2f3dff>
-    802078ea:	07b2                	slli	a5,a5,0xc
-    802078ec:	97aa                	add	a5,a5,a0
-    802078ee:	0007a023          	sw	zero,0(a5)
+    8020789e:	00d5151b          	slliw	a0,a0,0xd
+    802078a2:	03f0c7b7          	lui	a5,0x3f0c
+    802078a6:	20178793          	addi	a5,a5,513 # 3f0c201 <_entry-0x7c2f3dff>
+    802078aa:	07b2                	slli	a5,a5,0xc
+    802078ac:	97aa                	add	a5,a5,a0
+    802078ae:	0007a023          	sw	zero,0(a5)
   *(hart0_m_int_enable_hi) = readd(hart0_m_int_enable_hi) | (1 << (UART_IRQ % 32));
   #endif
   #ifdef DEBUG
   printf("plicinithart\n");
   #endif
 }
-    802078f2:	60a2                	ld	ra,8(sp)
-    802078f4:	6402                	ld	s0,0(sp)
-    802078f6:	0141                	addi	sp,sp,16
-    802078f8:	8082                	ret
+    802078b2:	60a2                	ld	ra,8(sp)
+    802078b4:	6402                	ld	s0,0(sp)
+    802078b6:	0141                	addi	sp,sp,16
+    802078b8:	8082                	ret
 
-00000000802078fa <plic_claim>:
+00000000802078ba <plic_claim>:
 
 // ask the PLIC what interrupt we should serve.
 int
 plic_claim(void)
 {
-    802078fa:	1141                	addi	sp,sp,-16
-    802078fc:	e406                	sd	ra,8(sp)
-    802078fe:	e022                	sd	s0,0(sp)
-    80207900:	0800                	addi	s0,sp,16
+    802078ba:	1141                	addi	sp,sp,-16
+    802078bc:	e406                	sd	ra,8(sp)
+    802078be:	e022                	sd	s0,0(sp)
+    802078c0:	0800                	addi	s0,sp,16
   int hart = cpuid();
-    80207902:	ffffa097          	auipc	ra,0xffffa
-    80207906:	10e080e7          	jalr	270(ra) # 80201a10 <cpuid>
+    802078c2:	ffffa097          	auipc	ra,0xffffa
+    802078c6:	14e080e7          	jalr	334(ra) # 80201a10 <cpuid>
   int irq;
   #ifndef QEMU
   irq = *(uint32*)PLIC_MCLAIM(hart);
   #else
   irq = *(uint32*)PLIC_SCLAIM(hart);
-    8020790a:	00d5151b          	slliw	a0,a0,0xd
-    8020790e:	03f0c7b7          	lui	a5,0x3f0c
-    80207912:	20178793          	addi	a5,a5,513 # 3f0c201 <_entry-0x7c2f3dff>
-    80207916:	07b2                	slli	a5,a5,0xc
-    80207918:	97aa                	add	a5,a5,a0
+    802078ca:	00d5151b          	slliw	a0,a0,0xd
+    802078ce:	03f0c7b7          	lui	a5,0x3f0c
+    802078d2:	20178793          	addi	a5,a5,513 # 3f0c201 <_entry-0x7c2f3dff>
+    802078d6:	07b2                	slli	a5,a5,0xc
+    802078d8:	97aa                	add	a5,a5,a0
   #endif
   return irq;
 }
-    8020791a:	43c8                	lw	a0,4(a5)
-    8020791c:	60a2                	ld	ra,8(sp)
-    8020791e:	6402                	ld	s0,0(sp)
-    80207920:	0141                	addi	sp,sp,16
-    80207922:	8082                	ret
+    802078da:	43c8                	lw	a0,4(a5)
+    802078dc:	60a2                	ld	ra,8(sp)
+    802078de:	6402                	ld	s0,0(sp)
+    802078e0:	0141                	addi	sp,sp,16
+    802078e2:	8082                	ret
 
-0000000080207924 <plic_complete>:
+00000000802078e4 <plic_complete>:
 
 // tell the PLIC we've served this IRQ.
 void
 plic_complete(int irq)
 {
-    80207924:	1101                	addi	sp,sp,-32
-    80207926:	ec06                	sd	ra,24(sp)
-    80207928:	e822                	sd	s0,16(sp)
-    8020792a:	e426                	sd	s1,8(sp)
-    8020792c:	1000                	addi	s0,sp,32
-    8020792e:	84aa                	mv	s1,a0
+    802078e4:	1101                	addi	sp,sp,-32
+    802078e6:	ec06                	sd	ra,24(sp)
+    802078e8:	e822                	sd	s0,16(sp)
+    802078ea:	e426                	sd	s1,8(sp)
+    802078ec:	1000                	addi	s0,sp,32
+    802078ee:	84aa                	mv	s1,a0
   int hart = cpuid();
-    80207930:	ffffa097          	auipc	ra,0xffffa
-    80207934:	0e0080e7          	jalr	224(ra) # 80201a10 <cpuid>
+    802078f0:	ffffa097          	auipc	ra,0xffffa
+    802078f4:	120080e7          	jalr	288(ra) # 80201a10 <cpuid>
   #ifndef QEMU
   *(uint32*)PLIC_MCLAIM(hart) = irq;
   #else
   *(uint32*)PLIC_SCLAIM(hart) = irq;
-    80207938:	00d5151b          	slliw	a0,a0,0xd
-    8020793c:	03f0c7b7          	lui	a5,0x3f0c
-    80207940:	20178793          	addi	a5,a5,513 # 3f0c201 <_entry-0x7c2f3dff>
-    80207944:	07b2                	slli	a5,a5,0xc
-    80207946:	97aa                	add	a5,a5,a0
-    80207948:	c3c4                	sw	s1,4(a5)
+    802078f8:	00d5151b          	slliw	a0,a0,0xd
+    802078fc:	03f0c7b7          	lui	a5,0x3f0c
+    80207900:	20178793          	addi	a5,a5,513 # 3f0c201 <_entry-0x7c2f3dff>
+    80207904:	07b2                	slli	a5,a5,0xc
+    80207906:	97aa                	add	a5,a5,a0
+    80207908:	c3c4                	sw	s1,4(a5)
   #endif
 }
-    8020794a:	60e2                	ld	ra,24(sp)
-    8020794c:	6442                	ld	s0,16(sp)
-    8020794e:	64a2                	ld	s1,8(sp)
-    80207950:	6105                	addi	sp,sp,32
-    80207952:	8082                	ret
+    8020790a:	60e2                	ld	ra,24(sp)
+    8020790c:	6442                	ld	s0,16(sp)
+    8020790e:	64a2                	ld	s1,8(sp)
+    80207910:	6105                	addi	sp,sp,32
+    80207912:	8082                	ret
 
-0000000080207954 <consolewrite>:
+0000000080207914 <consolewrite>:
 //
 // user write()s to the console go here.
 //
 int
 consolewrite(int user_src, uint64 src, int n)
 {
-    80207954:	715d                	addi	sp,sp,-80
-    80207956:	e486                	sd	ra,72(sp)
-    80207958:	e0a2                	sd	s0,64(sp)
-    8020795a:	fc26                	sd	s1,56(sp)
-    8020795c:	f84a                	sd	s2,48(sp)
-    8020795e:	f44e                	sd	s3,40(sp)
-    80207960:	f052                	sd	s4,32(sp)
-    80207962:	ec56                	sd	s5,24(sp)
-    80207964:	e85a                	sd	s6,16(sp)
-    80207966:	0880                	addi	s0,sp,80
-    80207968:	8a2a                	mv	s4,a0
-    8020796a:	84ae                	mv	s1,a1
-    8020796c:	89b2                	mv	s3,a2
+    80207914:	715d                	addi	sp,sp,-80
+    80207916:	e486                	sd	ra,72(sp)
+    80207918:	e0a2                	sd	s0,64(sp)
+    8020791a:	fc26                	sd	s1,56(sp)
+    8020791c:	f84a                	sd	s2,48(sp)
+    8020791e:	f44e                	sd	s3,40(sp)
+    80207920:	f052                	sd	s4,32(sp)
+    80207922:	ec56                	sd	s5,24(sp)
+    80207924:	e85a                	sd	s6,16(sp)
+    80207926:	0880                	addi	s0,sp,80
+    80207928:	8a2a                	mv	s4,a0
+    8020792a:	84ae                	mv	s1,a1
+    8020792c:	89b2                	mv	s3,a2
   int i;
 
   acquire(&cons.lock);
-    8020796e:	00030517          	auipc	a0,0x30
-    80207972:	a1250513          	addi	a0,a0,-1518 # 80237380 <cons>
-    80207976:	ffff9097          	auipc	ra,0xffff9
-    8020797a:	d50080e7          	jalr	-688(ra) # 802006c6 <acquire>
+    8020792e:	00030517          	auipc	a0,0x30
+    80207932:	a5250513          	addi	a0,a0,-1454 # 80237380 <cons>
+    80207936:	ffff9097          	auipc	ra,0xffff9
+    8020793a:	d90080e7          	jalr	-624(ra) # 802006c6 <acquire>
   for(i = 0; i < n; i++){
-    8020797e:	07305063          	blez	s3,802079de <consolewrite+0x8a>
-    80207982:	4901                	li	s2,0
+    8020793e:	07305063          	blez	s3,8020799e <consolewrite+0x8a>
+    80207942:	4901                	li	s2,0
     char c;
     if(either_copyin(&c, user_src, src+i, 1) == -1)
-    80207984:	fbf40b13          	addi	s6,s0,-65
-    80207988:	5afd                	li	s5,-1
-    8020798a:	4685                	li	a3,1
-    8020798c:	8626                	mv	a2,s1
-    8020798e:	85d2                	mv	a1,s4
-    80207990:	855a                	mv	a0,s6
-    80207992:	ffffb097          	auipc	ra,0xffffb
-    80207996:	e7e080e7          	jalr	-386(ra) # 80202810 <either_copyin>
-    8020799a:	01550f63          	beq	a0,s5,802079b8 <consolewrite+0x64>
+    80207944:	fbf40b13          	addi	s6,s0,-65
+    80207948:	5afd                	li	s5,-1
+    8020794a:	4685                	li	a3,1
+    8020794c:	8626                	mv	a2,s1
+    8020794e:	85d2                	mv	a1,s4
+    80207950:	855a                	mv	a0,s6
+    80207952:	ffffb097          	auipc	ra,0xffffb
+    80207956:	eb8080e7          	jalr	-328(ra) # 8020280a <either_copyin>
+    8020795a:	01550f63          	beq	a0,s5,80207978 <consolewrite+0x64>
 	SBI_CALL_1(SBI_CONSOLE_PUTCHAR, ch);
-    8020799e:	fbf44503          	lbu	a0,-65(s0)
-    802079a2:	4581                	li	a1,0
-    802079a4:	4601                	li	a2,0
-    802079a6:	4681                	li	a3,0
-    802079a8:	4885                	li	a7,1
-    802079aa:	00000073          	ecall
+    8020795e:	fbf44503          	lbu	a0,-65(s0)
+    80207962:	4581                	li	a1,0
+    80207964:	4601                	li	a2,0
+    80207966:	4681                	li	a3,0
+    80207968:	4885                	li	a7,1
+    8020796a:	00000073          	ecall
   for(i = 0; i < n; i++){
-    802079ae:	2905                	addiw	s2,s2,1
-    802079b0:	0485                	addi	s1,s1,1
-    802079b2:	fd299ce3          	bne	s3,s2,8020798a <consolewrite+0x36>
-    802079b6:	894e                	mv	s2,s3
+    8020796e:	2905                	addiw	s2,s2,1
+    80207970:	0485                	addi	s1,s1,1
+    80207972:	fd299ce3          	bne	s3,s2,8020794a <consolewrite+0x36>
+    80207976:	894e                	mv	s2,s3
       break;
     sbi_console_putchar(c);
   }
   release(&cons.lock);
-    802079b8:	00030517          	auipc	a0,0x30
-    802079bc:	9c850513          	addi	a0,a0,-1592 # 80237380 <cons>
-    802079c0:	ffff9097          	auipc	ra,0xffff9
-    802079c4:	d5a080e7          	jalr	-678(ra) # 8020071a <release>
+    80207978:	00030517          	auipc	a0,0x30
+    8020797c:	a0850513          	addi	a0,a0,-1528 # 80237380 <cons>
+    80207980:	ffff9097          	auipc	ra,0xffff9
+    80207984:	d9a080e7          	jalr	-614(ra) # 8020071a <release>
 
   return i;
 }
-    802079c8:	854a                	mv	a0,s2
-    802079ca:	60a6                	ld	ra,72(sp)
-    802079cc:	6406                	ld	s0,64(sp)
-    802079ce:	74e2                	ld	s1,56(sp)
-    802079d0:	7942                	ld	s2,48(sp)
-    802079d2:	79a2                	ld	s3,40(sp)
-    802079d4:	7a02                	ld	s4,32(sp)
-    802079d6:	6ae2                	ld	s5,24(sp)
-    802079d8:	6b42                	ld	s6,16(sp)
-    802079da:	6161                	addi	sp,sp,80
-    802079dc:	8082                	ret
+    80207988:	854a                	mv	a0,s2
+    8020798a:	60a6                	ld	ra,72(sp)
+    8020798c:	6406                	ld	s0,64(sp)
+    8020798e:	74e2                	ld	s1,56(sp)
+    80207990:	7942                	ld	s2,48(sp)
+    80207992:	79a2                	ld	s3,40(sp)
+    80207994:	7a02                	ld	s4,32(sp)
+    80207996:	6ae2                	ld	s5,24(sp)
+    80207998:	6b42                	ld	s6,16(sp)
+    8020799a:	6161                	addi	sp,sp,80
+    8020799c:	8082                	ret
   for(i = 0; i < n; i++){
-    802079de:	4901                	li	s2,0
-    802079e0:	bfe1                	j	802079b8 <consolewrite+0x64>
+    8020799e:	4901                	li	s2,0
+    802079a0:	bfe1                	j	80207978 <consolewrite+0x64>
 
-00000000802079e2 <consoleread>:
+00000000802079a2 <consoleread>:
 // user_dist indicates whether dst is a user
 // or kernel address.
 //
 int
 consoleread(int user_dst, uint64 dst, int n)
 {
-    802079e2:	7119                	addi	sp,sp,-128
-    802079e4:	fc86                	sd	ra,120(sp)
-    802079e6:	f8a2                	sd	s0,112(sp)
-    802079e8:	f4a6                	sd	s1,104(sp)
-    802079ea:	f0ca                	sd	s2,96(sp)
-    802079ec:	ecce                	sd	s3,88(sp)
-    802079ee:	e8d2                	sd	s4,80(sp)
-    802079f0:	e4d6                	sd	s5,72(sp)
-    802079f2:	e0da                	sd	s6,64(sp)
-    802079f4:	fc5e                	sd	s7,56(sp)
-    802079f6:	f862                	sd	s8,48(sp)
-    802079f8:	f466                	sd	s9,40(sp)
-    802079fa:	f06a                	sd	s10,32(sp)
-    802079fc:	ec6e                	sd	s11,24(sp)
-    802079fe:	0100                	addi	s0,sp,128
-    80207a00:	8aaa                	mv	s5,a0
-    80207a02:	8a2e                	mv	s4,a1
-    80207a04:	89b2                	mv	s3,a2
+    802079a2:	7119                	addi	sp,sp,-128
+    802079a4:	fc86                	sd	ra,120(sp)
+    802079a6:	f8a2                	sd	s0,112(sp)
+    802079a8:	f4a6                	sd	s1,104(sp)
+    802079aa:	f0ca                	sd	s2,96(sp)
+    802079ac:	ecce                	sd	s3,88(sp)
+    802079ae:	e8d2                	sd	s4,80(sp)
+    802079b0:	e4d6                	sd	s5,72(sp)
+    802079b2:	e0da                	sd	s6,64(sp)
+    802079b4:	fc5e                	sd	s7,56(sp)
+    802079b6:	f862                	sd	s8,48(sp)
+    802079b8:	f466                	sd	s9,40(sp)
+    802079ba:	f06a                	sd	s10,32(sp)
+    802079bc:	ec6e                	sd	s11,24(sp)
+    802079be:	0100                	addi	s0,sp,128
+    802079c0:	8aaa                	mv	s5,a0
+    802079c2:	8a2e                	mv	s4,a1
+    802079c4:	89b2                	mv	s3,a2
   uint target;
   int c;
   char cbuf;
 
   target = n;
-    80207a06:	00060b1b          	sext.w	s6,a2
+    802079c6:	00060b1b          	sext.w	s6,a2
   acquire(&cons.lock);
-    80207a0a:	00030517          	auipc	a0,0x30
-    80207a0e:	97650513          	addi	a0,a0,-1674 # 80237380 <cons>
-    80207a12:	ffff9097          	auipc	ra,0xffff9
-    80207a16:	cb4080e7          	jalr	-844(ra) # 802006c6 <acquire>
+    802079ca:	00030517          	auipc	a0,0x30
+    802079ce:	9b650513          	addi	a0,a0,-1610 # 80237380 <cons>
+    802079d2:	ffff9097          	auipc	ra,0xffff9
+    802079d6:	cf4080e7          	jalr	-780(ra) # 802006c6 <acquire>
   while(n > 0){
     // wait until interrupt handler has put some
     // input into cons.buffer.
     while(cons.r == cons.w){
-    80207a1a:	00030497          	auipc	s1,0x30
-    80207a1e:	96648493          	addi	s1,s1,-1690 # 80237380 <cons>
+    802079da:	00030497          	auipc	s1,0x30
+    802079de:	9a648493          	addi	s1,s1,-1626 # 80237380 <cons>
       if(myproc()->killed){
         release(&cons.lock);
         return -1;
       }
       sleep(&cons.r, &cons.lock);
-    80207a22:	00030917          	auipc	s2,0x30
-    80207a26:	9f690913          	addi	s2,s2,-1546 # 80237418 <cons+0x98>
+    802079e2:	00030917          	auipc	s2,0x30
+    802079e6:	a3690913          	addi	s2,s2,-1482 # 80237418 <cons+0x98>
     }
 
     c = cons.buf[cons.r++ % INPUT_BUF];
 
     if(c == C('D')){  // end-of-file
-    80207a2a:	4c11                	li	s8,4
+    802079ea:	4c11                	li	s8,4
       break;
     }
 
     // copy the input byte to the user-space buffer.
     cbuf = c;
     if(either_copyout(user_dst, dst, &cbuf, 1) == -1)
-    80207a2c:	f8f40d13          	addi	s10,s0,-113
-    80207a30:	5cfd                	li	s9,-1
+    802079ec:	f8f40d13          	addi	s10,s0,-113
+    802079f0:	5cfd                	li	s9,-1
       break;
 
     dst++;
     --n;
 
     if(c == '\n'){
-    80207a32:	4da9                	li	s11,10
+    802079f2:	4da9                	li	s11,10
   while(n > 0){
-    80207a34:	07305763          	blez	s3,80207aa2 <consoleread+0xc0>
+    802079f4:	07305763          	blez	s3,80207a62 <consoleread+0xc0>
     while(cons.r == cons.w){
-    80207a38:	0984a783          	lw	a5,152(s1)
-    80207a3c:	09c4a703          	lw	a4,156(s1)
-    80207a40:	02f71463          	bne	a4,a5,80207a68 <consoleread+0x86>
+    802079f8:	0984a783          	lw	a5,152(s1)
+    802079fc:	09c4a703          	lw	a4,156(s1)
+    80207a00:	02f71463          	bne	a4,a5,80207a28 <consoleread+0x86>
       if(myproc()->killed){
-    80207a44:	ffffa097          	auipc	ra,0xffffa
-    80207a48:	ff8080e7          	jalr	-8(ra) # 80201a3c <myproc>
-    80207a4c:	591c                	lw	a5,48(a0)
-    80207a4e:	e7ad                	bnez	a5,80207ab8 <consoleread+0xd6>
+    80207a04:	ffffa097          	auipc	ra,0xffffa
+    80207a08:	038080e7          	jalr	56(ra) # 80201a3c <myproc>
+    80207a0c:	591c                	lw	a5,48(a0)
+    80207a0e:	e7ad                	bnez	a5,80207a78 <consoleread+0xd6>
       sleep(&cons.r, &cons.lock);
-    80207a50:	85a6                	mv	a1,s1
-    80207a52:	854a                	mv	a0,s2
-    80207a54:	ffffb097          	auipc	ra,0xffffb
-    80207a58:	9c4080e7          	jalr	-1596(ra) # 80202418 <sleep>
+    80207a10:	85a6                	mv	a1,s1
+    80207a12:	854a                	mv	a0,s2
+    80207a14:	ffffb097          	auipc	ra,0xffffb
+    80207a18:	9fe080e7          	jalr	-1538(ra) # 80202412 <sleep>
     while(cons.r == cons.w){
-    80207a5c:	0984a783          	lw	a5,152(s1)
-    80207a60:	09c4a703          	lw	a4,156(s1)
-    80207a64:	fef700e3          	beq	a4,a5,80207a44 <consoleread+0x62>
+    80207a1c:	0984a783          	lw	a5,152(s1)
+    80207a20:	09c4a703          	lw	a4,156(s1)
+    80207a24:	fef700e3          	beq	a4,a5,80207a04 <consoleread+0x62>
     c = cons.buf[cons.r++ % INPUT_BUF];
-    80207a68:	0017871b          	addiw	a4,a5,1
-    80207a6c:	08e4ac23          	sw	a4,152(s1)
-    80207a70:	07f7f713          	andi	a4,a5,127
-    80207a74:	9726                	add	a4,a4,s1
-    80207a76:	01874703          	lbu	a4,24(a4)
-    80207a7a:	00070b9b          	sext.w	s7,a4
+    80207a28:	0017871b          	addiw	a4,a5,1
+    80207a2c:	08e4ac23          	sw	a4,152(s1)
+    80207a30:	07f7f713          	andi	a4,a5,127
+    80207a34:	9726                	add	a4,a4,s1
+    80207a36:	01874703          	lbu	a4,24(a4)
+    80207a3a:	00070b9b          	sext.w	s7,a4
     if(c == C('D')){  // end-of-file
-    80207a7e:	078b8563          	beq	s7,s8,80207ae8 <consoleread+0x106>
+    80207a3e:	078b8563          	beq	s7,s8,80207aa8 <consoleread+0x106>
     cbuf = c;
-    80207a82:	f8e407a3          	sb	a4,-113(s0)
+    80207a42:	f8e407a3          	sb	a4,-113(s0)
     if(either_copyout(user_dst, dst, &cbuf, 1) == -1)
-    80207a86:	4685                	li	a3,1
-    80207a88:	866a                	mv	a2,s10
-    80207a8a:	85d2                	mv	a1,s4
-    80207a8c:	8556                	mv	a0,s5
-    80207a8e:	ffffb097          	auipc	ra,0xffffb
-    80207a92:	d4c080e7          	jalr	-692(ra) # 802027da <either_copyout>
-    80207a96:	01950663          	beq	a0,s9,80207aa2 <consoleread+0xc0>
+    80207a46:	4685                	li	a3,1
+    80207a48:	866a                	mv	a2,s10
+    80207a4a:	85d2                	mv	a1,s4
+    80207a4c:	8556                	mv	a0,s5
+    80207a4e:	ffffb097          	auipc	ra,0xffffb
+    80207a52:	d86080e7          	jalr	-634(ra) # 802027d4 <either_copyout>
+    80207a56:	01950663          	beq	a0,s9,80207a62 <consoleread+0xc0>
     dst++;
-    80207a9a:	0a05                	addi	s4,s4,1
+    80207a5a:	0a05                	addi	s4,s4,1
     --n;
-    80207a9c:	39fd                	addiw	s3,s3,-1
+    80207a5c:	39fd                	addiw	s3,s3,-1
     if(c == '\n'){
-    80207a9e:	f9bb9be3          	bne	s7,s11,80207a34 <consoleread+0x52>
+    80207a5e:	f9bb9be3          	bne	s7,s11,802079f4 <consoleread+0x52>
       // a whole line has arrived, return to
       // the user-level read().
       break;
     }
   }
   release(&cons.lock);
-    80207aa2:	00030517          	auipc	a0,0x30
-    80207aa6:	8de50513          	addi	a0,a0,-1826 # 80237380 <cons>
-    80207aaa:	ffff9097          	auipc	ra,0xffff9
-    80207aae:	c70080e7          	jalr	-912(ra) # 8020071a <release>
+    80207a62:	00030517          	auipc	a0,0x30
+    80207a66:	91e50513          	addi	a0,a0,-1762 # 80237380 <cons>
+    80207a6a:	ffff9097          	auipc	ra,0xffff9
+    80207a6e:	cb0080e7          	jalr	-848(ra) # 8020071a <release>
 
   return target - n;
-    80207ab2:	413b053b          	subw	a0,s6,s3
-    80207ab6:	a811                	j	80207aca <consoleread+0xe8>
+    80207a72:	413b053b          	subw	a0,s6,s3
+    80207a76:	a811                	j	80207a8a <consoleread+0xe8>
         release(&cons.lock);
-    80207ab8:	00030517          	auipc	a0,0x30
-    80207abc:	8c850513          	addi	a0,a0,-1848 # 80237380 <cons>
-    80207ac0:	ffff9097          	auipc	ra,0xffff9
-    80207ac4:	c5a080e7          	jalr	-934(ra) # 8020071a <release>
+    80207a78:	00030517          	auipc	a0,0x30
+    80207a7c:	90850513          	addi	a0,a0,-1784 # 80237380 <cons>
+    80207a80:	ffff9097          	auipc	ra,0xffff9
+    80207a84:	c9a080e7          	jalr	-870(ra) # 8020071a <release>
         return -1;
-    80207ac8:	557d                	li	a0,-1
+    80207a88:	557d                	li	a0,-1
 }
-    80207aca:	70e6                	ld	ra,120(sp)
-    80207acc:	7446                	ld	s0,112(sp)
-    80207ace:	74a6                	ld	s1,104(sp)
-    80207ad0:	7906                	ld	s2,96(sp)
-    80207ad2:	69e6                	ld	s3,88(sp)
-    80207ad4:	6a46                	ld	s4,80(sp)
-    80207ad6:	6aa6                	ld	s5,72(sp)
-    80207ad8:	6b06                	ld	s6,64(sp)
-    80207ada:	7be2                	ld	s7,56(sp)
-    80207adc:	7c42                	ld	s8,48(sp)
-    80207ade:	7ca2                	ld	s9,40(sp)
-    80207ae0:	7d02                	ld	s10,32(sp)
-    80207ae2:	6de2                	ld	s11,24(sp)
-    80207ae4:	6109                	addi	sp,sp,128
-    80207ae6:	8082                	ret
+    80207a8a:	70e6                	ld	ra,120(sp)
+    80207a8c:	7446                	ld	s0,112(sp)
+    80207a8e:	74a6                	ld	s1,104(sp)
+    80207a90:	7906                	ld	s2,96(sp)
+    80207a92:	69e6                	ld	s3,88(sp)
+    80207a94:	6a46                	ld	s4,80(sp)
+    80207a96:	6aa6                	ld	s5,72(sp)
+    80207a98:	6b06                	ld	s6,64(sp)
+    80207a9a:	7be2                	ld	s7,56(sp)
+    80207a9c:	7c42                	ld	s8,48(sp)
+    80207a9e:	7ca2                	ld	s9,40(sp)
+    80207aa0:	7d02                	ld	s10,32(sp)
+    80207aa2:	6de2                	ld	s11,24(sp)
+    80207aa4:	6109                	addi	sp,sp,128
+    80207aa6:	8082                	ret
       if(n < target){
-    80207ae8:	0009871b          	sext.w	a4,s3
-    80207aec:	fb677be3          	bgeu	a4,s6,80207aa2 <consoleread+0xc0>
+    80207aa8:	0009871b          	sext.w	a4,s3
+    80207aac:	fb677be3          	bgeu	a4,s6,80207a62 <consoleread+0xc0>
         cons.r--;
-    80207af0:	00030717          	auipc	a4,0x30
-    80207af4:	92f72423          	sw	a5,-1752(a4) # 80237418 <cons+0x98>
-    80207af8:	b76d                	j	80207aa2 <consoleread+0xc0>
+    80207ab0:	00030717          	auipc	a4,0x30
+    80207ab4:	96f72423          	sw	a5,-1688(a4) # 80237418 <cons+0x98>
+    80207ab8:	b76d                	j	80207a62 <consoleread+0xc0>
 
-0000000080207afa <consputc>:
+0000000080207aba <consputc>:
 void consputc(int c) {
-    80207afa:	1141                	addi	sp,sp,-16
-    80207afc:	e422                	sd	s0,8(sp)
-    80207afe:	0800                	addi	s0,sp,16
+    80207aba:	1141                	addi	sp,sp,-16
+    80207abc:	e422                	sd	s0,8(sp)
+    80207abe:	0800                	addi	s0,sp,16
   if(c == BACKSPACE){
-    80207b00:	10000793          	li	a5,256
-    80207b04:	00f50b63          	beq	a0,a5,80207b1a <consputc+0x20>
-    80207b08:	4581                	li	a1,0
-    80207b0a:	4601                	li	a2,0
-    80207b0c:	4681                	li	a3,0
-    80207b0e:	4885                	li	a7,1
-    80207b10:	00000073          	ecall
+    80207ac0:	10000793          	li	a5,256
+    80207ac4:	00f50b63          	beq	a0,a5,80207ada <consputc+0x20>
+    80207ac8:	4581                	li	a1,0
+    80207aca:	4601                	li	a2,0
+    80207acc:	4681                	li	a3,0
+    80207ace:	4885                	li	a7,1
+    80207ad0:	00000073          	ecall
 }
-    80207b14:	6422                	ld	s0,8(sp)
-    80207b16:	0141                	addi	sp,sp,16
-    80207b18:	8082                	ret
-    80207b1a:	4521                	li	a0,8
-    80207b1c:	4581                	li	a1,0
-    80207b1e:	4601                	li	a2,0
-    80207b20:	4681                	li	a3,0
-    80207b22:	4885                	li	a7,1
-    80207b24:	00000073          	ecall
-    80207b28:	02000513          	li	a0,32
-    80207b2c:	00000073          	ecall
-    80207b30:	4521                	li	a0,8
-    80207b32:	00000073          	ecall
+    80207ad4:	6422                	ld	s0,8(sp)
+    80207ad6:	0141                	addi	sp,sp,16
+    80207ad8:	8082                	ret
+    80207ada:	4521                	li	a0,8
+    80207adc:	4581                	li	a1,0
+    80207ade:	4601                	li	a2,0
+    80207ae0:	4681                	li	a3,0
+    80207ae2:	4885                	li	a7,1
+    80207ae4:	00000073          	ecall
+    80207ae8:	02000513          	li	a0,32
+    80207aec:	00000073          	ecall
+    80207af0:	4521                	li	a0,8
+    80207af2:	00000073          	ecall
 }
-    80207b36:	bff9                	j	80207b14 <consputc+0x1a>
+    80207af6:	bff9                	j	80207ad4 <consputc+0x1a>
 
-0000000080207b38 <consoleintr>:
+0000000080207af8 <consoleintr>:
 // do erase/kill processing, append to cons.buf,
 // wake up consoleread() if a whole line has arrived.
 //
 void
 consoleintr(int c)
 {
-    80207b38:	1101                	addi	sp,sp,-32
-    80207b3a:	ec06                	sd	ra,24(sp)
-    80207b3c:	e822                	sd	s0,16(sp)
-    80207b3e:	e426                	sd	s1,8(sp)
-    80207b40:	e04a                	sd	s2,0(sp)
-    80207b42:	1000                	addi	s0,sp,32
-    80207b44:	84aa                	mv	s1,a0
+    80207af8:	1101                	addi	sp,sp,-32
+    80207afa:	ec06                	sd	ra,24(sp)
+    80207afc:	e822                	sd	s0,16(sp)
+    80207afe:	e426                	sd	s1,8(sp)
+    80207b00:	e04a                	sd	s2,0(sp)
+    80207b02:	1000                	addi	s0,sp,32
+    80207b04:	84aa                	mv	s1,a0
   acquire(&cons.lock);
-    80207b46:	00030517          	auipc	a0,0x30
-    80207b4a:	83a50513          	addi	a0,a0,-1990 # 80237380 <cons>
-    80207b4e:	ffff9097          	auipc	ra,0xffff9
-    80207b52:	b78080e7          	jalr	-1160(ra) # 802006c6 <acquire>
+    80207b06:	00030517          	auipc	a0,0x30
+    80207b0a:	87a50513          	addi	a0,a0,-1926 # 80237380 <cons>
+    80207b0e:	ffff9097          	auipc	ra,0xffff9
+    80207b12:	bb8080e7          	jalr	-1096(ra) # 802006c6 <acquire>
 
   switch(c){
-    80207b56:	47d5                	li	a5,21
-    80207b58:	0af48663          	beq	s1,a5,80207c04 <consoleintr+0xcc>
-    80207b5c:	0297ca63          	blt	a5,s1,80207b90 <consoleintr+0x58>
-    80207b60:	47a1                	li	a5,8
-    80207b62:	0ef48763          	beq	s1,a5,80207c50 <consoleintr+0x118>
-    80207b66:	47c1                	li	a5,16
-    80207b68:	10f49a63          	bne	s1,a5,80207c7c <consoleintr+0x144>
+    80207b16:	47d5                	li	a5,21
+    80207b18:	0af48663          	beq	s1,a5,80207bc4 <consoleintr+0xcc>
+    80207b1c:	0297ca63          	blt	a5,s1,80207b50 <consoleintr+0x58>
+    80207b20:	47a1                	li	a5,8
+    80207b22:	0ef48763          	beq	s1,a5,80207c10 <consoleintr+0x118>
+    80207b26:	47c1                	li	a5,16
+    80207b28:	10f49a63          	bne	s1,a5,80207c3c <consoleintr+0x144>
   case C('P'):  // Print process list.
     procdump();
-    80207b6c:	ffffb097          	auipc	ra,0xffffb
-    80207b70:	cd8080e7          	jalr	-808(ra) # 80202844 <procdump>
+    80207b2c:	ffffb097          	auipc	ra,0xffffb
+    80207b30:	d12080e7          	jalr	-750(ra) # 8020283e <procdump>
       }
     }
     break;
   }
   
   release(&cons.lock);
-    80207b74:	00030517          	auipc	a0,0x30
-    80207b78:	80c50513          	addi	a0,a0,-2036 # 80237380 <cons>
-    80207b7c:	ffff9097          	auipc	ra,0xffff9
-    80207b80:	b9e080e7          	jalr	-1122(ra) # 8020071a <release>
+    80207b34:	00030517          	auipc	a0,0x30
+    80207b38:	84c50513          	addi	a0,a0,-1972 # 80237380 <cons>
+    80207b3c:	ffff9097          	auipc	ra,0xffff9
+    80207b40:	bde080e7          	jalr	-1058(ra) # 8020071a <release>
 }
-    80207b84:	60e2                	ld	ra,24(sp)
-    80207b86:	6442                	ld	s0,16(sp)
-    80207b88:	64a2                	ld	s1,8(sp)
-    80207b8a:	6902                	ld	s2,0(sp)
-    80207b8c:	6105                	addi	sp,sp,32
-    80207b8e:	8082                	ret
+    80207b44:	60e2                	ld	ra,24(sp)
+    80207b46:	6442                	ld	s0,16(sp)
+    80207b48:	64a2                	ld	s1,8(sp)
+    80207b4a:	6902                	ld	s2,0(sp)
+    80207b4c:	6105                	addi	sp,sp,32
+    80207b4e:	8082                	ret
   switch(c){
-    80207b90:	07f00793          	li	a5,127
-    80207b94:	0af48e63          	beq	s1,a5,80207c50 <consoleintr+0x118>
+    80207b50:	07f00793          	li	a5,127
+    80207b54:	0af48e63          	beq	s1,a5,80207c10 <consoleintr+0x118>
     if(c != 0 && cons.e-cons.r < INPUT_BUF){
-    80207b98:	0002f717          	auipc	a4,0x2f
-    80207b9c:	7e870713          	addi	a4,a4,2024 # 80237380 <cons>
-    80207ba0:	0a072783          	lw	a5,160(a4)
-    80207ba4:	09872703          	lw	a4,152(a4)
-    80207ba8:	9f99                	subw	a5,a5,a4
-    80207baa:	07f00713          	li	a4,127
-    80207bae:	fcf763e3          	bltu	a4,a5,80207b74 <consoleintr+0x3c>
+    80207b58:	00030717          	auipc	a4,0x30
+    80207b5c:	82870713          	addi	a4,a4,-2008 # 80237380 <cons>
+    80207b60:	0a072783          	lw	a5,160(a4)
+    80207b64:	09872703          	lw	a4,152(a4)
+    80207b68:	9f99                	subw	a5,a5,a4
+    80207b6a:	07f00713          	li	a4,127
+    80207b6e:	fcf763e3          	bltu	a4,a5,80207b34 <consoleintr+0x3c>
       c = (c == '\r') ? '\n' : c;
-    80207bb2:	47b5                	li	a5,13
-    80207bb4:	0cf48763          	beq	s1,a5,80207c82 <consoleintr+0x14a>
+    80207b72:	47b5                	li	a5,13
+    80207b74:	0cf48763          	beq	s1,a5,80207c42 <consoleintr+0x14a>
       consputc(c);
-    80207bb8:	8526                	mv	a0,s1
-    80207bba:	00000097          	auipc	ra,0x0
-    80207bbe:	f40080e7          	jalr	-192(ra) # 80207afa <consputc>
+    80207b78:	8526                	mv	a0,s1
+    80207b7a:	00000097          	auipc	ra,0x0
+    80207b7e:	f40080e7          	jalr	-192(ra) # 80207aba <consputc>
       cons.buf[cons.e++ % INPUT_BUF] = c;
-    80207bc2:	0002f797          	auipc	a5,0x2f
-    80207bc6:	7be78793          	addi	a5,a5,1982 # 80237380 <cons>
-    80207bca:	0a07a703          	lw	a4,160(a5)
-    80207bce:	0017069b          	addiw	a3,a4,1
-    80207bd2:	0006861b          	sext.w	a2,a3
-    80207bd6:	0ad7a023          	sw	a3,160(a5)
-    80207bda:	07f77713          	andi	a4,a4,127
-    80207bde:	97ba                	add	a5,a5,a4
-    80207be0:	00978c23          	sb	s1,24(a5)
+    80207b82:	0002f797          	auipc	a5,0x2f
+    80207b86:	7fe78793          	addi	a5,a5,2046 # 80237380 <cons>
+    80207b8a:	0a07a703          	lw	a4,160(a5)
+    80207b8e:	0017069b          	addiw	a3,a4,1
+    80207b92:	0006861b          	sext.w	a2,a3
+    80207b96:	0ad7a023          	sw	a3,160(a5)
+    80207b9a:	07f77713          	andi	a4,a4,127
+    80207b9e:	97ba                	add	a5,a5,a4
+    80207ba0:	00978c23          	sb	s1,24(a5)
       if(c == '\n' || c == C('D') || cons.e == cons.r+INPUT_BUF){
-    80207be4:	47a9                	li	a5,10
-    80207be6:	0cf48563          	beq	s1,a5,80207cb0 <consoleintr+0x178>
-    80207bea:	4791                	li	a5,4
-    80207bec:	0cf48263          	beq	s1,a5,80207cb0 <consoleintr+0x178>
-    80207bf0:	00030797          	auipc	a5,0x30
-    80207bf4:	8287a783          	lw	a5,-2008(a5) # 80237418 <cons+0x98>
-    80207bf8:	0807879b          	addiw	a5,a5,128
-    80207bfc:	f6f61ce3          	bne	a2,a5,80207b74 <consoleintr+0x3c>
+    80207ba4:	47a9                	li	a5,10
+    80207ba6:	0cf48563          	beq	s1,a5,80207c70 <consoleintr+0x178>
+    80207baa:	4791                	li	a5,4
+    80207bac:	0cf48263          	beq	s1,a5,80207c70 <consoleintr+0x178>
+    80207bb0:	00030797          	auipc	a5,0x30
+    80207bb4:	8687a783          	lw	a5,-1944(a5) # 80237418 <cons+0x98>
+    80207bb8:	0807879b          	addiw	a5,a5,128
+    80207bbc:	f6f61ce3          	bne	a2,a5,80207b34 <consoleintr+0x3c>
       cons.buf[cons.e++ % INPUT_BUF] = c;
-    80207c00:	863e                	mv	a2,a5
-    80207c02:	a07d                	j	80207cb0 <consoleintr+0x178>
+    80207bc0:	863e                	mv	a2,a5
+    80207bc2:	a07d                	j	80207c70 <consoleintr+0x178>
     while(cons.e != cons.w &&
-    80207c04:	0002f717          	auipc	a4,0x2f
-    80207c08:	77c70713          	addi	a4,a4,1916 # 80237380 <cons>
-    80207c0c:	0a072783          	lw	a5,160(a4)
-    80207c10:	09c72703          	lw	a4,156(a4)
+    80207bc4:	0002f717          	auipc	a4,0x2f
+    80207bc8:	7bc70713          	addi	a4,a4,1980 # 80237380 <cons>
+    80207bcc:	0a072783          	lw	a5,160(a4)
+    80207bd0:	09c72703          	lw	a4,156(a4)
           cons.buf[(cons.e-1) % INPUT_BUF] != '\n'){
-    80207c14:	0002f497          	auipc	s1,0x2f
-    80207c18:	76c48493          	addi	s1,s1,1900 # 80237380 <cons>
+    80207bd4:	0002f497          	auipc	s1,0x2f
+    80207bd8:	7ac48493          	addi	s1,s1,1964 # 80237380 <cons>
     while(cons.e != cons.w &&
-    80207c1c:	4929                	li	s2,10
-    80207c1e:	f4f70be3          	beq	a4,a5,80207b74 <consoleintr+0x3c>
+    80207bdc:	4929                	li	s2,10
+    80207bde:	f4f70be3          	beq	a4,a5,80207b34 <consoleintr+0x3c>
           cons.buf[(cons.e-1) % INPUT_BUF] != '\n'){
-    80207c22:	37fd                	addiw	a5,a5,-1
-    80207c24:	07f7f713          	andi	a4,a5,127
-    80207c28:	9726                	add	a4,a4,s1
+    80207be2:	37fd                	addiw	a5,a5,-1
+    80207be4:	07f7f713          	andi	a4,a5,127
+    80207be8:	9726                	add	a4,a4,s1
     while(cons.e != cons.w &&
-    80207c2a:	01874703          	lbu	a4,24(a4)
-    80207c2e:	f52703e3          	beq	a4,s2,80207b74 <consoleintr+0x3c>
+    80207bea:	01874703          	lbu	a4,24(a4)
+    80207bee:	f52703e3          	beq	a4,s2,80207b34 <consoleintr+0x3c>
       cons.e--;
-    80207c32:	0af4a023          	sw	a5,160(s1)
+    80207bf2:	0af4a023          	sw	a5,160(s1)
       consputc(BACKSPACE);
-    80207c36:	10000513          	li	a0,256
-    80207c3a:	00000097          	auipc	ra,0x0
-    80207c3e:	ec0080e7          	jalr	-320(ra) # 80207afa <consputc>
+    80207bf6:	10000513          	li	a0,256
+    80207bfa:	00000097          	auipc	ra,0x0
+    80207bfe:	ec0080e7          	jalr	-320(ra) # 80207aba <consputc>
     while(cons.e != cons.w &&
-    80207c42:	0a04a783          	lw	a5,160(s1)
-    80207c46:	09c4a703          	lw	a4,156(s1)
-    80207c4a:	fcf71ce3          	bne	a4,a5,80207c22 <consoleintr+0xea>
-    80207c4e:	b71d                	j	80207b74 <consoleintr+0x3c>
+    80207c02:	0a04a783          	lw	a5,160(s1)
+    80207c06:	09c4a703          	lw	a4,156(s1)
+    80207c0a:	fcf71ce3          	bne	a4,a5,80207be2 <consoleintr+0xea>
+    80207c0e:	b71d                	j	80207b34 <consoleintr+0x3c>
     if(cons.e != cons.w){
-    80207c50:	0002f717          	auipc	a4,0x2f
-    80207c54:	73070713          	addi	a4,a4,1840 # 80237380 <cons>
-    80207c58:	0a072783          	lw	a5,160(a4)
-    80207c5c:	09c72703          	lw	a4,156(a4)
-    80207c60:	f0f70ae3          	beq	a4,a5,80207b74 <consoleintr+0x3c>
+    80207c10:	0002f717          	auipc	a4,0x2f
+    80207c14:	77070713          	addi	a4,a4,1904 # 80237380 <cons>
+    80207c18:	0a072783          	lw	a5,160(a4)
+    80207c1c:	09c72703          	lw	a4,156(a4)
+    80207c20:	f0f70ae3          	beq	a4,a5,80207b34 <consoleintr+0x3c>
       cons.e--;
-    80207c64:	37fd                	addiw	a5,a5,-1
-    80207c66:	0002f717          	auipc	a4,0x2f
-    80207c6a:	7af72d23          	sw	a5,1978(a4) # 80237420 <cons+0xa0>
+    80207c24:	37fd                	addiw	a5,a5,-1
+    80207c26:	0002f717          	auipc	a4,0x2f
+    80207c2a:	7ef72d23          	sw	a5,2042(a4) # 80237420 <cons+0xa0>
       consputc(BACKSPACE);
-    80207c6e:	10000513          	li	a0,256
-    80207c72:	00000097          	auipc	ra,0x0
-    80207c76:	e88080e7          	jalr	-376(ra) # 80207afa <consputc>
-    80207c7a:	bded                	j	80207b74 <consoleintr+0x3c>
+    80207c2e:	10000513          	li	a0,256
+    80207c32:	00000097          	auipc	ra,0x0
+    80207c36:	e88080e7          	jalr	-376(ra) # 80207aba <consputc>
+    80207c3a:	bded                	j	80207b34 <consoleintr+0x3c>
     if(c != 0 && cons.e-cons.r < INPUT_BUF){
-    80207c7c:	ee048ce3          	beqz	s1,80207b74 <consoleintr+0x3c>
-    80207c80:	bf21                	j	80207b98 <consoleintr+0x60>
+    80207c3c:	ee048ce3          	beqz	s1,80207b34 <consoleintr+0x3c>
+    80207c40:	bf21                	j	80207b58 <consoleintr+0x60>
       consputc(c);
-    80207c82:	4529                	li	a0,10
-    80207c84:	00000097          	auipc	ra,0x0
-    80207c88:	e76080e7          	jalr	-394(ra) # 80207afa <consputc>
+    80207c42:	4529                	li	a0,10
+    80207c44:	00000097          	auipc	ra,0x0
+    80207c48:	e76080e7          	jalr	-394(ra) # 80207aba <consputc>
       cons.buf[cons.e++ % INPUT_BUF] = c;
-    80207c8c:	0002f797          	auipc	a5,0x2f
-    80207c90:	6f478793          	addi	a5,a5,1780 # 80237380 <cons>
-    80207c94:	0a07a703          	lw	a4,160(a5)
-    80207c98:	0017069b          	addiw	a3,a4,1
-    80207c9c:	0006861b          	sext.w	a2,a3
-    80207ca0:	0ad7a023          	sw	a3,160(a5)
-    80207ca4:	07f77713          	andi	a4,a4,127
-    80207ca8:	97ba                	add	a5,a5,a4
-    80207caa:	4729                	li	a4,10
-    80207cac:	00e78c23          	sb	a4,24(a5)
+    80207c4c:	0002f797          	auipc	a5,0x2f
+    80207c50:	73478793          	addi	a5,a5,1844 # 80237380 <cons>
+    80207c54:	0a07a703          	lw	a4,160(a5)
+    80207c58:	0017069b          	addiw	a3,a4,1
+    80207c5c:	0006861b          	sext.w	a2,a3
+    80207c60:	0ad7a023          	sw	a3,160(a5)
+    80207c64:	07f77713          	andi	a4,a4,127
+    80207c68:	97ba                	add	a5,a5,a4
+    80207c6a:	4729                	li	a4,10
+    80207c6c:	00e78c23          	sb	a4,24(a5)
         cons.w = cons.e;
-    80207cb0:	0002f797          	auipc	a5,0x2f
-    80207cb4:	76c7a623          	sw	a2,1900(a5) # 8023741c <cons+0x9c>
+    80207c70:	0002f797          	auipc	a5,0x2f
+    80207c74:	7ac7a623          	sw	a2,1964(a5) # 8023741c <cons+0x9c>
         wakeup(&cons.r);
-    80207cb8:	0002f517          	auipc	a0,0x2f
-    80207cbc:	76050513          	addi	a0,a0,1888 # 80237418 <cons+0x98>
-    80207cc0:	ffffb097          	auipc	ra,0xffffb
-    80207cc4:	a40080e7          	jalr	-1472(ra) # 80202700 <wakeup>
-    80207cc8:	b575                	j	80207b74 <consoleintr+0x3c>
+    80207c78:	0002f517          	auipc	a0,0x2f
+    80207c7c:	7a050513          	addi	a0,a0,1952 # 80237418 <cons+0x98>
+    80207c80:	ffffb097          	auipc	ra,0xffffb
+    80207c84:	a7a080e7          	jalr	-1414(ra) # 802026fa <wakeup>
+    80207c88:	b575                	j	80207b34 <consoleintr+0x3c>
 
-0000000080207cca <consoleinit>:
+0000000080207c8a <consoleinit>:
 
 void
 consoleinit(void)
 {
-    80207cca:	1101                	addi	sp,sp,-32
-    80207ccc:	ec06                	sd	ra,24(sp)
-    80207cce:	e822                	sd	s0,16(sp)
-    80207cd0:	e426                	sd	s1,8(sp)
-    80207cd2:	1000                	addi	s0,sp,32
+    80207c8a:	1101                	addi	sp,sp,-32
+    80207c8c:	ec06                	sd	ra,24(sp)
+    80207c8e:	e822                	sd	s0,16(sp)
+    80207c90:	e426                	sd	s1,8(sp)
+    80207c92:	1000                	addi	s0,sp,32
   initlock(&cons.lock, "cons");
-    80207cd4:	0002f497          	auipc	s1,0x2f
-    80207cd8:	6ac48493          	addi	s1,s1,1708 # 80237380 <cons>
-    80207cdc:	00003597          	auipc	a1,0x3
-    80207ce0:	1e458593          	addi	a1,a1,484 # 8020aec0 <digits+0xb40>
-    80207ce4:	8526                	mv	a0,s1
-    80207ce6:	ffff9097          	auipc	ra,0xffff9
-    80207cea:	99c080e7          	jalr	-1636(ra) # 80200682 <initlock>
+    80207c94:	0002f497          	auipc	s1,0x2f
+    80207c98:	6ec48493          	addi	s1,s1,1772 # 80237380 <cons>
+    80207c9c:	00003597          	auipc	a1,0x3
+    80207ca0:	21c58593          	addi	a1,a1,540 # 8020aeb8 <digits+0xb38>
+    80207ca4:	8526                	mv	a0,s1
+    80207ca6:	ffff9097          	auipc	ra,0xffff9
+    80207caa:	9dc080e7          	jalr	-1572(ra) # 80200682 <initlock>
 
   cons.e = cons.w = cons.r = 0;
-    80207cee:	0804ac23          	sw	zero,152(s1)
-    80207cf2:	0804ae23          	sw	zero,156(s1)
-    80207cf6:	0a04a023          	sw	zero,160(s1)
+    80207cae:	0804ac23          	sw	zero,152(s1)
+    80207cb2:	0804ae23          	sw	zero,156(s1)
+    80207cb6:	0a04a023          	sw	zero,160(s1)
   
   // connect read and write system calls
   // to consoleread and consolewrite.
   devsw[CONSOLE].read = consoleread;
-    80207cfa:	00005797          	auipc	a5,0x5
-    80207cfe:	3767b783          	ld	a5,886(a5) # 8020d070 <_GLOBAL_OFFSET_TABLE_+0x58>
-    80207d02:	00000717          	auipc	a4,0x0
-    80207d06:	ce070713          	addi	a4,a4,-800 # 802079e2 <consoleread>
-    80207d0a:	eb98                	sd	a4,16(a5)
+    80207cba:	00005797          	auipc	a5,0x5
+    80207cbe:	3b67b783          	ld	a5,950(a5) # 8020d070 <_GLOBAL_OFFSET_TABLE_+0x58>
+    80207cc2:	00000717          	auipc	a4,0x0
+    80207cc6:	ce070713          	addi	a4,a4,-800 # 802079a2 <consoleread>
+    80207cca:	eb98                	sd	a4,16(a5)
   devsw[CONSOLE].write = consolewrite;
-    80207d0c:	00000717          	auipc	a4,0x0
-    80207d10:	c4870713          	addi	a4,a4,-952 # 80207954 <consolewrite>
-    80207d14:	ef98                	sd	a4,24(a5)
+    80207ccc:	00000717          	auipc	a4,0x0
+    80207cd0:	c4870713          	addi	a4,a4,-952 # 80207914 <consolewrite>
+    80207cd4:	ef98                	sd	a4,24(a5)
 }
-    80207d16:	60e2                	ld	ra,24(sp)
-    80207d18:	6442                	ld	s0,16(sp)
-    80207d1a:	64a2                	ld	s1,8(sp)
-    80207d1c:	6105                	addi	sp,sp,32
-    80207d1e:	8082                	ret
+    80207cd6:	60e2                	ld	ra,24(sp)
+    80207cd8:	6442                	ld	s0,16(sp)
+    80207cda:	64a2                	ld	s1,8(sp)
+    80207cdc:	6105                	addi	sp,sp,32
+    80207cde:	8082                	ret
 
-0000000080207d20 <sys_shutdown>:
+0000000080207ce0 <sys_shutdown>:
 #include "include/types.h"
 #include "include/sbi.h"
 
 uint64 sys_shutdown() {
-    80207d20:	1141                	addi	sp,sp,-16
-    80207d22:	e422                	sd	s0,8(sp)
-    80207d24:	0800                	addi	s0,sp,16
+    80207ce0:	1141                	addi	sp,sp,-16
+    80207ce2:	e422                	sd	s0,8(sp)
+    80207ce4:	0800                	addi	s0,sp,16
 	SBI_CALL_0(SBI_SHUTDOWN);
-    80207d26:	4501                	li	a0,0
-    80207d28:	4581                	li	a1,0
-    80207d2a:	4601                	li	a2,0
-    80207d2c:	4681                	li	a3,0
-    80207d2e:	48a1                	li	a7,8
-    80207d30:	00000073          	ecall
+    80207ce6:	4501                	li	a0,0
+    80207ce8:	4581                	li	a1,0
+    80207cea:	4601                	li	a2,0
+    80207cec:	4681                	li	a3,0
+    80207cee:	48a1                	li	a7,8
+    80207cf0:	00000073          	ecall
     sbi_shutdown();
     return 0;
-    80207d34:	4501                	li	a0,0
-    80207d36:	6422                	ld	s0,8(sp)
-    80207d38:	0141                	addi	sp,sp,16
-    80207d3a:	8082                	ret
+    80207cf4:	4501                	li	a0,0
+    80207cf6:	6422                	ld	s0,8(sp)
+    80207cf8:	0141                	addi	sp,sp,16
+    80207cfa:	8082                	ret
 
-0000000080207d3c <free_desc>:
+0000000080207cfc <free_desc>:
 }
 
 // mark a descriptor as free.
 static void
 free_desc(int i)
 {
-    80207d3c:	1141                	addi	sp,sp,-16
-    80207d3e:	e406                	sd	ra,8(sp)
-    80207d40:	e022                	sd	s0,0(sp)
-    80207d42:	0800                	addi	s0,sp,16
+    80207cfc:	1141                	addi	sp,sp,-16
+    80207cfe:	e406                	sd	ra,8(sp)
+    80207d00:	e022                	sd	s0,0(sp)
+    80207d02:	0800                	addi	s0,sp,16
   if(i >= NUM)
-    80207d44:	479d                	li	a5,7
-    80207d46:	04a7cb63          	blt	a5,a0,80207d9c <free_desc+0x60>
+    80207d04:	479d                	li	a5,7
+    80207d06:	04a7cb63          	blt	a5,a0,80207d5c <free_desc+0x60>
     panic("virtio_disk_intr 1");
   if(disk.free[i])
-    80207d4a:	00030717          	auipc	a4,0x30
-    80207d4e:	2b670713          	addi	a4,a4,694 # 80238000 <disk>
-    80207d52:	972a                	add	a4,a4,a0
-    80207d54:	6789                	lui	a5,0x2
-    80207d56:	97ba                	add	a5,a5,a4
-    80207d58:	0187c783          	lbu	a5,24(a5) # 2018 <_entry-0x801fdfe8>
-    80207d5c:	eba1                	bnez	a5,80207dac <free_desc+0x70>
+    80207d0a:	00030717          	auipc	a4,0x30
+    80207d0e:	2f670713          	addi	a4,a4,758 # 80238000 <disk>
+    80207d12:	972a                	add	a4,a4,a0
+    80207d14:	6789                	lui	a5,0x2
+    80207d16:	97ba                	add	a5,a5,a4
+    80207d18:	0187c783          	lbu	a5,24(a5) # 2018 <_entry-0x801fdfe8>
+    80207d1c:	eba1                	bnez	a5,80207d6c <free_desc+0x70>
     panic("virtio_disk_intr 2");
   disk.desc[i].addr = 0;
-    80207d5e:	00451713          	slli	a4,a0,0x4
-    80207d62:	00032797          	auipc	a5,0x32
-    80207d66:	29e7b783          	ld	a5,670(a5) # 8023a000 <disk+0x2000>
-    80207d6a:	97ba                	add	a5,a5,a4
-    80207d6c:	0007b023          	sd	zero,0(a5)
+    80207d1e:	00451713          	slli	a4,a0,0x4
+    80207d22:	00032797          	auipc	a5,0x32
+    80207d26:	2de7b783          	ld	a5,734(a5) # 8023a000 <disk+0x2000>
+    80207d2a:	97ba                	add	a5,a5,a4
+    80207d2c:	0007b023          	sd	zero,0(a5)
   disk.free[i] = 1;
-    80207d70:	00030717          	auipc	a4,0x30
-    80207d74:	29070713          	addi	a4,a4,656 # 80238000 <disk>
-    80207d78:	972a                	add	a4,a4,a0
-    80207d7a:	6789                	lui	a5,0x2
-    80207d7c:	97ba                	add	a5,a5,a4
-    80207d7e:	4705                	li	a4,1
-    80207d80:	00e78c23          	sb	a4,24(a5) # 2018 <_entry-0x801fdfe8>
+    80207d30:	00030717          	auipc	a4,0x30
+    80207d34:	2d070713          	addi	a4,a4,720 # 80238000 <disk>
+    80207d38:	972a                	add	a4,a4,a0
+    80207d3a:	6789                	lui	a5,0x2
+    80207d3c:	97ba                	add	a5,a5,a4
+    80207d3e:	4705                	li	a4,1
+    80207d40:	00e78c23          	sb	a4,24(a5) # 2018 <_entry-0x801fdfe8>
   wakeup(&disk.free[0]);
-    80207d84:	00032517          	auipc	a0,0x32
-    80207d88:	29450513          	addi	a0,a0,660 # 8023a018 <disk+0x2018>
-    80207d8c:	ffffb097          	auipc	ra,0xffffb
-    80207d90:	974080e7          	jalr	-1676(ra) # 80202700 <wakeup>
+    80207d44:	00032517          	auipc	a0,0x32
+    80207d48:	2d450513          	addi	a0,a0,724 # 8023a018 <disk+0x2018>
+    80207d4c:	ffffb097          	auipc	ra,0xffffb
+    80207d50:	9ae080e7          	jalr	-1618(ra) # 802026fa <wakeup>
 }
-    80207d94:	60a2                	ld	ra,8(sp)
-    80207d96:	6402                	ld	s0,0(sp)
-    80207d98:	0141                	addi	sp,sp,16
-    80207d9a:	8082                	ret
+    80207d54:	60a2                	ld	ra,8(sp)
+    80207d56:	6402                	ld	s0,0(sp)
+    80207d58:	0141                	addi	sp,sp,16
+    80207d5a:	8082                	ret
     panic("virtio_disk_intr 1");
-    80207d9c:	00003517          	auipc	a0,0x3
-    80207da0:	12c50513          	addi	a0,a0,300 # 8020aec8 <digits+0xb48>
-    80207da4:	ffff8097          	auipc	ra,0xffff8
-    80207da8:	3a0080e7          	jalr	928(ra) # 80200144 <panic>
+    80207d5c:	00003517          	auipc	a0,0x3
+    80207d60:	16450513          	addi	a0,a0,356 # 8020aec0 <digits+0xb40>
+    80207d64:	ffff8097          	auipc	ra,0xffff8
+    80207d68:	3e0080e7          	jalr	992(ra) # 80200144 <panic>
     panic("virtio_disk_intr 2");
-    80207dac:	00003517          	auipc	a0,0x3
-    80207db0:	13450513          	addi	a0,a0,308 # 8020aee0 <digits+0xb60>
-    80207db4:	ffff8097          	auipc	ra,0xffff8
-    80207db8:	390080e7          	jalr	912(ra) # 80200144 <panic>
+    80207d6c:	00003517          	auipc	a0,0x3
+    80207d70:	16c50513          	addi	a0,a0,364 # 8020aed8 <digits+0xb58>
+    80207d74:	ffff8097          	auipc	ra,0xffff8
+    80207d78:	3d0080e7          	jalr	976(ra) # 80200144 <panic>
 
-0000000080207dbc <virtio_disk_init>:
+0000000080207d7c <virtio_disk_init>:
 {
-    80207dbc:	1141                	addi	sp,sp,-16
-    80207dbe:	e406                	sd	ra,8(sp)
-    80207dc0:	e022                	sd	s0,0(sp)
-    80207dc2:	0800                	addi	s0,sp,16
+    80207d7c:	1141                	addi	sp,sp,-16
+    80207d7e:	e406                	sd	ra,8(sp)
+    80207d80:	e022                	sd	s0,0(sp)
+    80207d82:	0800                	addi	s0,sp,16
   initlock(&disk.vdisk_lock, "virtio_disk");
-    80207dc4:	00003597          	auipc	a1,0x3
-    80207dc8:	13458593          	addi	a1,a1,308 # 8020aef8 <digits+0xb78>
-    80207dcc:	00032517          	auipc	a0,0x32
-    80207dd0:	2dc50513          	addi	a0,a0,732 # 8023a0a8 <disk+0x20a8>
-    80207dd4:	ffff9097          	auipc	ra,0xffff9
-    80207dd8:	8ae080e7          	jalr	-1874(ra) # 80200682 <initlock>
+    80207d84:	00003597          	auipc	a1,0x3
+    80207d88:	16c58593          	addi	a1,a1,364 # 8020aef0 <digits+0xb70>
+    80207d8c:	00032517          	auipc	a0,0x32
+    80207d90:	31c50513          	addi	a0,a0,796 # 8023a0a8 <disk+0x20a8>
+    80207d94:	ffff9097          	auipc	ra,0xffff9
+    80207d98:	8ee080e7          	jalr	-1810(ra) # 80200682 <initlock>
   if(*R(VIRTIO_MMIO_MAGIC_VALUE) != 0x74726976 ||
-    80207ddc:	03f107b7          	lui	a5,0x3f10
-    80207de0:	0785                	addi	a5,a5,1 # 3f10001 <_entry-0x7c2effff>
-    80207de2:	07b2                	slli	a5,a5,0xc
-    80207de4:	4398                	lw	a4,0(a5)
-    80207de6:	2701                	sext.w	a4,a4
-    80207de8:	747277b7          	lui	a5,0x74727
-    80207dec:	97678793          	addi	a5,a5,-1674 # 74726976 <_entry-0xbad968a>
-    80207df0:	12f71163          	bne	a4,a5,80207f12 <virtio_disk_init+0x156>
+    80207d9c:	03f107b7          	lui	a5,0x3f10
+    80207da0:	0785                	addi	a5,a5,1 # 3f10001 <_entry-0x7c2effff>
+    80207da2:	07b2                	slli	a5,a5,0xc
+    80207da4:	4398                	lw	a4,0(a5)
+    80207da6:	2701                	sext.w	a4,a4
+    80207da8:	747277b7          	lui	a5,0x74727
+    80207dac:	97678793          	addi	a5,a5,-1674 # 74726976 <_entry-0xbad968a>
+    80207db0:	12f71163          	bne	a4,a5,80207ed2 <virtio_disk_init+0x156>
      *R(VIRTIO_MMIO_VERSION) != 1 ||
-    80207df4:	00003797          	auipc	a5,0x3
-    80207df8:	18c7b783          	ld	a5,396(a5) # 8020af80 <digits+0xc00>
-    80207dfc:	439c                	lw	a5,0(a5)
-    80207dfe:	2781                	sext.w	a5,a5
+    80207db4:	00003797          	auipc	a5,0x3
+    80207db8:	1c47b783          	ld	a5,452(a5) # 8020af78 <digits+0xbf8>
+    80207dbc:	439c                	lw	a5,0(a5)
+    80207dbe:	2781                	sext.w	a5,a5
   if(*R(VIRTIO_MMIO_MAGIC_VALUE) != 0x74726976 ||
-    80207e00:	4705                	li	a4,1
-    80207e02:	10e79863          	bne	a5,a4,80207f12 <virtio_disk_init+0x156>
+    80207dc0:	4705                	li	a4,1
+    80207dc2:	10e79863          	bne	a5,a4,80207ed2 <virtio_disk_init+0x156>
      *R(VIRTIO_MMIO_DEVICE_ID) != 2 ||
-    80207e06:	00003797          	auipc	a5,0x3
-    80207e0a:	1827b783          	ld	a5,386(a5) # 8020af88 <digits+0xc08>
-    80207e0e:	439c                	lw	a5,0(a5)
-    80207e10:	2781                	sext.w	a5,a5
+    80207dc6:	00003797          	auipc	a5,0x3
+    80207dca:	1ba7b783          	ld	a5,442(a5) # 8020af80 <digits+0xc00>
+    80207dce:	439c                	lw	a5,0(a5)
+    80207dd0:	2781                	sext.w	a5,a5
      *R(VIRTIO_MMIO_VERSION) != 1 ||
-    80207e12:	4709                	li	a4,2
-    80207e14:	0ee79f63          	bne	a5,a4,80207f12 <virtio_disk_init+0x156>
+    80207dd2:	4709                	li	a4,2
+    80207dd4:	0ee79f63          	bne	a5,a4,80207ed2 <virtio_disk_init+0x156>
      *R(VIRTIO_MMIO_VENDOR_ID) != 0x554d4551){
-    80207e18:	00003797          	auipc	a5,0x3
-    80207e1c:	1787b783          	ld	a5,376(a5) # 8020af90 <digits+0xc10>
-    80207e20:	4398                	lw	a4,0(a5)
-    80207e22:	2701                	sext.w	a4,a4
+    80207dd8:	00003797          	auipc	a5,0x3
+    80207ddc:	1b07b783          	ld	a5,432(a5) # 8020af88 <digits+0xc08>
+    80207de0:	4398                	lw	a4,0(a5)
+    80207de2:	2701                	sext.w	a4,a4
      *R(VIRTIO_MMIO_DEVICE_ID) != 2 ||
-    80207e24:	554d47b7          	lui	a5,0x554d4
-    80207e28:	55178793          	addi	a5,a5,1361 # 554d4551 <_entry-0x2ad2baaf>
-    80207e2c:	0ef71363          	bne	a4,a5,80207f12 <virtio_disk_init+0x156>
+    80207de4:	554d47b7          	lui	a5,0x554d4
+    80207de8:	55178793          	addi	a5,a5,1361 # 554d4551 <_entry-0x2ad2baaf>
+    80207dec:	0ef71363          	bne	a4,a5,80207ed2 <virtio_disk_init+0x156>
   *R(VIRTIO_MMIO_STATUS) = status;
-    80207e30:	00003797          	auipc	a5,0x3
-    80207e34:	1687b783          	ld	a5,360(a5) # 8020af98 <digits+0xc18>
-    80207e38:	4705                	li	a4,1
-    80207e3a:	c398                	sw	a4,0(a5)
+    80207df0:	00003797          	auipc	a5,0x3
+    80207df4:	1a07b783          	ld	a5,416(a5) # 8020af90 <digits+0xc10>
+    80207df8:	4705                	li	a4,1
+    80207dfa:	c398                	sw	a4,0(a5)
   *R(VIRTIO_MMIO_STATUS) = status;
-    80207e3c:	470d                	li	a4,3
-    80207e3e:	c398                	sw	a4,0(a5)
+    80207dfc:	470d                	li	a4,3
+    80207dfe:	c398                	sw	a4,0(a5)
   uint64 features = *R(VIRTIO_MMIO_DEVICE_FEATURES);
-    80207e40:	00003717          	auipc	a4,0x3
-    80207e44:	16073703          	ld	a4,352(a4) # 8020afa0 <digits+0xc20>
-    80207e48:	4318                	lw	a4,0(a4)
+    80207e00:	00003717          	auipc	a4,0x3
+    80207e04:	19873703          	ld	a4,408(a4) # 8020af98 <digits+0xc18>
+    80207e08:	4318                	lw	a4,0(a4)
   *R(VIRTIO_MMIO_DRIVER_FEATURES) = features;
-    80207e4a:	c7ffe6b7          	lui	a3,0xc7ffe
-    80207e4e:	75f68693          	addi	a3,a3,1887 # ffffffffc7ffe75f <ebss_clear+0xffffffff47dc375f>
-    80207e52:	8f75                	and	a4,a4,a3
-    80207e54:	00003697          	auipc	a3,0x3
-    80207e58:	1546b683          	ld	a3,340(a3) # 8020afa8 <digits+0xc28>
-    80207e5c:	c298                	sw	a4,0(a3)
+    80207e0a:	c7ffe6b7          	lui	a3,0xc7ffe
+    80207e0e:	75f68693          	addi	a3,a3,1887 # ffffffffc7ffe75f <ebss_clear+0xffffffff47dc375f>
+    80207e12:	8f75                	and	a4,a4,a3
+    80207e14:	00003697          	auipc	a3,0x3
+    80207e18:	18c6b683          	ld	a3,396(a3) # 8020afa0 <digits+0xc20>
+    80207e1c:	c298                	sw	a4,0(a3)
   *R(VIRTIO_MMIO_STATUS) = status;
-    80207e5e:	472d                	li	a4,11
-    80207e60:	c398                	sw	a4,0(a5)
+    80207e1e:	472d                	li	a4,11
+    80207e20:	c398                	sw	a4,0(a5)
   *R(VIRTIO_MMIO_STATUS) = status;
-    80207e62:	473d                	li	a4,15
-    80207e64:	c398                	sw	a4,0(a5)
+    80207e22:	473d                	li	a4,15
+    80207e24:	c398                	sw	a4,0(a5)
   *R(VIRTIO_MMIO_GUEST_PAGE_SIZE) = PGSIZE;
-    80207e66:	00003797          	auipc	a5,0x3
-    80207e6a:	14a7b783          	ld	a5,330(a5) # 8020afb0 <digits+0xc30>
-    80207e6e:	6705                	lui	a4,0x1
-    80207e70:	c398                	sw	a4,0(a5)
+    80207e26:	00003797          	auipc	a5,0x3
+    80207e2a:	1827b783          	ld	a5,386(a5) # 8020afa8 <digits+0xc28>
+    80207e2e:	6705                	lui	a4,0x1
+    80207e30:	c398                	sw	a4,0(a5)
   *R(VIRTIO_MMIO_QUEUE_SEL) = 0;
-    80207e72:	00003797          	auipc	a5,0x3
-    80207e76:	1467b783          	ld	a5,326(a5) # 8020afb8 <digits+0xc38>
-    80207e7a:	0007a023          	sw	zero,0(a5)
+    80207e32:	00003797          	auipc	a5,0x3
+    80207e36:	17e7b783          	ld	a5,382(a5) # 8020afb0 <digits+0xc30>
+    80207e3a:	0007a023          	sw	zero,0(a5)
   uint32 max = *R(VIRTIO_MMIO_QUEUE_NUM_MAX);
-    80207e7e:	00003797          	auipc	a5,0x3
-    80207e82:	1427b783          	ld	a5,322(a5) # 8020afc0 <digits+0xc40>
-    80207e86:	439c                	lw	a5,0(a5)
-    80207e88:	2781                	sext.w	a5,a5
+    80207e3e:	00003797          	auipc	a5,0x3
+    80207e42:	17a7b783          	ld	a5,378(a5) # 8020afb8 <digits+0xc38>
+    80207e46:	439c                	lw	a5,0(a5)
+    80207e48:	2781                	sext.w	a5,a5
   if(max == 0)
-    80207e8a:	cfc1                	beqz	a5,80207f22 <virtio_disk_init+0x166>
+    80207e4a:	cfc1                	beqz	a5,80207ee2 <virtio_disk_init+0x166>
   if(max < NUM)
-    80207e8c:	471d                	li	a4,7
-    80207e8e:	0af77263          	bgeu	a4,a5,80207f32 <virtio_disk_init+0x176>
+    80207e4c:	471d                	li	a4,7
+    80207e4e:	0af77263          	bgeu	a4,a5,80207ef2 <virtio_disk_init+0x176>
   *R(VIRTIO_MMIO_QUEUE_NUM) = NUM;
-    80207e92:	00003797          	auipc	a5,0x3
-    80207e96:	1367b783          	ld	a5,310(a5) # 8020afc8 <digits+0xc48>
-    80207e9a:	4721                	li	a4,8
-    80207e9c:	c398                	sw	a4,0(a5)
+    80207e52:	00003797          	auipc	a5,0x3
+    80207e56:	16e7b783          	ld	a5,366(a5) # 8020afc0 <digits+0xc40>
+    80207e5a:	4721                	li	a4,8
+    80207e5c:	c398                	sw	a4,0(a5)
   memset(disk.pages, 0, sizeof(disk.pages));
-    80207e9e:	6609                	lui	a2,0x2
-    80207ea0:	4581                	li	a1,0
-    80207ea2:	00030517          	auipc	a0,0x30
-    80207ea6:	15e50513          	addi	a0,a0,350 # 80238000 <disk>
-    80207eaa:	ffff9097          	auipc	ra,0xffff9
-    80207eae:	8b8080e7          	jalr	-1864(ra) # 80200762 <memset>
+    80207e5e:	6609                	lui	a2,0x2
+    80207e60:	4581                	li	a1,0
+    80207e62:	00030517          	auipc	a0,0x30
+    80207e66:	19e50513          	addi	a0,a0,414 # 80238000 <disk>
+    80207e6a:	ffff9097          	auipc	ra,0xffff9
+    80207e6e:	8f8080e7          	jalr	-1800(ra) # 80200762 <memset>
   *R(VIRTIO_MMIO_QUEUE_PFN) = ((uint64)disk.pages) >> PGSHIFT;
-    80207eb2:	00030717          	auipc	a4,0x30
-    80207eb6:	14e70713          	addi	a4,a4,334 # 80238000 <disk>
-    80207eba:	00c75793          	srli	a5,a4,0xc
-    80207ebe:	2781                	sext.w	a5,a5
-    80207ec0:	00003697          	auipc	a3,0x3
-    80207ec4:	1106b683          	ld	a3,272(a3) # 8020afd0 <digits+0xc50>
-    80207ec8:	c29c                	sw	a5,0(a3)
+    80207e72:	00030717          	auipc	a4,0x30
+    80207e76:	18e70713          	addi	a4,a4,398 # 80238000 <disk>
+    80207e7a:	00c75793          	srli	a5,a4,0xc
+    80207e7e:	2781                	sext.w	a5,a5
+    80207e80:	00003697          	auipc	a3,0x3
+    80207e84:	1486b683          	ld	a3,328(a3) # 8020afc8 <digits+0xc48>
+    80207e88:	c29c                	sw	a5,0(a3)
   disk.desc = (struct VRingDesc *) disk.pages;
-    80207eca:	00032797          	auipc	a5,0x32
-    80207ece:	13678793          	addi	a5,a5,310 # 8023a000 <disk+0x2000>
-    80207ed2:	e398                	sd	a4,0(a5)
+    80207e8a:	00032797          	auipc	a5,0x32
+    80207e8e:	17678793          	addi	a5,a5,374 # 8023a000 <disk+0x2000>
+    80207e92:	e398                	sd	a4,0(a5)
   disk.avail = (uint16*)(((char*)disk.desc) + NUM*sizeof(struct VRingDesc));
-    80207ed4:	00030717          	auipc	a4,0x30
-    80207ed8:	1ac70713          	addi	a4,a4,428 # 80238080 <disk+0x80>
-    80207edc:	e798                	sd	a4,8(a5)
+    80207e94:	00030717          	auipc	a4,0x30
+    80207e98:	1ec70713          	addi	a4,a4,492 # 80238080 <disk+0x80>
+    80207e9c:	e798                	sd	a4,8(a5)
   disk.used = (struct UsedArea *) (disk.pages + PGSIZE);
-    80207ede:	00031717          	auipc	a4,0x31
-    80207ee2:	12270713          	addi	a4,a4,290 # 80239000 <disk+0x1000>
-    80207ee6:	eb98                	sd	a4,16(a5)
+    80207e9e:	00031717          	auipc	a4,0x31
+    80207ea2:	16270713          	addi	a4,a4,354 # 80239000 <disk+0x1000>
+    80207ea6:	eb98                	sd	a4,16(a5)
     disk.free[i] = 1;
-    80207ee8:	4705                	li	a4,1
-    80207eea:	00e78c23          	sb	a4,24(a5)
-    80207eee:	00e78ca3          	sb	a4,25(a5)
-    80207ef2:	00e78d23          	sb	a4,26(a5)
-    80207ef6:	00e78da3          	sb	a4,27(a5)
-    80207efa:	00e78e23          	sb	a4,28(a5)
-    80207efe:	00e78ea3          	sb	a4,29(a5)
-    80207f02:	00e78f23          	sb	a4,30(a5)
-    80207f06:	00e78fa3          	sb	a4,31(a5)
+    80207ea8:	4705                	li	a4,1
+    80207eaa:	00e78c23          	sb	a4,24(a5)
+    80207eae:	00e78ca3          	sb	a4,25(a5)
+    80207eb2:	00e78d23          	sb	a4,26(a5)
+    80207eb6:	00e78da3          	sb	a4,27(a5)
+    80207eba:	00e78e23          	sb	a4,28(a5)
+    80207ebe:	00e78ea3          	sb	a4,29(a5)
+    80207ec2:	00e78f23          	sb	a4,30(a5)
+    80207ec6:	00e78fa3          	sb	a4,31(a5)
 }
-    80207f0a:	60a2                	ld	ra,8(sp)
-    80207f0c:	6402                	ld	s0,0(sp)
-    80207f0e:	0141                	addi	sp,sp,16
-    80207f10:	8082                	ret
+    80207eca:	60a2                	ld	ra,8(sp)
+    80207ecc:	6402                	ld	s0,0(sp)
+    80207ece:	0141                	addi	sp,sp,16
+    80207ed0:	8082                	ret
     panic("could not find virtio disk");
-    80207f12:	00003517          	auipc	a0,0x3
-    80207f16:	ff650513          	addi	a0,a0,-10 # 8020af08 <digits+0xb88>
-    80207f1a:	ffff8097          	auipc	ra,0xffff8
-    80207f1e:	22a080e7          	jalr	554(ra) # 80200144 <panic>
+    80207ed2:	00003517          	auipc	a0,0x3
+    80207ed6:	02e50513          	addi	a0,a0,46 # 8020af00 <digits+0xb80>
+    80207eda:	ffff8097          	auipc	ra,0xffff8
+    80207ede:	26a080e7          	jalr	618(ra) # 80200144 <panic>
     panic("virtio disk has no queue 0");
-    80207f22:	00003517          	auipc	a0,0x3
-    80207f26:	00650513          	addi	a0,a0,6 # 8020af28 <digits+0xba8>
-    80207f2a:	ffff8097          	auipc	ra,0xffff8
-    80207f2e:	21a080e7          	jalr	538(ra) # 80200144 <panic>
+    80207ee2:	00003517          	auipc	a0,0x3
+    80207ee6:	03e50513          	addi	a0,a0,62 # 8020af20 <digits+0xba0>
+    80207eea:	ffff8097          	auipc	ra,0xffff8
+    80207eee:	25a080e7          	jalr	602(ra) # 80200144 <panic>
     panic("virtio disk max queue too short");
-    80207f32:	00003517          	auipc	a0,0x3
-    80207f36:	01650513          	addi	a0,a0,22 # 8020af48 <digits+0xbc8>
-    80207f3a:	ffff8097          	auipc	ra,0xffff8
-    80207f3e:	20a080e7          	jalr	522(ra) # 80200144 <panic>
+    80207ef2:	00003517          	auipc	a0,0x3
+    80207ef6:	04e50513          	addi	a0,a0,78 # 8020af40 <digits+0xbc0>
+    80207efa:	ffff8097          	auipc	ra,0xffff8
+    80207efe:	24a080e7          	jalr	586(ra) # 80200144 <panic>
 
-0000000080207f42 <virtio_disk_rw>:
+0000000080207f02 <virtio_disk_rw>:
   return 0;
 }
 
 void
 virtio_disk_rw(struct buf *b, int write)
 {
-    80207f42:	7175                	addi	sp,sp,-144
-    80207f44:	e506                	sd	ra,136(sp)
-    80207f46:	e122                	sd	s0,128(sp)
-    80207f48:	fca6                	sd	s1,120(sp)
-    80207f4a:	f8ca                	sd	s2,112(sp)
-    80207f4c:	f4ce                	sd	s3,104(sp)
-    80207f4e:	f0d2                	sd	s4,96(sp)
-    80207f50:	ecd6                	sd	s5,88(sp)
-    80207f52:	e8da                	sd	s6,80(sp)
-    80207f54:	e4de                	sd	s7,72(sp)
-    80207f56:	e0e2                	sd	s8,64(sp)
-    80207f58:	fc66                	sd	s9,56(sp)
-    80207f5a:	f86a                	sd	s10,48(sp)
-    80207f5c:	f46e                	sd	s11,40(sp)
-    80207f5e:	0900                	addi	s0,sp,144
-    80207f60:	8aaa                	mv	s5,a0
-    80207f62:	8cae                	mv	s9,a1
+    80207f02:	7175                	addi	sp,sp,-144
+    80207f04:	e506                	sd	ra,136(sp)
+    80207f06:	e122                	sd	s0,128(sp)
+    80207f08:	fca6                	sd	s1,120(sp)
+    80207f0a:	f8ca                	sd	s2,112(sp)
+    80207f0c:	f4ce                	sd	s3,104(sp)
+    80207f0e:	f0d2                	sd	s4,96(sp)
+    80207f10:	ecd6                	sd	s5,88(sp)
+    80207f12:	e8da                	sd	s6,80(sp)
+    80207f14:	e4de                	sd	s7,72(sp)
+    80207f16:	e0e2                	sd	s8,64(sp)
+    80207f18:	fc66                	sd	s9,56(sp)
+    80207f1a:	f86a                	sd	s10,48(sp)
+    80207f1c:	f46e                	sd	s11,40(sp)
+    80207f1e:	0900                	addi	s0,sp,144
+    80207f20:	8aaa                	mv	s5,a0
+    80207f22:	8cae                	mv	s9,a1
   uint64 sector = b->sectorno;
-    80207f64:	00c56d03          	lwu	s10,12(a0)
+    80207f24:	00c56d03          	lwu	s10,12(a0)
 
   acquire(&disk.vdisk_lock);
-    80207f68:	00032517          	auipc	a0,0x32
-    80207f6c:	14050513          	addi	a0,a0,320 # 8023a0a8 <disk+0x20a8>
-    80207f70:	ffff8097          	auipc	ra,0xffff8
-    80207f74:	756080e7          	jalr	1878(ra) # 802006c6 <acquire>
+    80207f28:	00032517          	auipc	a0,0x32
+    80207f2c:	18050513          	addi	a0,a0,384 # 8023a0a8 <disk+0x20a8>
+    80207f30:	ffff8097          	auipc	ra,0xffff8
+    80207f34:	796080e7          	jalr	1942(ra) # 802006c6 <acquire>
   for(int i = 0; i < 3; i++){
-    80207f78:	4981                	li	s3,0
+    80207f38:	4981                	li	s3,0
   for(int i = 0; i < NUM; i++){
-    80207f7a:	44a1                	li	s1,8
+    80207f3a:	44a1                	li	s1,8
       disk.free[i] = 0;
-    80207f7c:	00030c17          	auipc	s8,0x30
-    80207f80:	084c0c13          	addi	s8,s8,132 # 80238000 <disk>
-    80207f84:	6b89                	lui	s7,0x2
+    80207f3c:	00030c17          	auipc	s8,0x30
+    80207f40:	0c4c0c13          	addi	s8,s8,196 # 80238000 <disk>
+    80207f44:	6b89                	lui	s7,0x2
   for(int i = 0; i < 3; i++){
-    80207f86:	4b0d                	li	s6,3
-    80207f88:	a0ad                	j	80207ff2 <virtio_disk_rw+0xb0>
+    80207f46:	4b0d                	li	s6,3
+    80207f48:	a0ad                	j	80207fb2 <virtio_disk_rw+0xb0>
       disk.free[i] = 0;
-    80207f8a:	00fc0733          	add	a4,s8,a5
-    80207f8e:	975e                	add	a4,a4,s7
-    80207f90:	00070c23          	sb	zero,24(a4)
+    80207f4a:	00fc0733          	add	a4,s8,a5
+    80207f4e:	975e                	add	a4,a4,s7
+    80207f50:	00070c23          	sb	zero,24(a4)
     idx[i] = alloc_desc();
-    80207f94:	c19c                	sw	a5,0(a1)
+    80207f54:	c19c                	sw	a5,0(a1)
     if(idx[i] < 0){
-    80207f96:	0207c563          	bltz	a5,80207fc0 <virtio_disk_rw+0x7e>
+    80207f56:	0207c563          	bltz	a5,80207f80 <virtio_disk_rw+0x7e>
   for(int i = 0; i < 3; i++){
-    80207f9a:	2905                	addiw	s2,s2,1
-    80207f9c:	0611                	addi	a2,a2,4 # 2004 <_entry-0x801fdffc>
-    80207f9e:	19690e63          	beq	s2,s6,8020813a <virtio_disk_rw+0x1f8>
+    80207f5a:	2905                	addiw	s2,s2,1
+    80207f5c:	0611                	addi	a2,a2,4 # 2004 <_entry-0x801fdffc>
+    80207f5e:	19690e63          	beq	s2,s6,802080fa <virtio_disk_rw+0x1f8>
     idx[i] = alloc_desc();
-    80207fa2:	85b2                	mv	a1,a2
+    80207f62:	85b2                	mv	a1,a2
   for(int i = 0; i < NUM; i++){
-    80207fa4:	00032717          	auipc	a4,0x32
-    80207fa8:	07470713          	addi	a4,a4,116 # 8023a018 <disk+0x2018>
-    80207fac:	87ce                	mv	a5,s3
+    80207f64:	00032717          	auipc	a4,0x32
+    80207f68:	0b470713          	addi	a4,a4,180 # 8023a018 <disk+0x2018>
+    80207f6c:	87ce                	mv	a5,s3
     if(disk.free[i]){
-    80207fae:	00074683          	lbu	a3,0(a4)
-    80207fb2:	fee1                	bnez	a3,80207f8a <virtio_disk_rw+0x48>
+    80207f6e:	00074683          	lbu	a3,0(a4)
+    80207f72:	fee1                	bnez	a3,80207f4a <virtio_disk_rw+0x48>
   for(int i = 0; i < NUM; i++){
-    80207fb4:	2785                	addiw	a5,a5,1
-    80207fb6:	0705                	addi	a4,a4,1
-    80207fb8:	fe979be3          	bne	a5,s1,80207fae <virtio_disk_rw+0x6c>
+    80207f74:	2785                	addiw	a5,a5,1
+    80207f76:	0705                	addi	a4,a4,1
+    80207f78:	fe979be3          	bne	a5,s1,80207f6e <virtio_disk_rw+0x6c>
     idx[i] = alloc_desc();
-    80207fbc:	57fd                	li	a5,-1
-    80207fbe:	c19c                	sw	a5,0(a1)
+    80207f7c:	57fd                	li	a5,-1
+    80207f7e:	c19c                	sw	a5,0(a1)
       for(int j = 0; j < i; j++)
-    80207fc0:	01205d63          	blez	s2,80207fda <virtio_disk_rw+0x98>
-    80207fc4:	8dce                	mv	s11,s3
+    80207f80:	01205d63          	blez	s2,80207f9a <virtio_disk_rw+0x98>
+    80207f84:	8dce                	mv	s11,s3
         free_desc(idx[j]);
-    80207fc6:	000a2503          	lw	a0,0(s4)
-    80207fca:	00000097          	auipc	ra,0x0
-    80207fce:	d72080e7          	jalr	-654(ra) # 80207d3c <free_desc>
+    80207f86:	000a2503          	lw	a0,0(s4)
+    80207f8a:	00000097          	auipc	ra,0x0
+    80207f8e:	d72080e7          	jalr	-654(ra) # 80207cfc <free_desc>
       for(int j = 0; j < i; j++)
-    80207fd2:	2d85                	addiw	s11,s11,1
-    80207fd4:	0a11                	addi	s4,s4,4
-    80207fd6:	ff2d98e3          	bne	s11,s2,80207fc6 <virtio_disk_rw+0x84>
+    80207f92:	2d85                	addiw	s11,s11,1
+    80207f94:	0a11                	addi	s4,s4,4
+    80207f96:	ff2d98e3          	bne	s11,s2,80207f86 <virtio_disk_rw+0x84>
   int idx[3];
   while(1){
     if(alloc3_desc(idx) == 0) {
       break;
     }
     sleep(&disk.free[0], &disk.vdisk_lock);
-    80207fda:	00032597          	auipc	a1,0x32
-    80207fde:	0ce58593          	addi	a1,a1,206 # 8023a0a8 <disk+0x20a8>
-    80207fe2:	00032517          	auipc	a0,0x32
-    80207fe6:	03650513          	addi	a0,a0,54 # 8023a018 <disk+0x2018>
-    80207fea:	ffffa097          	auipc	ra,0xffffa
-    80207fee:	42e080e7          	jalr	1070(ra) # 80202418 <sleep>
+    80207f9a:	00032597          	auipc	a1,0x32
+    80207f9e:	10e58593          	addi	a1,a1,270 # 8023a0a8 <disk+0x20a8>
+    80207fa2:	00032517          	auipc	a0,0x32
+    80207fa6:	07650513          	addi	a0,a0,118 # 8023a018 <disk+0x2018>
+    80207faa:	ffffa097          	auipc	ra,0xffffa
+    80207fae:	468080e7          	jalr	1128(ra) # 80202412 <sleep>
   for(int i = 0; i < 3; i++){
-    80207ff2:	f8040a13          	addi	s4,s0,-128
+    80207fb2:	f8040a13          	addi	s4,s0,-128
 {
-    80207ff6:	8652                	mv	a2,s4
+    80207fb6:	8652                	mv	a2,s4
   for(int i = 0; i < 3; i++){
-    80207ff8:	894e                	mv	s2,s3
-    80207ffa:	b765                	j	80207fa2 <virtio_disk_rw+0x60>
+    80207fb8:	894e                	mv	s2,s3
+    80207fba:	b765                	j	80207f62 <virtio_disk_rw+0x60>
   disk.desc[idx[0]].next = idx[1];
 
   disk.desc[idx[1]].addr = (uint64) b->data;
   disk.desc[idx[1]].len = BSIZE;
   if(write)
     disk.desc[idx[1]].flags = 0; // device reads b->data
-    80207ffc:	00032717          	auipc	a4,0x32
-    80208000:	00473703          	ld	a4,4(a4) # 8023a000 <disk+0x2000>
-    80208004:	973e                	add	a4,a4,a5
-    80208006:	00071623          	sh	zero,12(a4)
+    80207fbc:	00032717          	auipc	a4,0x32
+    80207fc0:	04473703          	ld	a4,68(a4) # 8023a000 <disk+0x2000>
+    80207fc4:	973e                	add	a4,a4,a5
+    80207fc6:	00071623          	sh	zero,12(a4)
   else
     disk.desc[idx[1]].flags = VRING_DESC_F_WRITE; // device writes b->data
   disk.desc[idx[1]].flags |= VRING_DESC_F_NEXT;
-    8020800a:	00030517          	auipc	a0,0x30
-    8020800e:	ff650513          	addi	a0,a0,-10 # 80238000 <disk>
-    80208012:	00032717          	auipc	a4,0x32
-    80208016:	fee70713          	addi	a4,a4,-18 # 8023a000 <disk+0x2000>
-    8020801a:	6314                	ld	a3,0(a4)
-    8020801c:	96be                	add	a3,a3,a5
-    8020801e:	00c6d603          	lhu	a2,12(a3)
-    80208022:	00166613          	ori	a2,a2,1
-    80208026:	00c69623          	sh	a2,12(a3)
+    80207fca:	00030517          	auipc	a0,0x30
+    80207fce:	03650513          	addi	a0,a0,54 # 80238000 <disk>
+    80207fd2:	00032717          	auipc	a4,0x32
+    80207fd6:	02e70713          	addi	a4,a4,46 # 8023a000 <disk+0x2000>
+    80207fda:	6314                	ld	a3,0(a4)
+    80207fdc:	96be                	add	a3,a3,a5
+    80207fde:	00c6d603          	lhu	a2,12(a3)
+    80207fe2:	00166613          	ori	a2,a2,1
+    80207fe6:	00c69623          	sh	a2,12(a3)
   disk.desc[idx[1]].next = idx[2];
-    8020802a:	f8842683          	lw	a3,-120(s0)
-    8020802e:	6310                	ld	a2,0(a4)
-    80208030:	97b2                	add	a5,a5,a2
-    80208032:	00d79723          	sh	a3,14(a5)
+    80207fea:	f8842683          	lw	a3,-120(s0)
+    80207fee:	6310                	ld	a2,0(a4)
+    80207ff0:	97b2                	add	a5,a5,a2
+    80207ff2:	00d79723          	sh	a3,14(a5)
 
   disk.info[idx[0]].status = 0;
-    80208036:	20048613          	addi	a2,s1,512
-    8020803a:	0612                	slli	a2,a2,0x4
-    8020803c:	962a                	add	a2,a2,a0
-    8020803e:	02060823          	sb	zero,48(a2)
+    80207ff6:	20048613          	addi	a2,s1,512
+    80207ffa:	0612                	slli	a2,a2,0x4
+    80207ffc:	962a                	add	a2,a2,a0
+    80207ffe:	02060823          	sb	zero,48(a2)
   disk.desc[idx[2]].addr = (uint64) &disk.info[idx[0]].status;
-    80208042:	00469793          	slli	a5,a3,0x4
-    80208046:	630c                	ld	a1,0(a4)
-    80208048:	95be                	add	a1,a1,a5
-    8020804a:	6689                	lui	a3,0x2
-    8020804c:	03068693          	addi	a3,a3,48 # 2030 <_entry-0x801fdfd0>
-    80208050:	96ca                	add	a3,a3,s2
-    80208052:	96aa                	add	a3,a3,a0
-    80208054:	e194                	sd	a3,0(a1)
+    80208002:	00469793          	slli	a5,a3,0x4
+    80208006:	630c                	ld	a1,0(a4)
+    80208008:	95be                	add	a1,a1,a5
+    8020800a:	6689                	lui	a3,0x2
+    8020800c:	03068693          	addi	a3,a3,48 # 2030 <_entry-0x801fdfd0>
+    80208010:	96ca                	add	a3,a3,s2
+    80208012:	96aa                	add	a3,a3,a0
+    80208014:	e194                	sd	a3,0(a1)
   disk.desc[idx[2]].len = 1;
-    80208056:	6314                	ld	a3,0(a4)
-    80208058:	96be                	add	a3,a3,a5
-    8020805a:	4585                	li	a1,1
-    8020805c:	c68c                	sw	a1,8(a3)
+    80208016:	6314                	ld	a3,0(a4)
+    80208018:	96be                	add	a3,a3,a5
+    8020801a:	4585                	li	a1,1
+    8020801c:	c68c                	sw	a1,8(a3)
   disk.desc[idx[2]].flags = VRING_DESC_F_WRITE; // device writes the status
-    8020805e:	6314                	ld	a3,0(a4)
-    80208060:	96be                	add	a3,a3,a5
-    80208062:	4509                	li	a0,2
-    80208064:	00a69623          	sh	a0,12(a3)
+    8020801e:	6314                	ld	a3,0(a4)
+    80208020:	96be                	add	a3,a3,a5
+    80208022:	4509                	li	a0,2
+    80208024:	00a69623          	sh	a0,12(a3)
   disk.desc[idx[2]].next = 0;
-    80208068:	6314                	ld	a3,0(a4)
-    8020806a:	97b6                	add	a5,a5,a3
-    8020806c:	00079723          	sh	zero,14(a5)
+    80208028:	6314                	ld	a3,0(a4)
+    8020802a:	97b6                	add	a5,a5,a3
+    8020802c:	00079723          	sh	zero,14(a5)
 
   // record struct buf for virtio_disk_intr().
   b->disk = 1;
-    80208070:	00baa223          	sw	a1,4(s5)
+    80208030:	00baa223          	sw	a1,4(s5)
   disk.info[idx[0]].b = b;
-    80208074:	03563423          	sd	s5,40(a2)
+    80208034:	03563423          	sd	s5,40(a2)
 
   // avail[0] is flags
   // avail[1] tells the device how far to look in avail[2...].
   // avail[2...] are desc[] indices the device should process.
   // we only tell device the first index in our chain of descriptors.
   disk.avail[2 + (disk.avail[1] % NUM)] = idx[0];
-    80208078:	6714                	ld	a3,8(a4)
-    8020807a:	0026d783          	lhu	a5,2(a3)
-    8020807e:	8b9d                	andi	a5,a5,7
-    80208080:	0789                	addi	a5,a5,2
-    80208082:	0786                	slli	a5,a5,0x1
-    80208084:	96be                	add	a3,a3,a5
-    80208086:	00969023          	sh	s1,0(a3)
+    80208038:	6714                	ld	a3,8(a4)
+    8020803a:	0026d783          	lhu	a5,2(a3)
+    8020803e:	8b9d                	andi	a5,a5,7
+    80208040:	0789                	addi	a5,a5,2
+    80208042:	0786                	slli	a5,a5,0x1
+    80208044:	96be                	add	a3,a3,a5
+    80208046:	00969023          	sh	s1,0(a3)
   __sync_synchronize();
-    8020808a:	0ff0000f          	fence
+    8020804a:	0ff0000f          	fence
   disk.avail[1] = disk.avail[1] + 1;
-    8020808e:	6718                	ld	a4,8(a4)
-    80208090:	00275783          	lhu	a5,2(a4)
-    80208094:	2785                	addiw	a5,a5,1
-    80208096:	00f71123          	sh	a5,2(a4)
+    8020804e:	6718                	ld	a4,8(a4)
+    80208050:	00275783          	lhu	a5,2(a4)
+    80208054:	2785                	addiw	a5,a5,1
+    80208056:	00f71123          	sh	a5,2(a4)
 
   *R(VIRTIO_MMIO_QUEUE_NOTIFY) = 0; // value is queue number
-    8020809a:	00003797          	auipc	a5,0x3
-    8020809e:	f3e7b783          	ld	a5,-194(a5) # 8020afd8 <digits+0xc58>
-    802080a2:	0007a023          	sw	zero,0(a5)
+    8020805a:	00003797          	auipc	a5,0x3
+    8020805e:	f767b783          	ld	a5,-138(a5) # 8020afd0 <digits+0xc50>
+    80208062:	0007a023          	sw	zero,0(a5)
 
   // Wait for virtio_disk_intr() to say request has finished.
   while(b->disk == 1) {
-    802080a6:	004aa783          	lw	a5,4(s5)
-    802080aa:	02b79163          	bne	a5,a1,802080cc <virtio_disk_rw+0x18a>
+    80208066:	004aa783          	lw	a5,4(s5)
+    8020806a:	02b79163          	bne	a5,a1,8020808c <virtio_disk_rw+0x18a>
     sleep(b, &disk.vdisk_lock);
-    802080ae:	00032917          	auipc	s2,0x32
-    802080b2:	ffa90913          	addi	s2,s2,-6 # 8023a0a8 <disk+0x20a8>
+    8020806e:	00032917          	auipc	s2,0x32
+    80208072:	03a90913          	addi	s2,s2,58 # 8023a0a8 <disk+0x20a8>
   while(b->disk == 1) {
-    802080b6:	4485                	li	s1,1
+    80208076:	4485                	li	s1,1
     sleep(b, &disk.vdisk_lock);
-    802080b8:	85ca                	mv	a1,s2
-    802080ba:	8556                	mv	a0,s5
-    802080bc:	ffffa097          	auipc	ra,0xffffa
-    802080c0:	35c080e7          	jalr	860(ra) # 80202418 <sleep>
+    80208078:	85ca                	mv	a1,s2
+    8020807a:	8556                	mv	a0,s5
+    8020807c:	ffffa097          	auipc	ra,0xffffa
+    80208080:	396080e7          	jalr	918(ra) # 80202412 <sleep>
   while(b->disk == 1) {
-    802080c4:	004aa783          	lw	a5,4(s5)
-    802080c8:	fe9788e3          	beq	a5,s1,802080b8 <virtio_disk_rw+0x176>
+    80208084:	004aa783          	lw	a5,4(s5)
+    80208088:	fe9788e3          	beq	a5,s1,80208078 <virtio_disk_rw+0x176>
   }
 
   disk.info[idx[0]].b = 0;
-    802080cc:	f8042483          	lw	s1,-128(s0)
-    802080d0:	20048713          	addi	a4,s1,512
-    802080d4:	0712                	slli	a4,a4,0x4
-    802080d6:	00030797          	auipc	a5,0x30
-    802080da:	f2a78793          	addi	a5,a5,-214 # 80238000 <disk>
-    802080de:	97ba                	add	a5,a5,a4
-    802080e0:	0207b423          	sd	zero,40(a5)
+    8020808c:	f8042483          	lw	s1,-128(s0)
+    80208090:	20048713          	addi	a4,s1,512
+    80208094:	0712                	slli	a4,a4,0x4
+    80208096:	00030797          	auipc	a5,0x30
+    8020809a:	f6a78793          	addi	a5,a5,-150 # 80238000 <disk>
+    8020809e:	97ba                	add	a5,a5,a4
+    802080a0:	0207b423          	sd	zero,40(a5)
     if(disk.desc[i].flags & VRING_DESC_F_NEXT)
-    802080e4:	00032917          	auipc	s2,0x32
-    802080e8:	f1c90913          	addi	s2,s2,-228 # 8023a000 <disk+0x2000>
-    802080ec:	a019                	j	802080f2 <virtio_disk_rw+0x1b0>
+    802080a4:	00032917          	auipc	s2,0x32
+    802080a8:	f5c90913          	addi	s2,s2,-164 # 8023a000 <disk+0x2000>
+    802080ac:	a019                	j	802080b2 <virtio_disk_rw+0x1b0>
       i = disk.desc[i].next;
-    802080ee:	00e7d483          	lhu	s1,14(a5)
+    802080ae:	00e7d483          	lhu	s1,14(a5)
     free_desc(i);
-    802080f2:	8526                	mv	a0,s1
-    802080f4:	00000097          	auipc	ra,0x0
-    802080f8:	c48080e7          	jalr	-952(ra) # 80207d3c <free_desc>
+    802080b2:	8526                	mv	a0,s1
+    802080b4:	00000097          	auipc	ra,0x0
+    802080b8:	c48080e7          	jalr	-952(ra) # 80207cfc <free_desc>
     if(disk.desc[i].flags & VRING_DESC_F_NEXT)
-    802080fc:	0492                	slli	s1,s1,0x4
-    802080fe:	00093783          	ld	a5,0(s2)
-    80208102:	97a6                	add	a5,a5,s1
-    80208104:	00c7d703          	lhu	a4,12(a5)
-    80208108:	8b05                	andi	a4,a4,1
-    8020810a:	f375                	bnez	a4,802080ee <virtio_disk_rw+0x1ac>
+    802080bc:	0492                	slli	s1,s1,0x4
+    802080be:	00093783          	ld	a5,0(s2)
+    802080c2:	97a6                	add	a5,a5,s1
+    802080c4:	00c7d703          	lhu	a4,12(a5)
+    802080c8:	8b05                	andi	a4,a4,1
+    802080ca:	f375                	bnez	a4,802080ae <virtio_disk_rw+0x1ac>
   free_chain(idx[0]);
 
   release(&disk.vdisk_lock);
-    8020810c:	00032517          	auipc	a0,0x32
-    80208110:	f9c50513          	addi	a0,a0,-100 # 8023a0a8 <disk+0x20a8>
-    80208114:	ffff8097          	auipc	ra,0xffff8
-    80208118:	606080e7          	jalr	1542(ra) # 8020071a <release>
+    802080cc:	00032517          	auipc	a0,0x32
+    802080d0:	fdc50513          	addi	a0,a0,-36 # 8023a0a8 <disk+0x20a8>
+    802080d4:	ffff8097          	auipc	ra,0xffff8
+    802080d8:	646080e7          	jalr	1606(ra) # 8020071a <release>
 }
-    8020811c:	60aa                	ld	ra,136(sp)
-    8020811e:	640a                	ld	s0,128(sp)
-    80208120:	74e6                	ld	s1,120(sp)
-    80208122:	7946                	ld	s2,112(sp)
-    80208124:	79a6                	ld	s3,104(sp)
-    80208126:	7a06                	ld	s4,96(sp)
-    80208128:	6ae6                	ld	s5,88(sp)
-    8020812a:	6b46                	ld	s6,80(sp)
-    8020812c:	6ba6                	ld	s7,72(sp)
-    8020812e:	6c06                	ld	s8,64(sp)
-    80208130:	7ce2                	ld	s9,56(sp)
-    80208132:	7d42                	ld	s10,48(sp)
-    80208134:	7da2                	ld	s11,40(sp)
-    80208136:	6149                	addi	sp,sp,144
-    80208138:	8082                	ret
+    802080dc:	60aa                	ld	ra,136(sp)
+    802080de:	640a                	ld	s0,128(sp)
+    802080e0:	74e6                	ld	s1,120(sp)
+    802080e2:	7946                	ld	s2,112(sp)
+    802080e4:	79a6                	ld	s3,104(sp)
+    802080e6:	7a06                	ld	s4,96(sp)
+    802080e8:	6ae6                	ld	s5,88(sp)
+    802080ea:	6b46                	ld	s6,80(sp)
+    802080ec:	6ba6                	ld	s7,72(sp)
+    802080ee:	6c06                	ld	s8,64(sp)
+    802080f0:	7ce2                	ld	s9,56(sp)
+    802080f2:	7d42                	ld	s10,48(sp)
+    802080f4:	7da2                	ld	s11,40(sp)
+    802080f6:	6149                	addi	sp,sp,144
+    802080f8:	8082                	ret
   if(write)
-    8020813a:	019037b3          	snez	a5,s9
-    8020813e:	f6f42823          	sw	a5,-144(s0)
+    802080fa:	019037b3          	snez	a5,s9
+    802080fe:	f6f42823          	sw	a5,-144(s0)
   buf0.reserved = 0;
-    80208142:	f6042a23          	sw	zero,-140(s0)
+    80208102:	f6042a23          	sw	zero,-140(s0)
   buf0.sector = sector;
-    80208146:	f7a43c23          	sd	s10,-136(s0)
+    80208106:	f7a43c23          	sd	s10,-136(s0)
   disk.desc[idx[0]].addr = (uint64) kwalkaddr(myproc()->kpagetable, (uint64) &buf0);
-    8020814a:	ffffa097          	auipc	ra,0xffffa
-    8020814e:	8f2080e7          	jalr	-1806(ra) # 80201a3c <myproc>
-    80208152:	f8042483          	lw	s1,-128(s0)
-    80208156:	00449913          	slli	s2,s1,0x4
-    8020815a:	00032997          	auipc	s3,0x32
-    8020815e:	ea698993          	addi	s3,s3,-346 # 8023a000 <disk+0x2000>
-    80208162:	0009ba03          	ld	s4,0(s3)
-    80208166:	9a4a                	add	s4,s4,s2
-    80208168:	f7040593          	addi	a1,s0,-144
-    8020816c:	6d28                	ld	a0,88(a0)
-    8020816e:	ffff9097          	auipc	ra,0xffff9
-    80208172:	a82080e7          	jalr	-1406(ra) # 80200bf0 <kwalkaddr>
-    80208176:	00aa3023          	sd	a0,0(s4)
+    8020810a:	ffffa097          	auipc	ra,0xffffa
+    8020810e:	932080e7          	jalr	-1742(ra) # 80201a3c <myproc>
+    80208112:	f8042483          	lw	s1,-128(s0)
+    80208116:	00449913          	slli	s2,s1,0x4
+    8020811a:	00032997          	auipc	s3,0x32
+    8020811e:	ee698993          	addi	s3,s3,-282 # 8023a000 <disk+0x2000>
+    80208122:	0009ba03          	ld	s4,0(s3)
+    80208126:	9a4a                	add	s4,s4,s2
+    80208128:	f7040593          	addi	a1,s0,-144
+    8020812c:	6d28                	ld	a0,88(a0)
+    8020812e:	ffff9097          	auipc	ra,0xffff9
+    80208132:	ac2080e7          	jalr	-1342(ra) # 80200bf0 <kwalkaddr>
+    80208136:	00aa3023          	sd	a0,0(s4)
   disk.desc[idx[0]].len = sizeof(buf0);
-    8020817a:	0009b783          	ld	a5,0(s3)
-    8020817e:	97ca                	add	a5,a5,s2
-    80208180:	4741                	li	a4,16
-    80208182:	c798                	sw	a4,8(a5)
+    8020813a:	0009b783          	ld	a5,0(s3)
+    8020813e:	97ca                	add	a5,a5,s2
+    80208140:	4741                	li	a4,16
+    80208142:	c798                	sw	a4,8(a5)
   disk.desc[idx[0]].flags = VRING_DESC_F_NEXT;
-    80208184:	0009b783          	ld	a5,0(s3)
-    80208188:	97ca                	add	a5,a5,s2
-    8020818a:	4705                	li	a4,1
-    8020818c:	00e79623          	sh	a4,12(a5)
+    80208144:	0009b783          	ld	a5,0(s3)
+    80208148:	97ca                	add	a5,a5,s2
+    8020814a:	4705                	li	a4,1
+    8020814c:	00e79623          	sh	a4,12(a5)
   disk.desc[idx[0]].next = idx[1];
-    80208190:	f8442783          	lw	a5,-124(s0)
-    80208194:	0009b703          	ld	a4,0(s3)
-    80208198:	974a                	add	a4,a4,s2
-    8020819a:	00f71723          	sh	a5,14(a4)
+    80208150:	f8442783          	lw	a5,-124(s0)
+    80208154:	0009b703          	ld	a4,0(s3)
+    80208158:	974a                	add	a4,a4,s2
+    8020815a:	00f71723          	sh	a5,14(a4)
   disk.desc[idx[1]].addr = (uint64) b->data;
-    8020819e:	0792                	slli	a5,a5,0x4
-    802081a0:	0009b703          	ld	a4,0(s3)
-    802081a4:	973e                	add	a4,a4,a5
-    802081a6:	058a8693          	addi	a3,s5,88
-    802081aa:	e314                	sd	a3,0(a4)
+    8020815e:	0792                	slli	a5,a5,0x4
+    80208160:	0009b703          	ld	a4,0(s3)
+    80208164:	973e                	add	a4,a4,a5
+    80208166:	058a8693          	addi	a3,s5,88
+    8020816a:	e314                	sd	a3,0(a4)
   disk.desc[idx[1]].len = BSIZE;
-    802081ac:	0009b703          	ld	a4,0(s3)
-    802081b0:	973e                	add	a4,a4,a5
-    802081b2:	20000693          	li	a3,512
-    802081b6:	c714                	sw	a3,8(a4)
+    8020816c:	0009b703          	ld	a4,0(s3)
+    80208170:	973e                	add	a4,a4,a5
+    80208172:	20000693          	li	a3,512
+    80208176:	c714                	sw	a3,8(a4)
   if(write)
-    802081b8:	e40c92e3          	bnez	s9,80207ffc <virtio_disk_rw+0xba>
+    80208178:	e40c92e3          	bnez	s9,80207fbc <virtio_disk_rw+0xba>
     disk.desc[idx[1]].flags = VRING_DESC_F_WRITE; // device writes b->data
-    802081bc:	00032717          	auipc	a4,0x32
-    802081c0:	e4473703          	ld	a4,-444(a4) # 8023a000 <disk+0x2000>
-    802081c4:	973e                	add	a4,a4,a5
-    802081c6:	4689                	li	a3,2
-    802081c8:	00d71623          	sh	a3,12(a4)
-    802081cc:	bd3d                	j	8020800a <virtio_disk_rw+0xc8>
+    8020817c:	00032717          	auipc	a4,0x32
+    80208180:	e8473703          	ld	a4,-380(a4) # 8023a000 <disk+0x2000>
+    80208184:	973e                	add	a4,a4,a5
+    80208186:	4689                	li	a3,2
+    80208188:	00d71623          	sh	a3,12(a4)
+    8020818c:	bd3d                	j	80207fca <virtio_disk_rw+0xc8>
 
-00000000802081ce <virtio_disk_intr>:
+000000008020818e <virtio_disk_intr>:
 
 void
 virtio_disk_intr()
 {
-    802081ce:	1101                	addi	sp,sp,-32
-    802081d0:	ec06                	sd	ra,24(sp)
-    802081d2:	e822                	sd	s0,16(sp)
-    802081d4:	e426                	sd	s1,8(sp)
-    802081d6:	e04a                	sd	s2,0(sp)
-    802081d8:	1000                	addi	s0,sp,32
+    8020818e:	1101                	addi	sp,sp,-32
+    80208190:	ec06                	sd	ra,24(sp)
+    80208192:	e822                	sd	s0,16(sp)
+    80208194:	e426                	sd	s1,8(sp)
+    80208196:	e04a                	sd	s2,0(sp)
+    80208198:	1000                	addi	s0,sp,32
   acquire(&disk.vdisk_lock);
-    802081da:	00032517          	auipc	a0,0x32
-    802081de:	ece50513          	addi	a0,a0,-306 # 8023a0a8 <disk+0x20a8>
-    802081e2:	ffff8097          	auipc	ra,0xffff8
-    802081e6:	4e4080e7          	jalr	1252(ra) # 802006c6 <acquire>
+    8020819a:	00032517          	auipc	a0,0x32
+    8020819e:	f0e50513          	addi	a0,a0,-242 # 8023a0a8 <disk+0x20a8>
+    802081a2:	ffff8097          	auipc	ra,0xffff8
+    802081a6:	524080e7          	jalr	1316(ra) # 802006c6 <acquire>
 
   while((disk.used_idx % NUM) != (disk.used->id % NUM)){
-    802081ea:	00032717          	auipc	a4,0x32
-    802081ee:	e1670713          	addi	a4,a4,-490 # 8023a000 <disk+0x2000>
-    802081f2:	02075783          	lhu	a5,32(a4)
-    802081f6:	6b18                	ld	a4,16(a4)
-    802081f8:	00275683          	lhu	a3,2(a4)
-    802081fc:	8ebd                	xor	a3,a3,a5
-    802081fe:	8a9d                	andi	a3,a3,7
-    80208200:	cab9                	beqz	a3,80208256 <virtio_disk_intr+0x88>
+    802081aa:	00032717          	auipc	a4,0x32
+    802081ae:	e5670713          	addi	a4,a4,-426 # 8023a000 <disk+0x2000>
+    802081b2:	02075783          	lhu	a5,32(a4)
+    802081b6:	6b18                	ld	a4,16(a4)
+    802081b8:	00275683          	lhu	a3,2(a4)
+    802081bc:	8ebd                	xor	a3,a3,a5
+    802081be:	8a9d                	andi	a3,a3,7
+    802081c0:	cab9                	beqz	a3,80208216 <virtio_disk_intr+0x88>
     int id = disk.used->elems[disk.used_idx].id;
 
     if(disk.info[id].status != 0)
-    80208202:	00030917          	auipc	s2,0x30
-    80208206:	dfe90913          	addi	s2,s2,-514 # 80238000 <disk>
+    802081c2:	00030917          	auipc	s2,0x30
+    802081c6:	e3e90913          	addi	s2,s2,-450 # 80238000 <disk>
       panic("virtio_disk_intr status");
     
     disk.info[id].b->disk = 0;   // disk is done with buf
     wakeup(disk.info[id].b);
 
     disk.used_idx = (disk.used_idx + 1) % NUM;
-    8020820a:	00032497          	auipc	s1,0x32
-    8020820e:	df648493          	addi	s1,s1,-522 # 8023a000 <disk+0x2000>
+    802081ca:	00032497          	auipc	s1,0x32
+    802081ce:	e3648493          	addi	s1,s1,-458 # 8023a000 <disk+0x2000>
     int id = disk.used->elems[disk.used_idx].id;
-    80208212:	078e                	slli	a5,a5,0x3
-    80208214:	973e                	add	a4,a4,a5
-    80208216:	435c                	lw	a5,4(a4)
+    802081d2:	078e                	slli	a5,a5,0x3
+    802081d4:	973e                	add	a4,a4,a5
+    802081d6:	435c                	lw	a5,4(a4)
     if(disk.info[id].status != 0)
-    80208218:	20078713          	addi	a4,a5,512
-    8020821c:	0712                	slli	a4,a4,0x4
-    8020821e:	974a                	add	a4,a4,s2
-    80208220:	03074703          	lbu	a4,48(a4)
-    80208224:	e335                	bnez	a4,80208288 <virtio_disk_intr+0xba>
+    802081d8:	20078713          	addi	a4,a5,512
+    802081dc:	0712                	slli	a4,a4,0x4
+    802081de:	974a                	add	a4,a4,s2
+    802081e0:	03074703          	lbu	a4,48(a4)
+    802081e4:	e335                	bnez	a4,80208248 <virtio_disk_intr+0xba>
     disk.info[id].b->disk = 0;   // disk is done with buf
-    80208226:	20078793          	addi	a5,a5,512
-    8020822a:	0792                	slli	a5,a5,0x4
-    8020822c:	97ca                	add	a5,a5,s2
-    8020822e:	7798                	ld	a4,40(a5)
-    80208230:	00072223          	sw	zero,4(a4)
+    802081e6:	20078793          	addi	a5,a5,512
+    802081ea:	0792                	slli	a5,a5,0x4
+    802081ec:	97ca                	add	a5,a5,s2
+    802081ee:	7798                	ld	a4,40(a5)
+    802081f0:	00072223          	sw	zero,4(a4)
     wakeup(disk.info[id].b);
-    80208234:	7788                	ld	a0,40(a5)
-    80208236:	ffffa097          	auipc	ra,0xffffa
-    8020823a:	4ca080e7          	jalr	1226(ra) # 80202700 <wakeup>
+    802081f4:	7788                	ld	a0,40(a5)
+    802081f6:	ffffa097          	auipc	ra,0xffffa
+    802081fa:	504080e7          	jalr	1284(ra) # 802026fa <wakeup>
     disk.used_idx = (disk.used_idx + 1) % NUM;
-    8020823e:	0204d783          	lhu	a5,32(s1)
-    80208242:	2785                	addiw	a5,a5,1
-    80208244:	8b9d                	andi	a5,a5,7
-    80208246:	02f49023          	sh	a5,32(s1)
+    802081fe:	0204d783          	lhu	a5,32(s1)
+    80208202:	2785                	addiw	a5,a5,1
+    80208204:	8b9d                	andi	a5,a5,7
+    80208206:	02f49023          	sh	a5,32(s1)
   while((disk.used_idx % NUM) != (disk.used->id % NUM)){
-    8020824a:	6898                	ld	a4,16(s1)
-    8020824c:	00275683          	lhu	a3,2(a4)
-    80208250:	8a9d                	andi	a3,a3,7
-    80208252:	fcf690e3          	bne	a3,a5,80208212 <virtio_disk_intr+0x44>
+    8020820a:	6898                	ld	a4,16(s1)
+    8020820c:	00275683          	lhu	a3,2(a4)
+    80208210:	8a9d                	andi	a3,a3,7
+    80208212:	fcf690e3          	bne	a3,a5,802081d2 <virtio_disk_intr+0x44>
   }
   *R(VIRTIO_MMIO_INTERRUPT_ACK) = *R(VIRTIO_MMIO_INTERRUPT_STATUS) & 0x3;
-    80208256:	00003797          	auipc	a5,0x3
-    8020825a:	d8a7b783          	ld	a5,-630(a5) # 8020afe0 <digits+0xc60>
-    8020825e:	439c                	lw	a5,0(a5)
-    80208260:	8b8d                	andi	a5,a5,3
-    80208262:	00003717          	auipc	a4,0x3
-    80208266:	d8673703          	ld	a4,-634(a4) # 8020afe8 <digits+0xc68>
-    8020826a:	c31c                	sw	a5,0(a4)
+    80208216:	00003797          	auipc	a5,0x3
+    8020821a:	dc27b783          	ld	a5,-574(a5) # 8020afd8 <digits+0xc58>
+    8020821e:	439c                	lw	a5,0(a5)
+    80208220:	8b8d                	andi	a5,a5,3
+    80208222:	00003717          	auipc	a4,0x3
+    80208226:	dbe73703          	ld	a4,-578(a4) # 8020afe0 <digits+0xc60>
+    8020822a:	c31c                	sw	a5,0(a4)
 
   release(&disk.vdisk_lock);
-    8020826c:	00032517          	auipc	a0,0x32
-    80208270:	e3c50513          	addi	a0,a0,-452 # 8023a0a8 <disk+0x20a8>
-    80208274:	ffff8097          	auipc	ra,0xffff8
-    80208278:	4a6080e7          	jalr	1190(ra) # 8020071a <release>
+    8020822c:	00032517          	auipc	a0,0x32
+    80208230:	e7c50513          	addi	a0,a0,-388 # 8023a0a8 <disk+0x20a8>
+    80208234:	ffff8097          	auipc	ra,0xffff8
+    80208238:	4e6080e7          	jalr	1254(ra) # 8020071a <release>
 }
-    8020827c:	60e2                	ld	ra,24(sp)
-    8020827e:	6442                	ld	s0,16(sp)
-    80208280:	64a2                	ld	s1,8(sp)
-    80208282:	6902                	ld	s2,0(sp)
-    80208284:	6105                	addi	sp,sp,32
-    80208286:	8082                	ret
+    8020823c:	60e2                	ld	ra,24(sp)
+    8020823e:	6442                	ld	s0,16(sp)
+    80208240:	64a2                	ld	s1,8(sp)
+    80208242:	6902                	ld	s2,0(sp)
+    80208244:	6105                	addi	sp,sp,32
+    80208246:	8082                	ret
       panic("virtio_disk_intr status");
-    80208288:	00003517          	auipc	a0,0x3
-    8020828c:	ce050513          	addi	a0,a0,-800 # 8020af68 <digits+0xbe8>
-    80208290:	ffff8097          	auipc	ra,0xffff8
-    80208294:	eb4080e7          	jalr	-332(ra) # 80200144 <panic>
+    80208248:	00003517          	auipc	a0,0x3
+    8020824c:	d1850513          	addi	a0,a0,-744 # 8020af60 <digits+0xbe0>
+    80208250:	ffff8097          	auipc	ra,0xffff8
+    80208254:	ef4080e7          	jalr	-268(ra) # 80200144 <panic>
 	...
 
 0000000080209000 <_trampoline>:
diff --git a/target/kernel.sym b/target/kernel.sym
index 8e5d88937842628551884e969f00a72896c700d5..da0792506e0a63110e140862de6f4f1890f2df9a 100644
--- a/target/kernel.sym
+++ b/target/kernel.sym
@@ -37,7 +37,7 @@
 0000000000000000 swtch.o
 0000000000000000 trap.c
 0000000000000000 syscall.c
-00000000802030f0 argraw
+00000000802030f4 argraw
 000000008020c680 sysnames
 000000008020bd00 syscalls
 000000008022cd90 syscall_counts
@@ -48,22 +48,22 @@
 0000000000000000 pipe.c
 0000000000000000 exec.c
 0000000000000000 sysfile.c
-0000000080204bb0 argfd
-0000000080204c1a fdalloc
-0000000080204c5e create
+0000000080204bb4 argfd
+0000000080204c1e fdalloc
+0000000080204c62 create
 0000000000000000 kernelvec.o
 0000000000000000 timer.c
 0000000000000000 disk.c
 0000000000000000 fat32.c
-0000000080205f6e read_fat
-0000000080205fe4 alloc_clus
-0000000080206126 write_fat
-00000000802061a6 reloc_clus
-00000000802062ae rw_clus
-00000000802063fa eget
+0000000080205f2e read_fat
+0000000080205fa4 alloc_clus
+00000000802060e6 write_fat
+0000000080206166 reloc_clus
+000000008020626e rw_clus
+00000000802063ba eget
 0000000080232d18 ecache
-0000000080206508 read_entry_name
-00000000802076f0 lookup_path
+00000000802064c8 read_entry_name
+00000000802076b0 lookup_path
 000000008020d000 illegal.1
 000000008020d010 illegal.0
 0000000080232b88 fat
@@ -72,82 +72,82 @@
 0000000000000000 console.c
 0000000000000000 shutdown.c
 0000000000000000 virtio_disk.c
-0000000080207d3c free_desc
+0000000080207cfc free_desc
 0000000080238000 disk
 000000008020d018 _GLOBAL_OFFSET_TABLE_
-00000000802054ba sys_remove
-0000000080206e60 edup
+00000000802054be sys_remove
+0000000080206e20 edup
 0000000080200c68 mappages
 00000000802014a4 copyinstr
-00000000802079e2 consoleread
+00000000802079a2 consoleread
 00000000802008b4 safestrcpy
-0000000080204ed2 sys_close
-00000000802023dc yield
+0000000080204ed6 sys_close
+00000000802023d6 yield
 0000000080216028 kmem
-00000000802027da either_copyout
-0000000080205e6e timerinit
+00000000802027d4 either_copyout
+0000000080205e2e timerinit
 0000000080216180 proc
 00000000802016cc proc_kpagetable
-00000000802041ea fileread
+00000000802041ee fileread
 000000008020018e printf
-0000000080203742 sys_sbrk
+0000000080203746 sys_sbrk
 0000000080209000 trampoline
 0000000080216000 panicked
-0000000080206a96 emake
-00000000802078fa plic_claim
-00000000802052ae sys_dev
-00000000802078a0 plicinit
-0000000080207924 plic_complete
-0000000080202206 sched
+0000000080206a56 emake
+00000000802078ba plic_claim
+00000000802052b2 sys_dev
+0000000080207860 plicinit
+00000000802078e4 plic_complete
+0000000080202200 sched
 00000000802007be memmove
-00000000802033b8 syscall
-0000000080204d82 sys_dup3
+00000000802033bc syscall
+0000000080204d86 sys_dup3
 0000000080201a10 cpuid
-0000000080203600 sys_fork
+0000000080203604 sys_fork
 000000008022d250 bcache
-00000000802050b4 sys_mkdir
-0000000080207054 etrunc
-00000000802078b8 plicinithart
-0000000080201f7c reparent
-00000000802065f4 fat32_init
-0000000080207884 enameparent
-0000000080203388 argstr
+00000000802050b8 sys_mkdir
+0000000080207014 etrunc
+0000000080207878 plicinithart
+0000000080201f76 reparent
+00000000802065b4 fat32_init
+0000000080207844 enameparent
+000000008020338c argstr
 0000000080200f9e uvmdealloc
-0000000080203618 sys_clone
+000000008020361c sys_clone
 000000008020b000 sdata
-0000000080203ff4 filedup
-0000000080203b26 binit
+0000000080203ff8 filedup
+0000000080203b2a binit
 00000000802012b4 uvmclear
-0000000080206f8a eremove
-0000000080204e06 sys_read
+0000000080206f4a eremove
+0000000080204e0a sys_read
 0000000080200822 memcpy
 0000000080200cf6 kvmmap
 0000000080200440 kfree
 0000000080201a20 mycpu
-0000000080202a6c devintr
-00000000802067ba eread
+0000000080202a66 devintr
+000000008020677a eread
 000000008020b004 nextpid
-0000000080203f32 fileinit
+0000000080203f36 fileinit
 0000000080209090 userret
 0000000080200682 initlock
-00000000802069de formatname
+000000008020699e formatname
 00000000802012e6 copyout
-0000000080202418 sleep
-0000000080205bfe sys_munmap
+0000000080202412 sleep
+0000000080205bfa sys_munmap
 00000000802000b8 printstring
-0000000080205de0 kernelvec
+0000000080205da0 kernelvec
 000000008020d017 edata
-0000000080203158 sys_stat_syscall
+000000008020315c sys_stat_syscall
 0000000080200988 wcsncmp
-000000008020383c sys_kill
-000000008020451c pipeclose
-0000000080204f20 sys_fstat
-0000000080207954 consolewrite
+0000000080203840 sys_kill
+0000000080204520 pipeclose
+0000000080204f24 sys_fstat
+0000000080207914 consolewrite
 000000008020a000 rodata_start
-0000000080207866 ename
+0000000080207826 ename
 00000000802004c2 freerange
-0000000080205a94 sys_mmap
-00000000802070be elock
+0000000080205a98 sys_mmap
+000000008020707e elock
 0000000080200ae4 kvminithart
 000000008020100a uvmalloc
 0000000080200f14 uvminit
@@ -156,160 +156,160 @@
 0000000080201bbc proc_freepagetable
 0000000080201894 reg_info
 0000000080201b20 proc_pagetable
-000000008020378c sys_sleep
+0000000080203790 sys_sleep
 0000000080201672 kvmfree
-0000000080205f0a disk_init
-000000008020437c dirnext
-0000000080204160 filekstat
-0000000080203f8a filealloc
-0000000080202700 wakeup
-0000000080207dbc virtio_disk_init
+0000000080205eca disk_init
+0000000080204380 dirnext
+0000000080204164 filekstat
+0000000080203f8e filealloc
+00000000802026fa wakeup
+0000000080207d7c virtio_disk_init
 0000000080201a3c myproc
 0000000080200000 BASE_ADDRESS
-00000000802025b0 wait4
-0000000080205380 sys_readdir
+00000000802025aa wait4
+0000000080205384 sys_readdir
 0000000080200b08 walk
-0000000080204f6e sys_open
+0000000080204f72 sys_open
 00000000802000e4 backtrace
-0000000080207b38 consoleintr
-0000000080207afa consputc
-000000008020276a kill
+0000000080207af8 consoleintr
+0000000080207aba consputc
+0000000080202764 kill
 0000000080201ada allocpid
 00000000802013c4 copyin
 0000000080200910 wnstr
 000000008020116c uvmfree
 0000000080201372 copyout2
-00000000802042ac filewrite
+00000000802042b0 filewrite
 0000000080200942 snstr
-0000000080203304 argint
+0000000080203308 argint
 000000008020a000 srodata
 0000000080200e22 vmunmap
-00000000802038ea sys_times
-0000000080205810 sys_openat
-0000000080203aba sys_sched_yield
-00000000802038b2 sys_trace
-0000000080204776 exec
+00000000802038ee sys_times
+0000000080205814 sys_openat
+0000000080203abe sys_sched_yield
+00000000802038b6 sys_trace
+000000008020477a exec
 000000008020a000 etext
-0000000080204e6c sys_write
+0000000080204e70 sys_write
 000000008020071a release
-00000000802032d4 fetchstr
-0000000080202496 wait
-0000000080207142 eput
+00000000802032d8 fetchstr
+0000000080202490 wait
+0000000080207102 eput
 0000000080216000 boot_stack_top
-00000000802029ce usertrapret
-000000008020211c scheduler
-0000000080206a68 cal_checksum
+00000000802029c8 usertrapret
+0000000080202116 scheduler
+0000000080206a28 cal_checksum
 0000000080209000 _trampoline
 000000008023b000 kernel_end
-000000008020744c dirlookup
-00000000802036de sys_wait4
-0000000080204046 fileclose
-00000000802075aa ealloc
+000000008020740c dirlookup
+00000000802036e2 sys_wait4
+000000008020404a fileclose
+000000008020756a ealloc
 0000000080200bf0 kwalkaddr
 00000000802005c0 freemem_amount
-0000000080202b10 usertrap
+0000000080202b0a usertrap
 000000008020083a strncmp
 0000000080232b68 tickslock
-000000008020458c pipewrite
-0000000080205f56 disk_intr
+0000000080204590 pipewrite
+0000000080205f16 disk_intr
 0000000080200876 strncpy
 0000000080231bb0 ftable
-00000000802081ce virtio_disk_intr
-000000008020aff0 erodata
-0000000080204d30 sys_dup
+000000008020818e virtio_disk_intr
+000000008020afe8 erodata
+0000000080204d34 sys_dup
 0000000080201452 copyin2
 0000000080200144 panic
 000000008020e000 bss_start
 0000000080201a74 forkret
 000000008020050e kinit
 0000000080200784 memcmp
-0000000080202810 either_copyin
-0000000080201e64 fork
+000000008020280a either_copyin
+0000000080201e5e fork
 0000000080216078 cpus
-0000000080203e98 releasesleep
+0000000080203e9c releasesleep
 0000000080200000 _entry
 0000000080200698 holding
 00000000802006c6 acquire
-00000000802031ca sys_uname
+00000000802031ce sys_uname
 0000000080216000 sbss_clear
-00000000802039ea sys_nanosleep
+00000000802039ee sys_nanosleep
 000000008020b008 initcode
-0000000080202992 trapinithart
+000000008020298c trapinithart
 0000000080200762 memset
-0000000080203326 sys_test_proc
+000000008020332a sys_test_proc
 00000000802009e4 main
-0000000080203e42 acquiresleep
+0000000080203e46 acquiresleep
 0000000080209000 uservec
 0000000080200d2e kvminit
 00000000802015c4 kfreewalk
-0000000080203dcc bunpin
-0000000080203366 argaddr
+0000000080203dd0 bunpin
+000000008020336a argaddr
 0000000080200000 text_start
-0000000080207d20 sys_shutdown
-0000000080203ad4 sys_brk
-000000008020386e sys_uptime
+0000000080207ce0 sys_shutdown
+0000000080203ad8 sys_brk
+0000000080203872 sys_uptime
 000000008020b000 data_start
-00000000802053ce sys_getcwd
+00000000802053d2 sys_getcwd
 000000008020036e printfinit
 0000000080201732 vmprint
 0000000080200ee6 uvmcreate
-00000000802068b2 ewrite
-0000000080201de8 growproc
-0000000080203edc holdingsleep
+0000000080206872 ewrite
+0000000080201de2 growproc
+0000000080203ee0 holdingsleep
 0000000080201554 copyinstr2
-0000000080201d6c userinit
-0000000080203bc6 bread
-0000000080204690 piperead
+0000000080201d66 userinit
+0000000080203bca bread
+0000000080204694 piperead
 00000000802003a0 print_logo
 0000000080232b80 ticks
-0000000080207cca consoleinit
+0000000080207c8a consoleinit
 0000000080200bae walkaddr
-0000000080202e92 trapframedump
-0000000080202844 procdump
-0000000080203cf2 brelse
-000000008020323a sys_sysinfo
-0000000080205e96 set_next_timeout
-0000000080203470 sys_exec
+0000000080202e96 trapframedump
+000000008020283e procdump
+0000000080203cf6 brelse
+000000008020323e sys_sysinfo
+0000000080205e56 set_next_timeout
+0000000080203474 sys_exec
 0000000080200c46 kvmpa
-000000008020727a estat
-0000000080202928 swtch
+000000008020723a estat
+0000000080202922 swtch
 000000008023b000 ebss_clear
 00000000802005d6 push_off
-00000000802055de sys_rename
+00000000802055e2 sys_rename
 0000000080200622 pop_off
-0000000080203cb6 bwrite
-0000000080205ebc timer_tick
-0000000080205f3c disk_write
-00000000802022dc exit
+0000000080203cba bwrite
+0000000080205e7c timer_tick
+0000000080205efc disk_write
+00000000802022d6 exit
 0000000080201100 freewalk
-00000000802036ac sys_wait
-00000000802035b2 sys_exit
-0000000080203e08 initsleeplock
-00000000802070f4 eunlock
-0000000080203994 sys_gettimeofday
+00000000802036b0 sys_wait
+00000000802035b6 sys_exit
+0000000080203e0c initsleeplock
+00000000802070b4 eunlock
+0000000080203998 sys_gettimeofday
 0000000080216058 kernel_pagetable
-0000000080207f42 virtio_disk_rw
+0000000080207f02 virtio_disk_rw
 00000000802008e6 strlen
-0000000080205f22 disk_read
-00000000802051a2 sys_pipe
-0000000080201fe2 clone
+0000000080205ee2 disk_read
+00000000802051a6 sys_pipe
+0000000080201fdc clone
 000000008020e000 boot_stack
-00000000802028f8 procnum
+00000000802028f2 procnum
 00000000802009c0 strchr
-00000000802072c2 enext
+0000000080207282 enext
 0000000080201620 kvmfreeusr
 0000000080237380 cons
 000000008020055a kalloc
-0000000080203284 fetchaddr
+0000000080203288 fetchaddr
 0000000080231b10 devsw
-00000000802035e6 sys_getpid
-0000000080204442 pipealloc
-0000000080203978 sys_getppid
+00000000802035ea sys_getpid
+0000000080204446 pipealloc
+000000008020397c sys_getppid
 0000000080200000 kernel_start
-000000008020510e sys_chdir
-0000000080206ea4 eupdate
-0000000080202d92 kerneltrap
-0000000080203d90 bpin
+0000000080205112 sys_chdir
+0000000080206e64 eupdate
+0000000080202d96 kerneltrap
+0000000080203d94 bpin
 000000008020199a procinit
-00000000802040fc filestat
+0000000080204100 filestat
 0000000080216060 pid_lock