Mercurial > hg > Gears > Gears-xv6
changeset 1:b4cd5b4e571a
add uefi boot on qemu
author | kono |
---|---|
date | Thu, 18 Jan 2024 11:20:51 +0900 |
parents | 07bbca19ea77 |
children | 04d36d597077 |
files | xv6-aarch64/Makefile xv6-aarch64/kernel/kernel.asm xv6-aarch64/kernel/kernel.sym xv6-aarch64/kernel/spinlock.d |
diffstat | 4 files changed, 3 insertions(+), 7608 deletions(-) [+] |
line wrap: on
line diff
--- a/xv6-aarch64/Makefile Thu Jan 18 10:56:41 2024 +0900 +++ b/xv6-aarch64/Makefile Thu Jan 18 11:20:51 2024 +0900 @@ -167,3 +167,6 @@ @echo "*** Now run 'gdb' in another window." 1>&2 $(QEMU) $(QEMUOPTS) -S $(QEMUGDB) +uefi: $K/kernel fs.img + $(QEMU) -bios QEMU_EFI.fd fat:rw:EFI/BOOT/ $(QEMUOPTS) +
--- a/xv6-aarch64/kernel/kernel.asm Thu Jan 18 10:56:41 2024 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7324 +0,0 @@ - -kernel/kernel: file format elf64-littleaarch64 - - -Disassembly of section .text: - -ffffff8040000000 <_entry>: - // kernel.ld causes the following code to - // be placed at 0x40000000. -.section ".text" -.global _entry -_entry: - mrs x1, mpidr_el1 -ffffff8040000000: d53800a1 mrs x1, mpidr_el1 - and x1, x1, #0x3 -ffffff8040000004: 92400421 and x1, x1, #0x3 - cbz x1, entry // primary -ffffff8040000008: b4000041 cbz x1, ffffff8040000010 <entry> - b entryothers // secondary -ffffff804000000c: 14000034 b ffffff80400000dc <entryothers> - -ffffff8040000010 <entry>: - -entry: - // clear .bss - adrp x1, bss_start -ffffff8040000010: d0000041 adrp x1, ffffff804000a000 <l2kpgt> - ldr w2, =bss_size -ffffff8040000014: 18000982 ldr w2, ffffff8040000144 <psci_call+0x8> -1: - cbz w2, 2f -ffffff8040000018: 34000082 cbz w2, ffffff8040000028 <entry+0x18> - str xzr, [x1], #8 -ffffff804000001c: f800843f str xzr, [x1], #8 - sub w2, w2, #1 -ffffff8040000020: 51000442 sub w2, w2, #0x1 - b 1b -ffffff8040000024: 17fffffd b ffffff8040000018 <entry+0x8> - // map [0xffffff8040000000,VA(end)) to [0x40000000,PA(end)) - // memory type is normal. - - // Phase 1 - // map [0x40000000,PA(end)) to [0x40000000,PA(end)) - adrp x0, l2entrypgt -ffffff8040000028: 90000060 adrp x0, ffffff804000c000 <l2entrypgt> - - mov x1, #0x40000000 -ffffff804000002c: d2a80001 mov x1, #0x40000000 // #1073741824 - ldr x2, =V2P_WO(end)-1 -ffffff8040000030: 580008c2 ldr x2, ffffff8040000148 <psci_call+0xc> - - lsr x3, x1, #PXSHIFT(2) -ffffff8040000034: d355fc23 lsr x3, x1, #21 - and x3, x3, #PXMASK // PX(2, x1) -ffffff8040000038: 92402063 and x3, x3, #0x1ff - lsr x4, x2, #PXSHIFT(2) -ffffff804000003c: d355fc44 lsr x4, x2, #21 - and x4, x4, #PXMASK // PX(2, x2) -ffffff8040000040: 92402084 and x4, x4, #0x1ff - mov x5, #(PTE_AF | PTE_INDX(AI_NORMAL_NC_IDX) | PTE_VALID) // entry attr -ffffff8040000044: d28080a5 mov x5, #0x405 // #1029 - orr x6, x1, x5 // block entry -ffffff8040000048: aa050026 orr x6, x1, x5 - -ffffff804000004c <l2epgt_loop>: -l2epgt_loop: - str x6, [x0, x3, lsl #3] // l2entrypgt[l2idx] = block entry -ffffff804000004c: f8237806 str x6, [x0, x3, lsl #3] - add x3, x3, #1 // next index -ffffff8040000050: 91000463 add x3, x3, #0x1 - add x6, x6, #0x200000 // next block, block size is 2MB -ffffff8040000054: 914800c6 add x6, x6, #0x200, lsl #12 - cmp x3, x4 -ffffff8040000058: eb04007f cmp x3, x4 - b.ls l2epgt_loop // if start va idx <= end va idx -ffffff804000005c: 54ffff89 b.ls ffffff804000004c <l2epgt_loop> // b.plast - - adrp x0, l1entrypgt -ffffff8040000060: b0000060 adrp x0, ffffff804000d000 <l1entrypgt> - - lsr x3, x1, #PXSHIFT(1) -ffffff8040000064: d35efc23 lsr x3, x1, #30 - and x3, x3, #PXMASK // start va level1 index -ffffff8040000068: 92402063 and x3, x3, #0x1ff - - mov x4, #(PTE_TABLE | PTE_VALID) // entry attr -ffffff804000006c: d2800064 mov x4, #0x3 // #3 - adrp x5, l2entrypgt -ffffff8040000070: 90000065 adrp x5, ffffff804000c000 <l2entrypgt> - orr x6, x4, x5 // table entry -ffffff8040000074: aa050086 orr x6, x4, x5 - - str x6, [x0, x3, lsl #3] // l1entrypgt[l1idx] = table entry -ffffff8040000078: f8237806 str x6, [x0, x3, lsl #3] - - // Phase 2 - // map [0xffffff8040000000,VA(end)) to [0x40000000,PA(end)) - adrp x0, l2kpgt -ffffff804000007c: d0000040 adrp x0, ffffff804000a000 <l2kpgt> - - mov x1, #0x40000000 // start pa -ffffff8040000080: d2a80001 mov x1, #0x40000000 // #1073741824 - ldr x2, =V2P_WO(end)-1 // end pa -ffffff8040000084: 58000622 ldr x2, ffffff8040000148 <psci_call+0xc> - mov x3, #KERNBASE -ffffff8040000088: b25963e3 mov x3, #0xffffff8000000000 // #-549755813888 - add x4, x1, x3 // start va -ffffff804000008c: 8b030024 add x4, x1, x3 - add x5, x2, x3 // end va -ffffff8040000090: 8b030045 add x5, x2, x3 - - lsr x6, x4, #PXSHIFT(2) -ffffff8040000094: d355fc86 lsr x6, x4, #21 - and x6, x6, #PXMASK // x6 = PX(2,x4) -ffffff8040000098: 924020c6 and x6, x6, #0x1ff - lsr x7, x5, #PXSHIFT(2) -ffffff804000009c: d355fca7 lsr x7, x5, #21 - and x7, x7, #PXMASK // x7 = PX(2,x5) -ffffff80400000a0: 924020e7 and x7, x7, #0x1ff - mov x8, #(PTE_AF | PTE_INDX(AI_NORMAL_NC_IDX) | PTE_VALID) // entry attr -ffffff80400000a4: d28080a8 mov x8, #0x405 // #1029 - orr x9, x1, x8 // block entry -ffffff80400000a8: aa080029 orr x9, x1, x8 - -ffffff80400000ac <l2kpgt_loop>: -l2kpgt_loop: - str x9, [x0, x6, lsl #3] // l2entrypgt[l2idx] = block entry -ffffff80400000ac: f8267809 str x9, [x0, x6, lsl #3] - add x6, x6, #1 // next index -ffffff80400000b0: 910004c6 add x6, x6, #0x1 - add x9, x9, #0x200000 // next block, block size is 2MB -ffffff80400000b4: 91480129 add x9, x9, #0x200, lsl #12 - cmp x6, x7 -ffffff80400000b8: eb0700df cmp x6, x7 - b.ls l2kpgt_loop // if start va idx <= end va idx -ffffff80400000bc: 54ffff89 b.ls ffffff80400000ac <l2kpgt_loop> // b.plast - - adrp x0, l1kpgt -ffffff80400000c0: f0000040 adrp x0, ffffff804000b000 <l1kpgt> - - lsr x5, x4, #PXSHIFT(1) -ffffff80400000c4: d35efc85 lsr x5, x4, #30 - and x5, x5, #PXMASK // x5 = PX(1,x4) -ffffff80400000c8: 924020a5 and x5, x5, #0x1ff - - mov x6, #(PTE_TABLE | PTE_VALID) // entry attr -ffffff80400000cc: d2800066 mov x6, #0x3 // #3 - adrp x7, l2kpgt -ffffff80400000d0: d0000047 adrp x7, ffffff804000a000 <l2kpgt> - orr x8, x6, x7 // table entry -ffffff80400000d4: aa0700c8 orr x8, x6, x7 - - str x8, [x0, x5, lsl #3] // l1kpgt[l1idx] = table entry -ffffff80400000d8: f8257808 str x8, [x0, x5, lsl #3] - -ffffff80400000dc <entryothers>: - -entryothers: // secondary CPU starts here - // load pagetable - adrp x0, l1entrypgt -ffffff80400000dc: b0000060 adrp x0, ffffff804000d000 <l1entrypgt> - adrp x1, l1kpgt -ffffff80400000e0: f0000041 adrp x1, ffffff804000b000 <l1kpgt> - msr ttbr0_el1, x0 -ffffff80400000e4: d5182000 msr ttbr0_el1, x0 - msr ttbr1_el1, x1 -ffffff80400000e8: d5182021 msr ttbr1_el1, x1 - - // setup tcr - ldr x0, =(TCR_T0SZ(25)|TCR_T1SZ(25)|TCR_TG0(0)|TCR_TG1(2)|TCR_IPS(0)) -ffffff80400000ec: 58000320 ldr x0, ffffff8040000150 <psci_call+0x14> - msr tcr_el1, x0 -ffffff80400000f0: d5182040 msr tcr_el1, x0 - - // setup mair - ldr x1, =((MT_DEVICE_nGnRnE<<(8*AI_DEVICE_nGnRnE_IDX)) | (MT_NORMAL_NC<<(8*AI_NORMAL_NC_IDX))) -ffffff80400000f4: 58000321 ldr x1, ffffff8040000158 <psci_call+0x1c> - msr mair_el1, x1 -ffffff80400000f8: d518a201 msr mair_el1, x1 - - isb -ffffff80400000fc: d5033fdf isb - - ldr x1, =_start // x1 = VA(_start) -ffffff8040000100: 58000301 ldr x1, ffffff8040000160 <psci_call+0x24> - - // enable paging - mrs x0, sctlr_el1 -ffffff8040000104: d5381000 mrs x0, sctlr_el1 - orr x0, x0, #1 -ffffff8040000108: b2400000 orr x0, x0, #0x1 - msr sctlr_el1, x0 -ffffff804000010c: d5181000 msr sctlr_el1, x0 - - br x1 // jump to higher address (0xffffff8000000000~) -ffffff8040000110: d61f0020 br x1 - -ffffff8040000114 <_start>: - // set up a stack for C. - // stack0 is declared in start.c, - // with a 4096-byte stack per CPU. - // sp = stack0 + ((cpuid+1) * 4096) - // cpuid = mpidr_el1 & 0xff - ldr x0, =stack0 -ffffff8040000114: 580002a0 ldr x0, ffffff8040000168 <psci_call+0x2c> - mov x1, #1024*4 -ffffff8040000118: d2820001 mov x1, #0x1000 // #4096 - mrs x2, mpidr_el1 -ffffff804000011c: d53800a2 mrs x2, mpidr_el1 - and x2, x2, #0x3 -ffffff8040000120: 92400442 and x2, x2, #0x3 - add x2, x2, #1 -ffffff8040000124: 91000442 add x2, x2, #0x1 - mul x1, x1, x2 -ffffff8040000128: 9b027c21 mul x1, x1, x2 - add x0, x0, x1 -ffffff804000012c: 8b010000 add x0, x0, x1 - mov sp, x0 -ffffff8040000130: 9100001f mov sp, x0 - // jump to main() - b main -ffffff8040000134: 14000349 b ffffff8040000e58 <main> - - b . // spin -ffffff8040000138: 14000000 b ffffff8040000138 <_start+0x24> - -ffffff804000013c <psci_call>: - -.global psci_call -psci_call: - hvc #0 -ffffff804000013c: d4000002 hvc #0x0 - ret -ffffff8040000140: d65f03c0 ret -ffffff8040000144: 00004202 .word 0x00004202 -ffffff8040000148: 4002b00f .word 0x4002b00f -ffffff804000014c: 00000000 .word 0x00000000 -ffffff8040000150: 80190019 .word 0x80190019 -ffffff8040000154: 00000000 .word 0x00000000 -ffffff8040000158: 00004400 .word 0x00004400 -ffffff804000015c: 00000000 .word 0x00000000 -ffffff8040000160: 40000114 .word 0x40000114 -ffffff8040000164: ffffff80 .word 0xffffff80 -ffffff8040000168: 4000e000 .word 0x4000e000 -ffffff804000016c: ffffff80 .word 0xffffff80 - -ffffff8040000170 <start>: -ffffff8040000170: 1400033a b ffffff8040000e58 <main> - -ffffff8040000174 <consolewrite>: -ffffff8040000174: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff8040000178: 910003fd mov x29, sp -ffffff804000017c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000180: 2a0203f4 mov w20, w2 -ffffff8040000184: d2800013 mov x19, #0x0 // #0 -ffffff8040000188: a9025bf5 stp x21, x22, [sp, #32] -ffffff804000018c: 2a0003f5 mov w21, w0 -ffffff8040000190: aa0103f6 mov x22, x1 -ffffff8040000194: f9001bf7 str x23, [sp, #48] -ffffff8040000198: 6b13029f cmp w20, w19 -ffffff804000019c: 2a1303f7 mov w23, w19 -ffffff80400001a0: 540000ec b.gt ffffff80400001bc <consolewrite+0x48> -ffffff80400001a4: 2a1703e0 mov w0, w23 -ffffff80400001a8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400001ac: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400001b0: f9401bf7 ldr x23, [sp, #48] -ffffff80400001b4: a8c57bfd ldp x29, x30, [sp], #80 -ffffff80400001b8: d65f03c0 ret -ffffff80400001bc: 8b1302c2 add x2, x22, x19 -ffffff80400001c0: d2800023 mov x3, #0x1 // #1 -ffffff80400001c4: 2a1503e1 mov w1, w21 -ffffff80400001c8: 91013fe0 add x0, sp, #0x4f -ffffff80400001cc: 940008aa bl ffffff8040002474 <either_copyin> -ffffff80400001d0: 3100041f cmn w0, #0x1 -ffffff80400001d4: 91000673 add x19, x19, #0x1 -ffffff80400001d8: 54fffe60 b.eq ffffff80400001a4 <consolewrite+0x30> // b.none -ffffff80400001dc: 39413fe0 ldrb w0, [sp, #79] -ffffff80400001e0: 940001c3 bl ffffff80400008ec <uartputc> -ffffff80400001e4: 17ffffed b ffffff8040000198 <consolewrite+0x24> - -ffffff80400001e8 <consoleread>: -ffffff80400001e8: a9ba7bfd stp x29, x30, [sp, #-96]! -ffffff80400001ec: 910003fd mov x29, sp -ffffff80400001f0: a90153f3 stp x19, x20, [sp, #16] -ffffff80400001f4: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff80400001f8: 91000273 add x19, x19, #0x0 -ffffff80400001fc: 2a0203f4 mov w20, w2 -ffffff8040000200: a90363f7 stp x23, x24, [sp, #48] -ffffff8040000204: 2a0003f7 mov w23, w0 -ffffff8040000208: aa1303e0 mov x0, x19 -ffffff804000020c: f90023f9 str x25, [sp, #64] -ffffff8040000210: 91026279 add x25, x19, #0x98 -ffffff8040000214: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040000218: aa0103f6 mov x22, x1 -ffffff804000021c: 2a0203f5 mov w21, w2 -ffffff8040000220: 94000278 bl ffffff8040000c00 <acquire> -ffffff8040000224: 7100029f cmp w20, #0x0 -ffffff8040000228: 5400022c b.gt ffffff804000026c <consoleread+0x84> -ffffff804000022c: 1400001d b ffffff80400002a0 <consoleread+0xb8> -ffffff8040000230: 9400064f bl ffffff8040001b6c <myproc> -ffffff8040000234: b9402800 ldr w0, [x0, #40] -ffffff8040000238: 34000140 cbz w0, ffffff8040000260 <consoleread+0x78> -ffffff804000023c: aa1303e0 mov x0, x19 -ffffff8040000240: 9400029b bl ffffff8040000cac <release> -ffffff8040000244: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040000248: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000024c: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040000250: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040000254: f94023f9 ldr x25, [sp, #64] -ffffff8040000258: a8c67bfd ldp x29, x30, [sp], #96 -ffffff804000025c: d65f03c0 ret -ffffff8040000260: aa1303e1 mov x1, x19 -ffffff8040000264: aa1903e0 mov x0, x25 -ffffff8040000268: 94000788 bl ffffff8040002088 <sleep> -ffffff804000026c: 29530261 ldp w1, w0, [x19, #152] -ffffff8040000270: 6b00003f cmp w1, w0 -ffffff8040000274: 54fffde0 b.eq ffffff8040000230 <consoleread+0x48> // b.none -ffffff8040000278: 11000420 add w0, w1, #0x1 -ffffff804000027c: b9009a60 str w0, [x19, #152] -ffffff8040000280: 92401820 and x0, x1, #0x7f -ffffff8040000284: 8b000260 add x0, x19, x0 -ffffff8040000288: 39406018 ldrb w24, [x0, #24] -ffffff804000028c: 7100131f cmp w24, #0x4 -ffffff8040000290: 54000101 b.ne ffffff80400002b0 <consoleread+0xc8> // b.any -ffffff8040000294: 6b15029f cmp w20, w21 -ffffff8040000298: 54000042 b.cs ffffff80400002a0 <consoleread+0xb8> // b.hs, b.nlast -ffffff804000029c: b9009a61 str w1, [x19, #152] -ffffff80400002a0: aa1303e0 mov x0, x19 -ffffff80400002a4: 94000282 bl ffffff8040000cac <release> -ffffff80400002a8: 4b1402a0 sub w0, w21, w20 -ffffff80400002ac: 17ffffe7 b ffffff8040000248 <consoleread+0x60> -ffffff80400002b0: d2800023 mov x3, #0x1 // #1 -ffffff80400002b4: 91017fe2 add x2, sp, #0x5f -ffffff80400002b8: 39017ff8 strb w24, [sp, #95] -ffffff80400002bc: aa1603e1 mov x1, x22 -ffffff80400002c0: 2a1703e0 mov w0, w23 -ffffff80400002c4: 94000851 bl ffffff8040002408 <either_copyout> -ffffff80400002c8: 3100041f cmn w0, #0x1 -ffffff80400002cc: 54fffea0 b.eq ffffff80400002a0 <consoleread+0xb8> // b.none -ffffff80400002d0: 71002b1f cmp w24, #0xa -ffffff80400002d4: 910006d6 add x22, x22, #0x1 -ffffff80400002d8: 51000694 sub w20, w20, #0x1 -ffffff80400002dc: 54fffa41 b.ne ffffff8040000224 <consoleread+0x3c> // b.any -ffffff80400002e0: 17fffff0 b ffffff80400002a0 <consoleread+0xb8> - -ffffff80400002e4 <consputc.part.0>: -ffffff80400002e4: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff80400002e8: 52800100 mov w0, #0x8 // #8 -ffffff80400002ec: 910003fd mov x29, sp -ffffff80400002f0: 9400014b bl ffffff804000081c <uartputc_sync> -ffffff80400002f4: 52800400 mov w0, #0x20 // #32 -ffffff80400002f8: 94000149 bl ffffff804000081c <uartputc_sync> -ffffff80400002fc: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040000300: 52800100 mov w0, #0x8 // #8 -ffffff8040000304: 14000146 b ffffff804000081c <uartputc_sync> - -ffffff8040000308 <consputc>: -ffffff8040000308: 7104001f cmp w0, #0x100 -ffffff804000030c: 54000041 b.ne ffffff8040000314 <consputc+0xc> // b.any -ffffff8040000310: 17fffff5 b ffffff80400002e4 <consputc.part.0> -ffffff8040000314: 14000142 b ffffff804000081c <uartputc_sync> - -ffffff8040000318 <consoleintr>: -ffffff8040000318: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff804000031c: 910003fd mov x29, sp -ffffff8040000320: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000324: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040000328: 91000273 add x19, x19, #0x0 -ffffff804000032c: 2a0003f4 mov w20, w0 -ffffff8040000330: aa1303e0 mov x0, x19 -ffffff8040000334: 94000233 bl ffffff8040000c00 <acquire> -ffffff8040000338: 7100569f cmp w20, #0x15 -ffffff804000033c: 54000580 b.eq ffffff80400003ec <consoleintr+0xd4> // b.none -ffffff8040000340: 540000ec b.gt ffffff804000035c <consoleintr+0x44> -ffffff8040000344: 7100229f cmp w20, #0x8 -ffffff8040000348: 54000660 b.eq ffffff8040000414 <consoleintr+0xfc> // b.none -ffffff804000034c: 7100429f cmp w20, #0x10 -ffffff8040000350: 54000400 b.eq ffffff80400003d0 <consoleintr+0xb8> // b.none -ffffff8040000354: 34000414 cbz w20, ffffff80400003d4 <consoleintr+0xbc> -ffffff8040000358: 14000003 b ffffff8040000364 <consoleintr+0x4c> -ffffff804000035c: 7101fe9f cmp w20, #0x7f -ffffff8040000360: 540005a0 b.eq ffffff8040000414 <consoleintr+0xfc> // b.none -ffffff8040000364: b9409a61 ldr w1, [x19, #152] -ffffff8040000368: b940a260 ldr w0, [x19, #160] -ffffff804000036c: 4b010000 sub w0, w0, w1 -ffffff8040000370: 7101fc1f cmp w0, #0x7f -ffffff8040000374: 54000308 b.hi ffffff80400003d4 <consoleintr+0xbc> // b.pmore -ffffff8040000378: 52800140 mov w0, #0xa // #10 -ffffff804000037c: 7100369f cmp w20, #0xd -ffffff8040000380: 1a801294 csel w20, w20, w0, ne // ne = any -ffffff8040000384: 2a1403e0 mov w0, w20 -ffffff8040000388: 97ffffe0 bl ffffff8040000308 <consputc> -ffffff804000038c: b940a260 ldr w0, [x19, #160] -ffffff8040000390: 71002a9f cmp w20, #0xa -ffffff8040000394: 7a441a84 ccmp w20, #0x4, #0x4, ne // ne = any -ffffff8040000398: 11000401 add w1, w0, #0x1 -ffffff804000039c: 92401800 and x0, x0, #0x7f -ffffff80400003a0: 8b000260 add x0, x19, x0 -ffffff80400003a4: b900a261 str w1, [x19, #160] -ffffff80400003a8: 39006014 strb w20, [x0, #24] -ffffff80400003ac: 540000a0 b.eq ffffff80400003c0 <consoleintr+0xa8> // b.none -ffffff80400003b0: b9409a60 ldr w0, [x19, #152] -ffffff80400003b4: 11020000 add w0, w0, #0x80 -ffffff80400003b8: 6b00003f cmp w1, w0 -ffffff80400003bc: 540000c1 b.ne ffffff80400003d4 <consoleintr+0xbc> // b.any -ffffff80400003c0: 91026260 add x0, x19, #0x98 -ffffff80400003c4: b9009e61 str w1, [x19, #156] -ffffff80400003c8: 94000789 bl ffffff80400021ec <wakeup> -ffffff80400003cc: 14000002 b ffffff80400003d4 <consoleintr+0xbc> -ffffff80400003d0: 94000844 bl ffffff80400024e0 <procdump> -ffffff80400003d4: aa1303e0 mov x0, x19 -ffffff80400003d8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400003dc: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400003e0: 14000233 b ffffff8040000cac <release> -ffffff80400003e4: b900a260 str w0, [x19, #160] -ffffff80400003e8: 97ffffbf bl ffffff80400002e4 <consputc.part.0> -ffffff80400003ec: 29538261 ldp w1, w0, [x19, #156] -ffffff80400003f0: 6b01001f cmp w0, w1 -ffffff80400003f4: 54ffff00 b.eq ffffff80400003d4 <consoleintr+0xbc> // b.none -ffffff80400003f8: 51000400 sub w0, w0, #0x1 -ffffff80400003fc: 92401801 and x1, x0, #0x7f -ffffff8040000400: 8b010261 add x1, x19, x1 -ffffff8040000404: 39406021 ldrb w1, [x1, #24] -ffffff8040000408: 7100283f cmp w1, #0xa -ffffff804000040c: 54fffec1 b.ne ffffff80400003e4 <consoleintr+0xcc> // b.any -ffffff8040000410: 17fffff1 b ffffff80400003d4 <consoleintr+0xbc> -ffffff8040000414: 29538261 ldp w1, w0, [x19, #156] -ffffff8040000418: 6b01001f cmp w0, w1 -ffffff804000041c: 54fffdc0 b.eq ffffff80400003d4 <consoleintr+0xbc> // b.none -ffffff8040000420: 51000400 sub w0, w0, #0x1 -ffffff8040000424: b900a260 str w0, [x19, #160] -ffffff8040000428: 97ffffaf bl ffffff80400002e4 <consputc.part.0> -ffffff804000042c: 17ffffea b ffffff80400003d4 <consoleintr+0xbc> - -ffffff8040000430 <consoleinit>: -ffffff8040000430: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040000434: f0000021 adrp x1, ffffff8040007000 <etext> -ffffff8040000438: 91000021 add x1, x1, #0x0 -ffffff804000043c: 910003fd mov x29, sp -ffffff8040000440: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000444: 91000000 add x0, x0, #0x0 -ffffff8040000448: 940001c9 bl ffffff8040000b6c <initlock> -ffffff804000044c: 940000de bl ffffff80400007c4 <uartinit> -ffffff8040000450: f0000120 adrp x0, ffffff8040027000 <ftable+0xe30> -ffffff8040000454: 91062000 add x0, x0, #0x188 -ffffff8040000458: 90000001 adrp x1, ffffff8040000000 <_entry> -ffffff804000045c: 9107a021 add x1, x1, #0x1e8 -ffffff8040000460: f9000801 str x1, [x0, #16] -ffffff8040000464: 90000001 adrp x1, ffffff8040000000 <_entry> -ffffff8040000468: 9105d021 add x1, x1, #0x174 -ffffff804000046c: f9000c01 str x1, [x0, #24] -ffffff8040000470: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040000474: d65f03c0 ret - -ffffff8040000478 <printint.constprop.0>: -ffffff8040000478: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff804000047c: 910003fd mov x29, sp -ffffff8040000480: f0000024 adrp x4, ffffff8040007000 <etext> -ffffff8040000484: 91008084 add x4, x4, #0x20 -ffffff8040000488: d2800002 mov x2, #0x0 // #0 -ffffff804000048c: 7100001f cmp w0, #0x0 -ffffff8040000490: 5a80a403 cneg w3, w0, lt // lt = tstop -ffffff8040000494: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000498: 910083f4 add x20, sp, #0x20 -ffffff804000049c: 1ac10865 udiv w5, w3, w1 -ffffff80400004a0: 2a0203e6 mov w6, w2 -ffffff80400004a4: 11000453 add w19, w2, #0x1 -ffffff80400004a8: 1b018ca7 msub w7, w5, w1, w3 -ffffff80400004ac: 38676887 ldrb w7, [x4, x7] -ffffff80400004b0: 38346847 strb w7, [x2, x20] -ffffff80400004b4: 2a0303e7 mov w7, w3 -ffffff80400004b8: 91000442 add x2, x2, #0x1 -ffffff80400004bc: 6b07003f cmp w1, w7 -ffffff80400004c0: 2a0503e3 mov w3, w5 -ffffff80400004c4: 54fffec9 b.ls ffffff804000049c <printint.constprop.0+0x24> // b.plast -ffffff80400004c8: 36f80080 tbz w0, #31, ffffff80400004d8 <printint.constprop.0+0x60> -ffffff80400004cc: 528005a0 mov w0, #0x2d // #45 -ffffff80400004d0: 3833ca80 strb w0, [x20, w19, sxtw] -ffffff80400004d4: 110008d3 add w19, w6, #0x2 -ffffff80400004d8: 93407e73 sxtw x19, w19 -ffffff80400004dc: d1000673 sub x19, x19, #0x1 -ffffff80400004e0: 3100067f cmn w19, #0x1 -ffffff80400004e4: 54000081 b.ne ffffff80400004f4 <printint.constprop.0+0x7c> // b.any -ffffff80400004e8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400004ec: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400004f0: d65f03c0 ret -ffffff80400004f4: 38736a80 ldrb w0, [x20, x19] -ffffff80400004f8: 97ffff84 bl ffffff8040000308 <consputc> -ffffff80400004fc: 17fffff8 b ffffff80400004dc <printint.constprop.0+0x64> - -ffffff8040000500 <panic>: -ffffff8040000500: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000504: 910003fd mov x29, sp -ffffff8040000508: a90153f3 stp x19, x20, [sp, #16] -ffffff804000050c: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040000510: 9102a273 add x19, x19, #0xa8 -ffffff8040000514: aa0003f4 mov x20, x0 -ffffff8040000518: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff804000051c: 91001400 add x0, x0, #0x5 -ffffff8040000520: b9001a7f str wzr, [x19, #24] -ffffff8040000524: 94000009 bl ffffff8040000548 <printf> -ffffff8040000528: aa1403e0 mov x0, x20 -ffffff804000052c: 94000007 bl ffffff8040000548 <printf> -ffffff8040000530: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000534: 910ccc00 add x0, x0, #0x333 -ffffff8040000538: 94000004 bl ffffff8040000548 <printf> -ffffff804000053c: 52800020 mov w0, #0x1 // #1 -ffffff8040000540: b9002260 str w0, [x19, #32] -ffffff8040000544: 14000000 b ffffff8040000544 <panic+0x44> - -ffffff8040000548 <printf>: -ffffff8040000548: a9b57bfd stp x29, x30, [sp, #-176]! -ffffff804000054c: 910003fd mov x29, sp -ffffff8040000550: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040000554: d00000b5 adrp x21, ffffff8040016000 <cons> -ffffff8040000558: 9102a2b5 add x21, x21, #0xa8 -ffffff804000055c: aa0003f6 mov x22, x0 -ffffff8040000560: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000564: a90363f7 stp x23, x24, [sp, #48] -ffffff8040000568: b9401ab8 ldr w24, [x21, #24] -ffffff804000056c: f90023f9 str x25, [sp, #64] -ffffff8040000570: a9078be1 stp x1, x2, [sp, #120] -ffffff8040000574: a90893e3 stp x3, x4, [sp, #136] -ffffff8040000578: a9099be5 stp x5, x6, [sp, #152] -ffffff804000057c: f90057e7 str x7, [sp, #168] -ffffff8040000580: 34000078 cbz w24, ffffff804000058c <printf+0x44> -ffffff8040000584: aa1503e0 mov x0, x21 -ffffff8040000588: 9400019e bl ffffff8040000c00 <acquire> -ffffff804000058c: b5000096 cbnz x22, ffffff804000059c <printf+0x54> -ffffff8040000590: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000594: 91005000 add x0, x0, #0x14 -ffffff8040000598: 97ffffda bl ffffff8040000500 <panic> -ffffff804000059c: 9102c3e0 add x0, sp, #0xb0 -ffffff80400005a0: f0000037 adrp x23, ffffff8040007000 <etext> -ffffff80400005a4: 910082f7 add x23, x23, #0x20 -ffffff80400005a8: 52800014 mov w20, #0x0 // #0 -ffffff80400005ac: b9006fff str wzr, [sp, #108] -ffffff80400005b0: a90503e0 stp x0, x0, [sp, #80] -ffffff80400005b4: 9101c3e0 add x0, sp, #0x70 -ffffff80400005b8: f90033e0 str x0, [sp, #96] -ffffff80400005bc: 128006e0 mov w0, #0xffffffc8 // #-56 -ffffff80400005c0: b9006be0 str w0, [sp, #104] -ffffff80400005c4: 3874cac0 ldrb w0, [x22, w20, sxtw] -ffffff80400005c8: 35000140 cbnz w0, ffffff80400005f0 <printf+0xa8> -ffffff80400005cc: 34000078 cbz w24, ffffff80400005d8 <printf+0x90> -ffffff80400005d0: aa1503e0 mov x0, x21 -ffffff80400005d4: 940001b6 bl ffffff8040000cac <release> -ffffff80400005d8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400005dc: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400005e0: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400005e4: f94023f9 ldr x25, [sp, #64] -ffffff80400005e8: a8cb7bfd ldp x29, x30, [sp], #176 -ffffff80400005ec: d65f03c0 ret -ffffff80400005f0: 7100941f cmp w0, #0x25 -ffffff80400005f4: 54000060 b.eq ffffff8040000600 <printf+0xb8> // b.none -ffffff80400005f8: 97ffff44 bl ffffff8040000308 <consputc> -ffffff80400005fc: 14000024 b ffffff804000068c <printf+0x144> -ffffff8040000600: 11000694 add w20, w20, #0x1 -ffffff8040000604: 3874cad3 ldrb w19, [x22, w20, sxtw] -ffffff8040000608: 34fffe33 cbz w19, ffffff80400005cc <printf+0x84> -ffffff804000060c: 7101c27f cmp w19, #0x70 -ffffff8040000610: 540005e0 b.eq ffffff80400006cc <printf+0x184> // b.none -ffffff8040000614: 54000128 b.hi ffffff8040000638 <printf+0xf0> // b.pmore -ffffff8040000618: 7100967f cmp w19, #0x25 -ffffff804000061c: 540000a0 b.eq ffffff8040000630 <printf+0xe8> // b.none -ffffff8040000620: 7101927f cmp w19, #0x64 -ffffff8040000624: 54000220 b.eq ffffff8040000668 <printf+0x120> // b.none -ffffff8040000628: 528004a0 mov w0, #0x25 // #37 -ffffff804000062c: 97ffff37 bl ffffff8040000308 <consputc> -ffffff8040000630: 2a1303e0 mov w0, w19 -ffffff8040000634: 17fffff1 b ffffff80400005f8 <printf+0xb0> -ffffff8040000638: 7101ce7f cmp w19, #0x73 -ffffff804000063c: 540007c0 b.eq ffffff8040000734 <printf+0x1ec> // b.none -ffffff8040000640: 7101e27f cmp w19, #0x78 -ffffff8040000644: 54ffff21 b.ne ffffff8040000628 <printf+0xe0> // b.any -ffffff8040000648: b9406be1 ldr w1, [sp, #104] -ffffff804000064c: f9402be0 ldr x0, [sp, #80] -ffffff8040000650: 37f80301 tbnz w1, #31, ffffff80400006b0 <printf+0x168> -ffffff8040000654: 91002c01 add x1, x0, #0xb -ffffff8040000658: 927df021 and x1, x1, #0xfffffffffffffff8 -ffffff804000065c: f9002be1 str x1, [sp, #80] -ffffff8040000660: 52800201 mov w1, #0x10 // #16 -ffffff8040000664: 14000008 b ffffff8040000684 <printf+0x13c> -ffffff8040000668: b9406be1 ldr w1, [sp, #104] -ffffff804000066c: f9402be0 ldr x0, [sp, #80] -ffffff8040000670: 37f80121 tbnz w1, #31, ffffff8040000694 <printf+0x14c> -ffffff8040000674: 91002c01 add x1, x0, #0xb -ffffff8040000678: 927df021 and x1, x1, #0xfffffffffffffff8 -ffffff804000067c: f9002be1 str x1, [sp, #80] -ffffff8040000680: 52800141 mov w1, #0xa // #10 -ffffff8040000684: b9400000 ldr w0, [x0] -ffffff8040000688: 97ffff7c bl ffffff8040000478 <printint.constprop.0> -ffffff804000068c: 11000694 add w20, w20, #0x1 -ffffff8040000690: 17ffffcd b ffffff80400005c4 <printf+0x7c> -ffffff8040000694: 11002022 add w2, w1, #0x8 -ffffff8040000698: 7100005f cmp w2, #0x0 -ffffff804000069c: b9006be2 str w2, [sp, #104] -ffffff80400006a0: 54fffeac b.gt ffffff8040000674 <printf+0x12c> -ffffff80400006a4: f9402fe0 ldr x0, [sp, #88] -ffffff80400006a8: 8b21c000 add x0, x0, w1, sxtw -ffffff80400006ac: 17fffff5 b ffffff8040000680 <printf+0x138> -ffffff80400006b0: 11002022 add w2, w1, #0x8 -ffffff80400006b4: 7100005f cmp w2, #0x0 -ffffff80400006b8: b9006be2 str w2, [sp, #104] -ffffff80400006bc: 54fffccc b.gt ffffff8040000654 <printf+0x10c> -ffffff80400006c0: f9402fe0 ldr x0, [sp, #88] -ffffff80400006c4: 8b21c000 add x0, x0, w1, sxtw -ffffff80400006c8: 17ffffe6 b ffffff8040000660 <printf+0x118> -ffffff80400006cc: b9406be1 ldr w1, [sp, #104] -ffffff80400006d0: f9402be0 ldr x0, [sp, #80] -ffffff80400006d4: 37f80221 tbnz w1, #31, ffffff8040000718 <printf+0x1d0> -ffffff80400006d8: 91003c01 add x1, x0, #0xf -ffffff80400006dc: 927df021 and x1, x1, #0xfffffffffffffff8 -ffffff80400006e0: f9002be1 str x1, [sp, #80] -ffffff80400006e4: f9400019 ldr x25, [x0] -ffffff80400006e8: 52800600 mov w0, #0x30 // #48 -ffffff80400006ec: 52800213 mov w19, #0x10 // #16 -ffffff80400006f0: 97ffff06 bl ffffff8040000308 <consputc> -ffffff80400006f4: 52800f00 mov w0, #0x78 // #120 -ffffff80400006f8: 97ffff04 bl ffffff8040000308 <consputc> -ffffff80400006fc: d37cff20 lsr x0, x25, #60 -ffffff8040000700: d37cef39 lsl x25, x25, #4 -ffffff8040000704: 38606ae0 ldrb w0, [x23, x0] -ffffff8040000708: 97ffff00 bl ffffff8040000308 <consputc> -ffffff804000070c: 71000673 subs w19, w19, #0x1 -ffffff8040000710: 54ffff61 b.ne ffffff80400006fc <printf+0x1b4> // b.any -ffffff8040000714: 17ffffde b ffffff804000068c <printf+0x144> -ffffff8040000718: 11002022 add w2, w1, #0x8 -ffffff804000071c: 7100005f cmp w2, #0x0 -ffffff8040000720: b9006be2 str w2, [sp, #104] -ffffff8040000724: 54fffdac b.gt ffffff80400006d8 <printf+0x190> -ffffff8040000728: f9402fe0 ldr x0, [sp, #88] -ffffff804000072c: 8b21c000 add x0, x0, w1, sxtw -ffffff8040000730: 17ffffed b ffffff80400006e4 <printf+0x19c> -ffffff8040000734: b9406be0 ldr w0, [sp, #104] -ffffff8040000738: f9402be1 ldr x1, [sp, #80] -ffffff804000073c: 37f801a0 tbnz w0, #31, ffffff8040000770 <printf+0x228> -ffffff8040000740: 91003c20 add x0, x1, #0xf -ffffff8040000744: 927df000 and x0, x0, #0xfffffffffffffff8 -ffffff8040000748: f9002be0 str x0, [sp, #80] -ffffff804000074c: f9400033 ldr x19, [x1] -ffffff8040000750: b5000073 cbnz x19, ffffff804000075c <printf+0x214> -ffffff8040000754: f0000033 adrp x19, ffffff8040007000 <etext> -ffffff8040000758: 91003673 add x19, x19, #0xd -ffffff804000075c: 39400260 ldrb w0, [x19] -ffffff8040000760: 34fff960 cbz w0, ffffff804000068c <printf+0x144> -ffffff8040000764: 91000673 add x19, x19, #0x1 -ffffff8040000768: 97fffee8 bl ffffff8040000308 <consputc> -ffffff804000076c: 17fffffc b ffffff804000075c <printf+0x214> -ffffff8040000770: 11002002 add w2, w0, #0x8 -ffffff8040000774: 7100005f cmp w2, #0x0 -ffffff8040000778: b9006be2 str w2, [sp, #104] -ffffff804000077c: 54fffe2c b.gt ffffff8040000740 <printf+0x1f8> -ffffff8040000780: f9402fe1 ldr x1, [sp, #88] -ffffff8040000784: 8b20c021 add x1, x1, w0, sxtw -ffffff8040000788: 17fffff1 b ffffff804000074c <printf+0x204> - -ffffff804000078c <printfinit>: -ffffff804000078c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000790: 910003fd mov x29, sp -ffffff8040000794: f0000021 adrp x1, ffffff8040007000 <etext> -ffffff8040000798: 91007421 add x1, x1, #0x1d -ffffff804000079c: f9000bf3 str x19, [sp, #16] -ffffff80400007a0: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff80400007a4: 9102a273 add x19, x19, #0xa8 -ffffff80400007a8: aa1303e0 mov x0, x19 -ffffff80400007ac: 940000f0 bl ffffff8040000b6c <initlock> -ffffff80400007b0: 52800020 mov w0, #0x1 // #1 -ffffff80400007b4: b9001a60 str w0, [x19, #24] -ffffff80400007b8: f9400bf3 ldr x19, [sp, #16] -ffffff80400007bc: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400007c0: d65f03c0 ret - -ffffff80400007c4 <uartinit>: -ffffff80400007c4: 929ff9e1 mov x1, #0xffffffffffff0030 // #-65488 -ffffff80400007c8: f2a12001 movk x1, #0x900, lsl #16 -ffffff80400007cc: f2dff001 movk x1, #0xff80, lsl #32 -ffffff80400007d0: 929ff8e0 mov x0, #0xffffffffffff0038 // #-65480 -ffffff80400007d4: f2a12000 movk x0, #0x900, lsl #16 -ffffff80400007d8: 929ffa62 mov x2, #0xffffffffffff002c // #-65492 -ffffff80400007dc: f2a12002 movk x2, #0x900, lsl #16 -ffffff80400007e0: f2dff000 movk x0, #0xff80, lsl #32 -ffffff80400007e4: b900003f str wzr, [x1] -ffffff80400007e8: f2dff002 movk x2, #0xff80, lsl #32 -ffffff80400007ec: 52800e03 mov w3, #0x70 // #112 -ffffff80400007f0: b900001f str wzr, [x0] -ffffff80400007f4: b9000043 str w3, [x2] -ffffff80400007f8: 52806022 mov w2, #0x301 // #769 -ffffff80400007fc: b9000022 str w2, [x1] -ffffff8040000800: 52800601 mov w1, #0x30 // #48 -ffffff8040000804: b9000001 str w1, [x0] -ffffff8040000808: f0000021 adrp x1, ffffff8040007000 <etext> -ffffff804000080c: 9100c421 add x1, x1, #0x31 -ffffff8040000810: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000814: 91034000 add x0, x0, #0xd0 -ffffff8040000818: 140000d5 b ffffff8040000b6c <initlock> - -ffffff804000081c <uartputc_sync>: -ffffff804000081c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000820: 910003fd mov x29, sp -ffffff8040000824: f9000bf3 str x19, [sp, #16] -ffffff8040000828: 2a0003f3 mov w19, w0 -ffffff804000082c: 940000e1 bl ffffff8040000bb0 <push_off> -ffffff8040000830: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000834: b940c800 ldr w0, [x0, #200] -ffffff8040000838: 35000180 cbnz w0, ffffff8040000868 <uartputc_sync+0x4c> -ffffff804000083c: 929ffce1 mov x1, #0xffffffffffff0018 // #-65512 -ffffff8040000840: f2a12001 movk x1, #0x900, lsl #16 -ffffff8040000844: f2dff001 movk x1, #0xff80, lsl #32 -ffffff8040000848: b9400020 ldr w0, [x1] -ffffff804000084c: 372fffe0 tbnz w0, #5, ffffff8040000848 <uartputc_sync+0x2c> -ffffff8040000850: b25963e0 mov x0, #0xffffff8000000000 // #-549755813888 -ffffff8040000854: f2a12000 movk x0, #0x900, lsl #16 -ffffff8040000858: b9000013 str w19, [x0] -ffffff804000085c: f9400bf3 ldr x19, [sp, #16] -ffffff8040000860: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000864: 140000fc b ffffff8040000c54 <pop_off> -ffffff8040000868: 14000000 b ffffff8040000868 <uartputc_sync+0x4c> - -ffffff804000086c <uartstart>: -ffffff804000086c: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040000870: 910003fd mov x29, sp -ffffff8040000874: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000878: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff804000087c: 91034273 add x19, x19, #0xd0 -ffffff8040000880: b25963f4 mov x20, #0xffffff8000000000 // #-549755813888 -ffffff8040000884: f2a12014 movk x20, #0x900, lsl #16 -ffffff8040000888: a90363f7 stp x23, x24, [sp, #48] -ffffff804000088c: 929ffcf8 mov x24, #0xffffffffffff0018 // #-65512 -ffffff8040000890: f2a12018 movk x24, #0x900, lsl #16 -ffffff8040000894: f2dff018 movk x24, #0xff80, lsl #32 -ffffff8040000898: 9100a277 add x23, x19, #0x28 -ffffff804000089c: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400008a0: 91006276 add x22, x19, #0x18 -ffffff80400008a4: a9418261 ldp x1, x0, [x19, #24] -ffffff80400008a8: eb01001f cmp x0, x1 -ffffff80400008ac: 54000160 b.eq ffffff80400008d8 <uartstart+0x6c> // b.none -ffffff80400008b0: b9400300 ldr w0, [x24] -ffffff80400008b4: 37280120 tbnz w0, #5, ffffff80400008d8 <uartstart+0x6c> -ffffff80400008b8: 92401020 and x0, x1, #0x1f -ffffff80400008bc: 91000421 add x1, x1, #0x1 -ffffff80400008c0: 38606af5 ldrb w21, [x23, x0] -ffffff80400008c4: aa1603e0 mov x0, x22 -ffffff80400008c8: f9000e61 str x1, [x19, #24] -ffffff80400008cc: 94000648 bl ffffff80400021ec <wakeup> -ffffff80400008d0: b9000295 str w21, [x20] -ffffff80400008d4: 17fffff4 b ffffff80400008a4 <uartstart+0x38> -ffffff80400008d8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400008dc: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400008e0: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400008e4: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400008e8: d65f03c0 ret - -ffffff80400008ec <uartputc>: -ffffff80400008ec: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff80400008f0: 910003fd mov x29, sp -ffffff80400008f4: a90153f3 stp x19, x20, [sp, #16] -ffffff80400008f8: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff80400008fc: 91034273 add x19, x19, #0xd0 -ffffff8040000900: 2a0003f4 mov w20, w0 -ffffff8040000904: aa1303e0 mov x0, x19 -ffffff8040000908: f90013f5 str x21, [sp, #32] -ffffff804000090c: 940000bd bl ffffff8040000c00 <acquire> -ffffff8040000910: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000914: b940c800 ldr w0, [x0, #200] -ffffff8040000918: 35000140 cbnz w0, ffffff8040000940 <uartputc+0x54> -ffffff804000091c: 91006275 add x21, x19, #0x18 -ffffff8040000920: a9418662 ldp x2, x1, [x19, #24] -ffffff8040000924: 91008042 add x2, x2, #0x20 -ffffff8040000928: eb01005f cmp x2, x1 -ffffff804000092c: 540000c1 b.ne ffffff8040000944 <uartputc+0x58> // b.any -ffffff8040000930: aa1303e1 mov x1, x19 -ffffff8040000934: aa1503e0 mov x0, x21 -ffffff8040000938: 940005d4 bl ffffff8040002088 <sleep> -ffffff804000093c: 17fffff9 b ffffff8040000920 <uartputc+0x34> -ffffff8040000940: 14000000 b ffffff8040000940 <uartputc+0x54> -ffffff8040000944: 9100a262 add x2, x19, #0x28 -ffffff8040000948: 92401020 and x0, x1, #0x1f -ffffff804000094c: 91000421 add x1, x1, #0x1 -ffffff8040000950: 38206854 strb w20, [x2, x0] -ffffff8040000954: f9001261 str x1, [x19, #32] -ffffff8040000958: 97ffffc5 bl ffffff804000086c <uartstart> -ffffff804000095c: aa1303e0 mov x0, x19 -ffffff8040000960: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040000964: f94013f5 ldr x21, [sp, #32] -ffffff8040000968: a8c37bfd ldp x29, x30, [sp], #48 -ffffff804000096c: 140000d0 b ffffff8040000cac <release> - -ffffff8040000970 <uartgetc>: -ffffff8040000970: 929ffce0 mov x0, #0xffffffffffff0018 // #-65512 -ffffff8040000974: f2a12000 movk x0, #0x900, lsl #16 -ffffff8040000978: f2dff000 movk x0, #0xff80, lsl #32 -ffffff804000097c: b9400000 ldr w0, [x0] -ffffff8040000980: 372000a0 tbnz w0, #4, ffffff8040000994 <uartgetc+0x24> -ffffff8040000984: b25963e0 mov x0, #0xffffff8000000000 // #-549755813888 -ffffff8040000988: f2a12000 movk x0, #0x900, lsl #16 -ffffff804000098c: b9400000 ldr w0, [x0] -ffffff8040000990: d65f03c0 ret -ffffff8040000994: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040000998: 17fffffe b ffffff8040000990 <uartgetc+0x20> - -ffffff804000099c <uartintr>: -ffffff804000099c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400009a0: 910003fd mov x29, sp -ffffff80400009a4: f9000bf3 str x19, [sp, #16] -ffffff80400009a8: 97fffff2 bl ffffff8040000970 <uartgetc> -ffffff80400009ac: 3100041f cmn w0, #0x1 -ffffff80400009b0: 54000060 b.eq ffffff80400009bc <uartintr+0x20> // b.none -ffffff80400009b4: 97fffe59 bl ffffff8040000318 <consoleintr> -ffffff80400009b8: 17fffffc b ffffff80400009a8 <uartintr+0xc> -ffffff80400009bc: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff80400009c0: 91034273 add x19, x19, #0xd0 -ffffff80400009c4: aa1303e0 mov x0, x19 -ffffff80400009c8: 9400008e bl ffffff8040000c00 <acquire> -ffffff80400009cc: 97ffffa8 bl ffffff804000086c <uartstart> -ffffff80400009d0: aa1303e0 mov x0, x19 -ffffff80400009d4: 940000b6 bl ffffff8040000cac <release> -ffffff80400009d8: 929ff760 mov x0, #0xffffffffffff0044 // #-65468 -ffffff80400009dc: f2a12000 movk x0, #0x900, lsl #16 -ffffff80400009e0: f9400bf3 ldr x19, [sp, #16] -ffffff80400009e4: f2dff000 movk x0, #0xff80, lsl #32 -ffffff80400009e8: 52800601 mov w1, #0x30 // #48 -ffffff80400009ec: b9000001 str w1, [x0] -ffffff80400009f0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400009f4: d65f03c0 ret - -ffffff80400009f8 <kfree>: -ffffff80400009f8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400009fc: 910003fd mov x29, sp -ffffff8040000a00: f2402c1f tst x0, #0xfff -ffffff8040000a04: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000a08: 54000141 b.ne ffffff8040000a30 <kfree+0x38> // b.any -ffffff8040000a0c: f0000141 adrp x1, ffffff804002b000 <gicv3> -ffffff8040000a10: 91004021 add x1, x1, #0x10 -ffffff8040000a14: eb01001f cmp x0, x1 -ffffff8040000a18: aa0003f3 mov x19, x0 -ffffff8040000a1c: 540000a3 b.cc ffffff8040000a30 <kfree+0x38> // b.lo, b.ul, b.last -ffffff8040000a20: 92b70001 mov x1, #0xffffffff47ffffff // #-3087007745 -ffffff8040000a24: f2dff001 movk x1, #0xff80, lsl #32 -ffffff8040000a28: eb01001f cmp x0, x1 -ffffff8040000a2c: 54000089 b.ls ffffff8040000a3c <kfree+0x44> // b.plast -ffffff8040000a30: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000a34: 9100d800 add x0, x0, #0x36 -ffffff8040000a38: 97fffeb2 bl ffffff8040000500 <panic> -ffffff8040000a3c: 52820002 mov w2, #0x1000 // #4096 -ffffff8040000a40: 52800021 mov w1, #0x1 // #1 -ffffff8040000a44: 940000a9 bl ffffff8040000ce8 <memset> -ffffff8040000a48: d00000b4 adrp x20, ffffff8040016000 <cons> -ffffff8040000a4c: 91046294 add x20, x20, #0x118 -ffffff8040000a50: aa1403e0 mov x0, x20 -ffffff8040000a54: 9400006b bl ffffff8040000c00 <acquire> -ffffff8040000a58: f9400e80 ldr x0, [x20, #24] -ffffff8040000a5c: f9000260 str x0, [x19] -ffffff8040000a60: aa1403e0 mov x0, x20 -ffffff8040000a64: f9000e93 str x19, [x20, #24] -ffffff8040000a68: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040000a6c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000a70: 1400008f b ffffff8040000cac <release> - -ffffff8040000a74 <freerange>: -ffffff8040000a74: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000a78: 913ffc00 add x0, x0, #0xfff -ffffff8040000a7c: 910003fd mov x29, sp -ffffff8040000a80: 9274cc00 and x0, x0, #0xfffffffffffff000 -ffffff8040000a84: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000a88: aa0103f3 mov x19, x1 -ffffff8040000a8c: 91400414 add x20, x0, #0x1, lsl #12 -ffffff8040000a90: eb13029f cmp x20, x19 -ffffff8040000a94: 54000089 b.ls ffffff8040000aa4 <freerange+0x30> // b.plast -ffffff8040000a98: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040000a9c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000aa0: d65f03c0 ret -ffffff8040000aa4: 97ffffd5 bl ffffff80400009f8 <kfree> -ffffff8040000aa8: aa1403e0 mov x0, x20 -ffffff8040000aac: 17fffff8 b ffffff8040000a8c <freerange+0x18> - -ffffff8040000ab0 <kinit1>: -ffffff8040000ab0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000ab4: 910003fd mov x29, sp -ffffff8040000ab8: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000abc: aa0003f3 mov x19, x0 -ffffff8040000ac0: aa0103f4 mov x20, x1 -ffffff8040000ac4: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000ac8: 91046000 add x0, x0, #0x118 -ffffff8040000acc: f0000021 adrp x1, ffffff8040007000 <etext> -ffffff8040000ad0: 9100f021 add x1, x1, #0x3c -ffffff8040000ad4: 94000026 bl ffffff8040000b6c <initlock> -ffffff8040000ad8: aa1403e1 mov x1, x20 -ffffff8040000adc: aa1303e0 mov x0, x19 -ffffff8040000ae0: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040000ae4: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000ae8: 17ffffe3 b ffffff8040000a74 <freerange> - -ffffff8040000aec <kinit2>: -ffffff8040000aec: 17ffffe2 b ffffff8040000a74 <freerange> - -ffffff8040000af0 <kalloc>: -ffffff8040000af0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000af4: 910003fd mov x29, sp -ffffff8040000af8: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000afc: d00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040000b00: 91046273 add x19, x19, #0x118 -ffffff8040000b04: aa1303e0 mov x0, x19 -ffffff8040000b08: 9400003e bl ffffff8040000c00 <acquire> -ffffff8040000b0c: f9400e74 ldr x20, [x19, #24] -ffffff8040000b10: b4000074 cbz x20, ffffff8040000b1c <kalloc+0x2c> -ffffff8040000b14: f9400280 ldr x0, [x20] -ffffff8040000b18: f9000e60 str x0, [x19, #24] -ffffff8040000b1c: aa1303e0 mov x0, x19 -ffffff8040000b20: 94000063 bl ffffff8040000cac <release> -ffffff8040000b24: b40000b4 cbz x20, ffffff8040000b38 <kalloc+0x48> -ffffff8040000b28: 52820002 mov w2, #0x1000 // #4096 -ffffff8040000b2c: 528000a1 mov w1, #0x5 // #5 -ffffff8040000b30: aa1403e0 mov x0, x20 -ffffff8040000b34: 9400006d bl ffffff8040000ce8 <memset> -ffffff8040000b38: aa1403e0 mov x0, x20 -ffffff8040000b3c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040000b40: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000b44: d65f03c0 ret - -ffffff8040000b48 <__aarch64_swp4_acq>: -ffffff8040000b48: d10043ff sub sp, sp, #0x10 -ffffff8040000b4c: 885ffc03 ldaxr w3, [x0] -ffffff8040000b50: 88027c01 stxr w2, w1, [x0] -ffffff8040000b54: 35ffffc2 cbnz w2, ffffff8040000b4c <__aarch64_swp4_acq+0x4> -ffffff8040000b58: b9000be3 str w3, [sp, #8] -ffffff8040000b5c: b9000fe2 str w2, [sp, #12] -ffffff8040000b60: b9400be0 ldr w0, [sp, #8] -ffffff8040000b64: 910043ff add sp, sp, #0x10 -ffffff8040000b68: d65f03c0 ret - -ffffff8040000b6c <initlock>: -ffffff8040000b6c: b900001f str wzr, [x0] -ffffff8040000b70: a900fc01 stp x1, xzr, [x0, #8] -ffffff8040000b74: d65f03c0 ret - -ffffff8040000b78 <holding>: -ffffff8040000b78: b9400001 ldr w1, [x0] -ffffff8040000b7c: 34000161 cbz w1, ffffff8040000ba8 <holding+0x30> -ffffff8040000b80: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000b84: 910003fd mov x29, sp -ffffff8040000b88: f9000bf3 str x19, [sp, #16] -ffffff8040000b8c: f9400813 ldr x19, [x0, #16] -ffffff8040000b90: 940003f0 bl ffffff8040001b50 <mycpu> -ffffff8040000b94: eb00027f cmp x19, x0 -ffffff8040000b98: 1a9f17e0 cset w0, eq // eq = none -ffffff8040000b9c: f9400bf3 ldr x19, [sp, #16] -ffffff8040000ba0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000ba4: d65f03c0 ret -ffffff8040000ba8: 52800000 mov w0, #0x0 // #0 -ffffff8040000bac: d65f03c0 ret - -ffffff8040000bb0 <push_off>: -ffffff8040000bb0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000bb4: 910003fd mov x29, sp -ffffff8040000bb8: f9000bf3 str x19, [sp, #16] -ffffff8040000bbc: d53b4233 mrs x19, daif -ffffff8040000bc0: d5034fdf msr daifset, #0xf -ffffff8040000bc4: 940003e3 bl ffffff8040001b50 <mycpu> -ffffff8040000bc8: b9407800 ldr w0, [x0, #120] -ffffff8040000bcc: 350000c0 cbnz w0, ffffff8040000be4 <push_off+0x34> -ffffff8040000bd0: d347fe73 lsr x19, x19, #7 -ffffff8040000bd4: d2400273 eor x19, x19, #0x1 -ffffff8040000bd8: 12000273 and w19, w19, #0x1 -ffffff8040000bdc: 940003dd bl ffffff8040001b50 <mycpu> -ffffff8040000be0: b9007c13 str w19, [x0, #124] -ffffff8040000be4: 940003db bl ffffff8040001b50 <mycpu> -ffffff8040000be8: b9407801 ldr w1, [x0, #120] -ffffff8040000bec: f9400bf3 ldr x19, [sp, #16] -ffffff8040000bf0: 11000421 add w1, w1, #0x1 -ffffff8040000bf4: b9007801 str w1, [x0, #120] -ffffff8040000bf8: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000bfc: d65f03c0 ret - -ffffff8040000c00 <acquire>: -ffffff8040000c00: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000c04: 910003fd mov x29, sp -ffffff8040000c08: f9000bf3 str x19, [sp, #16] -ffffff8040000c0c: aa0003f3 mov x19, x0 -ffffff8040000c10: 97ffffe8 bl ffffff8040000bb0 <push_off> -ffffff8040000c14: aa1303e0 mov x0, x19 -ffffff8040000c18: 97ffffd8 bl ffffff8040000b78 <holding> -ffffff8040000c1c: 34000080 cbz w0, ffffff8040000c2c <acquire+0x2c> -ffffff8040000c20: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000c24: 91010400 add x0, x0, #0x41 -ffffff8040000c28: 97fffe36 bl ffffff8040000500 <panic> -ffffff8040000c2c: aa1303e1 mov x1, x19 -ffffff8040000c30: 52800020 mov w0, #0x1 // #1 -ffffff8040000c34: 97ffffc5 bl ffffff8040000b48 <__aarch64_swp4_acq> -ffffff8040000c38: 35ffffa0 cbnz w0, ffffff8040000c2c <acquire+0x2c> -ffffff8040000c3c: d5033bbf dmb ish -ffffff8040000c40: 940003c4 bl ffffff8040001b50 <mycpu> -ffffff8040000c44: f9000a60 str x0, [x19, #16] -ffffff8040000c48: f9400bf3 ldr x19, [sp, #16] -ffffff8040000c4c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000c50: d65f03c0 ret - -ffffff8040000c54 <pop_off>: -ffffff8040000c54: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040000c58: 910003fd mov x29, sp -ffffff8040000c5c: 940003bd bl ffffff8040001b50 <mycpu> -ffffff8040000c60: d53b4221 mrs x1, daif -ffffff8040000c64: 37380081 tbnz w1, #7, ffffff8040000c74 <pop_off+0x20> -ffffff8040000c68: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000c6c: 91012400 add x0, x0, #0x49 -ffffff8040000c70: 97fffe24 bl ffffff8040000500 <panic> -ffffff8040000c74: b9407801 ldr w1, [x0, #120] -ffffff8040000c78: 7100003f cmp w1, #0x0 -ffffff8040000c7c: 5400008c b.gt ffffff8040000c8c <pop_off+0x38> -ffffff8040000c80: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000c84: 91018400 add x0, x0, #0x61 -ffffff8040000c88: 17fffffa b ffffff8040000c70 <pop_off+0x1c> -ffffff8040000c8c: 51000421 sub w1, w1, #0x1 -ffffff8040000c90: b9007801 str w1, [x0, #120] -ffffff8040000c94: 35000081 cbnz w1, ffffff8040000ca4 <pop_off+0x50> -ffffff8040000c98: b9407c00 ldr w0, [x0, #124] -ffffff8040000c9c: 34000040 cbz w0, ffffff8040000ca4 <pop_off+0x50> -ffffff8040000ca0: d5034fff msr daifclr, #0xf -ffffff8040000ca4: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040000ca8: d65f03c0 ret - -ffffff8040000cac <release>: -ffffff8040000cac: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040000cb0: 910003fd mov x29, sp -ffffff8040000cb4: f9000bf3 str x19, [sp, #16] -ffffff8040000cb8: aa0003f3 mov x19, x0 -ffffff8040000cbc: 97ffffaf bl ffffff8040000b78 <holding> -ffffff8040000cc0: 35000080 cbnz w0, ffffff8040000cd0 <release+0x24> -ffffff8040000cc4: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000cc8: 9101a400 add x0, x0, #0x69 -ffffff8040000ccc: 97fffe0d bl ffffff8040000500 <panic> -ffffff8040000cd0: f9000a7f str xzr, [x19, #16] -ffffff8040000cd4: d5033bbf dmb ish -ffffff8040000cd8: 889ffe7f stlr wzr, [x19] -ffffff8040000cdc: f9400bf3 ldr x19, [sp, #16] -ffffff8040000ce0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040000ce4: 17ffffdc b ffffff8040000c54 <pop_off> - -ffffff8040000ce8 <memset>: -ffffff8040000ce8: d2800003 mov x3, #0x0 // #0 -ffffff8040000cec: 6b03005f cmp w2, w3 -ffffff8040000cf0: 54000048 b.hi ffffff8040000cf8 <memset+0x10> // b.pmore -ffffff8040000cf4: d65f03c0 ret -ffffff8040000cf8: 38236801 strb w1, [x0, x3] -ffffff8040000cfc: 91000463 add x3, x3, #0x1 -ffffff8040000d00: 17fffffb b ffffff8040000cec <memset+0x4> - -ffffff8040000d04 <memcmp>: -ffffff8040000d04: 2a0203e2 mov w2, w2 -ffffff8040000d08: d2800004 mov x4, #0x0 // #0 -ffffff8040000d0c: d1000421 sub x1, x1, #0x1 -ffffff8040000d10: eb02009f cmp x4, x2 -ffffff8040000d14: 54000061 b.ne ffffff8040000d20 <memcmp+0x1c> // b.any -ffffff8040000d18: 52800000 mov w0, #0x0 // #0 -ffffff8040000d1c: 14000007 b ffffff8040000d38 <memcmp+0x34> -ffffff8040000d20: 38646803 ldrb w3, [x0, x4] -ffffff8040000d24: 91000484 add x4, x4, #0x1 -ffffff8040000d28: 38646825 ldrb w5, [x1, x4] -ffffff8040000d2c: 6b05007f cmp w3, w5 -ffffff8040000d30: 54ffff00 b.eq ffffff8040000d10 <memcmp+0xc> // b.none -ffffff8040000d34: 4b050060 sub w0, w3, w5 -ffffff8040000d38: d65f03c0 ret - -ffffff8040000d3c <memmove>: -ffffff8040000d3c: 34000142 cbz w2, ffffff8040000d64 <memmove+0x28> -ffffff8040000d40: eb00003f cmp x1, x0 -ffffff8040000d44: 2a0203e2 mov w2, w2 -ffffff8040000d48: 54000103 b.cc ffffff8040000d68 <memmove+0x2c> // b.lo, b.ul, b.last -ffffff8040000d4c: d2800003 mov x3, #0x0 // #0 -ffffff8040000d50: 38636824 ldrb w4, [x1, x3] -ffffff8040000d54: 38236804 strb w4, [x0, x3] -ffffff8040000d58: 91000463 add x3, x3, #0x1 -ffffff8040000d5c: eb03005f cmp x2, x3 -ffffff8040000d60: 54ffff81 b.ne ffffff8040000d50 <memmove+0x14> // b.any -ffffff8040000d64: d65f03c0 ret -ffffff8040000d68: 8b020023 add x3, x1, x2 -ffffff8040000d6c: eb00007f cmp x3, x0 -ffffff8040000d70: 54fffee9 b.ls ffffff8040000d4c <memmove+0x10> // b.plast -ffffff8040000d74: 8b020004 add x4, x0, x2 -ffffff8040000d78: d2800001 mov x1, #0x0 // #0 -ffffff8040000d7c: aa2203e2 mvn x2, x2 -ffffff8040000d80: d1000421 sub x1, x1, #0x1 -ffffff8040000d84: eb02003f cmp x1, x2 -ffffff8040000d88: 54fffee0 b.eq ffffff8040000d64 <memmove+0x28> // b.none -ffffff8040000d8c: 38616865 ldrb w5, [x3, x1] -ffffff8040000d90: 38216885 strb w5, [x4, x1] -ffffff8040000d94: 17fffffb b ffffff8040000d80 <memmove+0x44> - -ffffff8040000d98 <memcpy>: -ffffff8040000d98: 17ffffe9 b ffffff8040000d3c <memmove> - -ffffff8040000d9c <strncmp>: -ffffff8040000d9c: 2a0203e2 mov w2, w2 -ffffff8040000da0: d2800004 mov x4, #0x0 // #0 -ffffff8040000da4: eb04005f cmp x2, x4 -ffffff8040000da8: 54000120 b.eq ffffff8040000dcc <strncmp+0x30> // b.none -ffffff8040000dac: 38646803 ldrb w3, [x0, x4] -ffffff8040000db0: 38646825 ldrb w5, [x1, x4] -ffffff8040000db4: 34000083 cbz w3, ffffff8040000dc4 <strncmp+0x28> -ffffff8040000db8: 6b05007f cmp w3, w5 -ffffff8040000dbc: 91000484 add x4, x4, #0x1 -ffffff8040000dc0: 54ffff20 b.eq ffffff8040000da4 <strncmp+0x8> // b.none -ffffff8040000dc4: 4b050060 sub w0, w3, w5 -ffffff8040000dc8: 14000002 b ffffff8040000dd0 <strncmp+0x34> -ffffff8040000dcc: 52800000 mov w0, #0x0 // #0 -ffffff8040000dd0: d65f03c0 ret - -ffffff8040000dd4 <strncpy>: -ffffff8040000dd4: aa0003e3 mov x3, x0 -ffffff8040000dd8: 7100005f cmp w2, #0x0 -ffffff8040000ddc: 51000442 sub w2, w2, #0x1 -ffffff8040000de0: 540000cc b.gt ffffff8040000df8 <strncpy+0x24> -ffffff8040000de4: d2800001 mov x1, #0x0 // #0 -ffffff8040000de8: 4b010044 sub w4, w2, w1 -ffffff8040000dec: 7100009f cmp w4, #0x0 -ffffff8040000df0: 540000cc b.gt ffffff8040000e08 <strncpy+0x34> -ffffff8040000df4: d65f03c0 ret -ffffff8040000df8: 38401424 ldrb w4, [x1], #1 -ffffff8040000dfc: 38001464 strb w4, [x3], #1 -ffffff8040000e00: 35fffec4 cbnz w4, ffffff8040000dd8 <strncpy+0x4> -ffffff8040000e04: 17fffff8 b ffffff8040000de4 <strncpy+0x10> -ffffff8040000e08: 3821687f strb wzr, [x3, x1] -ffffff8040000e0c: 91000421 add x1, x1, #0x1 -ffffff8040000e10: 17fffff6 b ffffff8040000de8 <strncpy+0x14> - -ffffff8040000e14 <safestrcpy>: -ffffff8040000e14: 7100005f cmp w2, #0x0 -ffffff8040000e18: 5400010d b.le ffffff8040000e38 <safestrcpy+0x24> -ffffff8040000e1c: aa0003e3 mov x3, x0 -ffffff8040000e20: 71000442 subs w2, w2, #0x1 -ffffff8040000e24: 54000080 b.eq ffffff8040000e34 <safestrcpy+0x20> // b.none -ffffff8040000e28: 38401424 ldrb w4, [x1], #1 -ffffff8040000e2c: 38001464 strb w4, [x3], #1 -ffffff8040000e30: 35ffff84 cbnz w4, ffffff8040000e20 <safestrcpy+0xc> -ffffff8040000e34: 3900007f strb wzr, [x3] -ffffff8040000e38: d65f03c0 ret - -ffffff8040000e3c <strlen>: -ffffff8040000e3c: d2800001 mov x1, #0x0 // #0 -ffffff8040000e40: d1000402 sub x2, x0, #0x1 -ffffff8040000e44: 2a0103e0 mov w0, w1 -ffffff8040000e48: 91000421 add x1, x1, #0x1 -ffffff8040000e4c: 38616843 ldrb w3, [x2, x1] -ffffff8040000e50: 35ffffa3 cbnz w3, ffffff8040000e44 <strlen+0x8> -ffffff8040000e54: d65f03c0 ret - -ffffff8040000e58 <main>: -ffffff8040000e58: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040000e5c: 910003fd mov x29, sp -ffffff8040000e60: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000e64: f90013f5 str x21, [sp, #32] -ffffff8040000e68: d53800a0 mrs x0, mpidr_el1 -ffffff8040000e6c: 72001c1f tst w0, #0xff -ffffff8040000e70: 54000200 b.eq ffffff8040000eb0 <main+0x58> // b.none -ffffff8040000e74: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000e78: 9104e000 add x0, x0, #0x138 -ffffff8040000e7c: b9400001 ldr w1, [x0] -ffffff8040000e80: 34ffffe1 cbz w1, ffffff8040000e7c <main+0x24> -ffffff8040000e84: d5033bbf dmb ish -ffffff8040000e88: 94000046 bl ffffff8040000fa0 <kvminithart> -ffffff8040000e8c: d53800a1 mrs x1, mpidr_el1 -ffffff8040000e90: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000e94: 91022000 add x0, x0, #0x88 -ffffff8040000e98: 92401c21 and x1, x1, #0xff -ffffff8040000e9c: 97fffdab bl ffffff8040000548 <printf> -ffffff8040000ea0: 940005d1 bl ffffff80400025e4 <trapinithart> -ffffff8040000ea4: 9400167b bl ffffff8040006890 <gicv3inithart> -ffffff8040000ea8: 940014eb bl ffffff8040006254 <timerinit> -ffffff8040000eac: 14000037 b ffffff8040000f88 <main+0x130> -ffffff8040000eb0: 90000013 adrp x19, ffffff8040000000 <_entry> -ffffff8040000eb4: 91000273 add x19, x19, #0x0 -ffffff8040000eb8: d2c01000 mov x0, #0x8000000000 // #549755813888 -ffffff8040000ebc: d2800075 mov x21, #0x3 // #3 -ffffff8040000ec0: f2b88015 movk x21, #0xc400, lsl #16 -ffffff8040000ec4: 52800034 mov w20, #0x1 // #1 -ffffff8040000ec8: 8b000273 add x19, x19, x0 -ffffff8040000ecc: 2a1403e1 mov w1, w20 -ffffff8040000ed0: d2800003 mov x3, #0x0 // #0 -ffffff8040000ed4: aa1303e2 mov x2, x19 -ffffff8040000ed8: aa1503e0 mov x0, x21 -ffffff8040000edc: 11000694 add w20, w20, #0x1 -ffffff8040000ee0: 97fffc97 bl ffffff804000013c <psci_call> -ffffff8040000ee4: 7100229f cmp w20, #0x8 -ffffff8040000ee8: 54ffff21 b.ne ffffff8040000ecc <main+0x74> // b.any -ffffff8040000eec: d5033fdf isb -ffffff8040000ef0: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff8040000ef4: f2a80401 movk x1, #0x4020, lsl #16 -ffffff8040000ef8: f0000140 adrp x0, ffffff804002b000 <gicv3> -ffffff8040000efc: 91004000 add x0, x0, #0x10 -ffffff8040000f00: 97fffeec bl ffffff8040000ab0 <kinit1> -ffffff8040000f04: 94000125 bl ffffff8040001398 <kvminit> -ffffff8040000f08: 94000026 bl ffffff8040000fa0 <kvminithart> -ffffff8040000f0c: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff8040000f10: f2a90001 movk x1, #0x4800, lsl #16 -ffffff8040000f14: b25963e0 mov x0, #0xffffff8000000000 // #-549755813888 -ffffff8040000f18: f2a80400 movk x0, #0x4020, lsl #16 -ffffff8040000f1c: 97fffef4 bl ffffff8040000aec <kinit2> -ffffff8040000f20: f0000033 adrp x19, ffffff8040007000 <etext> -ffffff8040000f24: 910cce73 add x19, x19, #0x333 -ffffff8040000f28: 97fffd42 bl ffffff8040000430 <consoleinit> -ffffff8040000f2c: 97fffe18 bl ffffff804000078c <printfinit> -ffffff8040000f30: aa1303e0 mov x0, x19 -ffffff8040000f34: 97fffd85 bl ffffff8040000548 <printf> -ffffff8040000f38: f0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040000f3c: 9101c400 add x0, x0, #0x71 -ffffff8040000f40: 97fffd82 bl ffffff8040000548 <printf> -ffffff8040000f44: aa1303e0 mov x0, x19 -ffffff8040000f48: 97fffd80 bl ffffff8040000548 <printf> -ffffff8040000f4c: 940002d2 bl ffffff8040001a94 <procinit> -ffffff8040000f50: 940005a0 bl ffffff80400025d0 <trapinit> -ffffff8040000f54: 940005a4 bl ffffff80400025e4 <trapinithart> -ffffff8040000f58: 94001616 bl ffffff80400067b0 <gicv3init> -ffffff8040000f5c: 9400164d bl ffffff8040006890 <gicv3inithart> -ffffff8040000f60: 940014bd bl ffffff8040006254 <timerinit> -ffffff8040000f64: 9400073b bl ffffff8040002c50 <binit> -ffffff8040000f68: 940008c6 bl ffffff8040003280 <iinit> -ffffff8040000f6c: 94000c7d bl ffffff8040004160 <fileinit> -ffffff8040000f70: 940014e7 bl ffffff804000630c <virtio_disk_init> -ffffff8040000f74: 9400035f bl ffffff8040001cf0 <userinit> -ffffff8040000f78: d5033bbf dmb ish -ffffff8040000f7c: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000f80: 52800021 mov w1, #0x1 // #1 -ffffff8040000f84: b9013801 str w1, [x0, #312] -ffffff8040000f88: 940003d8 bl ffffff8040001ee8 <scheduler> - -ffffff8040000f8c <flush_tlb>: -ffffff8040000f8c: d5033a9f dsb ishst -ffffff8040000f90: d508831f tlbi vmalle1is -ffffff8040000f94: d5033b9f dsb ish -ffffff8040000f98: d5033fdf isb -ffffff8040000f9c: d65f03c0 ret - -ffffff8040000fa0 <kvminithart>: -ffffff8040000fa0: d00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040000fa4: d2c01001 mov x1, #0x8000000000 // #549755813888 -ffffff8040000fa8: f940a000 ldr x0, [x0, #320] -ffffff8040000fac: 8b010000 add x0, x0, x1 -ffffff8040000fb0: d5182020 msr ttbr1_el1, x0 -ffffff8040000fb4: d2800000 mov x0, #0x0 // #0 -ffffff8040000fb8: d5182000 msr ttbr0_el1, x0 -ffffff8040000fbc: 17fffff4 b ffffff8040000f8c <flush_tlb> - -ffffff8040000fc0 <walk>: -ffffff8040000fc0: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff8040000fc4: 910003fd mov x29, sp -ffffff8040000fc8: a90153f3 stp x19, x20, [sp, #16] -ffffff8040000fcc: aa0003f3 mov x19, x0 -ffffff8040000fd0: 92c00800 mov x0, #0xffffffbfffffffff // #-274877906945 -ffffff8040000fd4: eb00003f cmp x1, x0 -ffffff8040000fd8: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040000fdc: a90363f7 stp x23, x24, [sp, #48] -ffffff8040000fe0: f90023f9 str x25, [sp, #64] -ffffff8040000fe4: 540002a8 b.hi ffffff8040001038 <walk+0x78> // b.pmore -ffffff8040000fe8: aa0103f4 mov x20, x1 -ffffff8040000fec: 2a0203f5 mov w21, w2 -ffffff8040000ff0: 528003d9 mov w25, #0x1e // #30 -ffffff8040000ff4: d2c01016 mov x22, #0x8000000000 // #549755813888 -ffffff8040000ff8: b25963f7 mov x23, #0xffffff8000000000 // #-549755813888 -ffffff8040000ffc: 9ad92680 lsr x0, x20, x25 -ffffff8040001000: d37d2000 ubfiz x0, x0, #3, #9 -ffffff8040001004: 8b000278 add x24, x19, x0 -ffffff8040001008: f8606a73 ldr x19, [x19, x0] -ffffff804000100c: 92400660 and x0, x19, #0x3 -ffffff8040001010: f1000c1f cmp x0, #0x3 -ffffff8040001014: 54000181 b.ne ffffff8040001044 <walk+0x84> // b.any -ffffff8040001018: 92748e73 and x19, x19, #0xfffffffff000 -ffffff804000101c: 8b170273 add x19, x19, x23 -ffffff8040001020: 51002739 sub w25, w25, #0x9 -ffffff8040001024: 7100333f cmp w25, #0xc -ffffff8040001028: 54fffea1 b.ne ffffff8040000ffc <walk+0x3c> // b.any -ffffff804000102c: d34c5280 ubfx x0, x20, #12, #9 -ffffff8040001030: 8b000e60 add x0, x19, x0, lsl #3 -ffffff8040001034: 14000006 b ffffff804000104c <walk+0x8c> -ffffff8040001038: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff804000103c: 91029000 add x0, x0, #0xa4 -ffffff8040001040: 97fffd30 bl ffffff8040000500 <panic> -ffffff8040001044: 35000115 cbnz w21, ffffff8040001064 <walk+0xa4> -ffffff8040001048: d2800000 mov x0, #0x0 // #0 -ffffff804000104c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001050: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001054: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040001058: f94023f9 ldr x25, [sp, #64] -ffffff804000105c: a8c57bfd ldp x29, x30, [sp], #80 -ffffff8040001060: d65f03c0 ret -ffffff8040001064: 97fffea3 bl ffffff8040000af0 <kalloc> -ffffff8040001068: aa0003f3 mov x19, x0 -ffffff804000106c: b4fffee0 cbz x0, ffffff8040001048 <walk+0x88> -ffffff8040001070: 52820002 mov w2, #0x1000 // #4096 -ffffff8040001074: 52800001 mov w1, #0x0 // #0 -ffffff8040001078: 97ffff1c bl ffffff8040000ce8 <memset> -ffffff804000107c: 8b160260 add x0, x19, x22 -ffffff8040001080: 92748c00 and x0, x0, #0xfffffffff000 -ffffff8040001084: b2400400 orr x0, x0, #0x3 -ffffff8040001088: f9000300 str x0, [x24] -ffffff804000108c: 17ffffe5 b ffffff8040001020 <walk+0x60> - -ffffff8040001090 <uvmunmap.part.0>: -ffffff8040001090: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040001094: 910003fd mov x29, sp -ffffff8040001098: a9025bf5 stp x21, x22, [sp, #32] -ffffff804000109c: 8b023035 add x21, x1, x2, lsl #12 -ffffff80400010a0: aa0003f6 mov x22, x0 -ffffff80400010a4: a90153f3 stp x19, x20, [sp, #16] -ffffff80400010a8: aa0103f3 mov x19, x1 -ffffff80400010ac: a90363f7 stp x23, x24, [sp, #48] -ffffff80400010b0: 2a0303f7 mov w23, w3 -ffffff80400010b4: b25963f8 mov x24, #0xffffff8000000000 // #-549755813888 -ffffff80400010b8: eb15027f cmp x19, x21 -ffffff80400010bc: 540000c3 b.cc ffffff80400010d4 <uvmunmap.part.0+0x44> // b.lo, b.ul, b.last -ffffff80400010c0: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400010c4: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400010c8: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400010cc: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400010d0: d65f03c0 ret -ffffff80400010d4: 52800002 mov w2, #0x0 // #0 -ffffff80400010d8: aa1303e1 mov x1, x19 -ffffff80400010dc: aa1603e0 mov x0, x22 -ffffff80400010e0: 97ffffb8 bl ffffff8040000fc0 <walk> -ffffff80400010e4: aa0003f4 mov x20, x0 -ffffff80400010e8: b5000080 cbnz x0, ffffff80400010f8 <uvmunmap.part.0+0x68> -ffffff80400010ec: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400010f0: 91026800 add x0, x0, #0x9a -ffffff80400010f4: 97fffd03 bl ffffff8040000500 <panic> -ffffff80400010f8: f9400001 ldr x1, [x0] -ffffff80400010fc: 92400420 and x0, x1, #0x3 -ffffff8040001100: f1000c1f cmp x0, #0x3 -ffffff8040001104: 54000080 b.eq ffffff8040001114 <uvmunmap.part.0+0x84> // b.none -ffffff8040001108: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff804000110c: 9102a400 add x0, x0, #0xa9 -ffffff8040001110: 17fffff9 b ffffff80400010f4 <uvmunmap.part.0+0x64> -ffffff8040001114: 37500081 tbnz w1, #10, ffffff8040001124 <uvmunmap.part.0+0x94> -ffffff8040001118: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff804000111c: 9102f800 add x0, x0, #0xbe -ffffff8040001120: 17fffff5 b ffffff80400010f4 <uvmunmap.part.0+0x64> -ffffff8040001124: 34000097 cbz w23, ffffff8040001134 <uvmunmap.part.0+0xa4> -ffffff8040001128: 92748c21 and x1, x1, #0xfffffffff000 -ffffff804000112c: 8b180020 add x0, x1, x24 -ffffff8040001130: 97fffe32 bl ffffff80400009f8 <kfree> -ffffff8040001134: 91400673 add x19, x19, #0x1, lsl #12 -ffffff8040001138: f900029f str xzr, [x20] -ffffff804000113c: 17ffffdf b ffffff80400010b8 <uvmunmap.part.0+0x28> - -ffffff8040001140 <uva2ka>: -ffffff8040001140: 92c00802 mov x2, #0xffffffbfffffffff // #-274877906945 -ffffff8040001144: eb02003f cmp x1, x2 -ffffff8040001148: 540000c9 b.ls ffffff8040001160 <uva2ka+0x20> // b.plast -ffffff804000114c: d2800000 mov x0, #0x0 // #0 -ffffff8040001150: d65f03c0 ret -ffffff8040001154: d2800000 mov x0, #0x0 // #0 -ffffff8040001158: a8c17bfd ldp x29, x30, [sp], #16 -ffffff804000115c: d65f03c0 ret -ffffff8040001160: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040001164: 52800002 mov w2, #0x0 // #0 -ffffff8040001168: 910003fd mov x29, sp -ffffff804000116c: 97ffff95 bl ffffff8040000fc0 <walk> -ffffff8040001170: b4ffff20 cbz x0, ffffff8040001154 <uva2ka+0x14> -ffffff8040001174: f9400000 ldr x0, [x0] -ffffff8040001178: 92400401 and x1, x0, #0x3 -ffffff804000117c: f1000c3f cmp x1, #0x3 -ffffff8040001180: 54fffea1 b.ne ffffff8040001154 <uva2ka+0x14> // b.any -ffffff8040001184: d2808801 mov x1, #0x440 // #1088 -ffffff8040001188: 8a010001 and x1, x0, x1 -ffffff804000118c: f111003f cmp x1, #0x440 -ffffff8040001190: 54fffe21 b.ne ffffff8040001154 <uva2ka+0x14> // b.any -ffffff8040001194: f2748c00 ands x0, x0, #0xfffffffff000 -ffffff8040001198: 54fffde0 b.eq ffffff8040001154 <uva2ka+0x14> // b.none -ffffff804000119c: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff80400011a0: 8b010000 add x0, x0, x1 -ffffff80400011a4: 17ffffed b ffffff8040001158 <uva2ka+0x18> - -ffffff80400011a8 <mappages>: -ffffff80400011a8: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff80400011ac: 910003fd mov x29, sp -ffffff80400011b0: a90153f3 stp x19, x20, [sp, #16] -ffffff80400011b4: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400011b8: a90363f7 stp x23, x24, [sp, #48] -ffffff80400011bc: f90023f9 str x25, [sp, #64] -ffffff80400011c0: b5000082 cbnz x2, ffffff80400011d0 <mappages+0x28> -ffffff80400011c4: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400011c8: 91034c00 add x0, x0, #0xd3 -ffffff80400011cc: 97fffccd bl ffffff8040000500 <panic> -ffffff80400011d0: aa0003f7 mov x23, x0 -ffffff80400011d4: 12b70000 mov w0, #0x47ffffff // #1207959551 -ffffff80400011d8: eb00007f cmp x3, x0 -ffffff80400011dc: 54000089 b.ls ffffff80400011ec <mappages+0x44> // b.plast -ffffff80400011e0: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400011e4: 91038800 add x0, x0, #0xe2 -ffffff80400011e8: 17fffff9 b ffffff80400011cc <mappages+0x24> -ffffff80400011ec: d1000436 sub x22, x1, #0x1 -ffffff80400011f0: 9274cc33 and x19, x1, #0xfffffffffffff000 -ffffff80400011f4: 8b0202d6 add x22, x22, x2 -ffffff80400011f8: aa0403f8 mov x24, x4 -ffffff80400011fc: 9274ced6 and x22, x22, #0xfffffffffffff000 -ffffff8040001200: cb130075 sub x21, x3, x19 -ffffff8040001204: d2808079 mov x25, #0x403 // #1027 -ffffff8040001208: 52800022 mov w2, #0x1 // #1 -ffffff804000120c: aa1303e1 mov x1, x19 -ffffff8040001210: aa1703e0 mov x0, x23 -ffffff8040001214: 8b1302b4 add x20, x21, x19 -ffffff8040001218: 97ffff6a bl ffffff8040000fc0 <walk> -ffffff804000121c: b40001c0 cbz x0, ffffff8040001254 <mappages+0xac> -ffffff8040001220: f9400001 ldr x1, [x0] -ffffff8040001224: 36500081 tbz w1, #10, ffffff8040001234 <mappages+0x8c> -ffffff8040001228: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff804000122c: 91039400 add x0, x0, #0xe5 -ffffff8040001230: 17ffffe7 b ffffff80400011cc <mappages+0x24> -ffffff8040001234: 92748e94 and x20, x20, #0xfffffffff000 -ffffff8040001238: eb16027f cmp x19, x22 -ffffff804000123c: aa180294 orr x20, x20, x24 -ffffff8040001240: aa190294 orr x20, x20, x25 -ffffff8040001244: f9000014 str x20, [x0] -ffffff8040001248: 54000140 b.eq ffffff8040001270 <mappages+0xc8> // b.none -ffffff804000124c: 91400673 add x19, x19, #0x1, lsl #12 -ffffff8040001250: 17ffffee b ffffff8040001208 <mappages+0x60> -ffffff8040001254: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040001258: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000125c: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001260: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040001264: f94023f9 ldr x25, [sp, #64] -ffffff8040001268: a8c57bfd ldp x29, x30, [sp], #80 -ffffff804000126c: d65f03c0 ret -ffffff8040001270: 52800000 mov w0, #0x0 // #0 -ffffff8040001274: 17fffff9 b ffffff8040001258 <mappages+0xb0> - -ffffff8040001278 <kvmmap>: -ffffff8040001278: aa0203e5 mov x5, x2 -ffffff804000127c: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040001280: aa0303e2 mov x2, x3 -ffffff8040001284: 910003fd mov x29, sp -ffffff8040001288: aa0503e3 mov x3, x5 -ffffff804000128c: 97ffffc7 bl ffffff80400011a8 <mappages> -ffffff8040001290: 34000080 cbz w0, ffffff80400012a0 <kvmmap+0x28> -ffffff8040001294: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001298: 9103d400 add x0, x0, #0xf5 -ffffff804000129c: 97fffc99 bl ffffff8040000500 <panic> -ffffff80400012a0: a8c17bfd ldp x29, x30, [sp], #16 -ffffff80400012a4: d65f03c0 ret - -ffffff80400012a8 <kvmmake>: -ffffff80400012a8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400012ac: 910003fd mov x29, sp -ffffff80400012b0: a90153f3 stp x19, x20, [sp, #16] -ffffff80400012b4: d0000034 adrp x20, ffffff8040007000 <etext> -ffffff80400012b8: 91000294 add x20, x20, #0x0 -ffffff80400012bc: 97fffe0d bl ffffff8040000af0 <kalloc> -ffffff80400012c0: 52820002 mov w2, #0x1000 // #4096 -ffffff80400012c4: 52800001 mov w1, #0x0 // #0 -ffffff80400012c8: aa0003f3 mov x19, x0 -ffffff80400012cc: 97fffe87 bl ffffff8040000ce8 <memset> -ffffff80400012d0: aa1303e0 mov x0, x19 -ffffff80400012d4: d2e00c04 mov x4, #0x60000000000000 // #27021597764222976 -ffffff80400012d8: d2820003 mov x3, #0x1000 // #4096 -ffffff80400012dc: d2a12002 mov x2, #0x9000000 // #150994944 -ffffff80400012e0: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff80400012e4: f2a12001 movk x1, #0x900, lsl #16 -ffffff80400012e8: 97ffffe4 bl ffffff8040001278 <kvmmap> -ffffff80400012ec: aa1303e0 mov x0, x19 -ffffff80400012f0: d2e00c04 mov x4, #0x60000000000000 // #27021597764222976 -ffffff80400012f4: d2820003 mov x3, #0x1000 // #4096 -ffffff80400012f8: d2a14002 mov x2, #0xa000000 // #167772160 -ffffff80400012fc: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff8040001300: f2a14001 movk x1, #0xa00, lsl #16 -ffffff8040001304: 97ffffdd bl ffffff8040001278 <kvmmap> -ffffff8040001308: aa1303e0 mov x0, x19 -ffffff804000130c: d2e00c04 mov x4, #0x60000000000000 // #27021597764222976 -ffffff8040001310: d2a00023 mov x3, #0x10000 // #65536 -ffffff8040001314: d2a10002 mov x2, #0x8000000 // #134217728 -ffffff8040001318: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff804000131c: f2a10001 movk x1, #0x800, lsl #16 -ffffff8040001320: 97ffffd6 bl ffffff8040001278 <kvmmap> -ffffff8040001324: aa1303e0 mov x0, x19 -ffffff8040001328: d2e00c04 mov x4, #0x60000000000000 // #27021597764222976 -ffffff804000132c: d2a01ec3 mov x3, #0xf60000 // #16121856 -ffffff8040001330: d2a10142 mov x2, #0x80a0000 // #134873088 -ffffff8040001334: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff8040001338: f2a10141 movk x1, #0x80a, lsl #16 -ffffff804000133c: 97ffffcf bl ffffff8040001278 <kvmmap> -ffffff8040001340: b26223e3 mov x3, #0x7fc0000000 // #548682072064 -ffffff8040001344: aa1303e0 mov x0, x19 -ffffff8040001348: 8b030283 add x3, x20, x3 -ffffff804000134c: d2801084 mov x4, #0x84 // #132 -ffffff8040001350: d2a80002 mov x2, #0x40000000 // #1073741824 -ffffff8040001354: b25963e1 mov x1, #0xffffff8000000000 // #-549755813888 -ffffff8040001358: f2a80001 movk x1, #0x4000, lsl #16 -ffffff804000135c: 97ffffc7 bl ffffff8040001278 <kvmmap> -ffffff8040001360: d2800084 mov x4, #0x4 // #4 -ffffff8040001364: b25963e3 mov x3, #0xffffff8000000000 // #-549755813888 -ffffff8040001368: f2a90003 movk x3, #0x4800, lsl #16 -ffffff804000136c: d2c01002 mov x2, #0x8000000000 // #549755813888 -ffffff8040001370: cb140063 sub x3, x3, x20 -ffffff8040001374: 8b020282 add x2, x20, x2 -ffffff8040001378: aa1403e1 mov x1, x20 -ffffff804000137c: aa1303e0 mov x0, x19 -ffffff8040001380: f2e00c04 movk x4, #0x60, lsl #48 -ffffff8040001384: 97ffffbd bl ffffff8040001278 <kvmmap> -ffffff8040001388: aa1303e0 mov x0, x19 -ffffff804000138c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001390: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001394: d65f03c0 ret - -ffffff8040001398 <kvminit>: -ffffff8040001398: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff804000139c: 910003fd mov x29, sp -ffffff80400013a0: 97ffffc2 bl ffffff80400012a8 <kvmmake> -ffffff80400013a4: b00000a1 adrp x1, ffffff8040016000 <cons> -ffffff80400013a8: a8c17bfd ldp x29, x30, [sp], #16 -ffffff80400013ac: f900a020 str x0, [x1, #320] -ffffff80400013b0: d65f03c0 ret - -ffffff80400013b4 <uvmunmap>: -ffffff80400013b4: f2402c3f tst x1, #0xfff -ffffff80400013b8: 540000c0 b.eq ffffff80400013d0 <uvmunmap+0x1c> // b.none -ffffff80400013bc: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff80400013c0: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400013c4: 9103f000 add x0, x0, #0xfc -ffffff80400013c8: 910003fd mov x29, sp -ffffff80400013cc: 97fffc4d bl ffffff8040000500 <panic> -ffffff80400013d0: 17ffff30 b ffffff8040001090 <uvmunmap.part.0> - -ffffff80400013d4 <uvmcreate>: -ffffff80400013d4: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400013d8: 910003fd mov x29, sp -ffffff80400013dc: f9000bf3 str x19, [sp, #16] -ffffff80400013e0: 97fffdc4 bl ffffff8040000af0 <kalloc> -ffffff80400013e4: aa0003f3 mov x19, x0 -ffffff80400013e8: b4000080 cbz x0, ffffff80400013f8 <uvmcreate+0x24> -ffffff80400013ec: 52820002 mov w2, #0x1000 // #4096 -ffffff80400013f0: 52800001 mov w1, #0x0 // #0 -ffffff80400013f4: 97fffe3d bl ffffff8040000ce8 <memset> -ffffff80400013f8: aa1303e0 mov x0, x19 -ffffff80400013fc: f9400bf3 ldr x19, [sp, #16] -ffffff8040001400: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001404: d65f03c0 ret - -ffffff8040001408 <uvminit>: -ffffff8040001408: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff804000140c: 910003fd mov x29, sp -ffffff8040001410: 713ffc5f cmp w2, #0xfff -ffffff8040001414: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001418: a9025bf5 stp x21, x22, [sp, #32] -ffffff804000141c: 54000089 b.ls ffffff804000142c <uvminit+0x24> // b.plast -ffffff8040001420: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001424: 91044800 add x0, x0, #0x112 -ffffff8040001428: 97fffc36 bl ffffff8040000500 <panic> -ffffff804000142c: aa0103f5 mov x21, x1 -ffffff8040001430: 2a0203f4 mov w20, w2 -ffffff8040001434: aa0003f6 mov x22, x0 -ffffff8040001438: 97fffdae bl ffffff8040000af0 <kalloc> -ffffff804000143c: 52820002 mov w2, #0x1000 // #4096 -ffffff8040001440: 52800001 mov w1, #0x0 // #0 -ffffff8040001444: aa0003f3 mov x19, x0 -ffffff8040001448: 97fffe28 bl ffffff8040000ce8 <memset> -ffffff804000144c: d2c01003 mov x3, #0x8000000000 // #549755813888 -ffffff8040001450: d2800884 mov x4, #0x44 // #68 -ffffff8040001454: 8b030263 add x3, x19, x3 -ffffff8040001458: d2820002 mov x2, #0x1000 // #4096 -ffffff804000145c: d2800001 mov x1, #0x0 // #0 -ffffff8040001460: aa1603e0 mov x0, x22 -ffffff8040001464: 97ffff51 bl ffffff80400011a8 <mappages> -ffffff8040001468: 2a1403e2 mov w2, w20 -ffffff804000146c: aa1503e1 mov x1, x21 -ffffff8040001470: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001474: aa1303e0 mov x0, x19 -ffffff8040001478: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000147c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040001480: 17fffe2f b ffffff8040000d3c <memmove> - -ffffff8040001484 <switchuvm>: -ffffff8040001484: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040001488: 910003fd mov x29, sp -ffffff804000148c: b5000080 cbnz x0, ffffff804000149c <switchuvm+0x18> -ffffff8040001490: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001494: 9104b000 add x0, x0, #0x12c -ffffff8040001498: 97fffc1a bl ffffff8040000500 <panic> -ffffff804000149c: f9402800 ldr x0, [x0, #80] -ffffff80400014a0: b5000080 cbnz x0, ffffff80400014b0 <switchuvm+0x2c> -ffffff80400014a4: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400014a8: 91050800 add x0, x0, #0x142 -ffffff80400014ac: 17fffffb b ffffff8040001498 <switchuvm+0x14> -ffffff80400014b0: d2c01001 mov x1, #0x8000000000 // #549755813888 -ffffff80400014b4: 8b010000 add x0, x0, x1 -ffffff80400014b8: d5182000 msr ttbr0_el1, x0 -ffffff80400014bc: a8c17bfd ldp x29, x30, [sp], #16 -ffffff80400014c0: 17fffeb3 b ffffff8040000f8c <flush_tlb> - -ffffff80400014c4 <switchkvm>: -ffffff80400014c4: d2800000 mov x0, #0x0 // #0 -ffffff80400014c8: d5182000 msr ttbr0_el1, x0 -ffffff80400014cc: 17fffeb0 b ffffff8040000f8c <flush_tlb> - -ffffff80400014d0 <uvmdealloc>: -ffffff80400014d0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400014d4: 910003fd mov x29, sp -ffffff80400014d8: eb01005f cmp x2, x1 -ffffff80400014dc: aa0103e3 mov x3, x1 -ffffff80400014e0: f9000bf3 str x19, [sp, #16] -ffffff80400014e4: 54000202 b.cs ffffff8040001524 <uvmdealloc+0x54> // b.hs, b.nlast -ffffff80400014e8: 913ffc41 add x1, x2, #0xfff -ffffff80400014ec: 913ffc63 add x3, x3, #0xfff -ffffff80400014f0: 9274cc21 and x1, x1, #0xfffffffffffff000 -ffffff80400014f4: 9274cc63 and x3, x3, #0xfffffffffffff000 -ffffff80400014f8: eb03003f cmp x1, x3 -ffffff80400014fc: aa0203f3 mov x19, x2 -ffffff8040001500: 540000a2 b.cs ffffff8040001514 <uvmdealloc+0x44> // b.hs, b.nlast -ffffff8040001504: cb010062 sub x2, x3, x1 -ffffff8040001508: 52800023 mov w3, #0x1 // #1 -ffffff804000150c: 934cac42 sbfx x2, x2, #12, #32 -ffffff8040001510: 97ffffa9 bl ffffff80400013b4 <uvmunmap> -ffffff8040001514: aa1303e0 mov x0, x19 -ffffff8040001518: f9400bf3 ldr x19, [sp, #16] -ffffff804000151c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001520: d65f03c0 ret -ffffff8040001524: aa0103f3 mov x19, x1 -ffffff8040001528: 17fffffb b ffffff8040001514 <uvmdealloc+0x44> - -ffffff804000152c <uvmalloc>: -ffffff804000152c: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040001530: 910003fd mov x29, sp -ffffff8040001534: eb01005f cmp x2, x1 -ffffff8040001538: a90153f3 stp x19, x20, [sp, #16] -ffffff804000153c: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040001540: aa0003f6 mov x22, x0 -ffffff8040001544: aa0103e0 mov x0, x1 -ffffff8040001548: a90363f7 stp x23, x24, [sp, #48] -ffffff804000154c: 54000243 b.cc ffffff8040001594 <uvmalloc+0x68> // b.lo, b.ul, b.last -ffffff8040001550: 913ffc33 add x19, x1, #0xfff -ffffff8040001554: aa0203f5 mov x21, x2 -ffffff8040001558: 9274ce73 and x19, x19, #0xfffffffffffff000 -ffffff804000155c: d2c01018 mov x24, #0x8000000000 // #549755813888 -ffffff8040001560: aa1303f4 mov x20, x19 -ffffff8040001564: eb15029f cmp x20, x21 -ffffff8040001568: 54000063 b.cc ffffff8040001574 <uvmalloc+0x48> // b.lo, b.ul, b.last -ffffff804000156c: aa1503e0 mov x0, x21 -ffffff8040001570: 14000009 b ffffff8040001594 <uvmalloc+0x68> -ffffff8040001574: 97fffd5f bl ffffff8040000af0 <kalloc> -ffffff8040001578: aa0003f7 mov x23, x0 -ffffff804000157c: b5000160 cbnz x0, ffffff80400015a8 <uvmalloc+0x7c> -ffffff8040001580: aa1303e2 mov x2, x19 -ffffff8040001584: aa1403e1 mov x1, x20 -ffffff8040001588: aa1603e0 mov x0, x22 -ffffff804000158c: 97ffffd1 bl ffffff80400014d0 <uvmdealloc> -ffffff8040001590: d2800000 mov x0, #0x0 // #0 -ffffff8040001594: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001598: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000159c: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400015a0: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400015a4: d65f03c0 ret -ffffff80400015a8: 52820002 mov w2, #0x1000 // #4096 -ffffff80400015ac: 52800001 mov w1, #0x0 // #0 -ffffff80400015b0: 97fffdce bl ffffff8040000ce8 <memset> -ffffff80400015b4: d2800884 mov x4, #0x44 // #68 -ffffff80400015b8: 8b1802e3 add x3, x23, x24 -ffffff80400015bc: d2820002 mov x2, #0x1000 // #4096 -ffffff80400015c0: aa1403e1 mov x1, x20 -ffffff80400015c4: aa1603e0 mov x0, x22 -ffffff80400015c8: 97fffef8 bl ffffff80400011a8 <mappages> -ffffff80400015cc: 34000080 cbz w0, ffffff80400015dc <uvmalloc+0xb0> -ffffff80400015d0: aa1703e0 mov x0, x23 -ffffff80400015d4: 97fffd09 bl ffffff80400009f8 <kfree> -ffffff80400015d8: 17ffffea b ffffff8040001580 <uvmalloc+0x54> -ffffff80400015dc: 91400694 add x20, x20, #0x1, lsl #12 -ffffff80400015e0: 17ffffe1 b ffffff8040001564 <uvmalloc+0x38> - -ffffff80400015e4 <freewalk>: -ffffff80400015e4: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff80400015e8: 910003fd mov x29, sp -ffffff80400015ec: a90153f3 stp x19, x20, [sp, #16] -ffffff80400015f0: aa0003f3 mov x19, x0 -ffffff80400015f4: d2800014 mov x20, #0x0 // #0 -ffffff80400015f8: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400015fc: d2808075 mov x21, #0x403 // #1027 -ffffff8040001600: b25963f6 mov x22, #0xffffff8000000000 // #-549755813888 -ffffff8040001604: f8747a60 ldr x0, [x19, x20, lsl #3] -ffffff8040001608: 8a150001 and x1, x0, x21 -ffffff804000160c: f1000c3f cmp x1, #0x3 -ffffff8040001610: 540000a1 b.ne ffffff8040001624 <freewalk+0x40> // b.any -ffffff8040001614: 92748c00 and x0, x0, #0xfffffffff000 -ffffff8040001618: 8b160000 add x0, x0, x22 -ffffff804000161c: 97fffff2 bl ffffff80400015e4 <freewalk> -ffffff8040001620: f8347a7f str xzr, [x19, x20, lsl #3] -ffffff8040001624: 91000694 add x20, x20, #0x1 -ffffff8040001628: f108029f cmp x20, #0x200 -ffffff804000162c: 54fffec1 b.ne ffffff8040001604 <freewalk+0x20> // b.any -ffffff8040001630: aa1303e0 mov x0, x19 -ffffff8040001634: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001638: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000163c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040001640: 17fffcee b ffffff80400009f8 <kfree> - -ffffff8040001644 <uvmfree>: -ffffff8040001644: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040001648: 910003fd mov x29, sp -ffffff804000164c: f9000bf3 str x19, [sp, #16] -ffffff8040001650: aa0003f3 mov x19, x0 -ffffff8040001654: b40000c1 cbz x1, ffffff804000166c <uvmfree+0x28> -ffffff8040001658: 913ffc21 add x1, x1, #0xfff -ffffff804000165c: 52800023 mov w3, #0x1 // #1 -ffffff8040001660: d34cfc22 lsr x2, x1, #12 -ffffff8040001664: d2800001 mov x1, #0x0 // #0 -ffffff8040001668: 97fffe8a bl ffffff8040001090 <uvmunmap.part.0> -ffffff804000166c: aa1303e0 mov x0, x19 -ffffff8040001670: f9400bf3 ldr x19, [sp, #16] -ffffff8040001674: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001678: 17ffffdb b ffffff80400015e4 <freewalk> - -ffffff804000167c <uvmcopy>: -ffffff804000167c: a9ba7bfd stp x29, x30, [sp, #-96]! -ffffff8040001680: 910003fd mov x29, sp -ffffff8040001684: a90363f7 stp x23, x24, [sp, #48] -ffffff8040001688: d2807ff8 mov x24, #0x3ff // #1023 -ffffff804000168c: aa0003f7 mov x23, x0 -ffffff8040001690: f2e00c18 movk x24, #0x60, lsl #48 -ffffff8040001694: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001698: d2800013 mov x19, #0x0 // #0 -ffffff804000169c: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400016a0: aa0103f5 mov x21, x1 -ffffff80400016a4: aa0203f6 mov x22, x2 -ffffff80400016a8: a9046bf9 stp x25, x26, [sp, #64] -ffffff80400016ac: b25963f9 mov x25, #0xffffff8000000000 // #-549755813888 -ffffff80400016b0: d2c0101a mov x26, #0x8000000000 // #549755813888 -ffffff80400016b4: a90573fb stp x27, x28, [sp, #80] -ffffff80400016b8: eb16027f cmp x19, x22 -ffffff80400016bc: 54000123 b.cc ffffff80400016e0 <uvmcopy+0x64> // b.lo, b.ul, b.last -ffffff80400016c0: 52800000 mov w0, #0x0 // #0 -ffffff80400016c4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400016c8: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400016cc: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400016d0: a9446bf9 ldp x25, x26, [sp, #64] -ffffff80400016d4: a94573fb ldp x27, x28, [sp, #80] -ffffff80400016d8: a8c67bfd ldp x29, x30, [sp], #96 -ffffff80400016dc: d65f03c0 ret -ffffff80400016e0: 52800002 mov w2, #0x0 // #0 -ffffff80400016e4: aa1303e1 mov x1, x19 -ffffff80400016e8: aa1703e0 mov x0, x23 -ffffff80400016ec: 97fffe35 bl ffffff8040000fc0 <walk> -ffffff80400016f0: b5000080 cbnz x0, ffffff8040001700 <uvmcopy+0x84> -ffffff80400016f4: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400016f8: 91056800 add x0, x0, #0x15a -ffffff80400016fc: 97fffb81 bl ffffff8040000500 <panic> -ffffff8040001700: f9400004 ldr x4, [x0] -ffffff8040001704: 37500084 tbnz w4, #10, ffffff8040001714 <uvmcopy+0x98> -ffffff8040001708: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff804000170c: 9105d000 add x0, x0, #0x174 -ffffff8040001710: 17fffffb b ffffff80400016fc <uvmcopy+0x80> -ffffff8040001714: 92748c9c and x28, x4, #0xfffffffff000 -ffffff8040001718: 8a18009b and x27, x4, x24 -ffffff804000171c: 97fffcf5 bl ffffff8040000af0 <kalloc> -ffffff8040001720: aa0003f4 mov x20, x0 -ffffff8040001724: b40001a0 cbz x0, ffffff8040001758 <uvmcopy+0xdc> -ffffff8040001728: 52820002 mov w2, #0x1000 // #4096 -ffffff804000172c: 8b190381 add x1, x28, x25 -ffffff8040001730: 97fffd83 bl ffffff8040000d3c <memmove> -ffffff8040001734: aa1b03e4 mov x4, x27 -ffffff8040001738: 8b1a0283 add x3, x20, x26 -ffffff804000173c: d2820002 mov x2, #0x1000 // #4096 -ffffff8040001740: aa1303e1 mov x1, x19 -ffffff8040001744: aa1503e0 mov x0, x21 -ffffff8040001748: 97fffe98 bl ffffff80400011a8 <mappages> -ffffff804000174c: 34000140 cbz w0, ffffff8040001774 <uvmcopy+0xf8> -ffffff8040001750: aa1403e0 mov x0, x20 -ffffff8040001754: 97fffca9 bl ffffff80400009f8 <kfree> -ffffff8040001758: aa1503e0 mov x0, x21 -ffffff804000175c: 52800023 mov w3, #0x1 // #1 -ffffff8040001760: d34cfe62 lsr x2, x19, #12 -ffffff8040001764: d2800001 mov x1, #0x0 // #0 -ffffff8040001768: 97fffe4a bl ffffff8040001090 <uvmunmap.part.0> -ffffff804000176c: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040001770: 17ffffd5 b ffffff80400016c4 <uvmcopy+0x48> -ffffff8040001774: 91400673 add x19, x19, #0x1, lsl #12 -ffffff8040001778: 17ffffd0 b ffffff80400016b8 <uvmcopy+0x3c> - -ffffff804000177c <uvmclear>: -ffffff804000177c: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040001780: 52800002 mov w2, #0x0 // #0 -ffffff8040001784: 910003fd mov x29, sp -ffffff8040001788: 97fffe0e bl ffffff8040000fc0 <walk> -ffffff804000178c: b5000080 cbnz x0, ffffff804000179c <uvmclear+0x20> -ffffff8040001790: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001794: 91063800 add x0, x0, #0x18e -ffffff8040001798: 97fffb5a bl ffffff8040000500 <panic> -ffffff804000179c: f9400001 ldr x1, [x0] -ffffff80400017a0: 9279f821 and x1, x1, #0xffffffffffffffbf -ffffff80400017a4: f9000001 str x1, [x0] -ffffff80400017a8: a8c17bfd ldp x29, x30, [sp], #16 -ffffff80400017ac: d65f03c0 ret - -ffffff80400017b0 <copyout>: -ffffff80400017b0: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff80400017b4: 910003fd mov x29, sp -ffffff80400017b8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400017bc: aa0103f3 mov x19, x1 -ffffff80400017c0: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400017c4: aa0203f6 mov x22, x2 -ffffff80400017c8: aa0303f5 mov x21, x3 -ffffff80400017cc: a90363f7 stp x23, x24, [sp, #48] -ffffff80400017d0: aa0003f7 mov x23, x0 -ffffff80400017d4: b50000f5 cbnz x21, ffffff80400017f0 <copyout+0x40> -ffffff80400017d8: 52800000 mov w0, #0x0 // #0 -ffffff80400017dc: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400017e0: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400017e4: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400017e8: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400017ec: d65f03c0 ret -ffffff80400017f0: 9274ce78 and x24, x19, #0xfffffffffffff000 -ffffff80400017f4: aa1703e0 mov x0, x23 -ffffff80400017f8: aa1803e1 mov x1, x24 -ffffff80400017fc: 97fffe51 bl ffffff8040001140 <uva2ka> -ffffff8040001800: b40001c0 cbz x0, ffffff8040001838 <copyout+0x88> -ffffff8040001804: cb130314 sub x20, x24, x19 -ffffff8040001808: cb180273 sub x19, x19, x24 -ffffff804000180c: 91400694 add x20, x20, #0x1, lsl #12 -ffffff8040001810: aa1603e1 mov x1, x22 -ffffff8040001814: eb15029f cmp x20, x21 -ffffff8040001818: 8b000260 add x0, x19, x0 -ffffff804000181c: 9a959294 csel x20, x20, x21, ls // ls = plast -ffffff8040001820: 2a1403e2 mov w2, w20 -ffffff8040001824: cb1402b5 sub x21, x21, x20 -ffffff8040001828: 8b1402d6 add x22, x22, x20 -ffffff804000182c: 91400713 add x19, x24, #0x1, lsl #12 -ffffff8040001830: 97fffd43 bl ffffff8040000d3c <memmove> -ffffff8040001834: 17ffffe8 b ffffff80400017d4 <copyout+0x24> -ffffff8040001838: 12800000 mov w0, #0xffffffff // #-1 -ffffff804000183c: 17ffffe8 b ffffff80400017dc <copyout+0x2c> - -ffffff8040001840 <copyin>: -ffffff8040001840: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040001844: 910003fd mov x29, sp -ffffff8040001848: a90153f3 stp x19, x20, [sp, #16] -ffffff804000184c: aa0203f3 mov x19, x2 -ffffff8040001850: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040001854: aa0103f6 mov x22, x1 -ffffff8040001858: aa0303f5 mov x21, x3 -ffffff804000185c: a90363f7 stp x23, x24, [sp, #48] -ffffff8040001860: aa0003f7 mov x23, x0 -ffffff8040001864: b50000f5 cbnz x21, ffffff8040001880 <copyin+0x40> -ffffff8040001868: 52800000 mov w0, #0x0 // #0 -ffffff804000186c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001870: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001874: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040001878: a8c47bfd ldp x29, x30, [sp], #64 -ffffff804000187c: d65f03c0 ret -ffffff8040001880: 9274ce78 and x24, x19, #0xfffffffffffff000 -ffffff8040001884: aa1703e0 mov x0, x23 -ffffff8040001888: aa1803e1 mov x1, x24 -ffffff804000188c: 97fffe2d bl ffffff8040001140 <uva2ka> -ffffff8040001890: b40001c0 cbz x0, ffffff80400018c8 <copyin+0x88> -ffffff8040001894: cb130314 sub x20, x24, x19 -ffffff8040001898: cb180273 sub x19, x19, x24 -ffffff804000189c: 91400694 add x20, x20, #0x1, lsl #12 -ffffff80400018a0: 8b000261 add x1, x19, x0 -ffffff80400018a4: eb15029f cmp x20, x21 -ffffff80400018a8: aa1603e0 mov x0, x22 -ffffff80400018ac: 9a959294 csel x20, x20, x21, ls // ls = plast -ffffff80400018b0: 2a1403e2 mov w2, w20 -ffffff80400018b4: cb1402b5 sub x21, x21, x20 -ffffff80400018b8: 8b1402d6 add x22, x22, x20 -ffffff80400018bc: 91400713 add x19, x24, #0x1, lsl #12 -ffffff80400018c0: 97fffd1f bl ffffff8040000d3c <memmove> -ffffff80400018c4: 17ffffe8 b ffffff8040001864 <copyin+0x24> -ffffff80400018c8: 12800000 mov w0, #0xffffffff // #-1 -ffffff80400018cc: 17ffffe8 b ffffff804000186c <copyin+0x2c> - -ffffff80400018d0 <copyinstr>: -ffffff80400018d0: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff80400018d4: 910003fd mov x29, sp -ffffff80400018d8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400018dc: aa0203f3 mov x19, x2 -ffffff80400018e0: aa0303f4 mov x20, x3 -ffffff80400018e4: 52800002 mov w2, #0x0 // #0 -ffffff80400018e8: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400018ec: aa0103f5 mov x21, x1 -ffffff80400018f0: f9001bf7 str x23, [sp, #48] -ffffff80400018f4: aa0003f7 mov x23, x0 -ffffff80400018f8: f100029f cmp x20, #0x0 -ffffff80400018fc: 52000041 eor w1, w2, #0x1 -ffffff8040001900: 1a9f07e0 cset w0, ne // ne = any -ffffff8040001904: 6a01001f tst w0, w1 -ffffff8040001908: 540000e1 b.ne ffffff8040001924 <copyinstr+0x54> // b.any -ffffff804000190c: 51000440 sub w0, w2, #0x1 -ffffff8040001910: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001914: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001918: f9401bf7 ldr x23, [sp, #48] -ffffff804000191c: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040001920: d65f03c0 ret -ffffff8040001924: 9274ce76 and x22, x19, #0xfffffffffffff000 -ffffff8040001928: aa1703e0 mov x0, x23 -ffffff804000192c: aa1603e1 mov x1, x22 -ffffff8040001930: 97fffe04 bl ffffff8040001140 <uva2ka> -ffffff8040001934: b4000320 cbz x0, ffffff8040001998 <copyinstr+0xc8> -ffffff8040001938: cb1302c2 sub x2, x22, x19 -ffffff804000193c: cb160273 sub x19, x19, x22 -ffffff8040001940: 91400442 add x2, x2, #0x1, lsl #12 -ffffff8040001944: 8b000273 add x19, x19, x0 -ffffff8040001948: eb14005f cmp x2, x20 -ffffff804000194c: 9a949043 csel x3, x2, x20, ls // ls = plast -ffffff8040001950: d2800002 mov x2, #0x0 // #0 -ffffff8040001954: eb02007f cmp x3, x2 -ffffff8040001958: cb020284 sub x4, x20, x2 -ffffff804000195c: 8b0202a0 add x0, x21, x2 -ffffff8040001960: 54000061 b.ne ffffff804000196c <copyinstr+0x9c> // b.any -ffffff8040001964: 52800002 mov w2, #0x0 // #0 -ffffff8040001968: 14000005 b ffffff804000197c <copyinstr+0xac> -ffffff804000196c: 38626a61 ldrb w1, [x19, x2] -ffffff8040001970: 350000e1 cbnz w1, ffffff804000198c <copyinstr+0xbc> -ffffff8040001974: 52800022 mov w2, #0x1 // #1 -ffffff8040001978: 3900001f strb wzr, [x0] -ffffff804000197c: 914006d3 add x19, x22, #0x1, lsl #12 -ffffff8040001980: aa0403f4 mov x20, x4 -ffffff8040001984: aa0003f5 mov x21, x0 -ffffff8040001988: 17ffffdc b ffffff80400018f8 <copyinstr+0x28> -ffffff804000198c: 38226aa1 strb w1, [x21, x2] -ffffff8040001990: 91000442 add x2, x2, #0x1 -ffffff8040001994: 17fffff0 b ffffff8040001954 <copyinstr+0x84> -ffffff8040001998: 12800000 mov w0, #0xffffffff // #-1 -ffffff804000199c: 17ffffdd b ffffff8040001910 <copyinstr+0x40> - -ffffff80400019a0 <freeproc>: -ffffff80400019a0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400019a4: 910003fd mov x29, sp -ffffff80400019a8: f9000bf3 str x19, [sp, #16] -ffffff80400019ac: aa0003f3 mov x19, x0 -ffffff80400019b0: f9002c1f str xzr, [x0, #88] -ffffff80400019b4: f9402800 ldr x0, [x0, #80] -ffffff80400019b8: b4000060 cbz x0, ffffff80400019c4 <freeproc+0x24> -ffffff80400019bc: f9402661 ldr x1, [x19, #72] -ffffff80400019c0: 97ffff21 bl ffffff8040001644 <uvmfree> -ffffff80400019c4: b9001a7f str wzr, [x19, #24] -ffffff80400019c8: a9027e7f stp xzr, xzr, [x19, #32] -ffffff80400019cc: b900327f str wzr, [x19, #48] -ffffff80400019d0: f9001e7f str xzr, [x19, #56] -ffffff80400019d4: a904fe7f stp xzr, xzr, [x19, #72] -ffffff80400019d8: 3905627f strb wzr, [x19, #344] -ffffff80400019dc: f9400bf3 ldr x19, [sp, #16] -ffffff80400019e0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400019e4: d65f03c0 ret - -ffffff80400019e8 <proc_mapstacks>: -ffffff80400019e8: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff80400019ec: 910003fd mov x29, sp -ffffff80400019f0: a90363f7 stp x23, x24, [sp, #48] -ffffff80400019f4: d289f4b8 mov x24, #0x4fa5 // #20389 -ffffff80400019f8: f2b49f58 movk x24, #0xa4fa, lsl #16 -ffffff80400019fc: f2df49f8 movk x24, #0xfa4f, lsl #32 -ffffff8040001a00: f2e9f498 movk x24, #0x4fa4, lsl #48 -ffffff8040001a04: d2c01017 mov x23, #0x8000000000 // #549755813888 -ffffff8040001a08: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001a0c: b00000b4 adrp x20, ffffff8040016000 <cons> -ffffff8040001a10: 91160294 add x20, x20, #0x580 -ffffff8040001a14: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040001a18: aa0003f5 mov x21, x0 -ffffff8040001a1c: b25a67f6 mov x22, #0xffffffc000000000 // #-274877906944 -ffffff8040001a20: f90023f9 str x25, [sp, #64] -ffffff8040001a24: d2800019 mov x25, #0x0 // #0 -ffffff8040001a28: 8b140333 add x19, x25, x20 -ffffff8040001a2c: 97fffc31 bl ffffff8040000af0 <kalloc> -ffffff8040001a30: b5000080 cbnz x0, ffffff8040001a40 <proc_mapstacks+0x58> -ffffff8040001a34: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001a38: 91065c00 add x0, x0, #0x197 -ffffff8040001a3c: 97fffab1 bl ffffff8040000500 <panic> -ffffff8040001a40: cb140261 sub x1, x19, x20 -ffffff8040001a44: 8b170002 add x2, x0, x23 -ffffff8040001a48: 9343fc21 asr x1, x1, #3 -ffffff8040001a4c: aa1503e0 mov x0, x21 -ffffff8040001a50: d2800084 mov x4, #0x4 // #4 -ffffff8040001a54: d2820003 mov x3, #0x1000 // #4096 -ffffff8040001a58: 9b187c21 mul x1, x1, x24 -ffffff8040001a5c: 9105a339 add x25, x25, #0x168 -ffffff8040001a60: 11000421 add w1, w1, #0x1 -ffffff8040001a64: 53134821 lsl w1, w1, #13 -ffffff8040001a68: cb21c2c1 sub x1, x22, w1, sxtw -ffffff8040001a6c: 97fffe03 bl ffffff8040001278 <kvmmap> -ffffff8040001a70: d28b4000 mov x0, #0x5a00 // #23040 -ffffff8040001a74: eb00033f cmp x25, x0 -ffffff8040001a78: 54fffd81 b.ne ffffff8040001a28 <proc_mapstacks+0x40> // b.any -ffffff8040001a7c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001a80: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001a84: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040001a88: f94023f9 ldr x25, [sp, #64] -ffffff8040001a8c: a8c57bfd ldp x29, x30, [sp], #80 -ffffff8040001a90: d65f03c0 ret - -ffffff8040001a94 <procinit>: -ffffff8040001a94: b00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040001a98: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040001a9c: 910003fd mov x29, sp -ffffff8040001aa0: f940a000 ldr x0, [x0, #320] -ffffff8040001aa4: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001aa8: b00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040001aac: 91052273 add x19, x19, #0x148 -ffffff8040001ab0: d2800814 mov x20, #0x40 // #64 -ffffff8040001ab4: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040001ab8: d0000035 adrp x21, ffffff8040007000 <etext> -ffffff8040001abc: 9106c2b5 add x21, x21, #0x1b0 -ffffff8040001ac0: b25a67f6 mov x22, #0xffffffc000000000 // #-274877906944 -ffffff8040001ac4: a90363f7 stp x23, x24, [sp, #48] -ffffff8040001ac8: d289f4b7 mov x23, #0x4fa5 // #20389 -ffffff8040001acc: f2b49f57 movk x23, #0xa4fa, lsl #16 -ffffff8040001ad0: f2df49f7 movk x23, #0xfa4f, lsl #32 -ffffff8040001ad4: f2e9f497 movk x23, #0x4fa4, lsl #48 -ffffff8040001ad8: 97ffffc4 bl ffffff80400019e8 <proc_mapstacks> -ffffff8040001adc: aa1303e0 mov x0, x19 -ffffff8040001ae0: d0000021 adrp x1, ffffff8040007000 <etext> -ffffff8040001ae4: 91067821 add x1, x1, #0x19e -ffffff8040001ae8: 97fffc21 bl ffffff8040000b6c <initlock> -ffffff8040001aec: 91006260 add x0, x19, #0x18 -ffffff8040001af0: b00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040001af4: 91160273 add x19, x19, #0x580 -ffffff8040001af8: d0000021 adrp x1, ffffff8040007000 <etext> -ffffff8040001afc: 91069821 add x1, x1, #0x1a6 -ffffff8040001b00: aa1303f8 mov x24, x19 -ffffff8040001b04: 97fffc1a bl ffffff8040000b6c <initlock> -ffffff8040001b08: aa1303e0 mov x0, x19 -ffffff8040001b0c: aa1503e1 mov x1, x21 -ffffff8040001b10: 97fffc17 bl ffffff8040000b6c <initlock> -ffffff8040001b14: cb180262 sub x2, x19, x24 -ffffff8040001b18: f1000694 subs x20, x20, #0x1 -ffffff8040001b1c: 9343fc42 asr x2, x2, #3 -ffffff8040001b20: 9b177c42 mul x2, x2, x23 -ffffff8040001b24: 11000442 add w2, w2, #0x1 -ffffff8040001b28: 53134842 lsl w2, w2, #13 -ffffff8040001b2c: cb22c2c2 sub x2, x22, w2, sxtw -ffffff8040001b30: f9002262 str x2, [x19, #64] -ffffff8040001b34: 9105a273 add x19, x19, #0x168 -ffffff8040001b38: 54fffe81 b.ne ffffff8040001b08 <procinit+0x74> // b.any -ffffff8040001b3c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001b40: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001b44: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040001b48: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040001b4c: d65f03c0 ret - -ffffff8040001b50 <mycpu>: -ffffff8040001b50: d53800a2 mrs x2, mpidr_el1 -ffffff8040001b54: b00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040001b58: 91052001 add x1, x0, #0x148 -ffffff8040001b5c: d3791c42 ubfiz x2, x2, #7, #8 -ffffff8040001b60: 9100c020 add x0, x1, #0x30 -ffffff8040001b64: 8b020000 add x0, x0, x2 -ffffff8040001b68: d65f03c0 ret - -ffffff8040001b6c <myproc>: -ffffff8040001b6c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040001b70: 910003fd mov x29, sp -ffffff8040001b74: f9000bf3 str x19, [sp, #16] -ffffff8040001b78: 97fffc0e bl ffffff8040000bb0 <push_off> -ffffff8040001b7c: d53800a1 mrs x1, mpidr_el1 -ffffff8040001b80: b00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040001b84: 91052000 add x0, x0, #0x148 -ffffff8040001b88: d3791c21 ubfiz x1, x1, #7, #8 -ffffff8040001b8c: 9100c000 add x0, x0, #0x30 -ffffff8040001b90: f8616813 ldr x19, [x0, x1] -ffffff8040001b94: 97fffc30 bl ffffff8040000c54 <pop_off> -ffffff8040001b98: aa1303e0 mov x0, x19 -ffffff8040001b9c: f9400bf3 ldr x19, [sp, #16] -ffffff8040001ba0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001ba4: d65f03c0 ret - -ffffff8040001ba8 <forkret>: -ffffff8040001ba8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040001bac: 910003fd mov x29, sp -ffffff8040001bb0: f9000bf3 str x19, [sp, #16] -ffffff8040001bb4: 97ffffee bl ffffff8040001b6c <myproc> -ffffff8040001bb8: f9402c13 ldr x19, [x0, #88] -ffffff8040001bbc: 97fffc3c bl ffffff8040000cac <release> -ffffff8040001bc0: 90000040 adrp x0, ffffff8040009000 <syscalls+0x1cc0> -ffffff8040001bc4: b942e001 ldr w1, [x0, #736] -ffffff8040001bc8: 34000081 cbz w1, ffffff8040001bd8 <forkret+0x30> -ffffff8040001bcc: b902e01f str wzr, [x0, #736] -ffffff8040001bd0: 52800020 mov w0, #0x1 // #1 -ffffff8040001bd4: 9400058d bl ffffff8040003208 <fsinit> -ffffff8040001bd8: aa1303e0 mov x0, x19 -ffffff8040001bdc: f9400bf3 ldr x19, [sp, #16] -ffffff8040001be0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001be4: 1400119a b ffffff804000624c <usertrapret> - -ffffff8040001be8 <allocpid>: -ffffff8040001be8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040001bec: 910003fd mov x29, sp -ffffff8040001bf0: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001bf4: b00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040001bf8: 91052273 add x19, x19, #0x148 -ffffff8040001bfc: aa1303e0 mov x0, x19 -ffffff8040001c00: 97fffc00 bl ffffff8040000c00 <acquire> -ffffff8040001c04: 90000040 adrp x0, ffffff8040009000 <syscalls+0x1cc0> -ffffff8040001c08: 910b8000 add x0, x0, #0x2e0 -ffffff8040001c0c: b9400414 ldr w20, [x0, #4] -ffffff8040001c10: 11000681 add w1, w20, #0x1 -ffffff8040001c14: b9000401 str w1, [x0, #4] -ffffff8040001c18: aa1303e0 mov x0, x19 -ffffff8040001c1c: 97fffc24 bl ffffff8040000cac <release> -ffffff8040001c20: 2a1403e0 mov w0, w20 -ffffff8040001c24: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001c28: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001c2c: d65f03c0 ret - -ffffff8040001c30 <allocproc>: -ffffff8040001c30: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040001c34: 910003fd mov x29, sp -ffffff8040001c38: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001c3c: b00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040001c40: 91160273 add x19, x19, #0x580 -ffffff8040001c44: d2800814 mov x20, #0x40 // #64 -ffffff8040001c48: f90013f5 str x21, [sp, #32] -ffffff8040001c4c: aa1303e0 mov x0, x19 -ffffff8040001c50: 97fffbec bl ffffff8040000c00 <acquire> -ffffff8040001c54: b9401a60 ldr w0, [x19, #24] -ffffff8040001c58: 35000220 cbnz w0, ffffff8040001c9c <allocproc+0x6c> -ffffff8040001c5c: 97ffffe3 bl ffffff8040001be8 <allocpid> -ffffff8040001c60: f9402275 ldr x21, [x19, #64] -ffffff8040001c64: b9003260 str w0, [x19, #48] -ffffff8040001c68: 52800020 mov w0, #0x1 // #1 -ffffff8040001c6c: b9001a60 str w0, [x19, #24] -ffffff8040001c70: 913bc2b5 add x21, x21, #0xef0 -ffffff8040001c74: f9002e75 str x21, [x19, #88] -ffffff8040001c78: 97fffdd7 bl ffffff80400013d4 <uvmcreate> -ffffff8040001c7c: f9002a60 str x0, [x19, #80] -ffffff8040001c80: aa0003f4 mov x20, x0 -ffffff8040001c84: b5000220 cbnz x0, ffffff8040001cc8 <allocproc+0x98> -ffffff8040001c88: aa1303e0 mov x0, x19 -ffffff8040001c8c: 97ffff45 bl ffffff80400019a0 <freeproc> -ffffff8040001c90: aa1303e0 mov x0, x19 -ffffff8040001c94: 97fffc06 bl ffffff8040000cac <release> -ffffff8040001c98: 14000007 b ffffff8040001cb4 <allocproc+0x84> -ffffff8040001c9c: aa1303e0 mov x0, x19 -ffffff8040001ca0: 9105a273 add x19, x19, #0x168 -ffffff8040001ca4: 97fffc02 bl ffffff8040000cac <release> -ffffff8040001ca8: f1000694 subs x20, x20, #0x1 -ffffff8040001cac: 54fffd01 b.ne ffffff8040001c4c <allocproc+0x1c> // b.any -ffffff8040001cb0: d2800014 mov x20, #0x0 // #0 -ffffff8040001cb4: aa1403e0 mov x0, x20 -ffffff8040001cb8: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001cbc: f94013f5 ldr x21, [sp, #32] -ffffff8040001cc0: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040001cc4: d65f03c0 ret -ffffff8040001cc8: 52800e02 mov w2, #0x70 // #112 -ffffff8040001ccc: 52800001 mov w1, #0x0 // #0 -ffffff8040001cd0: 91018260 add x0, x19, #0x60 -ffffff8040001cd4: aa1303f4 mov x20, x19 -ffffff8040001cd8: 97fffc04 bl ffffff8040000ce8 <memset> -ffffff8040001cdc: 90000000 adrp x0, ffffff8040001000 <walk+0x40> -ffffff8040001ce0: 912ea000 add x0, x0, #0xba8 -ffffff8040001ce4: f9003275 str x21, [x19, #96] -ffffff8040001ce8: f9006660 str x0, [x19, #200] -ffffff8040001cec: 17fffff2 b ffffff8040001cb4 <allocproc+0x84> - -ffffff8040001cf0 <userinit>: -ffffff8040001cf0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040001cf4: 910003fd mov x29, sp -ffffff8040001cf8: f9000bf3 str x19, [sp, #16] -ffffff8040001cfc: 97ffffcd bl ffffff8040001c30 <allocproc> -ffffff8040001d00: aa0003f3 mov x19, x0 -ffffff8040001d04: b00000a0 adrp x0, ffffff8040016000 <cons> -ffffff8040001d08: 90000041 adrp x1, ffffff8040009000 <syscalls+0x1cc0> -ffffff8040001d0c: 910b8021 add x1, x1, #0x2e0 -ffffff8040001d10: f902bc13 str x19, [x0, #1400] -ffffff8040001d14: 52800902 mov w2, #0x48 // #72 -ffffff8040001d18: 91002021 add x1, x1, #0x8 -ffffff8040001d1c: f9402a60 ldr x0, [x19, #80] -ffffff8040001d20: 97fffdba bl ffffff8040001408 <uvminit> -ffffff8040001d24: f9402e60 ldr x0, [x19, #88] -ffffff8040001d28: d2820001 mov x1, #0x1000 // #4096 -ffffff8040001d2c: 52800202 mov w2, #0x10 // #16 -ffffff8040001d30: f9002661 str x1, [x19, #72] -ffffff8040001d34: a90ffc1f stp xzr, xzr, [x0, #248] -ffffff8040001d38: f9008401 str x1, [x0, #264] -ffffff8040001d3c: 91056260 add x0, x19, #0x158 -ffffff8040001d40: d0000021 adrp x1, ffffff8040007000 <etext> -ffffff8040001d44: 9106d421 add x1, x1, #0x1b5 -ffffff8040001d48: 97fffc33 bl ffffff8040000e14 <safestrcpy> -ffffff8040001d4c: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001d50: 9106f800 add x0, x0, #0x1be -ffffff8040001d54: 940007b5 bl ffffff8040003c28 <namei> -ffffff8040001d58: f900aa60 str x0, [x19, #336] -ffffff8040001d5c: 52800060 mov w0, #0x3 // #3 -ffffff8040001d60: b9001a60 str w0, [x19, #24] -ffffff8040001d64: aa1303e0 mov x0, x19 -ffffff8040001d68: f9400bf3 ldr x19, [sp, #16] -ffffff8040001d6c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001d70: 17fffbcf b ffffff8040000cac <release> - -ffffff8040001d74 <growproc>: -ffffff8040001d74: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040001d78: 910003fd mov x29, sp -ffffff8040001d7c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001d80: 2a0003f4 mov w20, w0 -ffffff8040001d84: 97ffff7a bl ffffff8040001b6c <myproc> -ffffff8040001d88: 7100029f cmp w20, #0x0 -ffffff8040001d8c: aa0003f3 mov x19, x0 -ffffff8040001d90: f9402401 ldr x1, [x0, #72] -ffffff8040001d94: 5400012d b.le ffffff8040001db8 <growproc+0x44> -ffffff8040001d98: 0b010282 add w2, w20, w1 -ffffff8040001d9c: 2a0103e1 mov w1, w1 -ffffff8040001da0: f9402800 ldr x0, [x0, #80] -ffffff8040001da4: 97fffde2 bl ffffff804000152c <uvmalloc> -ffffff8040001da8: 2a0003e3 mov w3, w0 -ffffff8040001dac: 35000140 cbnz w0, ffffff8040001dd4 <growproc+0x60> -ffffff8040001db0: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040001db4: 1400000a b ffffff8040001ddc <growproc+0x68> -ffffff8040001db8: 2a0103e3 mov w3, w1 -ffffff8040001dbc: 540000c0 b.eq ffffff8040001dd4 <growproc+0x60> // b.none -ffffff8040001dc0: 0b010282 add w2, w20, w1 -ffffff8040001dc4: 2a0103e1 mov w1, w1 -ffffff8040001dc8: f9402800 ldr x0, [x0, #80] -ffffff8040001dcc: 97fffdc1 bl ffffff80400014d0 <uvmdealloc> -ffffff8040001dd0: 2a0003e3 mov w3, w0 -ffffff8040001dd4: 52800000 mov w0, #0x0 // #0 -ffffff8040001dd8: f9002663 str x3, [x19, #72] -ffffff8040001ddc: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001de0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040001de4: d65f03c0 ret - -ffffff8040001de8 <fork>: -ffffff8040001de8: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040001dec: 910003fd mov x29, sp -ffffff8040001df0: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001df4: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040001df8: 97ffff5d bl ffffff8040001b6c <myproc> -ffffff8040001dfc: aa0003f4 mov x20, x0 -ffffff8040001e00: 97ffff8c bl ffffff8040001c30 <allocproc> -ffffff8040001e04: b4000140 cbz x0, ffffff8040001e2c <fork+0x44> -ffffff8040001e08: aa0003f3 mov x19, x0 -ffffff8040001e0c: f9402801 ldr x1, [x0, #80] -ffffff8040001e10: a9448282 ldp x2, x0, [x20, #72] -ffffff8040001e14: 97fffe1a bl ffffff804000167c <uvmcopy> -ffffff8040001e18: 36f800e0 tbz w0, #31, ffffff8040001e34 <fork+0x4c> -ffffff8040001e1c: aa1303e0 mov x0, x19 -ffffff8040001e20: 97fffee0 bl ffffff80400019a0 <freeproc> -ffffff8040001e24: aa1303e0 mov x0, x19 -ffffff8040001e28: 97fffba1 bl ffffff8040000cac <release> -ffffff8040001e2c: 12800016 mov w22, #0xffffffff // #-1 -ffffff8040001e30: 14000029 b ffffff8040001ed4 <fork+0xec> -ffffff8040001e34: f9402680 ldr x0, [x20, #72] -ffffff8040001e38: d2802202 mov x2, #0x110 // #272 -ffffff8040001e3c: d2801a15 mov x21, #0xd0 // #208 -ffffff8040001e40: f9402e63 ldr x3, [x19, #88] -ffffff8040001e44: f9402e81 ldr x1, [x20, #88] -ffffff8040001e48: f9002660 str x0, [x19, #72] -ffffff8040001e4c: aa0303e0 mov x0, x3 -ffffff8040001e50: 97fffbd2 bl ffffff8040000d98 <memcpy> -ffffff8040001e54: f900001f str xzr, [x0] -ffffff8040001e58: f8756a80 ldr x0, [x20, x21] -ffffff8040001e5c: b4000060 cbz x0, ffffff8040001e68 <fork+0x80> -ffffff8040001e60: 940008df bl ffffff80400041dc <filedup> -ffffff8040001e64: f8356a60 str x0, [x19, x21] -ffffff8040001e68: 910022b5 add x21, x21, #0x8 -ffffff8040001e6c: f10542bf cmp x21, #0x150 -ffffff8040001e70: 54ffff41 b.ne ffffff8040001e58 <fork+0x70> // b.any -ffffff8040001e74: f940aa80 ldr x0, [x20, #336] -ffffff8040001e78: b00000b5 adrp x21, ffffff8040016000 <cons> -ffffff8040001e7c: 910522b5 add x21, x21, #0x148 -ffffff8040001e80: 9400056c bl ffffff8040003430 <idup> -ffffff8040001e84: 52800202 mov w2, #0x10 // #16 -ffffff8040001e88: 91056281 add x1, x20, #0x158 -ffffff8040001e8c: f900aa60 str x0, [x19, #336] -ffffff8040001e90: 91056260 add x0, x19, #0x158 -ffffff8040001e94: 910062b5 add x21, x21, #0x18 -ffffff8040001e98: 97fffbdf bl ffffff8040000e14 <safestrcpy> -ffffff8040001e9c: aa1303e0 mov x0, x19 -ffffff8040001ea0: b9403276 ldr w22, [x19, #48] -ffffff8040001ea4: 97fffb82 bl ffffff8040000cac <release> -ffffff8040001ea8: aa1503e0 mov x0, x21 -ffffff8040001eac: 97fffb55 bl ffffff8040000c00 <acquire> -ffffff8040001eb0: aa1503e0 mov x0, x21 -ffffff8040001eb4: f9001e74 str x20, [x19, #56] -ffffff8040001eb8: 97fffb7d bl ffffff8040000cac <release> -ffffff8040001ebc: aa1303e0 mov x0, x19 -ffffff8040001ec0: 97fffb50 bl ffffff8040000c00 <acquire> -ffffff8040001ec4: 52800060 mov w0, #0x3 // #3 -ffffff8040001ec8: b9001a60 str w0, [x19, #24] -ffffff8040001ecc: aa1303e0 mov x0, x19 -ffffff8040001ed0: 97fffb77 bl ffffff8040000cac <release> -ffffff8040001ed4: 2a1603e0 mov w0, w22 -ffffff8040001ed8: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040001edc: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040001ee0: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040001ee4: d65f03c0 ret - -ffffff8040001ee8 <scheduler>: -ffffff8040001ee8: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040001eec: 910003fd mov x29, sp -ffffff8040001ef0: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001ef4: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040001ef8: f9001bf7 str x23, [sp, #48] -ffffff8040001efc: d53800a0 mrs x0, mpidr_el1 -ffffff8040001f00: b00000a1 adrp x1, ffffff8040016000 <cons> -ffffff8040001f04: 91052021 add x1, x1, #0x148 -ffffff8040001f08: d3791c02 ubfiz x2, x0, #7, #8 -ffffff8040001f0c: 9100c021 add x1, x1, #0x30 -ffffff8040001f10: 91002055 add x21, x2, #0x8 -ffffff8040001f14: 8b020034 add x20, x1, x2 -ffffff8040001f18: 8b150035 add x21, x1, x21 -ffffff8040001f1c: f822683f str xzr, [x1, x2] -ffffff8040001f20: d5034fff msr daifclr, #0xf -ffffff8040001f24: b00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040001f28: 91160273 add x19, x19, #0x580 -ffffff8040001f2c: d2800816 mov x22, #0x40 // #64 -ffffff8040001f30: 52800097 mov w23, #0x4 // #4 -ffffff8040001f34: aa1303e0 mov x0, x19 -ffffff8040001f38: 97fffb32 bl ffffff8040000c00 <acquire> -ffffff8040001f3c: b9401a60 ldr w0, [x19, #24] -ffffff8040001f40: 71000c1f cmp w0, #0x3 -ffffff8040001f44: 54000141 b.ne ffffff8040001f6c <scheduler+0x84> // b.any -ffffff8040001f48: aa1303e0 mov x0, x19 -ffffff8040001f4c: f9000293 str x19, [x20] -ffffff8040001f50: b9001a77 str w23, [x19, #24] -ffffff8040001f54: 97fffd4c bl ffffff8040001484 <switchuvm> -ffffff8040001f58: 91018261 add x1, x19, #0x60 -ffffff8040001f5c: aa1503e0 mov x0, x21 -ffffff8040001f60: 94000189 bl ffffff8040002584 <swtch> -ffffff8040001f64: 97fffd58 bl ffffff80400014c4 <switchkvm> -ffffff8040001f68: f900029f str xzr, [x20] -ffffff8040001f6c: aa1303e0 mov x0, x19 -ffffff8040001f70: 9105a273 add x19, x19, #0x168 -ffffff8040001f74: 97fffb4e bl ffffff8040000cac <release> -ffffff8040001f78: f10006d6 subs x22, x22, #0x1 -ffffff8040001f7c: 54fffdc1 b.ne ffffff8040001f34 <scheduler+0x4c> // b.any -ffffff8040001f80: 17ffffe8 b ffffff8040001f20 <scheduler+0x38> - -ffffff8040001f84 <sched>: -ffffff8040001f84: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040001f88: 910003fd mov x29, sp -ffffff8040001f8c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040001f90: f90013f5 str x21, [sp, #32] -ffffff8040001f94: 97fffef6 bl ffffff8040001b6c <myproc> -ffffff8040001f98: aa0003f4 mov x20, x0 -ffffff8040001f9c: 97fffaf7 bl ffffff8040000b78 <holding> -ffffff8040001fa0: 35000080 cbnz w0, ffffff8040001fb0 <sched+0x2c> -ffffff8040001fa4: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001fa8: 91070000 add x0, x0, #0x1c0 -ffffff8040001fac: 97fff955 bl ffffff8040000500 <panic> -ffffff8040001fb0: d53800a1 mrs x1, mpidr_el1 -ffffff8040001fb4: b00000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040001fb8: 91052273 add x19, x19, #0x148 -ffffff8040001fbc: 9100c273 add x19, x19, #0x30 -ffffff8040001fc0: d3791c21 ubfiz x1, x1, #7, #8 -ffffff8040001fc4: 8b010261 add x1, x19, x1 -ffffff8040001fc8: b9407820 ldr w0, [x1, #120] -ffffff8040001fcc: 7100041f cmp w0, #0x1 -ffffff8040001fd0: 54000080 b.eq ffffff8040001fe0 <sched+0x5c> // b.none -ffffff8040001fd4: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001fd8: 91073800 add x0, x0, #0x1ce -ffffff8040001fdc: 17fffff4 b ffffff8040001fac <sched+0x28> -ffffff8040001fe0: b9401a80 ldr w0, [x20, #24] -ffffff8040001fe4: 7100101f cmp w0, #0x4 -ffffff8040001fe8: 54000081 b.ne ffffff8040001ff8 <sched+0x74> // b.any -ffffff8040001fec: d0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040001ff0: 91076800 add x0, x0, #0x1da -ffffff8040001ff4: 17ffffee b ffffff8040001fac <sched+0x28> -ffffff8040001ff8: d53b4220 mrs x0, daif -ffffff8040001ffc: 37380080 tbnz w0, #7, ffffff804000200c <sched+0x88> -ffffff8040002000: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002004: 9107a000 add x0, x0, #0x1e8 -ffffff8040002008: 17ffffe9 b ffffff8040001fac <sched+0x28> -ffffff804000200c: d53800a1 mrs x1, mpidr_el1 -ffffff8040002010: d3791c21 ubfiz x1, x1, #7, #8 -ffffff8040002014: 8b010261 add x1, x19, x1 -ffffff8040002018: b9407c35 ldr w21, [x1, #124] -ffffff804000201c: d53800a1 mrs x1, mpidr_el1 -ffffff8040002020: d3791c21 ubfiz x1, x1, #7, #8 -ffffff8040002024: 91018280 add x0, x20, #0x60 -ffffff8040002028: 91002021 add x1, x1, #0x8 -ffffff804000202c: 8b010261 add x1, x19, x1 -ffffff8040002030: 94000155 bl ffffff8040002584 <swtch> -ffffff8040002034: d53800a0 mrs x0, mpidr_el1 -ffffff8040002038: d3791c00 ubfiz x0, x0, #7, #8 -ffffff804000203c: 8b000273 add x19, x19, x0 -ffffff8040002040: b9007e75 str w21, [x19, #124] -ffffff8040002044: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002048: f94013f5 ldr x21, [sp, #32] -ffffff804000204c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002050: d65f03c0 ret - -ffffff8040002054 <yield>: -ffffff8040002054: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002058: 910003fd mov x29, sp -ffffff804000205c: f9000bf3 str x19, [sp, #16] -ffffff8040002060: 97fffec3 bl ffffff8040001b6c <myproc> -ffffff8040002064: aa0003f3 mov x19, x0 -ffffff8040002068: 97fffae6 bl ffffff8040000c00 <acquire> -ffffff804000206c: 52800060 mov w0, #0x3 // #3 -ffffff8040002070: b9001a60 str w0, [x19, #24] -ffffff8040002074: 97ffffc4 bl ffffff8040001f84 <sched> -ffffff8040002078: aa1303e0 mov x0, x19 -ffffff804000207c: f9400bf3 ldr x19, [sp, #16] -ffffff8040002080: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002084: 17fffb0a b ffffff8040000cac <release> - -ffffff8040002088 <sleep>: -ffffff8040002088: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff804000208c: 910003fd mov x29, sp -ffffff8040002090: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002094: aa0103f4 mov x20, x1 -ffffff8040002098: f90013f5 str x21, [sp, #32] -ffffff804000209c: aa0003f5 mov x21, x0 -ffffff80400020a0: 97fffeb3 bl ffffff8040001b6c <myproc> -ffffff80400020a4: aa0003f3 mov x19, x0 -ffffff80400020a8: 97fffad6 bl ffffff8040000c00 <acquire> -ffffff80400020ac: aa1403e0 mov x0, x20 -ffffff80400020b0: 97fffaff bl ffffff8040000cac <release> -ffffff80400020b4: 52800040 mov w0, #0x2 // #2 -ffffff80400020b8: f9001275 str x21, [x19, #32] -ffffff80400020bc: b9001a60 str w0, [x19, #24] -ffffff80400020c0: 97ffffb1 bl ffffff8040001f84 <sched> -ffffff80400020c4: aa1303e0 mov x0, x19 -ffffff80400020c8: f900127f str xzr, [x19, #32] -ffffff80400020cc: 97fffaf8 bl ffffff8040000cac <release> -ffffff80400020d0: aa1403e0 mov x0, x20 -ffffff80400020d4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400020d8: f94013f5 ldr x21, [sp, #32] -ffffff80400020dc: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400020e0: 17fffac8 b ffffff8040000c00 <acquire> - -ffffff80400020e4 <wait>: -ffffff80400020e4: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff80400020e8: 910003fd mov x29, sp -ffffff80400020ec: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400020f0: 900000b5 adrp x21, ffffff8040016000 <cons> -ffffff80400020f4: 910522b5 add x21, x21, #0x148 -ffffff80400020f8: aa0003f6 mov x22, x0 -ffffff80400020fc: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002100: a90363f7 stp x23, x24, [sp, #48] -ffffff8040002104: 910062b8 add x24, x21, #0x18 -ffffff8040002108: f90023f9 str x25, [sp, #64] -ffffff804000210c: 900000b9 adrp x25, ffffff8040016000 <cons> -ffffff8040002110: 97fffe97 bl ffffff8040001b6c <myproc> -ffffff8040002114: aa0003f4 mov x20, x0 -ffffff8040002118: aa1803e0 mov x0, x24 -ffffff804000211c: 97fffab9 bl ffffff8040000c00 <acquire> -ffffff8040002120: d2800817 mov x23, #0x40 // #64 -ffffff8040002124: 52800000 mov w0, #0x0 // #0 -ffffff8040002128: 91160333 add x19, x25, #0x580 -ffffff804000212c: f9401e61 ldr x1, [x19, #56] -ffffff8040002130: eb14003f cmp x1, x20 -ffffff8040002134: 54000481 b.ne ffffff80400021c4 <wait+0xe0> // b.any -ffffff8040002138: aa1303e0 mov x0, x19 -ffffff804000213c: 97fffab1 bl ffffff8040000c00 <acquire> -ffffff8040002140: b9401a60 ldr w0, [x19, #24] -ffffff8040002144: 7100141f cmp w0, #0x5 -ffffff8040002148: 54000381 b.ne ffffff80400021b8 <wait+0xd4> // b.any -ffffff804000214c: b9403277 ldr w23, [x19, #48] -ffffff8040002150: b40001b6 cbz x22, ffffff8040002184 <wait+0xa0> -ffffff8040002154: d2800083 mov x3, #0x4 // #4 -ffffff8040002158: 9100b262 add x2, x19, #0x2c -ffffff804000215c: aa1603e1 mov x1, x22 -ffffff8040002160: f9402a80 ldr x0, [x20, #80] -ffffff8040002164: 97fffd93 bl ffffff80400017b0 <copyout> -ffffff8040002168: 36f800e0 tbz w0, #31, ffffff8040002184 <wait+0xa0> -ffffff804000216c: aa1303e0 mov x0, x19 -ffffff8040002170: 97fffacf bl ffffff8040000cac <release> -ffffff8040002174: 910062a0 add x0, x21, #0x18 -ffffff8040002178: 12800017 mov w23, #0xffffffff // #-1 -ffffff804000217c: 97fffacc bl ffffff8040000cac <release> -ffffff8040002180: 14000007 b ffffff804000219c <wait+0xb8> -ffffff8040002184: aa1303e0 mov x0, x19 -ffffff8040002188: 97fffe06 bl ffffff80400019a0 <freeproc> -ffffff804000218c: aa1303e0 mov x0, x19 -ffffff8040002190: 97fffac7 bl ffffff8040000cac <release> -ffffff8040002194: 910062a0 add x0, x21, #0x18 -ffffff8040002198: 97fffac5 bl ffffff8040000cac <release> -ffffff804000219c: 2a1703e0 mov w0, w23 -ffffff80400021a0: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400021a4: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400021a8: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400021ac: f94023f9 ldr x25, [sp, #64] -ffffff80400021b0: a8c57bfd ldp x29, x30, [sp], #80 -ffffff80400021b4: d65f03c0 ret -ffffff80400021b8: aa1303e0 mov x0, x19 -ffffff80400021bc: 97fffabc bl ffffff8040000cac <release> -ffffff80400021c0: 52800020 mov w0, #0x1 // #1 -ffffff80400021c4: f10006f7 subs x23, x23, #0x1 -ffffff80400021c8: 9105a273 add x19, x19, #0x168 -ffffff80400021cc: 54fffb01 b.ne ffffff804000212c <wait+0x48> // b.any -ffffff80400021d0: 34fffd20 cbz w0, ffffff8040002174 <wait+0x90> -ffffff80400021d4: b9402a80 ldr w0, [x20, #40] -ffffff80400021d8: 35fffce0 cbnz w0, ffffff8040002174 <wait+0x90> -ffffff80400021dc: aa1803e1 mov x1, x24 -ffffff80400021e0: aa1403e0 mov x0, x20 -ffffff80400021e4: 97ffffa9 bl ffffff8040002088 <sleep> -ffffff80400021e8: 17ffffce b ffffff8040002120 <wait+0x3c> - -ffffff80400021ec <wakeup>: -ffffff80400021ec: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff80400021f0: 910003fd mov x29, sp -ffffff80400021f4: a90153f3 stp x19, x20, [sp, #16] -ffffff80400021f8: 900000b3 adrp x19, ffffff8040016000 <cons> -ffffff80400021fc: 91160273 add x19, x19, #0x580 -ffffff8040002200: d2800814 mov x20, #0x40 // #64 -ffffff8040002204: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002208: aa0003f5 mov x21, x0 -ffffff804000220c: 52800076 mov w22, #0x3 // #3 -ffffff8040002210: 97fffe57 bl ffffff8040001b6c <myproc> -ffffff8040002214: eb00027f cmp x19, x0 -ffffff8040002218: 54000180 b.eq ffffff8040002248 <wakeup+0x5c> // b.none -ffffff804000221c: aa1303e0 mov x0, x19 -ffffff8040002220: 97fffa78 bl ffffff8040000c00 <acquire> -ffffff8040002224: b9401a60 ldr w0, [x19, #24] -ffffff8040002228: 7100081f cmp w0, #0x2 -ffffff804000222c: 540000a1 b.ne ffffff8040002240 <wakeup+0x54> // b.any -ffffff8040002230: f9401260 ldr x0, [x19, #32] -ffffff8040002234: eb15001f cmp x0, x21 -ffffff8040002238: 54000041 b.ne ffffff8040002240 <wakeup+0x54> // b.any -ffffff804000223c: b9001a76 str w22, [x19, #24] -ffffff8040002240: aa1303e0 mov x0, x19 -ffffff8040002244: 97fffa9a bl ffffff8040000cac <release> -ffffff8040002248: f1000694 subs x20, x20, #0x1 -ffffff804000224c: 9105a273 add x19, x19, #0x168 -ffffff8040002250: 54fffe01 b.ne ffffff8040002210 <wakeup+0x24> // b.any -ffffff8040002254: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002258: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000225c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002260: d65f03c0 ret - -ffffff8040002264 <reparent>: -ffffff8040002264: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040002268: 910003fd mov x29, sp -ffffff804000226c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002270: 900000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040002274: 91160273 add x19, x19, #0x580 -ffffff8040002278: d2800814 mov x20, #0x40 // #64 -ffffff804000227c: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002280: 900000b6 adrp x22, ffffff8040016000 <cons> -ffffff8040002284: 910522d6 add x22, x22, #0x148 -ffffff8040002288: aa0003f5 mov x21, x0 -ffffff804000228c: f9401e60 ldr x0, [x19, #56] -ffffff8040002290: eb15001f cmp x0, x21 -ffffff8040002294: 54000081 b.ne ffffff80400022a4 <reparent+0x40> // b.any -ffffff8040002298: f9421ac0 ldr x0, [x22, #1072] -ffffff804000229c: f9001e60 str x0, [x19, #56] -ffffff80400022a0: 97ffffd3 bl ffffff80400021ec <wakeup> -ffffff80400022a4: f1000694 subs x20, x20, #0x1 -ffffff80400022a8: 9105a273 add x19, x19, #0x168 -ffffff80400022ac: 54ffff01 b.ne ffffff804000228c <reparent+0x28> // b.any -ffffff80400022b0: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400022b4: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400022b8: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400022bc: d65f03c0 ret - -ffffff80400022c0 <exit>: -ffffff80400022c0: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff80400022c4: 910003fd mov x29, sp -ffffff80400022c8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400022cc: 900000b4 adrp x20, ffffff8040016000 <cons> -ffffff80400022d0: 91052294 add x20, x20, #0x148 -ffffff80400022d4: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400022d8: 2a0003f6 mov w22, w0 -ffffff80400022dc: f9001bf7 str x23, [sp, #48] -ffffff80400022e0: 97fffe23 bl ffffff8040001b6c <myproc> -ffffff80400022e4: aa0003f3 mov x19, x0 -ffffff80400022e8: f9421a80 ldr x0, [x20, #1072] -ffffff80400022ec: eb13001f cmp x0, x19 -ffffff80400022f0: 54000081 b.ne ffffff8040002300 <exit+0x40> // b.any -ffffff80400022f4: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400022f8: 9107f000 add x0, x0, #0x1fc -ffffff80400022fc: 97fff881 bl ffffff8040000500 <panic> -ffffff8040002300: 91034275 add x21, x19, #0xd0 -ffffff8040002304: 91054277 add x23, x19, #0x150 -ffffff8040002308: f94002a0 ldr x0, [x21] -ffffff804000230c: b4000060 cbz x0, ffffff8040002318 <exit+0x58> -ffffff8040002310: 940007c9 bl ffffff8040004234 <fileclose> -ffffff8040002314: f90002bf str xzr, [x21] -ffffff8040002318: 910022b5 add x21, x21, #0x8 -ffffff804000231c: eb1702bf cmp x21, x23 -ffffff8040002320: 54ffff41 b.ne ffffff8040002308 <exit+0x48> // b.any -ffffff8040002324: 940006b4 bl ffffff8040003df4 <begin_op> -ffffff8040002328: f940aa60 ldr x0, [x19, #336] -ffffff804000232c: 91006294 add x20, x20, #0x18 -ffffff8040002330: 940004c1 bl ffffff8040003634 <iput> -ffffff8040002334: 940006ca bl ffffff8040003e5c <end_op> -ffffff8040002338: aa1403e0 mov x0, x20 -ffffff804000233c: f900aa7f str xzr, [x19, #336] -ffffff8040002340: 97fffa30 bl ffffff8040000c00 <acquire> -ffffff8040002344: aa1303e0 mov x0, x19 -ffffff8040002348: 97ffffc7 bl ffffff8040002264 <reparent> -ffffff804000234c: f9401e60 ldr x0, [x19, #56] -ffffff8040002350: 97ffffa7 bl ffffff80400021ec <wakeup> -ffffff8040002354: aa1303e0 mov x0, x19 -ffffff8040002358: 97fffa2a bl ffffff8040000c00 <acquire> -ffffff804000235c: 528000a0 mov w0, #0x5 // #5 -ffffff8040002360: b9002e76 str w22, [x19, #44] -ffffff8040002364: b9001a60 str w0, [x19, #24] -ffffff8040002368: aa1403e0 mov x0, x20 -ffffff804000236c: 97fffa50 bl ffffff8040000cac <release> -ffffff8040002370: 97ffff05 bl ffffff8040001f84 <sched> -ffffff8040002374: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002378: 91082400 add x0, x0, #0x209 -ffffff804000237c: 17ffffe0 b ffffff80400022fc <exit+0x3c> - -ffffff8040002380 <kill>: -ffffff8040002380: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040002384: 910003fd mov x29, sp -ffffff8040002388: a90153f3 stp x19, x20, [sp, #16] -ffffff804000238c: 900000b3 adrp x19, ffffff8040016000 <cons> -ffffff8040002390: 91160273 add x19, x19, #0x580 -ffffff8040002394: d2800814 mov x20, #0x40 // #64 -ffffff8040002398: f90013f5 str x21, [sp, #32] -ffffff804000239c: 2a0003f5 mov w21, w0 -ffffff80400023a0: aa1303e0 mov x0, x19 -ffffff80400023a4: 97fffa17 bl ffffff8040000c00 <acquire> -ffffff80400023a8: b9403260 ldr w0, [x19, #48] -ffffff80400023ac: 6b15001f cmp w0, w21 -ffffff80400023b0: 540001e1 b.ne ffffff80400023ec <kill+0x6c> // b.any -ffffff80400023b4: 52800020 mov w0, #0x1 // #1 -ffffff80400023b8: b9002a60 str w0, [x19, #40] -ffffff80400023bc: b9401a60 ldr w0, [x19, #24] -ffffff80400023c0: 7100081f cmp w0, #0x2 -ffffff80400023c4: 54000061 b.ne ffffff80400023d0 <kill+0x50> // b.any -ffffff80400023c8: 52800060 mov w0, #0x3 // #3 -ffffff80400023cc: b9001a60 str w0, [x19, #24] -ffffff80400023d0: aa1303e0 mov x0, x19 -ffffff80400023d4: 97fffa36 bl ffffff8040000cac <release> -ffffff80400023d8: 52800000 mov w0, #0x0 // #0 -ffffff80400023dc: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400023e0: f94013f5 ldr x21, [sp, #32] -ffffff80400023e4: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400023e8: d65f03c0 ret -ffffff80400023ec: aa1303e0 mov x0, x19 -ffffff80400023f0: 9105a273 add x19, x19, #0x168 -ffffff80400023f4: 97fffa2e bl ffffff8040000cac <release> -ffffff80400023f8: f1000694 subs x20, x20, #0x1 -ffffff80400023fc: 54fffd21 b.ne ffffff80400023a0 <kill+0x20> // b.any -ffffff8040002400: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040002404: 17fffff6 b ffffff80400023dc <kill+0x5c> - -ffffff8040002408 <either_copyout>: -ffffff8040002408: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff804000240c: 910003fd mov x29, sp -ffffff8040002410: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002414: 2a0003f6 mov w22, w0 -ffffff8040002418: aa0303f5 mov x21, x3 -ffffff804000241c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002420: aa0103f3 mov x19, x1 -ffffff8040002424: aa0203f4 mov x20, x2 -ffffff8040002428: 97fffdd1 bl ffffff8040001b6c <myproc> -ffffff804000242c: 34000136 cbz w22, ffffff8040002450 <either_copyout+0x48> -ffffff8040002430: aa1503e3 mov x3, x21 -ffffff8040002434: aa1403e2 mov x2, x20 -ffffff8040002438: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000243c: aa1303e1 mov x1, x19 -ffffff8040002440: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002444: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002448: f9402800 ldr x0, [x0, #80] -ffffff804000244c: 17fffcd9 b ffffff80400017b0 <copyout> -ffffff8040002450: 2a1503e2 mov w2, w21 -ffffff8040002454: aa1403e1 mov x1, x20 -ffffff8040002458: aa1303e0 mov x0, x19 -ffffff804000245c: 97fffa38 bl ffffff8040000d3c <memmove> -ffffff8040002460: 52800000 mov w0, #0x0 // #0 -ffffff8040002464: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002468: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000246c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002470: d65f03c0 ret - -ffffff8040002474 <either_copyin>: -ffffff8040002474: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040002478: 910003fd mov x29, sp -ffffff804000247c: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002480: 2a0103f6 mov w22, w1 -ffffff8040002484: aa0303f5 mov x21, x3 -ffffff8040002488: a90153f3 stp x19, x20, [sp, #16] -ffffff804000248c: aa0003f3 mov x19, x0 -ffffff8040002490: aa0203f4 mov x20, x2 -ffffff8040002494: 97fffdb6 bl ffffff8040001b6c <myproc> -ffffff8040002498: 34000136 cbz w22, ffffff80400024bc <either_copyin+0x48> -ffffff804000249c: aa1503e3 mov x3, x21 -ffffff80400024a0: aa1403e2 mov x2, x20 -ffffff80400024a4: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400024a8: aa1303e1 mov x1, x19 -ffffff80400024ac: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400024b0: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400024b4: f9402800 ldr x0, [x0, #80] -ffffff80400024b8: 17fffce2 b ffffff8040001840 <copyin> -ffffff80400024bc: 2a1503e2 mov w2, w21 -ffffff80400024c0: aa1403e1 mov x1, x20 -ffffff80400024c4: aa1303e0 mov x0, x19 -ffffff80400024c8: 97fffa1d bl ffffff8040000d3c <memmove> -ffffff80400024cc: 52800000 mov w0, #0x0 // #0 -ffffff80400024d0: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400024d4: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400024d8: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400024dc: d65f03c0 ret - -ffffff80400024e0 <procdump>: -ffffff80400024e0: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff80400024e4: 910003fd mov x29, sp -ffffff80400024e8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400024ec: b0000034 adrp x20, ffffff8040007000 <etext> -ffffff80400024f0: 910cce94 add x20, x20, #0x333 -ffffff80400024f4: aa1403e0 mov x0, x20 -ffffff80400024f8: 900000b3 adrp x19, ffffff8040016000 <cons> -ffffff80400024fc: 91160273 add x19, x19, #0x580 -ffffff8040002500: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002504: b0000035 adrp x21, ffffff8040007000 <etext> -ffffff8040002508: 910856b5 add x21, x21, #0x215 -ffffff804000250c: d2800816 mov x22, #0x40 // #64 -ffffff8040002510: a90363f7 stp x23, x24, [sp, #48] -ffffff8040002514: b0000037 adrp x23, ffffff8040007000 <etext> -ffffff8040002518: 910866f7 add x23, x23, #0x219 -ffffff804000251c: b0000038 adrp x24, ffffff8040007000 <etext> -ffffff8040002520: 97fff80a bl ffffff8040000548 <printf> -ffffff8040002524: b9401a60 ldr w0, [x19, #24] -ffffff8040002528: 340001a0 cbz w0, ffffff804000255c <procdump+0x7c> -ffffff804000252c: 7100141f cmp w0, #0x5 -ffffff8040002530: 54000268 b.hi ffffff804000257c <procdump+0x9c> // b.pmore -ffffff8040002534: 91092301 add x1, x24, #0x248 -ffffff8040002538: f8605822 ldr x2, [x1, w0, uxtw #3] -ffffff804000253c: f100005f cmp x2, #0x0 -ffffff8040002540: 9a951042 csel x2, x2, x21, ne // ne = any -ffffff8040002544: b9403261 ldr w1, [x19, #48] -ffffff8040002548: aa1703e0 mov x0, x23 -ffffff804000254c: 91056263 add x3, x19, #0x158 -ffffff8040002550: 97fff7fe bl ffffff8040000548 <printf> -ffffff8040002554: aa1403e0 mov x0, x20 -ffffff8040002558: 97fff7fc bl ffffff8040000548 <printf> -ffffff804000255c: f10006d6 subs x22, x22, #0x1 -ffffff8040002560: 9105a273 add x19, x19, #0x168 -ffffff8040002564: 54fffe01 b.ne ffffff8040002524 <procdump+0x44> // b.any -ffffff8040002568: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000256c: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040002570: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040002574: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040002578: d65f03c0 ret -ffffff804000257c: aa1503e2 mov x2, x21 -ffffff8040002580: 17fffff1 b ffffff8040002544 <procdump+0x64> - -ffffff8040002584 <swtch>: -// Save current registers in old. Load from new. - - -.global swtch -swtch: - mov x9, x0 -ffffff8040002584: aa0003e9 mov x9, x0 - mov x10, sp -ffffff8040002588: 910003ea mov x10, sp - - stp x10/*sp*/, x18, [x9, #16 * 0] -ffffff804000258c: a900492a stp x10, x18, [x9] - stp x19, x20, [x9, #16 * 1] -ffffff8040002590: a9015133 stp x19, x20, [x9, #16] - stp x21, x22, [x9, #16 * 2] -ffffff8040002594: a9025935 stp x21, x22, [x9, #32] - stp x23, x24, [x9, #16 * 3] -ffffff8040002598: a9036137 stp x23, x24, [x9, #48] - stp x25, x26, [x9, #16 * 4] -ffffff804000259c: a9046939 stp x25, x26, [x9, #64] - stp x27, x28, [x9, #16 * 5] -ffffff80400025a0: a905713b stp x27, x28, [x9, #80] - stp x29, x30, [x9, #16 * 6] -ffffff80400025a4: a906793d stp x29, x30, [x9, #96] - - mov x9, x1 -ffffff80400025a8: aa0103e9 mov x9, x1 - - ldp x10/*sp*/, x18, [x9, #16 * 0] -ffffff80400025ac: a940492a ldp x10, x18, [x9] - ldp x19, x20, [x9, #16 * 1] -ffffff80400025b0: a9415133 ldp x19, x20, [x9, #16] - ldp x21, x22, [x9, #16 * 2] -ffffff80400025b4: a9425935 ldp x21, x22, [x9, #32] - ldp x23, x24, [x9, #16 * 3] -ffffff80400025b8: a9436137 ldp x23, x24, [x9, #48] - ldp x25, x26, [x9, #16 * 4] -ffffff80400025bc: a9446939 ldp x25, x26, [x9, #64] - ldp x27, x28, [x9, #16 * 5] -ffffff80400025c0: a945713b ldp x27, x28, [x9, #80] - ldp x29, x30, [x9, #16 * 6] -ffffff80400025c4: a946793d ldp x29, x30, [x9, #96] - - mov sp, x10 -ffffff80400025c8: 9100015f mov sp, x10 - - ret -ffffff80400025cc: d65f03c0 ret - -ffffff80400025d0 <trapinit>: -ffffff80400025d0: b0000021 adrp x1, ffffff8040007000 <etext> -ffffff80400025d4: 9109e021 add x1, x1, #0x278 -ffffff80400025d8: b00000c0 adrp x0, ffffff804001b000 <proc+0x4a80> -ffffff80400025dc: 913e0000 add x0, x0, #0xf80 -ffffff80400025e0: 17fff963 b ffffff8040000b6c <initlock> - -ffffff80400025e4 <trapinithart>: -ffffff80400025e4: f0000000 adrp x0, ffffff8040005000 <sys_link+0x68> -ffffff80400025e8: 91200000 add x0, x0, #0x800 -ffffff80400025ec: d518c000 msr vbar_el1, x0 -ffffff80400025f0: d65f03c0 ret - -ffffff80400025f4 <usertrap>: -ffffff80400025f4: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400025f8: 910003fd mov x29, sp -ffffff80400025fc: f9000bf3 str x19, [sp, #16] -ffffff8040002600: 97fffd5b bl ffffff8040001b6c <myproc> -ffffff8040002604: aa0003f3 mov x19, x0 -ffffff8040002608: d5385200 mrs x0, esr_el1 -ffffff804000260c: d2800001 mov x1, #0x0 // #0 -ffffff8040002610: d5185201 msr esr_el1, x1 -ffffff8040002614: 531a7c00 lsr w0, w0, #26 -ffffff8040002618: f100541f cmp x0, #0x15 -ffffff804000261c: 540001e1 b.ne ffffff8040002658 <usertrap+0x64> // b.any -ffffff8040002620: b9402a60 ldr w0, [x19, #40] -ffffff8040002624: 34000060 cbz w0, ffffff8040002630 <usertrap+0x3c> -ffffff8040002628: 12800000 mov w0, #0xffffffff // #-1 -ffffff804000262c: 97ffff25 bl ffffff80400022c0 <exit> -ffffff8040002630: d5034fff msr daifclr, #0xf -ffffff8040002634: 940000f1 bl ffffff80400029f8 <syscall> -ffffff8040002638: b9402a60 ldr w0, [x19, #40] -ffffff804000263c: 34000060 cbz w0, ffffff8040002648 <usertrap+0x54> -ffffff8040002640: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040002644: 97ffff1f bl ffffff80400022c0 <exit> -ffffff8040002648: d5034fdf msr daifset, #0xf -ffffff804000264c: f9400bf3 ldr x19, [sp, #16] -ffffff8040002650: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002654: d65f03c0 ret -ffffff8040002658: d5385201 mrs x1, esr_el1 -ffffff804000265c: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002660: 9109f400 add x0, x0, #0x27d -ffffff8040002664: b9403262 ldr w2, [x19, #48] -ffffff8040002668: 97fff7b8 bl ffffff8040000548 <printf> -ffffff804000266c: d5384021 mrs x1, elr_el1 -ffffff8040002670: d5386002 mrs x2, far_el1 -ffffff8040002674: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002678: 910a8800 add x0, x0, #0x2a2 -ffffff804000267c: 97fff7b3 bl ffffff8040000548 <printf> -ffffff8040002680: 52800020 mov w0, #0x1 // #1 -ffffff8040002684: b9002a60 str w0, [x19, #40] -ffffff8040002688: 17ffffee b ffffff8040002640 <usertrap+0x4c> - -ffffff804000268c <kerneltrap>: -ffffff804000268c: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040002690: 910003fd mov x29, sp -ffffff8040002694: d5385201 mrs x1, esr_el1 -ffffff8040002698: d2800000 mov x0, #0x0 // #0 -ffffff804000269c: d5185200 msr esr_el1, x0 -ffffff80400026a0: d53b4220 mrs x0, daif -ffffff80400026a4: 37380080 tbnz w0, #7, ffffff80400026b4 <kerneltrap+0x28> -ffffff80400026a8: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400026ac: 910af400 add x0, x0, #0x2bd -ffffff80400026b0: 97fff794 bl ffffff8040000500 <panic> -ffffff80400026b4: 92406023 and x3, x1, #0x1ffffff -ffffff80400026b8: 531a7c22 lsr w2, w1, #26 -ffffff80400026bc: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400026c0: 910b7000 add x0, x0, #0x2dc -ffffff80400026c4: 97fff7a1 bl ffffff8040000548 <printf> -ffffff80400026c8: d5384021 mrs x1, elr_el1 -ffffff80400026cc: d5386002 mrs x2, far_el1 -ffffff80400026d0: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400026d4: 910ab800 add x0, x0, #0x2ae -ffffff80400026d8: 97fff79c bl ffffff8040000548 <printf> -ffffff80400026dc: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400026e0: 910ba800 add x0, x0, #0x2ea -ffffff80400026e4: 17fffff3 b ffffff80400026b0 <kerneltrap+0x24> - -ffffff80400026e8 <clockintr>: -ffffff80400026e8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400026ec: 910003fd mov x29, sp -ffffff80400026f0: f9000bf3 str x19, [sp, #16] -ffffff80400026f4: b00000d3 adrp x19, ffffff804001b000 <proc+0x4a80> -ffffff80400026f8: 913e0273 add x19, x19, #0xf80 -ffffff80400026fc: aa1303e0 mov x0, x19 -ffffff8040002700: 97fff940 bl ffffff8040000c00 <acquire> -ffffff8040002704: b9401a61 ldr w1, [x19, #24] -ffffff8040002708: aa1303e0 mov x0, x19 -ffffff804000270c: 11000421 add w1, w1, #0x1 -ffffff8040002710: b8018c01 str w1, [x0, #24]! -ffffff8040002714: 97fffeb6 bl ffffff80400021ec <wakeup> -ffffff8040002718: aa1303e0 mov x0, x19 -ffffff804000271c: f9400bf3 ldr x19, [sp, #16] -ffffff8040002720: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002724: 17fff962 b ffffff8040000cac <release> - -ffffff8040002728 <devintr>: -ffffff8040002728: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff804000272c: 910003fd mov x29, sp -ffffff8040002730: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002734: 9400107e bl ffffff804000692c <gic_iar> -ffffff8040002738: 2a0003f4 mov w20, w0 -ffffff804000273c: 9400107a bl ffffff8040006924 <gic_iar_irq> -ffffff8040002740: 7100841f cmp w0, #0x21 -ffffff8040002744: 54000121 b.ne ffffff8040002768 <devintr+0x40> // b.any -ffffff8040002748: 97fff895 bl ffffff804000099c <uartintr> -ffffff804000274c: 52800033 mov w19, #0x1 // #1 -ffffff8040002750: 2a1403e0 mov w0, w20 -ffffff8040002754: 94001078 bl ffffff8040006934 <gic_eoi> -ffffff8040002758: 2a1303e0 mov w0, w19 -ffffff804000275c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002760: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002764: d65f03c0 ret -ffffff8040002768: 7100c01f cmp w0, #0x30 -ffffff804000276c: 2a0003f3 mov w19, w0 -ffffff8040002770: 54000061 b.ne ffffff804000277c <devintr+0x54> // b.any -ffffff8040002774: 94000fdd bl ffffff80400066e8 <virtio_disk_intr> -ffffff8040002778: 17fffff5 b ffffff804000274c <devintr+0x24> -ffffff804000277c: 71006c1f cmp w0, #0x1b -ffffff8040002780: 54000101 b.ne ffffff80400027a0 <devintr+0x78> // b.any -ffffff8040002784: d53800a0 mrs x0, mpidr_el1 -ffffff8040002788: 72001c1f tst w0, #0xff -ffffff804000278c: 54000041 b.ne ffffff8040002794 <devintr+0x6c> // b.any -ffffff8040002790: 97ffffd6 bl ffffff80400026e8 <clockintr> -ffffff8040002794: 52800053 mov w19, #0x2 // #2 -ffffff8040002798: 94000ec0 bl ffffff8040006298 <timerintr> -ffffff804000279c: 17ffffed b ffffff8040002750 <devintr+0x28> -ffffff80400027a0: 710ffc1f cmp w0, #0x3ff -ffffff80400027a4: 540000c0 b.eq ffffff80400027bc <devintr+0x94> // b.none -ffffff80400027a8: 34fffd80 cbz w0, ffffff8040002758 <devintr+0x30> -ffffff80400027ac: 2a0003e1 mov w1, w0 -ffffff80400027b0: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400027b4: 910bd400 add x0, x0, #0x2f5 -ffffff80400027b8: 97fff764 bl ffffff8040000548 <printf> -ffffff80400027bc: 52800013 mov w19, #0x0 // #0 -ffffff80400027c0: 17ffffe6 b ffffff8040002758 <devintr+0x30> - -ffffff80400027c4 <userirq>: -ffffff80400027c4: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400027c8: 910003fd mov x29, sp -ffffff80400027cc: f9000bf3 str x19, [sp, #16] -ffffff80400027d0: 97fffce7 bl ffffff8040001b6c <myproc> -ffffff80400027d4: aa0003f3 mov x19, x0 -ffffff80400027d8: 97ffffd4 bl ffffff8040002728 <devintr> -ffffff80400027dc: 7100081f cmp w0, #0x2 -ffffff80400027e0: 54000041 b.ne ffffff80400027e8 <userirq+0x24> // b.any -ffffff80400027e4: 97fffe1c bl ffffff8040002054 <yield> -ffffff80400027e8: b9402a60 ldr w0, [x19, #40] -ffffff80400027ec: 34000060 cbz w0, ffffff80400027f8 <userirq+0x34> -ffffff80400027f0: 12800000 mov w0, #0xffffffff // #-1 -ffffff80400027f4: 97fffeb3 bl ffffff80400022c0 <exit> -ffffff80400027f8: d5034fdf msr daifset, #0xf -ffffff80400027fc: f9400bf3 ldr x19, [sp, #16] -ffffff8040002800: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002804: d65f03c0 ret - -ffffff8040002808 <kernelirq>: -ffffff8040002808: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff804000280c: 910003fd mov x29, sp -ffffff8040002810: 97ffffc6 bl ffffff8040002728 <devintr> -ffffff8040002814: 7100081f cmp w0, #0x2 -ffffff8040002818: 54000121 b.ne ffffff804000283c <kernelirq+0x34> // b.any -ffffff804000281c: 97fffcd4 bl ffffff8040001b6c <myproc> -ffffff8040002820: b40000e0 cbz x0, ffffff804000283c <kernelirq+0x34> -ffffff8040002824: 97fffcd2 bl ffffff8040001b6c <myproc> -ffffff8040002828: b9401800 ldr w0, [x0, #24] -ffffff804000282c: 7100101f cmp w0, #0x4 -ffffff8040002830: 54000061 b.ne ffffff804000283c <kernelirq+0x34> // b.any -ffffff8040002834: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040002838: 17fffe07 b ffffff8040002054 <yield> -ffffff804000283c: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040002840: d65f03c0 ret - -ffffff8040002844 <argraw>: -ffffff8040002844: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002848: 910003fd mov x29, sp -ffffff804000284c: f9000bf3 str x19, [sp, #16] -ffffff8040002850: 2a0003f3 mov w19, w0 -ffffff8040002854: 97fffcc6 bl ffffff8040001b6c <myproc> -ffffff8040002858: 7100167f cmp w19, #0x5 -ffffff804000285c: 540002c8 b.hi ffffff80400028b4 <argraw+0x70> // b.pmore -ffffff8040002860: b0000022 adrp x2, ffffff8040007000 <etext> -ffffff8040002864: 910ce042 add x2, x2, #0x338 -ffffff8040002868: f9402c01 ldr x1, [x0, #88] -ffffff804000286c: 38734842 ldrb w2, [x2, w19, uxtw] -ffffff8040002870: 10000073 adr x19, ffffff804000287c <argraw+0x38> -ffffff8040002874: 8b228a62 add x2, x19, w2, sxtb #2 -ffffff8040002878: d61f0040 br x2 -ffffff804000287c: f9400020 ldr x0, [x1] -ffffff8040002880: f9400bf3 ldr x19, [sp, #16] -ffffff8040002884: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002888: d65f03c0 ret -ffffff804000288c: f9400420 ldr x0, [x1, #8] -ffffff8040002890: 17fffffc b ffffff8040002880 <argraw+0x3c> -ffffff8040002894: f9400820 ldr x0, [x1, #16] -ffffff8040002898: 17fffffa b ffffff8040002880 <argraw+0x3c> -ffffff804000289c: f9400c20 ldr x0, [x1, #24] -ffffff80400028a0: 17fffff8 b ffffff8040002880 <argraw+0x3c> -ffffff80400028a4: f9401020 ldr x0, [x1, #32] -ffffff80400028a8: 17fffff6 b ffffff8040002880 <argraw+0x3c> -ffffff80400028ac: f9401420 ldr x0, [x1, #40] -ffffff80400028b0: 17fffff4 b ffffff8040002880 <argraw+0x3c> -ffffff80400028b4: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff80400028b8: 910c4800 add x0, x0, #0x312 -ffffff80400028bc: 97fff711 bl ffffff8040000500 <panic> - -ffffff80400028c0 <fetchaddr>: -ffffff80400028c0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400028c4: 910003fd mov x29, sp -ffffff80400028c8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400028cc: aa0003f3 mov x19, x0 -ffffff80400028d0: aa0103f4 mov x20, x1 -ffffff80400028d4: 97fffca6 bl ffffff8040001b6c <myproc> -ffffff80400028d8: f9402401 ldr x1, [x0, #72] -ffffff80400028dc: eb13003f cmp x1, x19 -ffffff80400028e0: 540001c9 b.ls ffffff8040002918 <fetchaddr+0x58> // b.plast -ffffff80400028e4: 91002262 add x2, x19, #0x8 -ffffff80400028e8: eb02003f cmp x1, x2 -ffffff80400028ec: 54000163 b.cc ffffff8040002918 <fetchaddr+0x58> // b.lo, b.ul, b.last -ffffff80400028f0: d2800103 mov x3, #0x8 // #8 -ffffff80400028f4: aa1303e2 mov x2, x19 -ffffff80400028f8: f9402800 ldr x0, [x0, #80] -ffffff80400028fc: aa1403e1 mov x1, x20 -ffffff8040002900: 97fffbd0 bl ffffff8040001840 <copyin> -ffffff8040002904: 7100001f cmp w0, #0x0 -ffffff8040002908: 5a9f03e0 csetm w0, ne // ne = any -ffffff804000290c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002910: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002914: d65f03c0 ret -ffffff8040002918: 12800000 mov w0, #0xffffffff // #-1 -ffffff804000291c: 17fffffc b ffffff804000290c <fetchaddr+0x4c> - -ffffff8040002920 <fetchstr>: -ffffff8040002920: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040002924: 910003fd mov x29, sp -ffffff8040002928: a90153f3 stp x19, x20, [sp, #16] -ffffff804000292c: aa0003f4 mov x20, x0 -ffffff8040002930: aa0103f3 mov x19, x1 -ffffff8040002934: f90013f5 str x21, [sp, #32] -ffffff8040002938: 2a0203f5 mov w21, w2 -ffffff804000293c: 97fffc8c bl ffffff8040001b6c <myproc> -ffffff8040002940: 93407ea3 sxtw x3, w21 -ffffff8040002944: aa1403e2 mov x2, x20 -ffffff8040002948: f9402800 ldr x0, [x0, #80] -ffffff804000294c: aa1303e1 mov x1, x19 -ffffff8040002950: 97fffbe0 bl ffffff80400018d0 <copyinstr> -ffffff8040002954: 37f800c0 tbnz w0, #31, ffffff804000296c <fetchstr+0x4c> -ffffff8040002958: aa1303e0 mov x0, x19 -ffffff804000295c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002960: f94013f5 ldr x21, [sp, #32] -ffffff8040002964: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002968: 17fff935 b ffffff8040000e3c <strlen> -ffffff804000296c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002970: f94013f5 ldr x21, [sp, #32] -ffffff8040002974: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002978: d65f03c0 ret - -ffffff804000297c <argint>: -ffffff804000297c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002980: 910003fd mov x29, sp -ffffff8040002984: f9000bf3 str x19, [sp, #16] -ffffff8040002988: aa0103f3 mov x19, x1 -ffffff804000298c: 97ffffae bl ffffff8040002844 <argraw> -ffffff8040002990: b9000260 str w0, [x19] -ffffff8040002994: 52800000 mov w0, #0x0 // #0 -ffffff8040002998: f9400bf3 ldr x19, [sp, #16] -ffffff804000299c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400029a0: d65f03c0 ret - -ffffff80400029a4 <argaddr>: -ffffff80400029a4: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400029a8: 910003fd mov x29, sp -ffffff80400029ac: f9000bf3 str x19, [sp, #16] -ffffff80400029b0: aa0103f3 mov x19, x1 -ffffff80400029b4: 97ffffa4 bl ffffff8040002844 <argraw> -ffffff80400029b8: f9000260 str x0, [x19] -ffffff80400029bc: 52800000 mov w0, #0x0 // #0 -ffffff80400029c0: f9400bf3 ldr x19, [sp, #16] -ffffff80400029c4: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400029c8: d65f03c0 ret - -ffffff80400029cc <argstr>: -ffffff80400029cc: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400029d0: 910003fd mov x29, sp -ffffff80400029d4: a90153f3 stp x19, x20, [sp, #16] -ffffff80400029d8: aa0103f3 mov x19, x1 -ffffff80400029dc: 2a0203f4 mov w20, w2 -ffffff80400029e0: 97ffff99 bl ffffff8040002844 <argraw> -ffffff80400029e4: 2a1403e2 mov w2, w20 -ffffff80400029e8: aa1303e1 mov x1, x19 -ffffff80400029ec: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400029f0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400029f4: 17ffffcb b ffffff8040002920 <fetchstr> - -ffffff80400029f8 <syscall>: -ffffff80400029f8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400029fc: 910003fd mov x29, sp -ffffff8040002a00: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002a04: 97fffc5a bl ffffff8040001b6c <myproc> -ffffff8040002a08: f9402c14 ldr x20, [x0, #88] -ffffff8040002a0c: aa0003f3 mov x19, x0 -ffffff8040002a10: f9401e83 ldr x3, [x20, #56] -ffffff8040002a14: 51000460 sub w0, w3, #0x1 -ffffff8040002a18: 7100501f cmp w0, #0x14 -ffffff8040002a1c: 54000148 b.hi ffffff8040002a44 <syscall+0x4c> // b.pmore -ffffff8040002a20: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002a24: 910d0000 add x0, x0, #0x340 -ffffff8040002a28: f863d800 ldr x0, [x0, w3, sxtw #3] -ffffff8040002a2c: b40000c0 cbz x0, ffffff8040002a44 <syscall+0x4c> -ffffff8040002a30: d63f0000 blr x0 -ffffff8040002a34: f9000280 str x0, [x20] -ffffff8040002a38: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002a3c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002a40: d65f03c0 ret -ffffff8040002a44: b9403261 ldr w1, [x19, #48] -ffffff8040002a48: 91056262 add x2, x19, #0x158 -ffffff8040002a4c: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002a50: 910c6400 add x0, x0, #0x319 -ffffff8040002a54: 97fff6bd bl ffffff8040000548 <printf> -ffffff8040002a58: f9402e60 ldr x0, [x19, #88] -ffffff8040002a5c: 92800001 mov x1, #0xffffffffffffffff // #-1 -ffffff8040002a60: f9000001 str x1, [x0] -ffffff8040002a64: 17fffff5 b ffffff8040002a38 <syscall+0x40> - -ffffff8040002a68 <sys_exit>: -ffffff8040002a68: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002a6c: 52800000 mov w0, #0x0 // #0 -ffffff8040002a70: 910003fd mov x29, sp -ffffff8040002a74: 910073e1 add x1, sp, #0x1c -ffffff8040002a78: 97ffffc1 bl ffffff804000297c <argint> -ffffff8040002a7c: 37f800c0 tbnz w0, #31, ffffff8040002a94 <sys_exit+0x2c> -ffffff8040002a80: b9401fe0 ldr w0, [sp, #28] -ffffff8040002a84: 97fffe0f bl ffffff80400022c0 <exit> -ffffff8040002a88: d2800000 mov x0, #0x0 // #0 -ffffff8040002a8c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002a90: d65f03c0 ret -ffffff8040002a94: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040002a98: 17fffffd b ffffff8040002a8c <sys_exit+0x24> - -ffffff8040002a9c <sys_getpid>: -ffffff8040002a9c: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040002aa0: 910003fd mov x29, sp -ffffff8040002aa4: 97fffc32 bl ffffff8040001b6c <myproc> -ffffff8040002aa8: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040002aac: b9803000 ldrsw x0, [x0, #48] -ffffff8040002ab0: d65f03c0 ret - -ffffff8040002ab4 <sys_fork>: -ffffff8040002ab4: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff8040002ab8: 910003fd mov x29, sp -ffffff8040002abc: 97fffccb bl ffffff8040001de8 <fork> -ffffff8040002ac0: 93407c00 sxtw x0, w0 -ffffff8040002ac4: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040002ac8: d65f03c0 ret - -ffffff8040002acc <sys_wait>: -ffffff8040002acc: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002ad0: 52800000 mov w0, #0x0 // #0 -ffffff8040002ad4: 910003fd mov x29, sp -ffffff8040002ad8: 910063e1 add x1, sp, #0x18 -ffffff8040002adc: 97ffffb2 bl ffffff80400029a4 <argaddr> -ffffff8040002ae0: 37f800c0 tbnz w0, #31, ffffff8040002af8 <sys_wait+0x2c> -ffffff8040002ae4: f9400fe0 ldr x0, [sp, #24] -ffffff8040002ae8: 97fffd7f bl ffffff80400020e4 <wait> -ffffff8040002aec: 93407c00 sxtw x0, w0 -ffffff8040002af0: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002af4: d65f03c0 ret -ffffff8040002af8: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040002afc: 17fffffd b ffffff8040002af0 <sys_wait+0x24> - -ffffff8040002b00 <sys_sbrk>: -ffffff8040002b00: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040002b04: 52800000 mov w0, #0x0 // #0 -ffffff8040002b08: 910003fd mov x29, sp -ffffff8040002b0c: 9100b3e1 add x1, sp, #0x2c -ffffff8040002b10: f9000bf3 str x19, [sp, #16] -ffffff8040002b14: 97ffff9a bl ffffff804000297c <argint> -ffffff8040002b18: 36f800a0 tbz w0, #31, ffffff8040002b2c <sys_sbrk+0x2c> -ffffff8040002b1c: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040002b20: f9400bf3 ldr x19, [sp, #16] -ffffff8040002b24: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002b28: d65f03c0 ret -ffffff8040002b2c: 97fffc10 bl ffffff8040001b6c <myproc> -ffffff8040002b30: f9402413 ldr x19, [x0, #72] -ffffff8040002b34: b9402fe0 ldr w0, [sp, #44] -ffffff8040002b38: 97fffc8f bl ffffff8040001d74 <growproc> -ffffff8040002b3c: 37ffff00 tbnz w0, #31, ffffff8040002b1c <sys_sbrk+0x1c> -ffffff8040002b40: 93407e60 sxtw x0, w19 -ffffff8040002b44: 17fffff7 b ffffff8040002b20 <sys_sbrk+0x20> - -ffffff8040002b48 <sys_sleep>: -ffffff8040002b48: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040002b4c: 52800000 mov w0, #0x0 // #0 -ffffff8040002b50: 910003fd mov x29, sp -ffffff8040002b54: 9100f3e1 add x1, sp, #0x3c -ffffff8040002b58: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002b5c: f90013f5 str x21, [sp, #32] -ffffff8040002b60: 97ffff87 bl ffffff804000297c <argint> -ffffff8040002b64: 37f80320 tbnz w0, #31, ffffff8040002bc8 <sys_sleep+0x80> -ffffff8040002b68: b00000d3 adrp x19, ffffff804001b000 <proc+0x4a80> -ffffff8040002b6c: 913e0273 add x19, x19, #0xf80 -ffffff8040002b70: b00000d4 adrp x20, ffffff804001b000 <proc+0x4a80> -ffffff8040002b74: aa1303e0 mov x0, x19 -ffffff8040002b78: 97fff822 bl ffffff8040000c00 <acquire> -ffffff8040002b7c: b94f9a95 ldr w21, [x20, #3992] -ffffff8040002b80: 913e6294 add x20, x20, #0xf98 -ffffff8040002b84: b9400280 ldr w0, [x20] -ffffff8040002b88: b9403fe1 ldr w1, [sp, #60] -ffffff8040002b8c: 4b150000 sub w0, w0, w21 -ffffff8040002b90: 6b01001f cmp w0, w1 -ffffff8040002b94: 54000103 b.cc ffffff8040002bb4 <sys_sleep+0x6c> // b.lo, b.ul, b.last -ffffff8040002b98: aa1303e0 mov x0, x19 -ffffff8040002b9c: 97fff844 bl ffffff8040000cac <release> -ffffff8040002ba0: d2800000 mov x0, #0x0 // #0 -ffffff8040002ba4: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002ba8: f94013f5 ldr x21, [sp, #32] -ffffff8040002bac: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040002bb0: d65f03c0 ret -ffffff8040002bb4: 97fffbee bl ffffff8040001b6c <myproc> -ffffff8040002bb8: b9402800 ldr w0, [x0, #40] -ffffff8040002bbc: 340000a0 cbz w0, ffffff8040002bd0 <sys_sleep+0x88> -ffffff8040002bc0: aa1303e0 mov x0, x19 -ffffff8040002bc4: 97fff83a bl ffffff8040000cac <release> -ffffff8040002bc8: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040002bcc: 17fffff6 b ffffff8040002ba4 <sys_sleep+0x5c> -ffffff8040002bd0: aa1303e1 mov x1, x19 -ffffff8040002bd4: aa1403e0 mov x0, x20 -ffffff8040002bd8: 97fffd2c bl ffffff8040002088 <sleep> -ffffff8040002bdc: 17ffffea b ffffff8040002b84 <sys_sleep+0x3c> - -ffffff8040002be0 <sys_kill>: -ffffff8040002be0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002be4: 52800000 mov w0, #0x0 // #0 -ffffff8040002be8: 910003fd mov x29, sp -ffffff8040002bec: 910073e1 add x1, sp, #0x1c -ffffff8040002bf0: 97ffff63 bl ffffff804000297c <argint> -ffffff8040002bf4: 37f800c0 tbnz w0, #31, ffffff8040002c0c <sys_kill+0x2c> -ffffff8040002bf8: b9401fe0 ldr w0, [sp, #28] -ffffff8040002bfc: 97fffde1 bl ffffff8040002380 <kill> -ffffff8040002c00: 93407c00 sxtw x0, w0 -ffffff8040002c04: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002c08: d65f03c0 ret -ffffff8040002c0c: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040002c10: 17fffffd b ffffff8040002c04 <sys_kill+0x24> - -ffffff8040002c14 <sys_uptime>: -ffffff8040002c14: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002c18: 910003fd mov x29, sp -ffffff8040002c1c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002c20: b00000d3 adrp x19, ffffff804001b000 <proc+0x4a80> -ffffff8040002c24: 913e0273 add x19, x19, #0xf80 -ffffff8040002c28: aa1303e0 mov x0, x19 -ffffff8040002c2c: 97fff7f5 bl ffffff8040000c00 <acquire> -ffffff8040002c30: b00000c0 adrp x0, ffffff804001b000 <proc+0x4a80> -ffffff8040002c34: b94f9814 ldr w20, [x0, #3992] -ffffff8040002c38: aa1303e0 mov x0, x19 -ffffff8040002c3c: 97fff81c bl ffffff8040000cac <release> -ffffff8040002c40: 2a1403e0 mov w0, w20 -ffffff8040002c44: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002c48: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002c4c: d65f03c0 ret - -ffffff8040002c50 <binit>: -ffffff8040002c50: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040002c54: 910003fd mov x29, sp -ffffff8040002c58: b0000021 adrp x1, ffffff8040007000 <etext> -ffffff8040002c5c: 910fc021 add x1, x1, #0x3f0 -ffffff8040002c60: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002c64: b00000d3 adrp x19, ffffff804001b000 <proc+0x4a80> -ffffff8040002c68: 913e8273 add x19, x19, #0xfa0 -ffffff8040002c6c: aa1303e0 mov x0, x19 -ffffff8040002c70: b00000d4 adrp x20, ffffff804001b000 <proc+0x4a80> -ffffff8040002c74: 913ee294 add x20, x20, #0xfb8 -ffffff8040002c78: 91402273 add x19, x19, #0x8, lsl #12 -ffffff8040002c7c: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002c80: d0000115 adrp x21, ffffff8040024000 <bcache+0x8060> -ffffff8040002c84: 910822b5 add x21, x21, #0x208 -ffffff8040002c88: d28003d6 mov x22, #0x1e // #30 -ffffff8040002c8c: f9001bf7 str x23, [sp, #48] -ffffff8040002c90: b0000037 adrp x23, ffffff8040007000 <etext> -ffffff8040002c94: 910fdef7 add x23, x23, #0x3f7 -ffffff8040002c98: 97fff7b5 bl ffffff8040000b6c <initlock> -ffffff8040002c9c: f9015a75 str x21, [x19, #688] -ffffff8040002ca0: f9015e75 str x21, [x19, #696] -ffffff8040002ca4: f9415e60 ldr x0, [x19, #696] -ffffff8040002ca8: aa1703e1 mov x1, x23 -ffffff8040002cac: a9048295 stp x21, x0, [x20, #72] -ffffff8040002cb0: 91004280 add x0, x20, #0x10 -ffffff8040002cb4: 940004e1 bl ffffff8040004038 <initsleeplock> -ffffff8040002cb8: f9415e60 ldr x0, [x19, #696] -ffffff8040002cbc: f10006d6 subs x22, x22, #0x1 -ffffff8040002cc0: f9002414 str x20, [x0, #72] -ffffff8040002cc4: f9015e74 str x20, [x19, #696] -ffffff8040002cc8: 91116294 add x20, x20, #0x458 -ffffff8040002ccc: 54fffec1 b.ne ffffff8040002ca4 <binit+0x54> // b.any -ffffff8040002cd0: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002cd4: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040002cd8: f9401bf7 ldr x23, [sp, #48] -ffffff8040002cdc: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040002ce0: d65f03c0 ret - -ffffff8040002ce4 <bread>: -ffffff8040002ce4: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040002ce8: 910003fd mov x29, sp -ffffff8040002cec: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002cf0: b00000d4 adrp x20, ffffff804001b000 <proc+0x4a80> -ffffff8040002cf4: 913e8294 add x20, x20, #0xfa0 -ffffff8040002cf8: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002cfc: 2a0003f5 mov w21, w0 -ffffff8040002d00: aa1403e0 mov x0, x20 -ffffff8040002d04: 2a0103f6 mov w22, w1 -ffffff8040002d08: 97fff7be bl ffffff8040000c00 <acquire> -ffffff8040002d0c: 91402280 add x0, x20, #0x8, lsl #12 -ffffff8040002d10: d0000102 adrp x2, ffffff8040024000 <bcache+0x8060> -ffffff8040002d14: 91082042 add x2, x2, #0x208 -ffffff8040002d18: f9415c13 ldr x19, [x0, #696] -ffffff8040002d1c: eb02027f cmp x19, x2 -ffffff8040002d20: 540000e1 b.ne ffffff8040002d3c <bread+0x58> // b.any -ffffff8040002d24: f9415813 ldr x19, [x0, #688] -ffffff8040002d28: eb02027f cmp x19, x2 -ffffff8040002d2c: 540003e1 b.ne ffffff8040002da8 <bread+0xc4> // b.any -ffffff8040002d30: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002d34: 910ff800 add x0, x0, #0x3fe -ffffff8040002d38: 97fff5f2 bl ffffff8040000500 <panic> -ffffff8040002d3c: b9400a61 ldr w1, [x19, #8] -ffffff8040002d40: 6b0102bf cmp w21, w1 -ffffff8040002d44: 540002e1 b.ne ffffff8040002da0 <bread+0xbc> // b.any -ffffff8040002d48: b9400e61 ldr w1, [x19, #12] -ffffff8040002d4c: 6b0102df cmp w22, w1 -ffffff8040002d50: 54000281 b.ne ffffff8040002da0 <bread+0xbc> // b.any -ffffff8040002d54: b9404260 ldr w0, [x19, #64] -ffffff8040002d58: 11000400 add w0, w0, #0x1 -ffffff8040002d5c: b9004260 str w0, [x19, #64] -ffffff8040002d60: aa1403e0 mov x0, x20 -ffffff8040002d64: 97fff7d2 bl ffffff8040000cac <release> -ffffff8040002d68: 91004260 add x0, x19, #0x10 -ffffff8040002d6c: 940004c2 bl ffffff8040004074 <acquiresleep> -ffffff8040002d70: b9400260 ldr w0, [x19] -ffffff8040002d74: 350000c0 cbnz w0, ffffff8040002d8c <bread+0xa8> -ffffff8040002d78: aa1303e0 mov x0, x19 -ffffff8040002d7c: 52800001 mov w1, #0x0 // #0 -ffffff8040002d80: 94000dc8 bl ffffff80400064a0 <virtio_disk_rw> -ffffff8040002d84: 52800020 mov w0, #0x1 // #1 -ffffff8040002d88: b9000260 str w0, [x19] -ffffff8040002d8c: aa1303e0 mov x0, x19 -ffffff8040002d90: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002d94: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040002d98: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040002d9c: d65f03c0 ret -ffffff8040002da0: f9402a73 ldr x19, [x19, #80] -ffffff8040002da4: 17ffffde b ffffff8040002d1c <bread+0x38> -ffffff8040002da8: b9404260 ldr w0, [x19, #64] -ffffff8040002dac: 350000a0 cbnz w0, ffffff8040002dc0 <bread+0xdc> -ffffff8040002db0: 52800020 mov w0, #0x1 // #1 -ffffff8040002db4: b900027f str wzr, [x19] -ffffff8040002db8: 29015a75 stp w21, w22, [x19, #8] -ffffff8040002dbc: 17ffffe8 b ffffff8040002d5c <bread+0x78> -ffffff8040002dc0: f9402673 ldr x19, [x19, #72] -ffffff8040002dc4: 17ffffd9 b ffffff8040002d28 <bread+0x44> - -ffffff8040002dc8 <bwrite>: -ffffff8040002dc8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002dcc: 910003fd mov x29, sp -ffffff8040002dd0: f9000bf3 str x19, [sp, #16] -ffffff8040002dd4: aa0003f3 mov x19, x0 -ffffff8040002dd8: 91004000 add x0, x0, #0x10 -ffffff8040002ddc: 940004cb bl ffffff8040004108 <holdingsleep> -ffffff8040002de0: 35000080 cbnz w0, ffffff8040002df0 <bwrite+0x28> -ffffff8040002de4: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002de8: 91103c00 add x0, x0, #0x40f -ffffff8040002dec: 97fff5c5 bl ffffff8040000500 <panic> -ffffff8040002df0: aa1303e0 mov x0, x19 -ffffff8040002df4: 52800021 mov w1, #0x1 // #1 -ffffff8040002df8: f9400bf3 ldr x19, [sp, #16] -ffffff8040002dfc: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002e00: 14000da8 b ffffff80400064a0 <virtio_disk_rw> - -ffffff8040002e04 <brelse>: -ffffff8040002e04: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002e08: 910003fd mov x29, sp -ffffff8040002e0c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002e10: 91004014 add x20, x0, #0x10 -ffffff8040002e14: aa0003f3 mov x19, x0 -ffffff8040002e18: aa1403e0 mov x0, x20 -ffffff8040002e1c: 940004bb bl ffffff8040004108 <holdingsleep> -ffffff8040002e20: 35000080 cbnz w0, ffffff8040002e30 <brelse+0x2c> -ffffff8040002e24: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002e28: 91105800 add x0, x0, #0x416 -ffffff8040002e2c: 97fff5b5 bl ffffff8040000500 <panic> -ffffff8040002e30: aa1403e0 mov x0, x20 -ffffff8040002e34: b00000d4 adrp x20, ffffff804001b000 <proc+0x4a80> -ffffff8040002e38: 913e8294 add x20, x20, #0xfa0 -ffffff8040002e3c: 940004a4 bl ffffff80400040cc <releasesleep> -ffffff8040002e40: aa1403e0 mov x0, x20 -ffffff8040002e44: 97fff76f bl ffffff8040000c00 <acquire> -ffffff8040002e48: b9404260 ldr w0, [x19, #64] -ffffff8040002e4c: 51000400 sub w0, w0, #0x1 -ffffff8040002e50: b9004260 str w0, [x19, #64] -ffffff8040002e54: 35000180 cbnz w0, ffffff8040002e84 <brelse+0x80> -ffffff8040002e58: a9448261 ldp x1, x0, [x19, #72] -ffffff8040002e5c: f9002401 str x1, [x0, #72] -ffffff8040002e60: f9402661 ldr x1, [x19, #72] -ffffff8040002e64: f9002820 str x0, [x1, #80] -ffffff8040002e68: 91402281 add x1, x20, #0x8, lsl #12 -ffffff8040002e6c: d0000100 adrp x0, ffffff8040024000 <bcache+0x8060> -ffffff8040002e70: 91082000 add x0, x0, #0x208 -ffffff8040002e74: f9415c22 ldr x2, [x1, #696] -ffffff8040002e78: a9048a60 stp x0, x2, [x19, #72] -ffffff8040002e7c: f9002453 str x19, [x2, #72] -ffffff8040002e80: f9015c33 str x19, [x1, #696] -ffffff8040002e84: aa1403e0 mov x0, x20 -ffffff8040002e88: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002e8c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002e90: 17fff787 b ffffff8040000cac <release> - -ffffff8040002e94 <bpin>: -ffffff8040002e94: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002e98: 910003fd mov x29, sp -ffffff8040002e9c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002ea0: b00000d3 adrp x19, ffffff804001b000 <proc+0x4a80> -ffffff8040002ea4: 913e8273 add x19, x19, #0xfa0 -ffffff8040002ea8: aa0003f4 mov x20, x0 -ffffff8040002eac: aa1303e0 mov x0, x19 -ffffff8040002eb0: 97fff754 bl ffffff8040000c00 <acquire> -ffffff8040002eb4: b9404280 ldr w0, [x20, #64] -ffffff8040002eb8: 11000400 add w0, w0, #0x1 -ffffff8040002ebc: b9004280 str w0, [x20, #64] -ffffff8040002ec0: aa1303e0 mov x0, x19 -ffffff8040002ec4: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002ec8: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002ecc: 17fff778 b ffffff8040000cac <release> - -ffffff8040002ed0 <bunpin>: -ffffff8040002ed0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002ed4: 910003fd mov x29, sp -ffffff8040002ed8: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002edc: b00000d3 adrp x19, ffffff804001b000 <proc+0x4a80> -ffffff8040002ee0: 913e8273 add x19, x19, #0xfa0 -ffffff8040002ee4: aa0003f4 mov x20, x0 -ffffff8040002ee8: aa1303e0 mov x0, x19 -ffffff8040002eec: 97fff745 bl ffffff8040000c00 <acquire> -ffffff8040002ef0: b9404280 ldr w0, [x20, #64] -ffffff8040002ef4: 51000400 sub w0, w0, #0x1 -ffffff8040002ef8: b9004280 str w0, [x20, #64] -ffffff8040002efc: aa1303e0 mov x0, x19 -ffffff8040002f00: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002f04: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002f08: 17fff769 b ffffff8040000cac <release> - -ffffff8040002f0c <bfree>: -ffffff8040002f0c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040002f10: 910003fd mov x29, sp -ffffff8040002f14: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002f18: 2a0103f3 mov w19, w1 -ffffff8040002f1c: d0000101 adrp x1, ffffff8040024000 <bcache+0x8060> -ffffff8040002f20: b9467c21 ldr w1, [x1, #1660] -ffffff8040002f24: 0b533421 add w1, w1, w19, lsr #13 -ffffff8040002f28: 97ffff6f bl ffffff8040002ce4 <bread> -ffffff8040002f2c: 12000a62 and w2, w19, #0x7 -ffffff8040002f30: d3433273 ubfx x19, x19, #3, #10 -ffffff8040002f34: 52800021 mov w1, #0x1 // #1 -ffffff8040002f38: 8b130013 add x19, x0, x19 -ffffff8040002f3c: 1ac22021 lsl w1, w1, w2 -ffffff8040002f40: 39416262 ldrb w2, [x19, #88] -ffffff8040002f44: 6a01005f tst w2, w1 -ffffff8040002f48: 54000081 b.ne ffffff8040002f58 <bfree+0x4c> // b.any -ffffff8040002f4c: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002f50: 91107400 add x0, x0, #0x41d -ffffff8040002f54: 97fff56b bl ffffff8040000500 <panic> -ffffff8040002f58: 0a210041 bic w1, w2, w1 -ffffff8040002f5c: aa0003f4 mov x20, x0 -ffffff8040002f60: 39016261 strb w1, [x19, #88] -ffffff8040002f64: 94000406 bl ffffff8040003f7c <log_write> -ffffff8040002f68: aa1403e0 mov x0, x20 -ffffff8040002f6c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040002f70: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040002f74: 17ffffa4 b ffffff8040002e04 <brelse> - -ffffff8040002f78 <balloc>: -ffffff8040002f78: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040002f7c: 910003fd mov x29, sp -ffffff8040002f80: a90153f3 stp x19, x20, [sp, #16] -ffffff8040002f84: 52800014 mov w20, #0x0 // #0 -ffffff8040002f88: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040002f8c: d0000115 adrp x21, ffffff8040024000 <bcache+0x8060> -ffffff8040002f90: 911982b5 add x21, x21, #0x660 -ffffff8040002f94: 2a0003f6 mov w22, w0 -ffffff8040002f98: a90363f7 stp x23, x24, [sp, #48] -ffffff8040002f9c: 52800037 mov w23, #0x1 // #1 -ffffff8040002fa0: b94006a0 ldr w0, [x21, #4] -ffffff8040002fa4: 6b14001f cmp w0, w20 -ffffff8040002fa8: 54000088 b.hi ffffff8040002fb8 <balloc+0x40> // b.pmore -ffffff8040002fac: b0000020 adrp x0, ffffff8040007000 <etext> -ffffff8040002fb0: 9110c000 add x0, x0, #0x430 -ffffff8040002fb4: 97fff553 bl ffffff8040000500 <panic> -ffffff8040002fb8: b9401ea1 ldr w1, [x21, #28] -ffffff8040002fbc: 2a1603e0 mov w0, w22 -ffffff8040002fc0: 0b943421 add w1, w1, w20, asr #13 -ffffff8040002fc4: 97ffff48 bl ffffff8040002ce4 <bread> -ffffff8040002fc8: b94006a4 ldr w4, [x21, #4] -ffffff8040002fcc: aa0003f3 mov x19, x0 -ffffff8040002fd0: 52800001 mov w1, #0x0 // #0 -ffffff8040002fd4: 0b140038 add w24, w1, w20 -ffffff8040002fd8: 6b18009f cmp w4, w24 -ffffff8040002fdc: 54000169 b.ls ffffff8040003008 <balloc+0x90> // b.plast -ffffff8040002fe0: 13037c20 asr w0, w1, #3 -ffffff8040002fe4: 8b20c260 add x0, x19, w0, sxtw -ffffff8040002fe8: 39416002 ldrb w2, [x0, #88] -ffffff8040002fec: 12000823 and w3, w1, #0x7 -ffffff8040002ff0: 1ac322e3 lsl w3, w23, w3 -ffffff8040002ff4: 6a03005f tst w2, w3 -ffffff8040002ff8: 54000100 b.eq ffffff8040003018 <balloc+0xa0> // b.none -ffffff8040002ffc: 11000421 add w1, w1, #0x1 -ffffff8040003000: 7140083f cmp w1, #0x2, lsl #12 -ffffff8040003004: 54fffe81 b.ne ffffff8040002fd4 <balloc+0x5c> // b.any -ffffff8040003008: aa1303e0 mov x0, x19 -ffffff804000300c: 11400a94 add w20, w20, #0x2, lsl #12 -ffffff8040003010: 97ffff7d bl ffffff8040002e04 <brelse> -ffffff8040003014: 17ffffe3 b ffffff8040002fa0 <balloc+0x28> -ffffff8040003018: 2a030042 orr w2, w2, w3 -ffffff804000301c: 39016002 strb w2, [x0, #88] -ffffff8040003020: aa1303e0 mov x0, x19 -ffffff8040003024: 940003d6 bl ffffff8040003f7c <log_write> -ffffff8040003028: aa1303e0 mov x0, x19 -ffffff804000302c: 97ffff76 bl ffffff8040002e04 <brelse> -ffffff8040003030: 2a1803e1 mov w1, w24 -ffffff8040003034: 2a1603e0 mov w0, w22 -ffffff8040003038: 97ffff2b bl ffffff8040002ce4 <bread> -ffffff804000303c: aa0003f3 mov x19, x0 -ffffff8040003040: 52808002 mov w2, #0x400 // #1024 -ffffff8040003044: 52800001 mov w1, #0x0 // #0 -ffffff8040003048: 91016000 add x0, x0, #0x58 -ffffff804000304c: 97fff727 bl ffffff8040000ce8 <memset> -ffffff8040003050: aa1303e0 mov x0, x19 -ffffff8040003054: 940003ca bl ffffff8040003f7c <log_write> -ffffff8040003058: aa1303e0 mov x0, x19 -ffffff804000305c: 97ffff6a bl ffffff8040002e04 <brelse> -ffffff8040003060: 2a1803e0 mov w0, w24 -ffffff8040003064: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003068: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000306c: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040003070: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040003074: d65f03c0 ret - -ffffff8040003078 <iget>: -ffffff8040003078: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff804000307c: 910003fd mov x29, sp -ffffff8040003080: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040003084: b0000115 adrp x21, ffffff8040024000 <bcache+0x8060> -ffffff8040003088: 911a02b5 add x21, x21, #0x680 -ffffff804000308c: 2a0103f6 mov w22, w1 -ffffff8040003090: f9001bf7 str x23, [sp, #48] -ffffff8040003094: 2a0003f7 mov w23, w0 -ffffff8040003098: aa1503e0 mov x0, x21 -ffffff804000309c: a90153f3 stp x19, x20, [sp, #16] -ffffff80400030a0: b0000113 adrp x19, ffffff8040024000 <bcache+0x8060> -ffffff80400030a4: 911a6273 add x19, x19, #0x698 -ffffff80400030a8: d2800014 mov x20, #0x0 // #0 -ffffff80400030ac: 97fff6d5 bl ffffff8040000c00 <acquire> -ffffff80400030b0: d2800640 mov x0, #0x32 // #50 -ffffff80400030b4: b9400a62 ldr w2, [x19, #8] -ffffff80400030b8: 7100005f cmp w2, #0x0 -ffffff80400030bc: 5400022d b.le ffffff8040003100 <iget+0x88> -ffffff80400030c0: b9400261 ldr w1, [x19] -ffffff80400030c4: 6b17003f cmp w1, w23 -ffffff80400030c8: 54000201 b.ne ffffff8040003108 <iget+0x90> // b.any -ffffff80400030cc: b9400661 ldr w1, [x19, #4] -ffffff80400030d0: 6b16003f cmp w1, w22 -ffffff80400030d4: 540001a1 b.ne ffffff8040003108 <iget+0x90> // b.any -ffffff80400030d8: 11000442 add w2, w2, #0x1 -ffffff80400030dc: aa1503e0 mov x0, x21 -ffffff80400030e0: b9000a62 str w2, [x19, #8] -ffffff80400030e4: 97fff6f2 bl ffffff8040000cac <release> -ffffff80400030e8: aa1303e0 mov x0, x19 -ffffff80400030ec: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400030f0: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400030f4: f9401bf7 ldr x23, [sp, #48] -ffffff80400030f8: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400030fc: d65f03c0 ret -ffffff8040003100: b5000054 cbnz x20, ffffff8040003108 <iget+0x90> -ffffff8040003104: 9a9313f4 csel x20, xzr, x19, ne // ne = any -ffffff8040003108: f1000400 subs x0, x0, #0x1 -ffffff804000310c: 91022273 add x19, x19, #0x88 -ffffff8040003110: 54fffd21 b.ne ffffff80400030b4 <iget+0x3c> // b.any -ffffff8040003114: b5000094 cbnz x20, ffffff8040003124 <iget+0xac> -ffffff8040003118: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff804000311c: 91111800 add x0, x0, #0x446 -ffffff8040003120: 97fff4f8 bl ffffff8040000500 <panic> -ffffff8040003124: 52800020 mov w0, #0x1 // #1 -ffffff8040003128: 29005a97 stp w23, w22, [x20] -ffffff804000312c: aa1403f3 mov x19, x20 -ffffff8040003130: b900429f str wzr, [x20, #64] -ffffff8040003134: b9000a80 str w0, [x20, #8] -ffffff8040003138: aa1503e0 mov x0, x21 -ffffff804000313c: 97fff6dc bl ffffff8040000cac <release> -ffffff8040003140: 17ffffea b ffffff80400030e8 <iget+0x70> - -ffffff8040003144 <bmap>: -ffffff8040003144: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040003148: 910003fd mov x29, sp -ffffff804000314c: 71002c3f cmp w1, #0xb -ffffff8040003150: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003154: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040003158: aa0003f5 mov x21, x0 -ffffff804000315c: f9001bf7 str x23, [sp, #48] -ffffff8040003160: 540001c8 b.hi ffffff8040003198 <bmap+0x54> // b.pmore -ffffff8040003164: 8b214813 add x19, x0, w1, uxtw #2 -ffffff8040003168: b9405274 ldr w20, [x19, #80] -ffffff804000316c: 350000b4 cbnz w20, ffffff8040003180 <bmap+0x3c> -ffffff8040003170: b9400000 ldr w0, [x0] -ffffff8040003174: 97ffff81 bl ffffff8040002f78 <balloc> -ffffff8040003178: 2a0003f4 mov w20, w0 -ffffff804000317c: b9005260 str w0, [x19, #80] -ffffff8040003180: 2a1403e0 mov w0, w20 -ffffff8040003184: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003188: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000318c: f9401bf7 ldr x23, [sp, #48] -ffffff8040003190: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040003194: d65f03c0 ret -ffffff8040003198: 51003033 sub w19, w1, #0xc -ffffff804000319c: 7103fe7f cmp w19, #0xff -ffffff80400031a0: 540002e8 b.hi ffffff80400031fc <bmap+0xb8> // b.pmore -ffffff80400031a4: b9408001 ldr w1, [x0, #128] -ffffff80400031a8: 350000a1 cbnz w1, ffffff80400031bc <bmap+0x78> -ffffff80400031ac: b9400000 ldr w0, [x0] -ffffff80400031b0: 97ffff72 bl ffffff8040002f78 <balloc> -ffffff80400031b4: 2a0003e1 mov w1, w0 -ffffff80400031b8: b90082a0 str w0, [x21, #128] -ffffff80400031bc: b94002a0 ldr w0, [x21] -ffffff80400031c0: d37e7e73 ubfiz x19, x19, #2, #32 -ffffff80400031c4: 97fffec8 bl ffffff8040002ce4 <bread> -ffffff80400031c8: 91016017 add x23, x0, #0x58 -ffffff80400031cc: aa0003f6 mov x22, x0 -ffffff80400031d0: b8736af4 ldr w20, [x23, x19] -ffffff80400031d4: 350000f4 cbnz w20, ffffff80400031f0 <bmap+0xac> -ffffff80400031d8: b94002a0 ldr w0, [x21] -ffffff80400031dc: 97ffff67 bl ffffff8040002f78 <balloc> -ffffff80400031e0: 2a0003f4 mov w20, w0 -ffffff80400031e4: b8336ae0 str w0, [x23, x19] -ffffff80400031e8: aa1603e0 mov x0, x22 -ffffff80400031ec: 94000364 bl ffffff8040003f7c <log_write> -ffffff80400031f0: aa1603e0 mov x0, x22 -ffffff80400031f4: 97ffff04 bl ffffff8040002e04 <brelse> -ffffff80400031f8: 17ffffe2 b ffffff8040003180 <bmap+0x3c> -ffffff80400031fc: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003200: 91115800 add x0, x0, #0x456 -ffffff8040003204: 97fff4bf bl ffffff8040000500 <panic> - -ffffff8040003208 <fsinit>: -ffffff8040003208: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff804000320c: 52800021 mov w1, #0x1 // #1 -ffffff8040003210: 910003fd mov x29, sp -ffffff8040003214: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003218: 2a0003f4 mov w20, w0 -ffffff804000321c: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040003220: b0000116 adrp x22, ffffff8040024000 <bcache+0x8060> -ffffff8040003224: 911982d5 add x21, x22, #0x660 -ffffff8040003228: 97fffeaf bl ffffff8040002ce4 <bread> -ffffff804000322c: 91016001 add x1, x0, #0x58 -ffffff8040003230: aa0003f3 mov x19, x0 -ffffff8040003234: 52800402 mov w2, #0x20 // #32 -ffffff8040003238: aa1503e0 mov x0, x21 -ffffff804000323c: 97fff6c0 bl ffffff8040000d3c <memmove> -ffffff8040003240: aa1303e0 mov x0, x19 -ffffff8040003244: 97fffef0 bl ffffff8040002e04 <brelse> -ffffff8040003248: b94662c1 ldr w1, [x22, #1632] -ffffff804000324c: 52860800 mov w0, #0x3040 // #12352 -ffffff8040003250: 72a20400 movk w0, #0x1020, lsl #16 -ffffff8040003254: 6b00003f cmp w1, w0 -ffffff8040003258: 54000080 b.eq ffffff8040003268 <fsinit+0x60> // b.none -ffffff804000325c: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003260: 9111a400 add x0, x0, #0x469 -ffffff8040003264: 97fff4a7 bl ffffff8040000500 <panic> -ffffff8040003268: aa1503e1 mov x1, x21 -ffffff804000326c: 2a1403e0 mov w0, w20 -ffffff8040003270: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003274: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003278: a8c37bfd ldp x29, x30, [sp], #48 -ffffff804000327c: 140002ba b ffffff8040003d64 <initlog> - -ffffff8040003280 <iinit>: -ffffff8040003280: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040003284: 910003fd mov x29, sp -ffffff8040003288: 90000021 adrp x1, ffffff8040007000 <etext> -ffffff804000328c: 9111f421 add x1, x1, #0x47d -ffffff8040003290: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003294: b0000113 adrp x19, ffffff8040024000 <bcache+0x8060> -ffffff8040003298: 911a0273 add x19, x19, #0x680 -ffffff804000329c: aa1303e0 mov x0, x19 -ffffff80400032a0: d2800014 mov x20, #0x0 // #0 -ffffff80400032a4: 9100a273 add x19, x19, #0x28 -ffffff80400032a8: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400032ac: 90000035 adrp x21, ffffff8040007000 <etext> -ffffff80400032b0: 911212b5 add x21, x21, #0x484 -ffffff80400032b4: d2835216 mov x22, #0x1a90 // #6800 -ffffff80400032b8: 97fff62d bl ffffff8040000b6c <initlock> -ffffff80400032bc: 8b140260 add x0, x19, x20 -ffffff80400032c0: aa1503e1 mov x1, x21 -ffffff80400032c4: 91022294 add x20, x20, #0x88 -ffffff80400032c8: 9400035c bl ffffff8040004038 <initsleeplock> -ffffff80400032cc: eb16029f cmp x20, x22 -ffffff80400032d0: 54ffff61 b.ne ffffff80400032bc <iinit+0x3c> // b.any -ffffff80400032d4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400032d8: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400032dc: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400032e0: d65f03c0 ret - -ffffff80400032e4 <ialloc>: -ffffff80400032e4: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff80400032e8: 910003fd mov x29, sp -ffffff80400032ec: a90153f3 stp x19, x20, [sp, #16] -ffffff80400032f0: d2800033 mov x19, #0x1 // #1 -ffffff80400032f4: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400032f8: b0000115 adrp x21, ffffff8040024000 <bcache+0x8060> -ffffff80400032fc: 911982b5 add x21, x21, #0x660 -ffffff8040003300: 2a0003f6 mov w22, w0 -ffffff8040003304: a90363f7 stp x23, x24, [sp, #48] -ffffff8040003308: 13003c38 sxth w24, w1 -ffffff804000330c: f90023f9 str x25, [sp, #64] -ffffff8040003310: b9400ea0 ldr w0, [x21, #12] -ffffff8040003314: 2a1303f9 mov w25, w19 -ffffff8040003318: 6b13001f cmp w0, w19 -ffffff804000331c: 54000088 b.hi ffffff804000332c <ialloc+0x48> // b.pmore -ffffff8040003320: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003324: 91122800 add x0, x0, #0x48a -ffffff8040003328: 97fff476 bl ffffff8040000500 <panic> -ffffff804000332c: b9401aa1 ldr w1, [x21, #24] -ffffff8040003330: d344fe60 lsr x0, x19, #4 -ffffff8040003334: 0b000021 add w1, w1, w0 -ffffff8040003338: 2a1603e0 mov w0, w22 -ffffff804000333c: 97fffe6a bl ffffff8040002ce4 <bread> -ffffff8040003340: d37a0e61 ubfiz x1, x19, #6, #4 -ffffff8040003344: 91016002 add x2, x0, #0x58 -ffffff8040003348: 8b010057 add x23, x2, x1 -ffffff804000334c: 78e16841 ldrsh w1, [x2, x1] -ffffff8040003350: aa0003f4 mov x20, x0 -ffffff8040003354: 91000673 add x19, x19, #0x1 -ffffff8040003358: 35000221 cbnz w1, ffffff804000339c <ialloc+0xb8> -ffffff804000335c: 52800802 mov w2, #0x40 // #64 -ffffff8040003360: aa1703e0 mov x0, x23 -ffffff8040003364: 97fff661 bl ffffff8040000ce8 <memset> -ffffff8040003368: aa1403e0 mov x0, x20 -ffffff804000336c: 790002f8 strh w24, [x23] -ffffff8040003370: 94000303 bl ffffff8040003f7c <log_write> -ffffff8040003374: aa1403e0 mov x0, x20 -ffffff8040003378: 97fffea3 bl ffffff8040002e04 <brelse> -ffffff804000337c: 2a1903e1 mov w1, w25 -ffffff8040003380: 2a1603e0 mov w0, w22 -ffffff8040003384: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003388: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000338c: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040003390: f94023f9 ldr x25, [sp, #64] -ffffff8040003394: a8c57bfd ldp x29, x30, [sp], #80 -ffffff8040003398: 17ffff38 b ffffff8040003078 <iget> -ffffff804000339c: 97fffe9a bl ffffff8040002e04 <brelse> -ffffff80400033a0: 17ffffdc b ffffff8040003310 <ialloc+0x2c> - -ffffff80400033a4 <iupdate>: -ffffff80400033a4: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400033a8: 910003fd mov x29, sp -ffffff80400033ac: a90153f3 stp x19, x20, [sp, #16] -ffffff80400033b0: aa0003f3 mov x19, x0 -ffffff80400033b4: b0000100 adrp x0, ffffff8040024000 <bcache+0x8060> -ffffff80400033b8: b9467800 ldr w0, [x0, #1656] -ffffff80400033bc: b9400661 ldr w1, [x19, #4] -ffffff80400033c0: 0b411001 add w1, w0, w1, lsr #4 -ffffff80400033c4: b9400260 ldr w0, [x19] -ffffff80400033c8: 97fffe47 bl ffffff8040002ce4 <bread> -ffffff80400033cc: b9400661 ldr w1, [x19, #4] -ffffff80400033d0: 91016002 add x2, x0, #0x58 -ffffff80400033d4: aa0003f4 mov x20, x0 -ffffff80400033d8: 79408a63 ldrh w3, [x19, #68] -ffffff80400033dc: d37a0c21 ubfiz x1, x1, #6, #4 -ffffff80400033e0: 8b010040 add x0, x2, x1 -ffffff80400033e4: 78216843 strh w3, [x2, x1] -ffffff80400033e8: 91003000 add x0, x0, #0xc -ffffff80400033ec: 52800682 mov w2, #0x34 // #52 -ffffff80400033f0: 79408e61 ldrh w1, [x19, #70] -ffffff80400033f4: 781f6001 sturh w1, [x0, #-10] -ffffff80400033f8: 79409261 ldrh w1, [x19, #72] -ffffff80400033fc: 781f8001 sturh w1, [x0, #-8] -ffffff8040003400: 79409661 ldrh w1, [x19, #74] -ffffff8040003404: 781fa001 sturh w1, [x0, #-6] -ffffff8040003408: b9404e61 ldr w1, [x19, #76] -ffffff804000340c: b81fc001 stur w1, [x0, #-4] -ffffff8040003410: 91014261 add x1, x19, #0x50 -ffffff8040003414: 97fff64a bl ffffff8040000d3c <memmove> -ffffff8040003418: aa1403e0 mov x0, x20 -ffffff804000341c: 940002d8 bl ffffff8040003f7c <log_write> -ffffff8040003420: aa1403e0 mov x0, x20 -ffffff8040003424: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003428: a8c27bfd ldp x29, x30, [sp], #32 -ffffff804000342c: 17fffe76 b ffffff8040002e04 <brelse> - -ffffff8040003430 <idup>: -ffffff8040003430: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040003434: 910003fd mov x29, sp -ffffff8040003438: a90153f3 stp x19, x20, [sp, #16] -ffffff804000343c: b0000114 adrp x20, ffffff8040024000 <bcache+0x8060> -ffffff8040003440: 911a0294 add x20, x20, #0x680 -ffffff8040003444: aa0003f3 mov x19, x0 -ffffff8040003448: aa1403e0 mov x0, x20 -ffffff804000344c: 97fff5ed bl ffffff8040000c00 <acquire> -ffffff8040003450: b9400a60 ldr w0, [x19, #8] -ffffff8040003454: 11000400 add w0, w0, #0x1 -ffffff8040003458: b9000a60 str w0, [x19, #8] -ffffff804000345c: aa1403e0 mov x0, x20 -ffffff8040003460: 97fff613 bl ffffff8040000cac <release> -ffffff8040003464: aa1303e0 mov x0, x19 -ffffff8040003468: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000346c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040003470: d65f03c0 ret - -ffffff8040003474 <ilock>: -ffffff8040003474: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040003478: 910003fd mov x29, sp -ffffff804000347c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003480: b40000a0 cbz x0, ffffff8040003494 <ilock+0x20> -ffffff8040003484: aa0003f3 mov x19, x0 -ffffff8040003488: b9400800 ldr w0, [x0, #8] -ffffff804000348c: 7100001f cmp w0, #0x0 -ffffff8040003490: 5400008c b.gt ffffff80400034a0 <ilock+0x2c> -ffffff8040003494: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003498: 91127000 add x0, x0, #0x49c -ffffff804000349c: 97fff419 bl ffffff8040000500 <panic> -ffffff80400034a0: 91004260 add x0, x19, #0x10 -ffffff80400034a4: 940002f4 bl ffffff8040004074 <acquiresleep> -ffffff80400034a8: b9404260 ldr w0, [x19, #64] -ffffff80400034ac: 35000460 cbnz w0, ffffff8040003538 <ilock+0xc4> -ffffff80400034b0: b0000100 adrp x0, ffffff8040024000 <bcache+0x8060> -ffffff80400034b4: b9400661 ldr w1, [x19, #4] -ffffff80400034b8: b9467800 ldr w0, [x0, #1656] -ffffff80400034bc: 0b411001 add w1, w0, w1, lsr #4 -ffffff80400034c0: b9400260 ldr w0, [x19] -ffffff80400034c4: 97fffe08 bl ffffff8040002ce4 <bread> -ffffff80400034c8: 91016002 add x2, x0, #0x58 -ffffff80400034cc: aa0003f4 mov x20, x0 -ffffff80400034d0: b9400660 ldr w0, [x19, #4] -ffffff80400034d4: d37a0c00 ubfiz x0, x0, #6, #4 -ffffff80400034d8: 8b000041 add x1, x2, x0 -ffffff80400034dc: 78606840 ldrh w0, [x2, x0] -ffffff80400034e0: 52800682 mov w2, #0x34 // #52 -ffffff80400034e4: 91003021 add x1, x1, #0xc -ffffff80400034e8: 79008a60 strh w0, [x19, #68] -ffffff80400034ec: 785f6020 ldurh w0, [x1, #-10] -ffffff80400034f0: 79008e60 strh w0, [x19, #70] -ffffff80400034f4: 785f8020 ldurh w0, [x1, #-8] -ffffff80400034f8: 79009260 strh w0, [x19, #72] -ffffff80400034fc: 785fa020 ldurh w0, [x1, #-6] -ffffff8040003500: 79009660 strh w0, [x19, #74] -ffffff8040003504: b85fc020 ldur w0, [x1, #-4] -ffffff8040003508: b9004e60 str w0, [x19, #76] -ffffff804000350c: 91014260 add x0, x19, #0x50 -ffffff8040003510: 97fff60b bl ffffff8040000d3c <memmove> -ffffff8040003514: aa1403e0 mov x0, x20 -ffffff8040003518: 97fffe3b bl ffffff8040002e04 <brelse> -ffffff804000351c: 52800020 mov w0, #0x1 // #1 -ffffff8040003520: b9004260 str w0, [x19, #64] -ffffff8040003524: 79c08a60 ldrsh w0, [x19, #68] -ffffff8040003528: 35000080 cbnz w0, ffffff8040003538 <ilock+0xc4> -ffffff804000352c: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003530: 91128800 add x0, x0, #0x4a2 -ffffff8040003534: 17ffffda b ffffff804000349c <ilock+0x28> -ffffff8040003538: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000353c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040003540: d65f03c0 ret - -ffffff8040003544 <iunlock>: -ffffff8040003544: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040003548: 910003fd mov x29, sp -ffffff804000354c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003550: b5000080 cbnz x0, ffffff8040003560 <iunlock+0x1c> -ffffff8040003554: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003558: 9112c400 add x0, x0, #0x4b1 -ffffff804000355c: 97fff3e9 bl ffffff8040000500 <panic> -ffffff8040003560: 91004014 add x20, x0, #0x10 -ffffff8040003564: aa0003f3 mov x19, x0 -ffffff8040003568: aa1403e0 mov x0, x20 -ffffff804000356c: 940002e7 bl ffffff8040004108 <holdingsleep> -ffffff8040003570: 34ffff20 cbz w0, ffffff8040003554 <iunlock+0x10> -ffffff8040003574: b9400a60 ldr w0, [x19, #8] -ffffff8040003578: 7100001f cmp w0, #0x0 -ffffff804000357c: 54fffecd b.le ffffff8040003554 <iunlock+0x10> -ffffff8040003580: aa1403e0 mov x0, x20 -ffffff8040003584: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003588: a8c27bfd ldp x29, x30, [sp], #32 -ffffff804000358c: 140002d0 b ffffff80400040cc <releasesleep> - -ffffff8040003590 <itrunc>: -ffffff8040003590: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040003594: 910003fd mov x29, sp -ffffff8040003598: a90153f3 stp x19, x20, [sp, #16] -ffffff804000359c: aa0003f3 mov x19, x0 -ffffff80400035a0: 91014014 add x20, x0, #0x50 -ffffff80400035a4: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400035a8: 91020015 add x21, x0, #0x80 -ffffff80400035ac: b9400281 ldr w1, [x20] -ffffff80400035b0: 34000081 cbz w1, ffffff80400035c0 <itrunc+0x30> -ffffff80400035b4: b9400260 ldr w0, [x19] -ffffff80400035b8: 97fffe55 bl ffffff8040002f0c <bfree> -ffffff80400035bc: b900029f str wzr, [x20] -ffffff80400035c0: 91001294 add x20, x20, #0x4 -ffffff80400035c4: eb15029f cmp x20, x21 -ffffff80400035c8: 54ffff21 b.ne ffffff80400035ac <itrunc+0x1c> // b.any -ffffff80400035cc: b9408261 ldr w1, [x19, #128] -ffffff80400035d0: 34000261 cbz w1, ffffff804000361c <itrunc+0x8c> -ffffff80400035d4: b9400260 ldr w0, [x19] -ffffff80400035d8: 97fffdc3 bl ffffff8040002ce4 <bread> -ffffff80400035dc: aa0003f4 mov x20, x0 -ffffff80400035e0: 91016015 add x21, x0, #0x58 -ffffff80400035e4: 91116016 add x22, x0, #0x458 -ffffff80400035e8: b94002a1 ldr w1, [x21] -ffffff80400035ec: 34000061 cbz w1, ffffff80400035f8 <itrunc+0x68> -ffffff80400035f0: b9400260 ldr w0, [x19] -ffffff80400035f4: 97fffe46 bl ffffff8040002f0c <bfree> -ffffff80400035f8: 910012b5 add x21, x21, #0x4 -ffffff80400035fc: eb1502df cmp x22, x21 -ffffff8040003600: 54ffff41 b.ne ffffff80400035e8 <itrunc+0x58> // b.any -ffffff8040003604: aa1403e0 mov x0, x20 -ffffff8040003608: 97fffdff bl ffffff8040002e04 <brelse> -ffffff804000360c: b9400260 ldr w0, [x19] -ffffff8040003610: b9408261 ldr w1, [x19, #128] -ffffff8040003614: 97fffe3e bl ffffff8040002f0c <bfree> -ffffff8040003618: b900827f str wzr, [x19, #128] -ffffff804000361c: aa1303e0 mov x0, x19 -ffffff8040003620: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003624: b9004e7f str wzr, [x19, #76] -ffffff8040003628: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000362c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040003630: 17ffff5d b ffffff80400033a4 <iupdate> - -ffffff8040003634 <iput>: -ffffff8040003634: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040003638: 910003fd mov x29, sp -ffffff804000363c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003640: b0000114 adrp x20, ffffff8040024000 <bcache+0x8060> -ffffff8040003644: 911a0294 add x20, x20, #0x680 -ffffff8040003648: aa0003f3 mov x19, x0 -ffffff804000364c: aa1403e0 mov x0, x20 -ffffff8040003650: f90013f5 str x21, [sp, #32] -ffffff8040003654: 97fff56b bl ffffff8040000c00 <acquire> -ffffff8040003658: b9400a60 ldr w0, [x19, #8] -ffffff804000365c: 7100041f cmp w0, #0x1 -ffffff8040003660: 54000281 b.ne ffffff80400036b0 <iput+0x7c> // b.any -ffffff8040003664: b9404260 ldr w0, [x19, #64] -ffffff8040003668: 34000240 cbz w0, ffffff80400036b0 <iput+0x7c> -ffffff804000366c: 79c09660 ldrsh w0, [x19, #74] -ffffff8040003670: 35000200 cbnz w0, ffffff80400036b0 <iput+0x7c> -ffffff8040003674: 91004275 add x21, x19, #0x10 -ffffff8040003678: aa1503e0 mov x0, x21 -ffffff804000367c: 9400027e bl ffffff8040004074 <acquiresleep> -ffffff8040003680: aa1403e0 mov x0, x20 -ffffff8040003684: 97fff58a bl ffffff8040000cac <release> -ffffff8040003688: aa1303e0 mov x0, x19 -ffffff804000368c: 97ffffc1 bl ffffff8040003590 <itrunc> -ffffff8040003690: aa1303e0 mov x0, x19 -ffffff8040003694: 79008a7f strh wzr, [x19, #68] -ffffff8040003698: 97ffff43 bl ffffff80400033a4 <iupdate> -ffffff804000369c: aa1503e0 mov x0, x21 -ffffff80400036a0: b900427f str wzr, [x19, #64] -ffffff80400036a4: 9400028a bl ffffff80400040cc <releasesleep> -ffffff80400036a8: aa1403e0 mov x0, x20 -ffffff80400036ac: 97fff555 bl ffffff8040000c00 <acquire> -ffffff80400036b0: b9400a60 ldr w0, [x19, #8] -ffffff80400036b4: f94013f5 ldr x21, [sp, #32] -ffffff80400036b8: 51000400 sub w0, w0, #0x1 -ffffff80400036bc: b9000a60 str w0, [x19, #8] -ffffff80400036c0: aa1403e0 mov x0, x20 -ffffff80400036c4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400036c8: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400036cc: 17fff578 b ffffff8040000cac <release> - -ffffff80400036d0 <iunlockput>: -ffffff80400036d0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400036d4: 910003fd mov x29, sp -ffffff80400036d8: f9000bf3 str x19, [sp, #16] -ffffff80400036dc: aa0003f3 mov x19, x0 -ffffff80400036e0: 97ffff99 bl ffffff8040003544 <iunlock> -ffffff80400036e4: aa1303e0 mov x0, x19 -ffffff80400036e8: f9400bf3 ldr x19, [sp, #16] -ffffff80400036ec: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400036f0: 17ffffd1 b ffffff8040003634 <iput> - -ffffff80400036f4 <stati>: -ffffff80400036f4: b9400002 ldr w2, [x0] -ffffff80400036f8: b9000022 str w2, [x1] -ffffff80400036fc: b9400402 ldr w2, [x0, #4] -ffffff8040003700: b9000422 str w2, [x1, #4] -ffffff8040003704: 79408802 ldrh w2, [x0, #68] -ffffff8040003708: 79001022 strh w2, [x1, #8] -ffffff804000370c: 79409402 ldrh w2, [x0, #74] -ffffff8040003710: b9404c00 ldr w0, [x0, #76] -ffffff8040003714: 79001422 strh w2, [x1, #10] -ffffff8040003718: f9000820 str x0, [x1, #16] -ffffff804000371c: d65f03c0 ret - -ffffff8040003720 <readi>: -ffffff8040003720: a9b97bfd stp x29, x30, [sp, #-112]! -ffffff8040003724: 910003fd mov x29, sp -ffffff8040003728: a90363f7 stp x23, x24, [sp, #48] -ffffff804000372c: aa0003f7 mov x23, x0 -ffffff8040003730: b9404c00 ldr w0, [x0, #76] -ffffff8040003734: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003738: a9025bf5 stp x21, x22, [sp, #32] -ffffff804000373c: 6b03001f cmp w0, w3 -ffffff8040003740: a9046bf9 stp x25, x26, [sp, #64] -ffffff8040003744: a90573fb stp x27, x28, [sp, #80] -ffffff8040003748: 54000703 b.cc ffffff8040003828 <readi+0x108> // b.lo, b.ul, b.last -ffffff804000374c: 2a0103fa mov w26, w1 -ffffff8040003750: 2b040061 adds w1, w3, w4 -ffffff8040003754: 1a9f37f4 cset w20, cs // cs = hs, nlast -ffffff8040003758: 2a0303f3 mov w19, w3 -ffffff804000375c: 2a0403f5 mov w21, w4 -ffffff8040003760: 54000642 b.cs ffffff8040003828 <readi+0x108> // b.hs, b.nlast -ffffff8040003764: 6b01001f cmp w0, w1 -ffffff8040003768: aa0203f8 mov x24, x2 -ffffff804000376c: 54000042 b.cs ffffff8040003774 <readi+0x54> // b.hs, b.nlast -ffffff8040003770: 4b030015 sub w21, w0, w3 -ffffff8040003774: 5280801b mov w27, #0x400 // #1024 -ffffff8040003778: 6b1402bf cmp w21, w20 -ffffff804000377c: 540003a9 b.ls ffffff80400037f0 <readi+0xd0> // b.plast -ffffff8040003780: b94002f6 ldr w22, [x23] -ffffff8040003784: 530a7e61 lsr w1, w19, #10 -ffffff8040003788: aa1703e0 mov x0, x23 -ffffff804000378c: 97fffe6e bl ffffff8040003144 <bmap> -ffffff8040003790: 2a0003e1 mov w1, w0 -ffffff8040003794: 2a1603e0 mov w0, w22 -ffffff8040003798: 97fffd53 bl ffffff8040002ce4 <bread> -ffffff804000379c: aa0003f9 mov x25, x0 -ffffff80400037a0: 12002660 and w0, w19, #0x3ff -ffffff80400037a4: 4b000376 sub w22, w27, w0 -ffffff80400037a8: 4b1402a1 sub w1, w21, w20 -ffffff80400037ac: 91016322 add x2, x25, #0x58 -ffffff80400037b0: 6b0102df cmp w22, w1 -ffffff80400037b4: 1a8192dc csel w28, w22, w1, ls // ls = plast -ffffff80400037b8: 8b000042 add x2, x2, x0 -ffffff80400037bc: 1a8192d6 csel w22, w22, w1, ls // ls = plast -ffffff80400037c0: 2a1a03e0 mov w0, w26 -ffffff80400037c4: aa1803e1 mov x1, x24 -ffffff80400037c8: aa1603e3 mov x3, x22 -ffffff80400037cc: 97fffb0f bl ffffff8040002408 <either_copyout> -ffffff80400037d0: 3100041f cmn w0, #0x1 -ffffff80400037d4: 2a0003e1 mov w1, w0 -ffffff80400037d8: 540001c1 b.ne ffffff8040003810 <readi+0xf0> // b.any -ffffff80400037dc: aa1903e0 mov x0, x25 -ffffff80400037e0: b9006fe1 str w1, [sp, #108] -ffffff80400037e4: 97fffd88 bl ffffff8040002e04 <brelse> -ffffff80400037e8: b9406fe1 ldr w1, [sp, #108] -ffffff80400037ec: 2a0103f4 mov w20, w1 -ffffff80400037f0: 2a1403e0 mov w0, w20 -ffffff80400037f4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400037f8: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400037fc: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040003800: a9446bf9 ldp x25, x26, [sp, #64] -ffffff8040003804: a94573fb ldp x27, x28, [sp, #80] -ffffff8040003808: a8c77bfd ldp x29, x30, [sp], #112 -ffffff804000380c: d65f03c0 ret -ffffff8040003810: aa1903e0 mov x0, x25 -ffffff8040003814: 0b1c0294 add w20, w20, w28 -ffffff8040003818: 0b1c0273 add w19, w19, w28 -ffffff804000381c: 8b160318 add x24, x24, x22 -ffffff8040003820: 97fffd79 bl ffffff8040002e04 <brelse> -ffffff8040003824: 17ffffd5 b ffffff8040003778 <readi+0x58> -ffffff8040003828: 52800000 mov w0, #0x0 // #0 -ffffff804000382c: 17fffff2 b ffffff80400037f4 <readi+0xd4> - -ffffff8040003830 <writei>: -ffffff8040003830: a9ba7bfd stp x29, x30, [sp, #-96]! -ffffff8040003834: 910003fd mov x29, sp -ffffff8040003838: a9025bf5 stp x21, x22, [sp, #32] -ffffff804000383c: aa0003f5 mov x21, x0 -ffffff8040003840: b9404c00 ldr w0, [x0, #76] -ffffff8040003844: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003848: a90363f7 stp x23, x24, [sp, #48] -ffffff804000384c: 6b03001f cmp w0, w3 -ffffff8040003850: a9046bf9 stp x25, x26, [sp, #64] -ffffff8040003854: a90573fb stp x27, x28, [sp, #80] -ffffff8040003858: 54000763 b.cc ffffff8040003944 <writei+0x114> // b.lo, b.ul, b.last -ffffff804000385c: 2b040060 adds w0, w3, w4 -ffffff8040003860: 2a0303f3 mov w19, w3 -ffffff8040003864: 1a9f37f4 cset w20, cs // cs = hs, nlast -ffffff8040003868: 2a0403f6 mov w22, w4 -ffffff804000386c: 540006c2 b.cs ffffff8040003944 <writei+0x114> // b.hs, b.nlast -ffffff8040003870: 71410c1f cmp w0, #0x43, lsl #12 -ffffff8040003874: 54000688 b.hi ffffff8040003944 <writei+0x114> // b.pmore -ffffff8040003878: 2a0103fa mov w26, w1 -ffffff804000387c: aa0203f9 mov x25, x2 -ffffff8040003880: 5280801b mov w27, #0x400 // #1024 -ffffff8040003884: 6b1402df cmp w22, w20 -ffffff8040003888: 54000349 b.ls ffffff80400038f0 <writei+0xc0> // b.plast -ffffff804000388c: b94002b7 ldr w23, [x21] -ffffff8040003890: 530a7e61 lsr w1, w19, #10 -ffffff8040003894: aa1503e0 mov x0, x21 -ffffff8040003898: 97fffe2b bl ffffff8040003144 <bmap> -ffffff804000389c: 2a0003e1 mov w1, w0 -ffffff80400038a0: 2a1703e0 mov w0, w23 -ffffff80400038a4: 97fffd10 bl ffffff8040002ce4 <bread> -ffffff80400038a8: 12002661 and w1, w19, #0x3ff -ffffff80400038ac: aa0003f8 mov x24, x0 -ffffff80400038b0: 4b010377 sub w23, w27, w1 -ffffff80400038b4: 4b1402c0 sub w0, w22, w20 -ffffff80400038b8: 6b0002ff cmp w23, w0 -ffffff80400038bc: 91016304 add x4, x24, #0x58 -ffffff80400038c0: 1a8092fc csel w28, w23, w0, ls // ls = plast -ffffff80400038c4: 1a8092f7 csel w23, w23, w0, ls // ls = plast -ffffff80400038c8: 2a0103e0 mov w0, w1 -ffffff80400038cc: aa1703e3 mov x3, x23 -ffffff80400038d0: aa1903e2 mov x2, x25 -ffffff80400038d4: 2a1a03e1 mov w1, w26 -ffffff80400038d8: 8b000080 add x0, x4, x0 -ffffff80400038dc: 97fffae6 bl ffffff8040002474 <either_copyin> -ffffff80400038e0: 3100041f cmn w0, #0x1 -ffffff80400038e4: aa1803e0 mov x0, x24 -ffffff80400038e8: 54000201 b.ne ffffff8040003928 <writei+0xf8> // b.any -ffffff80400038ec: 97fffd46 bl ffffff8040002e04 <brelse> -ffffff80400038f0: b9404ea0 ldr w0, [x21, #76] -ffffff80400038f4: 6b00027f cmp w19, w0 -ffffff80400038f8: 54000049 b.ls ffffff8040003900 <writei+0xd0> // b.plast -ffffff80400038fc: b9004eb3 str w19, [x21, #76] -ffffff8040003900: aa1503e0 mov x0, x21 -ffffff8040003904: 97fffea8 bl ffffff80400033a4 <iupdate> -ffffff8040003908: 2a1403e0 mov w0, w20 -ffffff804000390c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003910: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003914: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040003918: a9446bf9 ldp x25, x26, [sp, #64] -ffffff804000391c: a94573fb ldp x27, x28, [sp, #80] -ffffff8040003920: a8c67bfd ldp x29, x30, [sp], #96 -ffffff8040003924: d65f03c0 ret -ffffff8040003928: 94000195 bl ffffff8040003f7c <log_write> -ffffff804000392c: aa1803e0 mov x0, x24 -ffffff8040003930: 0b1c0294 add w20, w20, w28 -ffffff8040003934: 0b1c0273 add w19, w19, w28 -ffffff8040003938: 8b170339 add x25, x25, x23 -ffffff804000393c: 97fffd32 bl ffffff8040002e04 <brelse> -ffffff8040003940: 17ffffd1 b ffffff8040003884 <writei+0x54> -ffffff8040003944: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040003948: 17fffff1 b ffffff804000390c <writei+0xdc> - -ffffff804000394c <namecmp>: -ffffff804000394c: 528001c2 mov w2, #0xe // #14 -ffffff8040003950: 17fff513 b ffffff8040000d9c <strncmp> - -ffffff8040003954 <dirlookup>: -ffffff8040003954: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040003958: 910003fd mov x29, sp -ffffff804000395c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003960: aa0003f3 mov x19, x0 -ffffff8040003964: 79c08800 ldrsh w0, [x0, #68] -ffffff8040003968: a9025bf5 stp x21, x22, [sp, #32] -ffffff804000396c: 7100041f cmp w0, #0x1 -ffffff8040003970: 54000480 b.eq ffffff8040003a00 <dirlookup+0xac> // b.none -ffffff8040003974: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003978: 9112e400 add x0, x0, #0x4b9 -ffffff804000397c: 97fff2e1 bl ffffff8040000500 <panic> -ffffff8040003980: 52800204 mov w4, #0x10 // #16 -ffffff8040003984: 2a1403e3 mov w3, w20 -ffffff8040003988: 9100c3e2 add x2, sp, #0x30 -ffffff804000398c: 52800001 mov w1, #0x0 // #0 -ffffff8040003990: aa1303e0 mov x0, x19 -ffffff8040003994: 97ffff63 bl ffffff8040003720 <readi> -ffffff8040003998: 7100401f cmp w0, #0x10 -ffffff804000399c: 54000080 b.eq ffffff80400039ac <dirlookup+0x58> // b.none -ffffff80400039a0: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff80400039a4: 91132c00 add x0, x0, #0x4cb -ffffff80400039a8: 17fffff5 b ffffff804000397c <dirlookup+0x28> -ffffff80400039ac: 794063e0 ldrh w0, [sp, #48] -ffffff80400039b0: 340001c0 cbz w0, ffffff80400039e8 <dirlookup+0x94> -ffffff80400039b4: 9100cbe1 add x1, sp, #0x32 -ffffff80400039b8: aa1603e0 mov x0, x22 -ffffff80400039bc: 97ffffe4 bl ffffff804000394c <namecmp> -ffffff80400039c0: 35000140 cbnz w0, ffffff80400039e8 <dirlookup+0x94> -ffffff80400039c4: b4000055 cbz x21, ffffff80400039cc <dirlookup+0x78> -ffffff80400039c8: b90002b4 str w20, [x21] -ffffff80400039cc: 794063e1 ldrh w1, [sp, #48] -ffffff80400039d0: b9400260 ldr w0, [x19] -ffffff80400039d4: 97fffda9 bl ffffff8040003078 <iget> -ffffff80400039d8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400039dc: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400039e0: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400039e4: d65f03c0 ret -ffffff80400039e8: 11004294 add w20, w20, #0x10 -ffffff80400039ec: b9404e60 ldr w0, [x19, #76] -ffffff80400039f0: 6b00029f cmp w20, w0 -ffffff80400039f4: 54fffc63 b.cc ffffff8040003980 <dirlookup+0x2c> // b.lo, b.ul, b.last -ffffff80400039f8: d2800000 mov x0, #0x0 // #0 -ffffff80400039fc: 17fffff7 b ffffff80400039d8 <dirlookup+0x84> -ffffff8040003a00: aa0103f6 mov x22, x1 -ffffff8040003a04: aa0203f5 mov x21, x2 -ffffff8040003a08: 52800014 mov w20, #0x0 // #0 -ffffff8040003a0c: 17fffff8 b ffffff80400039ec <dirlookup+0x98> - -ffffff8040003a10 <namex>: -ffffff8040003a10: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040003a14: 910003fd mov x29, sp -ffffff8040003a18: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003a1c: aa0003f4 mov x20, x0 -ffffff8040003a20: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040003a24: 2a0103f6 mov w22, w1 -ffffff8040003a28: aa0203f5 mov x21, x2 -ffffff8040003a2c: f9001bf7 str x23, [sp, #48] -ffffff8040003a30: 39400000 ldrb w0, [x0] -ffffff8040003a34: 7100bc1f cmp w0, #0x2f -ffffff8040003a38: 540001c1 b.ne ffffff8040003a70 <namex+0x60> // b.any -ffffff8040003a3c: 52800021 mov w1, #0x1 // #1 -ffffff8040003a40: 2a0103e0 mov w0, w1 -ffffff8040003a44: 97fffd8d bl ffffff8040003078 <iget> -ffffff8040003a48: aa0003f3 mov x19, x0 -ffffff8040003a4c: aa1403e1 mov x1, x20 -ffffff8040003a50: 39400020 ldrb w0, [x1] -ffffff8040003a54: 7100bc1f cmp w0, #0x2f -ffffff8040003a58: 540003e0 b.eq ffffff8040003ad4 <namex+0xc4> // b.none -ffffff8040003a5c: 35000400 cbnz w0, ffffff8040003adc <namex+0xcc> -ffffff8040003a60: 340001b6 cbz w22, ffffff8040003a94 <namex+0x84> -ffffff8040003a64: aa1303e0 mov x0, x19 -ffffff8040003a68: 97fffef3 bl ffffff8040003634 <iput> -ffffff8040003a6c: 14000031 b ffffff8040003b30 <namex+0x120> -ffffff8040003a70: 97fff83f bl ffffff8040001b6c <myproc> -ffffff8040003a74: f940a800 ldr x0, [x0, #336] -ffffff8040003a78: 97fffe6e bl ffffff8040003430 <idup> -ffffff8040003a7c: 17fffff3 b ffffff8040003a48 <namex+0x38> -ffffff8040003a80: 34000176 cbz w22, ffffff8040003aac <namex+0x9c> -ffffff8040003a84: 39400280 ldrb w0, [x20] -ffffff8040003a88: 35000120 cbnz w0, ffffff8040003aac <namex+0x9c> -ffffff8040003a8c: aa1303e0 mov x0, x19 -ffffff8040003a90: 97fffead bl ffffff8040003544 <iunlock> -ffffff8040003a94: aa1303e0 mov x0, x19 -ffffff8040003a98: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003a9c: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003aa0: f9401bf7 ldr x23, [sp, #48] -ffffff8040003aa4: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040003aa8: d65f03c0 ret -ffffff8040003aac: d2800002 mov x2, #0x0 // #0 -ffffff8040003ab0: aa1503e1 mov x1, x21 -ffffff8040003ab4: aa1303e0 mov x0, x19 -ffffff8040003ab8: 97ffffa7 bl ffffff8040003954 <dirlookup> -ffffff8040003abc: aa0003f7 mov x23, x0 -ffffff8040003ac0: aa1303e0 mov x0, x19 -ffffff8040003ac4: b4000357 cbz x23, ffffff8040003b2c <namex+0x11c> -ffffff8040003ac8: aa1703f3 mov x19, x23 -ffffff8040003acc: 97ffff01 bl ffffff80400036d0 <iunlockput> -ffffff8040003ad0: 17ffffdf b ffffff8040003a4c <namex+0x3c> -ffffff8040003ad4: 91000421 add x1, x1, #0x1 -ffffff8040003ad8: 17ffffde b ffffff8040003a50 <namex+0x40> -ffffff8040003adc: aa0103f4 mov x20, x1 -ffffff8040003ae0: 38401e80 ldrb w0, [x20, #1]! -ffffff8040003ae4: 7100bc1f cmp w0, #0x2f -ffffff8040003ae8: 7a401804 ccmp w0, #0x0, #0x4, ne // ne = any -ffffff8040003aec: 54ffffa1 b.ne ffffff8040003ae0 <namex+0xd0> // b.any -ffffff8040003af0: cb010297 sub x23, x20, x1 -ffffff8040003af4: 710036ff cmp w23, #0xd -ffffff8040003af8: 5400020d b.le ffffff8040003b38 <namex+0x128> -ffffff8040003afc: 528001c2 mov w2, #0xe // #14 -ffffff8040003b00: aa1503e0 mov x0, x21 -ffffff8040003b04: 97fff48e bl ffffff8040000d3c <memmove> -ffffff8040003b08: 39400280 ldrb w0, [x20] -ffffff8040003b0c: 7100bc1f cmp w0, #0x2f -ffffff8040003b10: 540001e0 b.eq ffffff8040003b4c <namex+0x13c> // b.none -ffffff8040003b14: aa1303e0 mov x0, x19 -ffffff8040003b18: 97fffe57 bl ffffff8040003474 <ilock> -ffffff8040003b1c: 79c08a60 ldrsh w0, [x19, #68] -ffffff8040003b20: 7100041f cmp w0, #0x1 -ffffff8040003b24: 54fffae0 b.eq ffffff8040003a80 <namex+0x70> // b.none -ffffff8040003b28: aa1303e0 mov x0, x19 -ffffff8040003b2c: 97fffee9 bl ffffff80400036d0 <iunlockput> -ffffff8040003b30: d2800013 mov x19, #0x0 // #0 -ffffff8040003b34: 17ffffd8 b ffffff8040003a94 <namex+0x84> -ffffff8040003b38: 2a1703e2 mov w2, w23 -ffffff8040003b3c: aa1503e0 mov x0, x21 -ffffff8040003b40: 97fff47f bl ffffff8040000d3c <memmove> -ffffff8040003b44: 3837cabf strb wzr, [x21, w23, sxtw] -ffffff8040003b48: 17fffff0 b ffffff8040003b08 <namex+0xf8> -ffffff8040003b4c: 91000694 add x20, x20, #0x1 -ffffff8040003b50: 17ffffee b ffffff8040003b08 <namex+0xf8> - -ffffff8040003b54 <dirlink>: -ffffff8040003b54: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040003b58: 910003fd mov x29, sp -ffffff8040003b5c: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040003b60: 2a0203f6 mov w22, w2 -ffffff8040003b64: d2800002 mov x2, #0x0 // #0 -ffffff8040003b68: aa0103f5 mov x21, x1 -ffffff8040003b6c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003b70: aa0003f4 mov x20, x0 -ffffff8040003b74: 97ffff78 bl ffffff8040003954 <dirlookup> -ffffff8040003b78: b40004e0 cbz x0, ffffff8040003c14 <dirlink+0xc0> -ffffff8040003b7c: 97fffeae bl ffffff8040003634 <iput> -ffffff8040003b80: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040003b84: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003b88: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003b8c: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040003b90: d65f03c0 ret -ffffff8040003b94: 794063e0 ldrh w0, [sp, #48] -ffffff8040003b98: 35000200 cbnz w0, ffffff8040003bd8 <dirlink+0x84> -ffffff8040003b9c: 528001c2 mov w2, #0xe // #14 -ffffff8040003ba0: aa1503e1 mov x1, x21 -ffffff8040003ba4: 9100cbe0 add x0, sp, #0x32 -ffffff8040003ba8: 97fff48b bl ffffff8040000dd4 <strncpy> -ffffff8040003bac: 52800204 mov w4, #0x10 // #16 -ffffff8040003bb0: 2a1303e3 mov w3, w19 -ffffff8040003bb4: 790063f6 strh w22, [sp, #48] -ffffff8040003bb8: 9100c3e2 add x2, sp, #0x30 -ffffff8040003bbc: 52800001 mov w1, #0x0 // #0 -ffffff8040003bc0: aa1403e0 mov x0, x20 -ffffff8040003bc4: 97ffff1b bl ffffff8040003830 <writei> -ffffff8040003bc8: 7100401f cmp w0, #0x10 -ffffff8040003bcc: 54000281 b.ne ffffff8040003c1c <dirlink+0xc8> // b.any -ffffff8040003bd0: 52800000 mov w0, #0x0 // #0 -ffffff8040003bd4: 17ffffec b ffffff8040003b84 <dirlink+0x30> -ffffff8040003bd8: 11004273 add w19, w19, #0x10 -ffffff8040003bdc: b9404e80 ldr w0, [x20, #76] -ffffff8040003be0: 6b13001f cmp w0, w19 -ffffff8040003be4: 54fffdc9 b.ls ffffff8040003b9c <dirlink+0x48> // b.plast -ffffff8040003be8: 52800204 mov w4, #0x10 // #16 -ffffff8040003bec: 2a1303e3 mov w3, w19 -ffffff8040003bf0: 9100c3e2 add x2, sp, #0x30 -ffffff8040003bf4: 52800001 mov w1, #0x0 // #0 -ffffff8040003bf8: aa1403e0 mov x0, x20 -ffffff8040003bfc: 97fffec9 bl ffffff8040003720 <readi> -ffffff8040003c00: 7100401f cmp w0, #0x10 -ffffff8040003c04: 54fffc80 b.eq ffffff8040003b94 <dirlink+0x40> // b.none -ffffff8040003c08: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003c0c: 91136800 add x0, x0, #0x4da -ffffff8040003c10: 97fff23c bl ffffff8040000500 <panic> -ffffff8040003c14: 52800013 mov w19, #0x0 // #0 -ffffff8040003c18: 17fffff1 b ffffff8040003bdc <dirlink+0x88> -ffffff8040003c1c: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003c20: 9116ac00 add x0, x0, #0x5ab -ffffff8040003c24: 17fffffb b ffffff8040003c10 <dirlink+0xbc> - -ffffff8040003c28 <namei>: -ffffff8040003c28: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040003c2c: 52800001 mov w1, #0x0 // #0 -ffffff8040003c30: 910003fd mov x29, sp -ffffff8040003c34: 910043e2 add x2, sp, #0x10 -ffffff8040003c38: 97ffff76 bl ffffff8040003a10 <namex> -ffffff8040003c3c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040003c40: d65f03c0 ret - -ffffff8040003c44 <nameiparent>: -ffffff8040003c44: aa0103e2 mov x2, x1 -ffffff8040003c48: 52800021 mov w1, #0x1 // #1 -ffffff8040003c4c: 17ffff71 b ffffff8040003a10 <namex> - -ffffff8040003c50 <write_head>: -ffffff8040003c50: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040003c54: 910003fd mov x29, sp -ffffff8040003c58: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003c5c: f0000114 adrp x20, ffffff8040026000 <itable+0x1980> -ffffff8040003c60: 9104a294 add x20, x20, #0x128 -ffffff8040003c64: b9401a81 ldr w1, [x20, #24] -ffffff8040003c68: b9402a80 ldr w0, [x20, #40] -ffffff8040003c6c: 97fffc1e bl ffffff8040002ce4 <bread> -ffffff8040003c70: b9402e81 ldr w1, [x20, #44] -ffffff8040003c74: aa0003f3 mov x19, x0 -ffffff8040003c78: 91017002 add x2, x0, #0x5c -ffffff8040003c7c: b9005801 str w1, [x0, #88] -ffffff8040003c80: d2800000 mov x0, #0x0 // #0 -ffffff8040003c84: 6b00003f cmp w1, w0 -ffffff8040003c88: 540000ec b.gt ffffff8040003ca4 <write_head+0x54> -ffffff8040003c8c: aa1303e0 mov x0, x19 -ffffff8040003c90: 97fffc4e bl ffffff8040002dc8 <bwrite> -ffffff8040003c94: aa1303e0 mov x0, x19 -ffffff8040003c98: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003c9c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040003ca0: 17fffc59 b ffffff8040002e04 <brelse> -ffffff8040003ca4: 8b000a83 add x3, x20, x0, lsl #2 -ffffff8040003ca8: b9403063 ldr w3, [x3, #48] -ffffff8040003cac: b8207843 str w3, [x2, x0, lsl #2] -ffffff8040003cb0: 91000400 add x0, x0, #0x1 -ffffff8040003cb4: 17fffff4 b ffffff8040003c84 <write_head+0x34> - -ffffff8040003cb8 <install_trans>: -ffffff8040003cb8: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040003cbc: 910003fd mov x29, sp -ffffff8040003cc0: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003cc4: f0000113 adrp x19, ffffff8040026000 <itable+0x1980> -ffffff8040003cc8: 9104a273 add x19, x19, #0x128 -ffffff8040003ccc: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040003cd0: d2800015 mov x21, #0x0 // #0 -ffffff8040003cd4: f9001bf7 str x23, [sp, #48] -ffffff8040003cd8: 2a0003f7 mov w23, w0 -ffffff8040003cdc: b9402e60 ldr w0, [x19, #44] -ffffff8040003ce0: 6b15001f cmp w0, w21 -ffffff8040003ce4: 540000cc b.gt ffffff8040003cfc <install_trans+0x44> -ffffff8040003ce8: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003cec: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003cf0: f9401bf7 ldr x23, [sp, #48] -ffffff8040003cf4: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040003cf8: d65f03c0 ret -ffffff8040003cfc: b9401a61 ldr w1, [x19, #24] -ffffff8040003d00: b9402a60 ldr w0, [x19, #40] -ffffff8040003d04: 0b150021 add w1, w1, w21 -ffffff8040003d08: 11000421 add w1, w1, #0x1 -ffffff8040003d0c: 97fffbf6 bl ffffff8040002ce4 <bread> -ffffff8040003d10: aa0003f6 mov x22, x0 -ffffff8040003d14: 8b150a60 add x0, x19, x21, lsl #2 -ffffff8040003d18: b9403001 ldr w1, [x0, #48] -ffffff8040003d1c: b9402a60 ldr w0, [x19, #40] -ffffff8040003d20: 97fffbf1 bl ffffff8040002ce4 <bread> -ffffff8040003d24: aa0003f4 mov x20, x0 -ffffff8040003d28: 52808002 mov w2, #0x400 // #1024 -ffffff8040003d2c: 910162c1 add x1, x22, #0x58 -ffffff8040003d30: 91016000 add x0, x0, #0x58 -ffffff8040003d34: 97fff402 bl ffffff8040000d3c <memmove> -ffffff8040003d38: aa1403e0 mov x0, x20 -ffffff8040003d3c: 97fffc23 bl ffffff8040002dc8 <bwrite> -ffffff8040003d40: 35000077 cbnz w23, ffffff8040003d4c <install_trans+0x94> -ffffff8040003d44: aa1403e0 mov x0, x20 -ffffff8040003d48: 97fffc62 bl ffffff8040002ed0 <bunpin> -ffffff8040003d4c: aa1603e0 mov x0, x22 -ffffff8040003d50: 910006b5 add x21, x21, #0x1 -ffffff8040003d54: 97fffc2c bl ffffff8040002e04 <brelse> -ffffff8040003d58: aa1403e0 mov x0, x20 -ffffff8040003d5c: 97fffc2a bl ffffff8040002e04 <brelse> -ffffff8040003d60: 17ffffdf b ffffff8040003cdc <install_trans+0x24> - -ffffff8040003d64 <initlog>: -ffffff8040003d64: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040003d68: 910003fd mov x29, sp -ffffff8040003d6c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003d70: f0000113 adrp x19, ffffff8040026000 <itable+0x1980> -ffffff8040003d74: 9104a273 add x19, x19, #0x128 -ffffff8040003d78: 2a0003f4 mov w20, w0 -ffffff8040003d7c: aa1303e0 mov x0, x19 -ffffff8040003d80: f90013f5 str x21, [sp, #32] -ffffff8040003d84: aa0103f5 mov x21, x1 -ffffff8040003d88: 90000021 adrp x1, ffffff8040007000 <etext> -ffffff8040003d8c: 91139c21 add x1, x1, #0x4e7 -ffffff8040003d90: 97fff377 bl ffffff8040000b6c <initlock> -ffffff8040003d94: 294206a0 ldp w0, w1, [x21, #16] -ffffff8040003d98: b9002a74 str w20, [x19, #40] -ffffff8040003d9c: 29030261 stp w1, w0, [x19, #24] -ffffff8040003da0: 2a1403e0 mov w0, w20 -ffffff8040003da4: 97fffbd0 bl ffffff8040002ce4 <bread> -ffffff8040003da8: b9405802 ldr w2, [x0, #88] -ffffff8040003dac: d2800001 mov x1, #0x0 // #0 -ffffff8040003db0: 91017003 add x3, x0, #0x5c -ffffff8040003db4: b9002e62 str w2, [x19, #44] -ffffff8040003db8: 6b01005f cmp w2, w1 -ffffff8040003dbc: 5400012c b.gt ffffff8040003de0 <initlog+0x7c> -ffffff8040003dc0: 97fffc11 bl ffffff8040002e04 <brelse> -ffffff8040003dc4: 52800020 mov w0, #0x1 // #1 -ffffff8040003dc8: 97ffffbc bl ffffff8040003cb8 <install_trans> -ffffff8040003dcc: b9002e7f str wzr, [x19, #44] -ffffff8040003dd0: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003dd4: f94013f5 ldr x21, [sp, #32] -ffffff8040003dd8: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040003ddc: 17ffff9d b ffffff8040003c50 <write_head> -ffffff8040003de0: b8617865 ldr w5, [x3, x1, lsl #2] -ffffff8040003de4: 8b010a64 add x4, x19, x1, lsl #2 -ffffff8040003de8: 91000421 add x1, x1, #0x1 -ffffff8040003dec: b9003085 str w5, [x4, #48] -ffffff8040003df0: 17fffff2 b ffffff8040003db8 <initlog+0x54> - -ffffff8040003df4 <begin_op>: -ffffff8040003df4: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040003df8: 910003fd mov x29, sp -ffffff8040003dfc: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003e00: f0000113 adrp x19, ffffff8040026000 <itable+0x1980> -ffffff8040003e04: 9104a273 add x19, x19, #0x128 -ffffff8040003e08: aa1303e0 mov x0, x19 -ffffff8040003e0c: 52800154 mov w20, #0xa // #10 -ffffff8040003e10: 97fff37c bl ffffff8040000c00 <acquire> -ffffff8040003e14: b9402660 ldr w0, [x19, #36] -ffffff8040003e18: 340000a0 cbz w0, ffffff8040003e2c <begin_op+0x38> -ffffff8040003e1c: aa1303e1 mov x1, x19 -ffffff8040003e20: aa1303e0 mov x0, x19 -ffffff8040003e24: 97fff899 bl ffffff8040002088 <sleep> -ffffff8040003e28: 17fffffb b ffffff8040003e14 <begin_op+0x20> -ffffff8040003e2c: b9402260 ldr w0, [x19, #32] -ffffff8040003e30: b9402e62 ldr w2, [x19, #44] -ffffff8040003e34: 11000401 add w1, w0, #0x1 -ffffff8040003e38: 1b145000 madd w0, w0, w20, w20 -ffffff8040003e3c: 0b020000 add w0, w0, w2 -ffffff8040003e40: 7100781f cmp w0, #0x1e -ffffff8040003e44: 54fffecc b.gt ffffff8040003e1c <begin_op+0x28> -ffffff8040003e48: aa1303e0 mov x0, x19 -ffffff8040003e4c: b9002261 str w1, [x19, #32] -ffffff8040003e50: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003e54: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040003e58: 17fff395 b ffffff8040000cac <release> - -ffffff8040003e5c <end_op>: -ffffff8040003e5c: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040003e60: 910003fd mov x29, sp -ffffff8040003e64: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003e68: f0000113 adrp x19, ffffff8040026000 <itable+0x1980> -ffffff8040003e6c: 9104a273 add x19, x19, #0x128 -ffffff8040003e70: aa1303e0 mov x0, x19 -ffffff8040003e74: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040003e78: 97fff362 bl ffffff8040000c00 <acquire> -ffffff8040003e7c: 29445260 ldp w0, w20, [x19, #32] -ffffff8040003e80: 51000400 sub w0, w0, #0x1 -ffffff8040003e84: b9002260 str w0, [x19, #32] -ffffff8040003e88: 34000094 cbz w20, ffffff8040003e98 <end_op+0x3c> -ffffff8040003e8c: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003e90: 9113ac00 add x0, x0, #0x4eb -ffffff8040003e94: 97fff19b bl ffffff8040000500 <panic> -ffffff8040003e98: 35000640 cbnz w0, ffffff8040003f60 <end_op+0x104> -ffffff8040003e9c: 52800034 mov w20, #0x1 // #1 -ffffff8040003ea0: b9002674 str w20, [x19, #36] -ffffff8040003ea4: aa1303e0 mov x0, x19 -ffffff8040003ea8: 97fff381 bl ffffff8040000cac <release> -ffffff8040003eac: 34000614 cbz w20, ffffff8040003f6c <end_op+0x110> -ffffff8040003eb0: b9402e60 ldr w0, [x19, #44] -ffffff8040003eb4: 7100001f cmp w0, #0x0 -ffffff8040003eb8: 5400040d b.le ffffff8040003f38 <end_op+0xdc> -ffffff8040003ebc: d2800014 mov x20, #0x0 // #0 -ffffff8040003ec0: b9401a61 ldr w1, [x19, #24] -ffffff8040003ec4: b9402a60 ldr w0, [x19, #40] -ffffff8040003ec8: 0b140021 add w1, w1, w20 -ffffff8040003ecc: 11000421 add w1, w1, #0x1 -ffffff8040003ed0: 97fffb85 bl ffffff8040002ce4 <bread> -ffffff8040003ed4: aa0003f5 mov x21, x0 -ffffff8040003ed8: 8b140a60 add x0, x19, x20, lsl #2 -ffffff8040003edc: 91000694 add x20, x20, #0x1 -ffffff8040003ee0: b9403001 ldr w1, [x0, #48] -ffffff8040003ee4: b9402a60 ldr w0, [x19, #40] -ffffff8040003ee8: 97fffb7f bl ffffff8040002ce4 <bread> -ffffff8040003eec: 91016001 add x1, x0, #0x58 -ffffff8040003ef0: 52808002 mov w2, #0x400 // #1024 -ffffff8040003ef4: aa0003f6 mov x22, x0 -ffffff8040003ef8: 910162a0 add x0, x21, #0x58 -ffffff8040003efc: 97fff390 bl ffffff8040000d3c <memmove> -ffffff8040003f00: aa1503e0 mov x0, x21 -ffffff8040003f04: 97fffbb1 bl ffffff8040002dc8 <bwrite> -ffffff8040003f08: aa1603e0 mov x0, x22 -ffffff8040003f0c: 97fffbbe bl ffffff8040002e04 <brelse> -ffffff8040003f10: aa1503e0 mov x0, x21 -ffffff8040003f14: 97fffbbc bl ffffff8040002e04 <brelse> -ffffff8040003f18: b9402e60 ldr w0, [x19, #44] -ffffff8040003f1c: 6b14001f cmp w0, w20 -ffffff8040003f20: 54fffd0c b.gt ffffff8040003ec0 <end_op+0x64> -ffffff8040003f24: 97ffff4b bl ffffff8040003c50 <write_head> -ffffff8040003f28: 52800000 mov w0, #0x0 // #0 -ffffff8040003f2c: 97ffff63 bl ffffff8040003cb8 <install_trans> -ffffff8040003f30: b9002e7f str wzr, [x19, #44] -ffffff8040003f34: 97ffff47 bl ffffff8040003c50 <write_head> -ffffff8040003f38: aa1303e0 mov x0, x19 -ffffff8040003f3c: 97fff331 bl ffffff8040000c00 <acquire> -ffffff8040003f40: aa1303e0 mov x0, x19 -ffffff8040003f44: b900267f str wzr, [x19, #36] -ffffff8040003f48: 97fff8a9 bl ffffff80400021ec <wakeup> -ffffff8040003f4c: aa1303e0 mov x0, x19 -ffffff8040003f50: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003f54: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003f58: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040003f5c: 17fff354 b ffffff8040000cac <release> -ffffff8040003f60: aa1303e0 mov x0, x19 -ffffff8040003f64: 97fff8a2 bl ffffff80400021ec <wakeup> -ffffff8040003f68: 17ffffcf b ffffff8040003ea4 <end_op+0x48> -ffffff8040003f6c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040003f70: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040003f74: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040003f78: d65f03c0 ret - -ffffff8040003f7c <log_write>: -ffffff8040003f7c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040003f80: 910003fd mov x29, sp -ffffff8040003f84: a90153f3 stp x19, x20, [sp, #16] -ffffff8040003f88: f0000113 adrp x19, ffffff8040026000 <itable+0x1980> -ffffff8040003f8c: 9104a273 add x19, x19, #0x128 -ffffff8040003f90: aa0003f4 mov x20, x0 -ffffff8040003f94: aa1303e0 mov x0, x19 -ffffff8040003f98: 97fff31a bl ffffff8040000c00 <acquire> -ffffff8040003f9c: b9402e60 ldr w0, [x19, #44] -ffffff8040003fa0: 7100741f cmp w0, #0x1d -ffffff8040003fa4: 540000ac b.gt ffffff8040003fb8 <log_write+0x3c> -ffffff8040003fa8: b9401e61 ldr w1, [x19, #28] -ffffff8040003fac: 51000421 sub w1, w1, #0x1 -ffffff8040003fb0: 6b01001f cmp w0, w1 -ffffff8040003fb4: 5400008b b.lt ffffff8040003fc4 <log_write+0x48> // b.tstop -ffffff8040003fb8: 90000020 adrp x0, ffffff8040007000 <etext> -ffffff8040003fbc: 9113e800 add x0, x0, #0x4fa -ffffff8040003fc0: 97fff150 bl ffffff8040000500 <panic> -ffffff8040003fc4: b9402261 ldr w1, [x19, #32] -ffffff8040003fc8: 7100003f cmp w1, #0x0 -ffffff8040003fcc: 5400030d b.le ffffff804000402c <log_write+0xb0> -ffffff8040003fd0: b9400e83 ldr w3, [x20, #12] -ffffff8040003fd4: d2800001 mov x1, #0x0 // #0 -ffffff8040003fd8: 6b01001f cmp w0, w1 -ffffff8040003fdc: 2a0103e2 mov w2, w1 -ffffff8040003fe0: 540000cd b.le ffffff8040003ff8 <log_write+0x7c> -ffffff8040003fe4: 8b010a64 add x4, x19, x1, lsl #2 -ffffff8040003fe8: 91000421 add x1, x1, #0x1 -ffffff8040003fec: b9403084 ldr w4, [x4, #48] -ffffff8040003ff0: 6b04007f cmp w3, w4 -ffffff8040003ff4: 54ffff21 b.ne ffffff8040003fd8 <log_write+0x5c> // b.any -ffffff8040003ff8: 8b22ca61 add x1, x19, w2, sxtw #2 -ffffff8040003ffc: 6b02001f cmp w0, w2 -ffffff8040004000: b9003023 str w3, [x1, #48] -ffffff8040004004: 540000c1 b.ne ffffff804000401c <log_write+0xa0> // b.any -ffffff8040004008: aa1403e0 mov x0, x20 -ffffff804000400c: 97fffba2 bl ffffff8040002e94 <bpin> -ffffff8040004010: b9402e60 ldr w0, [x19, #44] -ffffff8040004014: 11000400 add w0, w0, #0x1 -ffffff8040004018: b9002e60 str w0, [x19, #44] -ffffff804000401c: aa1303e0 mov x0, x19 -ffffff8040004020: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004024: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004028: 17fff321 b ffffff8040000cac <release> -ffffff804000402c: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040004030: 91144000 add x0, x0, #0x510 -ffffff8040004034: 17ffffe3 b ffffff8040003fc0 <log_write+0x44> - -ffffff8040004038 <initsleeplock>: -ffffff8040004038: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff804000403c: 910003fd mov x29, sp -ffffff8040004040: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004044: aa0003f3 mov x19, x0 -ffffff8040004048: aa0103f4 mov x20, x1 -ffffff804000404c: 91002000 add x0, x0, #0x8 -ffffff8040004050: f0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040004054: 9114ac21 add x1, x1, #0x52b -ffffff8040004058: 97fff2c5 bl ffffff8040000b6c <initlock> -ffffff804000405c: b900027f str wzr, [x19] -ffffff8040004060: f9001274 str x20, [x19, #32] -ffffff8040004064: b9002a7f str wzr, [x19, #40] -ffffff8040004068: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000406c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004070: d65f03c0 ret - -ffffff8040004074 <acquiresleep>: -ffffff8040004074: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040004078: 910003fd mov x29, sp -ffffff804000407c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004080: 91002014 add x20, x0, #0x8 -ffffff8040004084: aa0003f3 mov x19, x0 -ffffff8040004088: aa1403e0 mov x0, x20 -ffffff804000408c: 97fff2dd bl ffffff8040000c00 <acquire> -ffffff8040004090: b9400260 ldr w0, [x19] -ffffff8040004094: 35000140 cbnz w0, ffffff80400040bc <acquiresleep+0x48> -ffffff8040004098: 52800020 mov w0, #0x1 // #1 -ffffff804000409c: b9000260 str w0, [x19] -ffffff80400040a0: 97fff6b3 bl ffffff8040001b6c <myproc> -ffffff80400040a4: b9403000 ldr w0, [x0, #48] -ffffff80400040a8: b9002a60 str w0, [x19, #40] -ffffff80400040ac: aa1403e0 mov x0, x20 -ffffff80400040b0: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400040b4: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400040b8: 17fff2fd b ffffff8040000cac <release> -ffffff80400040bc: aa1403e1 mov x1, x20 -ffffff80400040c0: aa1303e0 mov x0, x19 -ffffff80400040c4: 97fff7f1 bl ffffff8040002088 <sleep> -ffffff80400040c8: 17fffff2 b ffffff8040004090 <acquiresleep+0x1c> - -ffffff80400040cc <releasesleep>: -ffffff80400040cc: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400040d0: 910003fd mov x29, sp -ffffff80400040d4: a90153f3 stp x19, x20, [sp, #16] -ffffff80400040d8: 91002014 add x20, x0, #0x8 -ffffff80400040dc: aa0003f3 mov x19, x0 -ffffff80400040e0: aa1403e0 mov x0, x20 -ffffff80400040e4: 97fff2c7 bl ffffff8040000c00 <acquire> -ffffff80400040e8: aa1303e0 mov x0, x19 -ffffff80400040ec: b900027f str wzr, [x19] -ffffff80400040f0: b9002a7f str wzr, [x19, #40] -ffffff80400040f4: 97fff83e bl ffffff80400021ec <wakeup> -ffffff80400040f8: aa1403e0 mov x0, x20 -ffffff80400040fc: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004100: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004104: 17fff2ea b ffffff8040000cac <release> - -ffffff8040004108 <holdingsleep>: -ffffff8040004108: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff804000410c: 910003fd mov x29, sp -ffffff8040004110: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004114: 91002014 add x20, x0, #0x8 -ffffff8040004118: aa0003f3 mov x19, x0 -ffffff804000411c: aa1403e0 mov x0, x20 -ffffff8040004120: 97fff2b8 bl ffffff8040000c00 <acquire> -ffffff8040004124: b9400260 ldr w0, [x19] -ffffff8040004128: 34000180 cbz w0, ffffff8040004158 <holdingsleep+0x50> -ffffff804000412c: b9402a73 ldr w19, [x19, #40] -ffffff8040004130: 97fff68f bl ffffff8040001b6c <myproc> -ffffff8040004134: b9403000 ldr w0, [x0, #48] -ffffff8040004138: 6b13001f cmp w0, w19 -ffffff804000413c: 1a9f17f3 cset w19, eq // eq = none -ffffff8040004140: aa1403e0 mov x0, x20 -ffffff8040004144: 97fff2da bl ffffff8040000cac <release> -ffffff8040004148: 2a1303e0 mov w0, w19 -ffffff804000414c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004150: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004154: d65f03c0 ret -ffffff8040004158: 52800013 mov w19, #0x0 // #0 -ffffff804000415c: 17fffff9 b ffffff8040004140 <holdingsleep+0x38> - -ffffff8040004160 <fileinit>: -ffffff8040004160: f0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040004164: 9114d821 add x1, x1, #0x536 -ffffff8040004168: d0000100 adrp x0, ffffff8040026000 <itable+0x1980> -ffffff804000416c: 91074000 add x0, x0, #0x1d0 -ffffff8040004170: 17fff27f b ffffff8040000b6c <initlock> - -ffffff8040004174 <filealloc>: -ffffff8040004174: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040004178: 910003fd mov x29, sp -ffffff804000417c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004180: d0000114 adrp x20, ffffff8040026000 <itable+0x1980> -ffffff8040004184: 91074294 add x20, x20, #0x1d0 -ffffff8040004188: aa1403e0 mov x0, x20 -ffffff804000418c: 91006293 add x19, x20, #0x18 -ffffff8040004190: 97fff29c bl ffffff8040000c00 <acquire> -ffffff8040004194: d2800c80 mov x0, #0x64 // #100 -ffffff8040004198: b9400661 ldr w1, [x19, #4] -ffffff804000419c: 35000121 cbnz w1, ffffff80400041c0 <filealloc+0x4c> -ffffff80400041a0: 52800020 mov w0, #0x1 // #1 -ffffff80400041a4: b9000660 str w0, [x19, #4] -ffffff80400041a8: aa1403e0 mov x0, x20 -ffffff80400041ac: 97fff2c0 bl ffffff8040000cac <release> -ffffff80400041b0: aa1303e0 mov x0, x19 -ffffff80400041b4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400041b8: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400041bc: d65f03c0 ret -ffffff80400041c0: f1000400 subs x0, x0, #0x1 -ffffff80400041c4: 9100a273 add x19, x19, #0x28 -ffffff80400041c8: 54fffe81 b.ne ffffff8040004198 <filealloc+0x24> // b.any -ffffff80400041cc: aa1403e0 mov x0, x20 -ffffff80400041d0: d2800013 mov x19, #0x0 // #0 -ffffff80400041d4: 97fff2b6 bl ffffff8040000cac <release> -ffffff80400041d8: 17fffff6 b ffffff80400041b0 <filealloc+0x3c> - -ffffff80400041dc <filedup>: -ffffff80400041dc: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400041e0: 910003fd mov x29, sp -ffffff80400041e4: a90153f3 stp x19, x20, [sp, #16] -ffffff80400041e8: d0000114 adrp x20, ffffff8040026000 <itable+0x1980> -ffffff80400041ec: 91074294 add x20, x20, #0x1d0 -ffffff80400041f0: aa0003f3 mov x19, x0 -ffffff80400041f4: aa1403e0 mov x0, x20 -ffffff80400041f8: 97fff282 bl ffffff8040000c00 <acquire> -ffffff80400041fc: b9400660 ldr w0, [x19, #4] -ffffff8040004200: 7100001f cmp w0, #0x0 -ffffff8040004204: 5400008c b.gt ffffff8040004214 <filedup+0x38> -ffffff8040004208: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff804000420c: 9114f400 add x0, x0, #0x53d -ffffff8040004210: 97fff0bc bl ffffff8040000500 <panic> -ffffff8040004214: 11000400 add w0, w0, #0x1 -ffffff8040004218: b9000660 str w0, [x19, #4] -ffffff804000421c: aa1403e0 mov x0, x20 -ffffff8040004220: 97fff2a3 bl ffffff8040000cac <release> -ffffff8040004224: aa1303e0 mov x0, x19 -ffffff8040004228: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000422c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004230: d65f03c0 ret - -ffffff8040004234 <fileclose>: -ffffff8040004234: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff8040004238: 910003fd mov x29, sp -ffffff804000423c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004240: d0000114 adrp x20, ffffff8040026000 <itable+0x1980> -ffffff8040004244: 91074294 add x20, x20, #0x1d0 -ffffff8040004248: aa0003f3 mov x19, x0 -ffffff804000424c: aa1403e0 mov x0, x20 -ffffff8040004250: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040004254: a90363f7 stp x23, x24, [sp, #48] -ffffff8040004258: 97fff26a bl ffffff8040000c00 <acquire> -ffffff804000425c: b9400660 ldr w0, [x19, #4] -ffffff8040004260: 7100001f cmp w0, #0x0 -ffffff8040004264: 5400008c b.gt ffffff8040004274 <fileclose+0x40> -ffffff8040004268: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff804000426c: 91151400 add x0, x0, #0x545 -ffffff8040004270: 97fff0a4 bl ffffff8040000500 <panic> -ffffff8040004274: 51000400 sub w0, w0, #0x1 -ffffff8040004278: b9000660 str w0, [x19, #4] -ffffff804000427c: 340000e0 cbz w0, ffffff8040004298 <fileclose+0x64> -ffffff8040004280: aa1403e0 mov x0, x20 -ffffff8040004284: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004288: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000428c: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040004290: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040004294: 17fff286 b ffffff8040000cac <release> -ffffff8040004298: b9400275 ldr w21, [x19] -ffffff804000429c: aa1403e0 mov x0, x20 -ffffff80400042a0: b900027f str wzr, [x19] -ffffff80400042a4: 39402678 ldrb w24, [x19, #9] -ffffff80400042a8: a9415a77 ldp x23, x22, [x19, #16] -ffffff80400042ac: 97fff280 bl ffffff8040000cac <release> -ffffff80400042b0: 710006bf cmp w21, #0x1 -ffffff80400042b4: 54000101 b.ne ffffff80400042d4 <fileclose+0xa0> // b.any -ffffff80400042b8: 2a1803e1 mov w1, w24 -ffffff80400042bc: aa1703e0 mov x0, x23 -ffffff80400042c0: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400042c4: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400042c8: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400042cc: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400042d0: 140000ef b ffffff804000468c <pipeclose> -ffffff80400042d4: 51000ab5 sub w21, w21, #0x2 -ffffff80400042d8: 710006bf cmp w21, #0x1 -ffffff80400042dc: 54000128 b.hi ffffff8040004300 <fileclose+0xcc> // b.pmore -ffffff80400042e0: 97fffec5 bl ffffff8040003df4 <begin_op> -ffffff80400042e4: aa1603e0 mov x0, x22 -ffffff80400042e8: 97fffcd3 bl ffffff8040003634 <iput> -ffffff80400042ec: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400042f0: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400042f4: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400042f8: a8c47bfd ldp x29, x30, [sp], #64 -ffffff80400042fc: 17fffed8 b ffffff8040003e5c <end_op> -ffffff8040004300: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004304: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040004308: a94363f7 ldp x23, x24, [sp, #48] -ffffff804000430c: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040004310: d65f03c0 ret - -ffffff8040004314 <filestat>: -ffffff8040004314: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff8040004318: 910003fd mov x29, sp -ffffff804000431c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004320: aa0003f3 mov x19, x0 -ffffff8040004324: f90013f5 str x21, [sp, #32] -ffffff8040004328: aa0103f5 mov x21, x1 -ffffff804000432c: 97fff610 bl ffffff8040001b6c <myproc> -ffffff8040004330: aa0003f4 mov x20, x0 -ffffff8040004334: b9400260 ldr w0, [x19] -ffffff8040004338: 51000800 sub w0, w0, #0x2 -ffffff804000433c: 7100041f cmp w0, #0x1 -ffffff8040004340: 54000248 b.hi ffffff8040004388 <filestat+0x74> // b.pmore -ffffff8040004344: f9400e60 ldr x0, [x19, #24] -ffffff8040004348: 97fffc4b bl ffffff8040003474 <ilock> -ffffff804000434c: 9100e3e1 add x1, sp, #0x38 -ffffff8040004350: f9400e60 ldr x0, [x19, #24] -ffffff8040004354: 97fffce8 bl ffffff80400036f4 <stati> -ffffff8040004358: f9400e60 ldr x0, [x19, #24] -ffffff804000435c: 97fffc7a bl ffffff8040003544 <iunlock> -ffffff8040004360: d2800303 mov x3, #0x18 // #24 -ffffff8040004364: 9100e3e2 add x2, sp, #0x38 -ffffff8040004368: f9402a80 ldr x0, [x20, #80] -ffffff804000436c: aa1503e1 mov x1, x21 -ffffff8040004370: 97fff510 bl ffffff80400017b0 <copyout> -ffffff8040004374: 131f7c00 asr w0, w0, #31 -ffffff8040004378: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000437c: f94013f5 ldr x21, [sp, #32] -ffffff8040004380: a8c57bfd ldp x29, x30, [sp], #80 -ffffff8040004384: d65f03c0 ret -ffffff8040004388: 12800000 mov w0, #0xffffffff // #-1 -ffffff804000438c: 17fffffb b ffffff8040004378 <filestat+0x64> - -ffffff8040004390 <fileread>: -ffffff8040004390: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040004394: 910003fd mov x29, sp -ffffff8040004398: a90153f3 stp x19, x20, [sp, #16] -ffffff804000439c: aa0003f3 mov x19, x0 -ffffff80400043a0: f90013f5 str x21, [sp, #32] -ffffff80400043a4: 39402000 ldrb w0, [x0, #8] -ffffff80400043a8: 340006c0 cbz w0, ffffff8040004480 <fileread+0xf0> -ffffff80400043ac: b9400260 ldr w0, [x19] -ffffff80400043b0: 7100041f cmp w0, #0x1 -ffffff80400043b4: 540000c1 b.ne ffffff80400043cc <fileread+0x3c> // b.any -ffffff80400043b8: f9400a60 ldr x0, [x19, #16] -ffffff80400043bc: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400043c0: f94013f5 ldr x21, [sp, #32] -ffffff80400043c4: a8c37bfd ldp x29, x30, [sp], #48 -ffffff80400043c8: 1400010a b ffffff80400047f0 <piperead> -ffffff80400043cc: 71000c1f cmp w0, #0x3 -ffffff80400043d0: 54000201 b.ne ffffff8040004410 <fileread+0x80> // b.any -ffffff80400043d4: 79404a63 ldrh w3, [x19, #36] -ffffff80400043d8: 79c04a60 ldrsh w0, [x19, #36] -ffffff80400043dc: 7100247f cmp w3, #0x9 -ffffff80400043e0: 54000508 b.hi ffffff8040004480 <fileread+0xf0> // b.pmore -ffffff80400043e4: d0000103 adrp x3, ffffff8040026000 <itable+0x1980> -ffffff80400043e8: 91074063 add x3, x3, #0x1d0 -ffffff80400043ec: 8b20d060 add x0, x3, w0, sxtw #4 -ffffff80400043f0: f947dc03 ldr x3, [x0, #4024] -ffffff80400043f4: b4000463 cbz x3, ffffff8040004480 <fileread+0xf0> -ffffff80400043f8: 52800020 mov w0, #0x1 // #1 -ffffff80400043fc: aa0303f0 mov x16, x3 -ffffff8040004400: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004404: f94013f5 ldr x21, [sp, #32] -ffffff8040004408: a8c37bfd ldp x29, x30, [sp], #48 -ffffff804000440c: d61f0200 br x16 -ffffff8040004410: 7100081f cmp w0, #0x2 -ffffff8040004414: 54000301 b.ne ffffff8040004474 <fileread+0xe4> // b.any -ffffff8040004418: f9400e60 ldr x0, [x19, #24] -ffffff804000441c: aa0103f4 mov x20, x1 -ffffff8040004420: 2a0203f5 mov w21, w2 -ffffff8040004424: 97fffc14 bl ffffff8040003474 <ilock> -ffffff8040004428: aa1403e2 mov x2, x20 -ffffff804000442c: b9402263 ldr w3, [x19, #32] -ffffff8040004430: 2a1503e4 mov w4, w21 -ffffff8040004434: 52800021 mov w1, #0x1 // #1 -ffffff8040004438: f9400e60 ldr x0, [x19, #24] -ffffff804000443c: 97fffcb9 bl ffffff8040003720 <readi> -ffffff8040004440: 7100001f cmp w0, #0x0 -ffffff8040004444: 2a0003f4 mov w20, w0 -ffffff8040004448: 5400008d b.le ffffff8040004458 <fileread+0xc8> -ffffff804000444c: b9402260 ldr w0, [x19, #32] -ffffff8040004450: 0b140000 add w0, w0, w20 -ffffff8040004454: b9002260 str w0, [x19, #32] -ffffff8040004458: f9400e60 ldr x0, [x19, #24] -ffffff804000445c: 97fffc3a bl ffffff8040003544 <iunlock> -ffffff8040004460: 2a1403e0 mov w0, w20 -ffffff8040004464: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004468: f94013f5 ldr x21, [sp, #32] -ffffff804000446c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040004470: d65f03c0 ret -ffffff8040004474: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040004478: 91153c00 add x0, x0, #0x54f -ffffff804000447c: 97fff021 bl ffffff8040000500 <panic> -ffffff8040004480: 12800014 mov w20, #0xffffffff // #-1 -ffffff8040004484: 17fffff7 b ffffff8040004460 <fileread+0xd0> - -ffffff8040004488 <filewrite>: -ffffff8040004488: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff804000448c: 910003fd mov x29, sp -ffffff8040004490: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004494: aa0003f3 mov x19, x0 -ffffff8040004498: a9025bf5 stp x21, x22, [sp, #32] -ffffff804000449c: a90363f7 stp x23, x24, [sp, #48] -ffffff80400044a0: f90023f9 str x25, [sp, #64] -ffffff80400044a4: 39402400 ldrb w0, [x0, #9] -ffffff80400044a8: 340004e0 cbz w0, ffffff8040004544 <filewrite+0xbc> -ffffff80400044ac: b9400260 ldr w0, [x19] -ffffff80400044b0: 7100041f cmp w0, #0x1 -ffffff80400044b4: 54000101 b.ne ffffff80400044d4 <filewrite+0x4c> // b.any -ffffff80400044b8: f9400a60 ldr x0, [x19, #16] -ffffff80400044bc: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400044c0: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400044c4: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400044c8: f94023f9 ldr x25, [sp, #64] -ffffff80400044cc: a8c57bfd ldp x29, x30, [sp], #80 -ffffff80400044d0: 14000088 b ffffff80400046f0 <pipewrite> -ffffff80400044d4: 71000c1f cmp w0, #0x3 -ffffff80400044d8: 54000241 b.ne ffffff8040004520 <filewrite+0x98> // b.any -ffffff80400044dc: 79404a63 ldrh w3, [x19, #36] -ffffff80400044e0: 79c04a60 ldrsh w0, [x19, #36] -ffffff80400044e4: 7100247f cmp w3, #0x9 -ffffff80400044e8: 540002e8 b.hi ffffff8040004544 <filewrite+0xbc> // b.pmore -ffffff80400044ec: d0000103 adrp x3, ffffff8040026000 <itable+0x1980> -ffffff80400044f0: 91074063 add x3, x3, #0x1d0 -ffffff80400044f4: 8b20d060 add x0, x3, w0, sxtw #4 -ffffff80400044f8: f947e003 ldr x3, [x0, #4032] -ffffff80400044fc: b4000243 cbz x3, ffffff8040004544 <filewrite+0xbc> -ffffff8040004500: 52800020 mov w0, #0x1 // #1 -ffffff8040004504: aa0303f0 mov x16, x3 -ffffff8040004508: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000450c: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040004510: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040004514: f94023f9 ldr x25, [sp, #64] -ffffff8040004518: a8c57bfd ldp x29, x30, [sp], #80 -ffffff804000451c: d61f0200 br x16 -ffffff8040004520: 7100081f cmp w0, #0x2 -ffffff8040004524: 52800016 mov w22, #0x0 // #0 -ffffff8040004528: 54000501 b.ne ffffff80400045c8 <filewrite+0x140> // b.any -ffffff804000452c: aa0103f8 mov x24, x1 -ffffff8040004530: 2a0203f4 mov w20, w2 -ffffff8040004534: 52818019 mov w25, #0xc00 // #3072 -ffffff8040004538: 6b1402df cmp w22, w20 -ffffff804000453c: 5400014b b.lt ffffff8040004564 <filewrite+0xdc> // b.tstop -ffffff8040004540: 54000040 b.eq ffffff8040004548 <filewrite+0xc0> // b.none -ffffff8040004544: 12800014 mov w20, #0xffffffff // #-1 -ffffff8040004548: 2a1403e0 mov w0, w20 -ffffff804000454c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004550: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040004554: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040004558: f94023f9 ldr x25, [sp, #64] -ffffff804000455c: a8c57bfd ldp x29, x30, [sp], #80 -ffffff8040004560: d65f03c0 ret -ffffff8040004564: 4b160295 sub w21, w20, w22 -ffffff8040004568: 713002bf cmp w21, #0xc00 -ffffff804000456c: 1a99d2b5 csel w21, w21, w25, le -ffffff8040004570: 97fffe21 bl ffffff8040003df4 <begin_op> -ffffff8040004574: f9400e60 ldr x0, [x19, #24] -ffffff8040004578: 97fffbbf bl ffffff8040003474 <ilock> -ffffff804000457c: b9402263 ldr w3, [x19, #32] -ffffff8040004580: 2a1503e4 mov w4, w21 -ffffff8040004584: 52800021 mov w1, #0x1 // #1 -ffffff8040004588: 8b36c302 add x2, x24, w22, sxtw -ffffff804000458c: f9400e60 ldr x0, [x19, #24] -ffffff8040004590: 97fffca8 bl ffffff8040003830 <writei> -ffffff8040004594: 7100001f cmp w0, #0x0 -ffffff8040004598: 2a0003f7 mov w23, w0 -ffffff804000459c: 5400008d b.le ffffff80400045ac <filewrite+0x124> -ffffff80400045a0: b9402260 ldr w0, [x19, #32] -ffffff80400045a4: 0b170000 add w0, w0, w23 -ffffff80400045a8: b9002260 str w0, [x19, #32] -ffffff80400045ac: f9400e60 ldr x0, [x19, #24] -ffffff80400045b0: 97fffbe5 bl ffffff8040003544 <iunlock> -ffffff80400045b4: 97fffe2a bl ffffff8040003e5c <end_op> -ffffff80400045b8: 6b1702bf cmp w21, w23 -ffffff80400045bc: 54fffc41 b.ne ffffff8040004544 <filewrite+0xbc> // b.any -ffffff80400045c0: 0b1502d6 add w22, w22, w21 -ffffff80400045c4: 17ffffdd b ffffff8040004538 <filewrite+0xb0> -ffffff80400045c8: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff80400045cc: 91156000 add x0, x0, #0x558 -ffffff80400045d0: 97ffefcc bl ffffff8040000500 <panic> - -ffffff80400045d4 <pipealloc>: -ffffff80400045d4: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff80400045d8: 910003fd mov x29, sp -ffffff80400045dc: a90153f3 stp x19, x20, [sp, #16] -ffffff80400045e0: aa0103f4 mov x20, x1 -ffffff80400045e4: f90013f5 str x21, [sp, #32] -ffffff80400045e8: aa0003f5 mov x21, x0 -ffffff80400045ec: f900003f str xzr, [x1] -ffffff80400045f0: f900001f str xzr, [x0] -ffffff80400045f4: 97fffee0 bl ffffff8040004174 <filealloc> -ffffff80400045f8: f90002a0 str x0, [x21] -ffffff80400045fc: b4000380 cbz x0, ffffff804000466c <pipealloc+0x98> -ffffff8040004600: 97fffedd bl ffffff8040004174 <filealloc> -ffffff8040004604: f9000280 str x0, [x20] -ffffff8040004608: b4000320 cbz x0, ffffff804000466c <pipealloc+0x98> -ffffff804000460c: 97fff139 bl ffffff8040000af0 <kalloc> -ffffff8040004610: aa0003f3 mov x19, x0 -ffffff8040004614: b40002c0 cbz x0, ffffff804000466c <pipealloc+0x98> -ffffff8040004618: b20003e1 mov x1, #0x100000001 // #4294967297 -ffffff804000461c: f9010c1f str xzr, [x0, #536] -ffffff8040004620: f9011001 str x1, [x0, #544] -ffffff8040004624: f0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040004628: 91158821 add x1, x1, #0x562 -ffffff804000462c: 97fff150 bl ffffff8040000b6c <initlock> -ffffff8040004630: f94002a0 ldr x0, [x21] -ffffff8040004634: 52800021 mov w1, #0x1 // #1 -ffffff8040004638: b9000001 str w1, [x0] -ffffff804000463c: 79001001 strh w1, [x0, #8] -ffffff8040004640: f9000813 str x19, [x0, #16] -ffffff8040004644: f9400280 ldr x0, [x20] -ffffff8040004648: b9000001 str w1, [x0] -ffffff804000464c: 52802001 mov w1, #0x100 // #256 -ffffff8040004650: f9000813 str x19, [x0, #16] -ffffff8040004654: 79001001 strh w1, [x0, #8] -ffffff8040004658: 52800000 mov w0, #0x0 // #0 -ffffff804000465c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004660: f94013f5 ldr x21, [sp, #32] -ffffff8040004664: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040004668: d65f03c0 ret -ffffff804000466c: f94002a0 ldr x0, [x21] -ffffff8040004670: b4000040 cbz x0, ffffff8040004678 <pipealloc+0xa4> -ffffff8040004674: 97fffef0 bl ffffff8040004234 <fileclose> -ffffff8040004678: f9400280 ldr x0, [x20] -ffffff804000467c: b4000040 cbz x0, ffffff8040004684 <pipealloc+0xb0> -ffffff8040004680: 97fffeed bl ffffff8040004234 <fileclose> -ffffff8040004684: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040004688: 17fffff5 b ffffff804000465c <pipealloc+0x88> - -ffffff804000468c <pipeclose>: -ffffff804000468c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040004690: 910003fd mov x29, sp -ffffff8040004694: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004698: 2a0103f4 mov w20, w1 -ffffff804000469c: aa0003f3 mov x19, x0 -ffffff80400046a0: 97fff158 bl ffffff8040000c00 <acquire> -ffffff80400046a4: 34000194 cbz w20, ffffff80400046d4 <pipeclose+0x48> -ffffff80400046a8: 91086260 add x0, x19, #0x218 -ffffff80400046ac: b902267f str wzr, [x19, #548] -ffffff80400046b0: 97fff6cf bl ffffff80400021ec <wakeup> -ffffff80400046b4: f9411260 ldr x0, [x19, #544] -ffffff80400046b8: b5000140 cbnz x0, ffffff80400046e0 <pipeclose+0x54> -ffffff80400046bc: aa1303e0 mov x0, x19 -ffffff80400046c0: 97fff17b bl ffffff8040000cac <release> -ffffff80400046c4: aa1303e0 mov x0, x19 -ffffff80400046c8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400046cc: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400046d0: 17fff0ca b ffffff80400009f8 <kfree> -ffffff80400046d4: 91087260 add x0, x19, #0x21c -ffffff80400046d8: b902227f str wzr, [x19, #544] -ffffff80400046dc: 17fffff5 b ffffff80400046b0 <pipeclose+0x24> -ffffff80400046e0: aa1303e0 mov x0, x19 -ffffff80400046e4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400046e8: a8c27bfd ldp x29, x30, [sp], #32 -ffffff80400046ec: 17fff170 b ffffff8040000cac <release> - -ffffff80400046f0 <pipewrite>: -ffffff80400046f0: a9ba7bfd stp x29, x30, [sp, #-96]! -ffffff80400046f4: 910003fd mov x29, sp -ffffff80400046f8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400046fc: aa0003f3 mov x19, x0 -ffffff8040004700: 52800014 mov w20, #0x0 // #0 -ffffff8040004704: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040004708: 2a0203f6 mov w22, w2 -ffffff804000470c: a90363f7 stp x23, x24, [sp, #48] -ffffff8040004710: aa0103f7 mov x23, x1 -ffffff8040004714: 91086018 add x24, x0, #0x218 -ffffff8040004718: f90023f9 str x25, [sp, #64] -ffffff804000471c: 91087279 add x25, x19, #0x21c -ffffff8040004720: 97fff513 bl ffffff8040001b6c <myproc> -ffffff8040004724: aa0003f5 mov x21, x0 -ffffff8040004728: aa1303e0 mov x0, x19 -ffffff804000472c: 97fff135 bl ffffff8040000c00 <acquire> -ffffff8040004730: 6b16029f cmp w20, w22 -ffffff8040004734: 540000cb b.lt ffffff804000474c <pipewrite+0x5c> // b.tstop -ffffff8040004738: 91086260 add x0, x19, #0x218 -ffffff804000473c: 97fff6ac bl ffffff80400021ec <wakeup> -ffffff8040004740: aa1303e0 mov x0, x19 -ffffff8040004744: 97fff15a bl ffffff8040000cac <release> -ffffff8040004748: 14000008 b ffffff8040004768 <pipewrite+0x78> -ffffff804000474c: b9422260 ldr w0, [x19, #544] -ffffff8040004750: 34000060 cbz w0, ffffff804000475c <pipewrite+0x6c> -ffffff8040004754: b9402aa0 ldr w0, [x21, #40] -ffffff8040004758: 34000160 cbz w0, ffffff8040004784 <pipewrite+0x94> -ffffff804000475c: aa1303e0 mov x0, x19 -ffffff8040004760: 12800014 mov w20, #0xffffffff // #-1 -ffffff8040004764: 97fff152 bl ffffff8040000cac <release> -ffffff8040004768: 2a1403e0 mov w0, w20 -ffffff804000476c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004770: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040004774: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040004778: f94023f9 ldr x25, [sp, #64] -ffffff804000477c: a8c67bfd ldp x29, x30, [sp], #96 -ffffff8040004780: d65f03c0 ret -ffffff8040004784: b9421a60 ldr w0, [x19, #536] -ffffff8040004788: b9421e61 ldr w1, [x19, #540] -ffffff804000478c: 11080000 add w0, w0, #0x200 -ffffff8040004790: 6b00003f cmp w1, w0 -ffffff8040004794: 540000e1 b.ne ffffff80400047b0 <pipewrite+0xc0> // b.any -ffffff8040004798: aa1803e0 mov x0, x24 -ffffff804000479c: 97fff694 bl ffffff80400021ec <wakeup> -ffffff80400047a0: aa1303e1 mov x1, x19 -ffffff80400047a4: aa1903e0 mov x0, x25 -ffffff80400047a8: 97fff638 bl ffffff8040002088 <sleep> -ffffff80400047ac: 17ffffe1 b ffffff8040004730 <pipewrite+0x40> -ffffff80400047b0: d2800023 mov x3, #0x1 // #1 -ffffff80400047b4: 91017fe1 add x1, sp, #0x5f -ffffff80400047b8: f9402aa0 ldr x0, [x21, #80] -ffffff80400047bc: 8b34c2e2 add x2, x23, w20, sxtw -ffffff80400047c0: 97fff420 bl ffffff8040001840 <copyin> -ffffff80400047c4: 3100041f cmn w0, #0x1 -ffffff80400047c8: 54fffb80 b.eq ffffff8040004738 <pipewrite+0x48> // b.none -ffffff80400047cc: b9421e63 ldr w3, [x19, #540] -ffffff80400047d0: 11000694 add w20, w20, #0x1 -ffffff80400047d4: 11000460 add w0, w3, #0x1 -ffffff80400047d8: 92402063 and x3, x3, #0x1ff -ffffff80400047dc: 8b030263 add x3, x19, x3 -ffffff80400047e0: b9021e60 str w0, [x19, #540] -ffffff80400047e4: 39417fe0 ldrb w0, [sp, #95] -ffffff80400047e8: 39006060 strb w0, [x3, #24] -ffffff80400047ec: 17ffffd1 b ffffff8040004730 <pipewrite+0x40> - -ffffff80400047f0 <piperead>: -ffffff80400047f0: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff80400047f4: 910003fd mov x29, sp -ffffff80400047f8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400047fc: aa0003f3 mov x19, x0 -ffffff8040004800: 91086274 add x20, x19, #0x218 -ffffff8040004804: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040004808: 2a0203f6 mov w22, w2 -ffffff804000480c: a90363f7 stp x23, x24, [sp, #48] -ffffff8040004810: aa0103f7 mov x23, x1 -ffffff8040004814: 97fff4d6 bl ffffff8040001b6c <myproc> -ffffff8040004818: aa0003f5 mov x21, x0 -ffffff804000481c: aa1303e0 mov x0, x19 -ffffff8040004820: 97fff0f8 bl ffffff8040000c00 <acquire> -ffffff8040004824: b9421a61 ldr w1, [x19, #536] -ffffff8040004828: b9421e60 ldr w0, [x19, #540] -ffffff804000482c: 6b00003f cmp w1, w0 -ffffff8040004830: 54000061 b.ne ffffff804000483c <piperead+0x4c> // b.any -ffffff8040004834: b9422661 ldr w1, [x19, #548] -ffffff8040004838: 35000061 cbnz w1, ffffff8040004844 <piperead+0x54> -ffffff804000483c: d2800014 mov x20, #0x0 // #0 -ffffff8040004840: 1400001e b ffffff80400048b8 <piperead+0xc8> -ffffff8040004844: b9402aa0 ldr w0, [x21, #40] -ffffff8040004848: 34000140 cbz w0, ffffff8040004870 <piperead+0x80> -ffffff804000484c: aa1303e0 mov x0, x19 -ffffff8040004850: 12800018 mov w24, #0xffffffff // #-1 -ffffff8040004854: 97fff116 bl ffffff8040000cac <release> -ffffff8040004858: 2a1803e0 mov w0, w24 -ffffff804000485c: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004860: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040004864: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040004868: a8c57bfd ldp x29, x30, [sp], #80 -ffffff804000486c: d65f03c0 ret -ffffff8040004870: aa1303e1 mov x1, x19 -ffffff8040004874: aa1403e0 mov x0, x20 -ffffff8040004878: 97fff604 bl ffffff8040002088 <sleep> -ffffff804000487c: 17ffffea b ffffff8040004824 <piperead+0x34> -ffffff8040004880: 11000460 add w0, w3, #0x1 -ffffff8040004884: 92402063 and x3, x3, #0x1ff -ffffff8040004888: 8b030263 add x3, x19, x3 -ffffff804000488c: 8b170281 add x1, x20, x23 -ffffff8040004890: b9021a60 str w0, [x19, #536] -ffffff8040004894: 91013fe2 add x2, sp, #0x4f -ffffff8040004898: 91000694 add x20, x20, #0x1 -ffffff804000489c: 39406060 ldrb w0, [x3, #24] -ffffff80400048a0: d2800023 mov x3, #0x1 // #1 -ffffff80400048a4: 39013fe0 strb w0, [sp, #79] -ffffff80400048a8: f9402aa0 ldr x0, [x21, #80] -ffffff80400048ac: 97fff3c1 bl ffffff80400017b0 <copyout> -ffffff80400048b0: 3100041f cmn w0, #0x1 -ffffff80400048b4: 54000100 b.eq ffffff80400048d4 <piperead+0xe4> // b.none -ffffff80400048b8: 6b1402df cmp w22, w20 -ffffff80400048bc: 2a1403f8 mov w24, w20 -ffffff80400048c0: 540000ad b.le ffffff80400048d4 <piperead+0xe4> -ffffff80400048c4: b9421a63 ldr w3, [x19, #536] -ffffff80400048c8: b9421e60 ldr w0, [x19, #540] -ffffff80400048cc: 6b00007f cmp w3, w0 -ffffff80400048d0: 54fffd81 b.ne ffffff8040004880 <piperead+0x90> // b.any -ffffff80400048d4: 91087260 add x0, x19, #0x21c -ffffff80400048d8: 97fff645 bl ffffff80400021ec <wakeup> -ffffff80400048dc: aa1303e0 mov x0, x19 -ffffff80400048e0: 97fff0f3 bl ffffff8040000cac <release> -ffffff80400048e4: 17ffffdd b ffffff8040004858 <piperead+0x68> - -ffffff80400048e8 <exec>: -ffffff80400048e8: a9a17bfd stp x29, x30, [sp, #-496]! -ffffff80400048ec: 910003fd mov x29, sp -ffffff80400048f0: a90153f3 stp x19, x20, [sp, #16] -ffffff80400048f4: aa0003f4 mov x20, x0 -ffffff80400048f8: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400048fc: aa0103f5 mov x21, x1 -ffffff8040004900: a90363f7 stp x23, x24, [sp, #48] -ffffff8040004904: a9046bf9 stp x25, x26, [sp, #64] -ffffff8040004908: a90573fb stp x27, x28, [sp, #80] -ffffff804000490c: 97fff498 bl ffffff8040001b6c <myproc> -ffffff8040004910: 97fffd39 bl ffffff8040003df4 <begin_op> -ffffff8040004914: aa1403e0 mov x0, x20 -ffffff8040004918: 97fffcc4 bl ffffff8040003c28 <namei> -ffffff804000491c: b5000080 cbnz x0, ffffff804000492c <exec+0x44> -ffffff8040004920: 97fffd4f bl ffffff8040003e5c <end_op> -ffffff8040004924: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040004928: 1400004f b ffffff8040004a64 <exec+0x17c> -ffffff804000492c: aa0003fb mov x27, x0 -ffffff8040004930: 97fffad1 bl ffffff8040003474 <ilock> -ffffff8040004934: 52800804 mov w4, #0x40 // #64 -ffffff8040004938: 52800003 mov w3, #0x0 // #0 -ffffff804000493c: 9102c3e2 add x2, sp, #0xb0 -ffffff8040004940: 52800001 mov w1, #0x0 // #0 -ffffff8040004944: aa1b03e0 mov x0, x27 -ffffff8040004948: 97fffb76 bl ffffff8040003720 <readi> -ffffff804000494c: 7101001f cmp w0, #0x40 -ffffff8040004950: 54001481 b.ne ffffff8040004be0 <exec+0x2f8> // b.any -ffffff8040004954: b940b3e1 ldr w1, [sp, #176] -ffffff8040004958: 5288afe0 mov w0, #0x457f // #17791 -ffffff804000495c: 72a8c980 movk w0, #0x464c, lsl #16 -ffffff8040004960: 6b00003f cmp w1, w0 -ffffff8040004964: 540013e1 b.ne ffffff8040004be0 <exec+0x2f8> // b.any -ffffff8040004968: 97fff29b bl ffffff80400013d4 <uvmcreate> -ffffff804000496c: aa0003f3 mov x19, x0 -ffffff8040004970: b4001380 cbz x0, ffffff8040004be0 <exec+0x2f8> -ffffff8040004974: f9406be0 ldr x0, [sp, #208] -ffffff8040004978: d2800017 mov x23, #0x0 // #0 -ffffff804000497c: 52800016 mov w22, #0x0 // #0 -ffffff8040004980: f90033e0 str x0, [sp, #96] -ffffff8040004984: 7941d3e0 ldrh w0, [sp, #232] -ffffff8040004988: 6b16001f cmp w0, w22 -ffffff804000498c: 540007ac b.gt ffffff8040004a80 <exec+0x198> -ffffff8040004990: aa1b03e0 mov x0, x27 -ffffff8040004994: 913ffef6 add x22, x23, #0xfff -ffffff8040004998: 97fffb4e bl ffffff80400036d0 <iunlockput> -ffffff804000499c: 97fffd30 bl ffffff8040003e5c <end_op> -ffffff80400049a0: 97fff473 bl ffffff8040001b6c <myproc> -ffffff80400049a4: 9274ced6 and x22, x22, #0xfffffffffffff000 -ffffff80400049a8: aa0003f8 mov x24, x0 -ffffff80400049ac: 91400ac2 add x2, x22, #0x2, lsl #12 -ffffff80400049b0: aa1603e1 mov x1, x22 -ffffff80400049b4: f940271a ldr x26, [x24, #72] -ffffff80400049b8: aa1303e0 mov x0, x19 -ffffff80400049bc: 97fff2dc bl ffffff804000152c <uvmalloc> -ffffff80400049c0: aa0003f7 mov x23, x0 -ffffff80400049c4: b4001140 cbz x0, ffffff8040004bec <exec+0x304> -ffffff80400049c8: d1400801 sub x1, x0, #0x2, lsl #12 -ffffff80400049cc: d14006f9 sub x25, x23, #0x1, lsl #12 -ffffff80400049d0: aa1303e0 mov x0, x19 -ffffff80400049d4: aa1703fc mov x28, x23 -ffffff80400049d8: d2800016 mov x22, #0x0 // #0 -ffffff80400049dc: 97fff368 bl ffffff804000177c <uvmclear> -ffffff80400049e0: f8767abb ldr x27, [x21, x22, lsl #3] -ffffff80400049e4: b5000bfb cbnz x27, ffffff8040004b60 <exec+0x278> -ffffff80400049e8: 910006d5 add x21, x22, #0x1 -ffffff80400049ec: 9103c3e2 add x2, sp, #0xf0 -ffffff80400049f0: d37df2a3 lsl x3, x21, #3 -ffffff80400049f4: cb150f95 sub x21, x28, x21, lsl #3 -ffffff80400049f8: f836785f str xzr, [x2, x22, lsl #3] -ffffff80400049fc: 927ceeb5 and x21, x21, #0xfffffffffffffff0 -ffffff8040004a00: eb15033f cmp x25, x21 -ffffff8040004a04: 54000e68 b.hi ffffff8040004bd0 <exec+0x2e8> // b.pmore -ffffff8040004a08: aa1503e1 mov x1, x21 -ffffff8040004a0c: aa1303e0 mov x0, x19 -ffffff8040004a10: 97fff368 bl ffffff80400017b0 <copyout> -ffffff8040004a14: 37f80de0 tbnz w0, #31, ffffff8040004bd0 <exec+0x2e8> -ffffff8040004a18: f9402f00 ldr x0, [x24, #88] -ffffff8040004a1c: aa1403e1 mov x1, x20 -ffffff8040004a20: f9000415 str x21, [x0, #8] -ffffff8040004a24: 39400280 ldrb w0, [x20] -ffffff8040004a28: 35000ca0 cbnz w0, ffffff8040004bbc <exec+0x2d4> -ffffff8040004a2c: 52800202 mov w2, #0x10 // #16 -ffffff8040004a30: 91056300 add x0, x24, #0x158 -ffffff8040004a34: 97fff0f8 bl ffffff8040000e14 <safestrcpy> -ffffff8040004a38: a9450314 ldp x20, x0, [x24, #80] -ffffff8040004a3c: a904cf17 stp x23, x19, [x24, #72] -ffffff8040004a40: f94067e1 ldr x1, [sp, #200] -ffffff8040004a44: f9008415 str x21, [x0, #264] -ffffff8040004a48: a90ffc01 stp x1, xzr, [x0, #248] -ffffff8040004a4c: aa1803e0 mov x0, x24 -ffffff8040004a50: 97fff28d bl ffffff8040001484 <switchuvm> -ffffff8040004a54: aa1403e0 mov x0, x20 -ffffff8040004a58: aa1a03e1 mov x1, x26 -ffffff8040004a5c: 97fff2fa bl ffffff8040001644 <uvmfree> -ffffff8040004a60: 2a1603e0 mov w0, w22 -ffffff8040004a64: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004a68: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040004a6c: a94363f7 ldp x23, x24, [sp, #48] -ffffff8040004a70: a9446bf9 ldp x25, x26, [sp, #64] -ffffff8040004a74: a94573fb ldp x27, x28, [sp, #80] -ffffff8040004a78: a8df7bfd ldp x29, x30, [sp], #496 -ffffff8040004a7c: d65f03c0 ret -ffffff8040004a80: b94063e1 ldr w1, [sp, #96] -ffffff8040004a84: 52800704 mov w4, #0x38 // #56 -ffffff8040004a88: 9101e3e2 add x2, sp, #0x78 -ffffff8040004a8c: aa1b03e0 mov x0, x27 -ffffff8040004a90: 1b0406c3 madd w3, w22, w4, w1 -ffffff8040004a94: 52800001 mov w1, #0x0 // #0 -ffffff8040004a98: 97fffb22 bl ffffff8040003720 <readi> -ffffff8040004a9c: 7100e01f cmp w0, #0x38 -ffffff8040004aa0: 54000981 b.ne ffffff8040004bd0 <exec+0x2e8> // b.any -ffffff8040004aa4: b9407be0 ldr w0, [sp, #120] -ffffff8040004aa8: 7100041f cmp w0, #0x1 -ffffff8040004aac: 540002a1 b.ne ffffff8040004b00 <exec+0x218> // b.any -ffffff8040004ab0: a9498be0 ldp x0, x2, [sp, #152] -ffffff8040004ab4: eb00005f cmp x2, x0 -ffffff8040004ab8: 540008c3 b.cc ffffff8040004bd0 <exec+0x2e8> // b.lo, b.ul, b.last -ffffff8040004abc: f94047e0 ldr x0, [sp, #136] -ffffff8040004ac0: ab000042 adds x2, x2, x0 -ffffff8040004ac4: 54000862 b.cs ffffff8040004bd0 <exec+0x2e8> // b.hs, b.nlast -ffffff8040004ac8: aa1703e1 mov x1, x23 -ffffff8040004acc: aa1303e0 mov x0, x19 -ffffff8040004ad0: 97fff297 bl ffffff804000152c <uvmalloc> -ffffff8040004ad4: aa0003f9 mov x25, x0 -ffffff8040004ad8: b40007c0 cbz x0, ffffff8040004bd0 <exec+0x2e8> -ffffff8040004adc: f94047f8 ldr x24, [sp, #136] -ffffff8040004ae0: f2402f1f tst x24, #0xfff -ffffff8040004ae4: 54000741 b.ne ffffff8040004bcc <exec+0x2e4> // b.any -ffffff8040004ae8: b94083fc ldr w28, [sp, #128] -ffffff8040004aec: 5280001a mov w26, #0x0 // #0 -ffffff8040004af0: b9409bf7 ldr w23, [sp, #152] -ffffff8040004af4: 6b1a02ff cmp w23, w26 -ffffff8040004af8: 54000088 b.hi ffffff8040004b08 <exec+0x220> // b.pmore -ffffff8040004afc: aa1903f7 mov x23, x25 -ffffff8040004b00: 110006d6 add w22, w22, #0x1 -ffffff8040004b04: 17ffffa0 b ffffff8040004984 <exec+0x9c> -ffffff8040004b08: aa1303e0 mov x0, x19 -ffffff8040004b0c: 8b3a4301 add x1, x24, w26, uxtw -ffffff8040004b10: 97fff18c bl ffffff8040001140 <uva2ka> -ffffff8040004b14: aa0003e2 mov x2, x0 -ffffff8040004b18: b5000080 cbnz x0, ffffff8040004b28 <exec+0x240> -ffffff8040004b1c: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040004b20: 91159c00 add x0, x0, #0x567 -ffffff8040004b24: 97ffee77 bl ffffff8040000500 <panic> -ffffff8040004b28: 4b1a02e4 sub w4, w23, w26 -ffffff8040004b2c: 52820000 mov w0, #0x1000 // #4096 -ffffff8040004b30: 7140049f cmp w4, #0x1, lsl #12 -ffffff8040004b34: 0b1a0383 add w3, w28, w26 -ffffff8040004b38: 1a803084 csel w4, w4, w0, cc // cc = lo, ul, last -ffffff8040004b3c: 52800001 mov w1, #0x0 // #0 -ffffff8040004b40: aa1b03e0 mov x0, x27 -ffffff8040004b44: b9006fe4 str w4, [sp, #108] -ffffff8040004b48: 97fffaf6 bl ffffff8040003720 <readi> -ffffff8040004b4c: b9406fe4 ldr w4, [sp, #108] -ffffff8040004b50: 6b00009f cmp w4, w0 -ffffff8040004b54: 540003c1 b.ne ffffff8040004bcc <exec+0x2e4> // b.any -ffffff8040004b58: 1140075a add w26, w26, #0x1, lsl #12 -ffffff8040004b5c: 17ffffe6 b ffffff8040004af4 <exec+0x20c> -ffffff8040004b60: f10082df cmp x22, #0x20 -ffffff8040004b64: 54000460 b.eq ffffff8040004bf0 <exec+0x308> // b.none -ffffff8040004b68: aa1b03e0 mov x0, x27 -ffffff8040004b6c: 97fff0b4 bl ffffff8040000e3c <strlen> -ffffff8040004b70: 11000400 add w0, w0, #0x1 -ffffff8040004b74: cb20c39c sub x28, x28, w0, sxtw -ffffff8040004b78: 927cef9c and x28, x28, #0xfffffffffffffff0 -ffffff8040004b7c: eb1c033f cmp x25, x28 -ffffff8040004b80: 54000388 b.hi ffffff8040004bf0 <exec+0x308> // b.pmore -ffffff8040004b84: f8767abb ldr x27, [x21, x22, lsl #3] -ffffff8040004b88: aa1b03e0 mov x0, x27 -ffffff8040004b8c: 97fff0ac bl ffffff8040000e3c <strlen> -ffffff8040004b90: 11000403 add w3, w0, #0x1 -ffffff8040004b94: aa1b03e2 mov x2, x27 -ffffff8040004b98: 93407c63 sxtw x3, w3 -ffffff8040004b9c: aa1c03e1 mov x1, x28 -ffffff8040004ba0: aa1303e0 mov x0, x19 -ffffff8040004ba4: 97fff303 bl ffffff80400017b0 <copyout> -ffffff8040004ba8: 37f80240 tbnz w0, #31, ffffff8040004bf0 <exec+0x308> -ffffff8040004bac: 9103c3e0 add x0, sp, #0xf0 -ffffff8040004bb0: f836781c str x28, [x0, x22, lsl #3] -ffffff8040004bb4: 910006d6 add x22, x22, #0x1 -ffffff8040004bb8: 17ffff8a b ffffff80400049e0 <exec+0xf8> -ffffff8040004bbc: 91000694 add x20, x20, #0x1 -ffffff8040004bc0: 7100bc1f cmp w0, #0x2f -ffffff8040004bc4: 9a941021 csel x1, x1, x20, ne // ne = any -ffffff8040004bc8: 17ffff97 b ffffff8040004a24 <exec+0x13c> -ffffff8040004bcc: aa1903f7 mov x23, x25 -ffffff8040004bd0: aa1703e1 mov x1, x23 -ffffff8040004bd4: aa1303e0 mov x0, x19 -ffffff8040004bd8: 97fff29b bl ffffff8040001644 <uvmfree> -ffffff8040004bdc: b4ffea5b cbz x27, ffffff8040004924 <exec+0x3c> -ffffff8040004be0: aa1b03e0 mov x0, x27 -ffffff8040004be4: 97fffabb bl ffffff80400036d0 <iunlockput> -ffffff8040004be8: 17ffff4e b ffffff8040004920 <exec+0x38> -ffffff8040004bec: aa1603f7 mov x23, x22 -ffffff8040004bf0: d280001b mov x27, #0x0 // #0 -ffffff8040004bf4: 17fffff7 b ffffff8040004bd0 <exec+0x2e8> - -ffffff8040004bf8 <fdalloc>: -ffffff8040004bf8: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040004bfc: 910003fd mov x29, sp -ffffff8040004c00: f9000bf3 str x19, [sp, #16] -ffffff8040004c04: aa0003f3 mov x19, x0 -ffffff8040004c08: 97fff3d9 bl ffffff8040001b6c <myproc> -ffffff8040004c0c: aa0003e1 mov x1, x0 -ffffff8040004c10: d2800002 mov x2, #0x0 // #0 -ffffff8040004c14: 91034003 add x3, x0, #0xd0 -ffffff8040004c18: f8627864 ldr x4, [x3, x2, lsl #3] -ffffff8040004c1c: 2a0203e0 mov w0, w2 -ffffff8040004c20: b50000c4 cbnz x4, ffffff8040004c38 <fdalloc+0x40> -ffffff8040004c24: 8b22cc21 add x1, x1, w2, sxtw #3 -ffffff8040004c28: f9006833 str x19, [x1, #208] -ffffff8040004c2c: f9400bf3 ldr x19, [sp, #16] -ffffff8040004c30: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004c34: d65f03c0 ret -ffffff8040004c38: 91000442 add x2, x2, #0x1 -ffffff8040004c3c: f100405f cmp x2, #0x10 -ffffff8040004c40: 54fffec1 b.ne ffffff8040004c18 <fdalloc+0x20> // b.any -ffffff8040004c44: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040004c48: 17fffff9 b ffffff8040004c2c <fdalloc+0x34> - -ffffff8040004c4c <create>: -ffffff8040004c4c: a9bb7bfd stp x29, x30, [sp, #-80]! -ffffff8040004c50: 910003fd mov x29, sp -ffffff8040004c54: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040004c58: 13003c35 sxth w21, w1 -ffffff8040004c5c: 910103e1 add x1, sp, #0x40 -ffffff8040004c60: 13003c76 sxth w22, w3 -ffffff8040004c64: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004c68: f9001bf7 str x23, [sp, #48] -ffffff8040004c6c: 13003c57 sxth w23, w2 -ffffff8040004c70: 97fffbf5 bl ffffff8040003c44 <nameiparent> -ffffff8040004c74: b40002c0 cbz x0, ffffff8040004ccc <create+0x80> -ffffff8040004c78: aa0003f4 mov x20, x0 -ffffff8040004c7c: 97fff9fe bl ffffff8040003474 <ilock> -ffffff8040004c80: d2800002 mov x2, #0x0 // #0 -ffffff8040004c84: 910103e1 add x1, sp, #0x40 -ffffff8040004c88: aa1403e0 mov x0, x20 -ffffff8040004c8c: 97fffb32 bl ffffff8040003954 <dirlookup> -ffffff8040004c90: aa0003f3 mov x19, x0 -ffffff8040004c94: b4000200 cbz x0, ffffff8040004cd4 <create+0x88> -ffffff8040004c98: aa1403e0 mov x0, x20 -ffffff8040004c9c: 97fffa8d bl ffffff80400036d0 <iunlockput> -ffffff8040004ca0: aa1303e0 mov x0, x19 -ffffff8040004ca4: 97fff9f4 bl ffffff8040003474 <ilock> -ffffff8040004ca8: 71000abf cmp w21, #0x2 -ffffff8040004cac: 540000c1 b.ne ffffff8040004cc4 <create+0x78> // b.any -ffffff8040004cb0: 79408a60 ldrh w0, [x19, #68] -ffffff8040004cb4: 51000800 sub w0, w0, #0x2 -ffffff8040004cb8: 12003c00 and w0, w0, #0xffff -ffffff8040004cbc: 7100041f cmp w0, #0x1 -ffffff8040004cc0: 54000689 b.ls ffffff8040004d90 <create+0x144> // b.plast -ffffff8040004cc4: aa1303e0 mov x0, x19 -ffffff8040004cc8: 97fffa82 bl ffffff80400036d0 <iunlockput> -ffffff8040004ccc: d2800013 mov x19, #0x0 // #0 -ffffff8040004cd0: 14000030 b ffffff8040004d90 <create+0x144> -ffffff8040004cd4: b9400280 ldr w0, [x20] -ffffff8040004cd8: 2a1503e1 mov w1, w21 -ffffff8040004cdc: 97fff982 bl ffffff80400032e4 <ialloc> -ffffff8040004ce0: aa0003f3 mov x19, x0 -ffffff8040004ce4: b5000080 cbnz x0, ffffff8040004cf4 <create+0xa8> -ffffff8040004ce8: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040004cec: 91161400 add x0, x0, #0x585 -ffffff8040004cf0: 97ffee04 bl ffffff8040000500 <panic> -ffffff8040004cf4: 97fff9e0 bl ffffff8040003474 <ilock> -ffffff8040004cf8: 52800020 mov w0, #0x1 // #1 -ffffff8040004cfc: 79008e77 strh w23, [x19, #70] -ffffff8040004d00: 79009276 strh w22, [x19, #72] -ffffff8040004d04: 79009660 strh w0, [x19, #74] -ffffff8040004d08: aa1303e0 mov x0, x19 -ffffff8040004d0c: 97fff9a6 bl ffffff80400033a4 <iupdate> -ffffff8040004d10: 710006bf cmp w21, #0x1 -ffffff8040004d14: 540002a1 b.ne ffffff8040004d68 <create+0x11c> // b.any -ffffff8040004d18: 79409680 ldrh w0, [x20, #74] -ffffff8040004d1c: 11000400 add w0, w0, #0x1 -ffffff8040004d20: 79009680 strh w0, [x20, #74] -ffffff8040004d24: aa1403e0 mov x0, x20 -ffffff8040004d28: 97fff99f bl ffffff80400033a4 <iupdate> -ffffff8040004d2c: f0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040004d30: 91168421 add x1, x1, #0x5a1 -ffffff8040004d34: b9400662 ldr w2, [x19, #4] -ffffff8040004d38: aa1303e0 mov x0, x19 -ffffff8040004d3c: 97fffb86 bl ffffff8040003b54 <dirlink> -ffffff8040004d40: 36f80080 tbz w0, #31, ffffff8040004d50 <create+0x104> -ffffff8040004d44: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040004d48: 91165000 add x0, x0, #0x594 -ffffff8040004d4c: 17ffffe9 b ffffff8040004cf0 <create+0xa4> -ffffff8040004d50: f0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040004d54: 91168021 add x1, x1, #0x5a0 -ffffff8040004d58: b9400682 ldr w2, [x20, #4] -ffffff8040004d5c: aa1303e0 mov x0, x19 -ffffff8040004d60: 97fffb7d bl ffffff8040003b54 <dirlink> -ffffff8040004d64: 37ffff00 tbnz w0, #31, ffffff8040004d44 <create+0xf8> -ffffff8040004d68: b9400662 ldr w2, [x19, #4] -ffffff8040004d6c: 910103e1 add x1, sp, #0x40 -ffffff8040004d70: aa1403e0 mov x0, x20 -ffffff8040004d74: 97fffb78 bl ffffff8040003b54 <dirlink> -ffffff8040004d78: 36f80080 tbz w0, #31, ffffff8040004d88 <create+0x13c> -ffffff8040004d7c: f0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040004d80: 91168c00 add x0, x0, #0x5a3 -ffffff8040004d84: 17ffffdb b ffffff8040004cf0 <create+0xa4> -ffffff8040004d88: aa1403e0 mov x0, x20 -ffffff8040004d8c: 97fffa51 bl ffffff80400036d0 <iunlockput> -ffffff8040004d90: aa1303e0 mov x0, x19 -ffffff8040004d94: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004d98: a9425bf5 ldp x21, x22, [sp, #32] -ffffff8040004d9c: f9401bf7 ldr x23, [sp, #48] -ffffff8040004da0: a8c57bfd ldp x29, x30, [sp], #80 -ffffff8040004da4: d65f03c0 ret - -ffffff8040004da8 <argfd.constprop.0>: -ffffff8040004da8: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040004dac: 910003fd mov x29, sp -ffffff8040004db0: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004db4: aa0003f3 mov x19, x0 -ffffff8040004db8: aa0103f4 mov x20, x1 -ffffff8040004dbc: 52800000 mov w0, #0x0 // #0 -ffffff8040004dc0: 9100b3e1 add x1, sp, #0x2c -ffffff8040004dc4: 97fff6ee bl ffffff804000297c <argint> -ffffff8040004dc8: 37f801c0 tbnz w0, #31, ffffff8040004e00 <argfd.constprop.0+0x58> -ffffff8040004dcc: b9402fe0 ldr w0, [sp, #44] -ffffff8040004dd0: 71003c1f cmp w0, #0xf -ffffff8040004dd4: 54000168 b.hi ffffff8040004e00 <argfd.constprop.0+0x58> // b.pmore -ffffff8040004dd8: 97fff365 bl ffffff8040001b6c <myproc> -ffffff8040004ddc: b9402fe1 ldr w1, [sp, #44] -ffffff8040004de0: 8b21cc00 add x0, x0, w1, sxtw #3 -ffffff8040004de4: f9406800 ldr x0, [x0, #208] -ffffff8040004de8: b40000c0 cbz x0, ffffff8040004e00 <argfd.constprop.0+0x58> -ffffff8040004dec: b4000053 cbz x19, ffffff8040004df4 <argfd.constprop.0+0x4c> -ffffff8040004df0: b9000261 str w1, [x19] -ffffff8040004df4: f9000280 str x0, [x20] -ffffff8040004df8: 52800000 mov w0, #0x0 // #0 -ffffff8040004dfc: 14000002 b ffffff8040004e04 <argfd.constprop.0+0x5c> -ffffff8040004e00: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040004e04: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004e08: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040004e0c: d65f03c0 ret - -ffffff8040004e10 <sys_dup>: -ffffff8040004e10: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040004e14: d2800000 mov x0, #0x0 // #0 -ffffff8040004e18: 910003fd mov x29, sp -ffffff8040004e1c: 9100a3e1 add x1, sp, #0x28 -ffffff8040004e20: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004e24: 97ffffe1 bl ffffff8040004da8 <argfd.constprop.0> -ffffff8040004e28: 36f800a0 tbz w0, #31, ffffff8040004e3c <sys_dup+0x2c> -ffffff8040004e2c: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040004e30: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040004e34: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040004e38: d65f03c0 ret -ffffff8040004e3c: f94017f4 ldr x20, [sp, #40] -ffffff8040004e40: aa1403e0 mov x0, x20 -ffffff8040004e44: 97ffff6d bl ffffff8040004bf8 <fdalloc> -ffffff8040004e48: 2a0003f3 mov w19, w0 -ffffff8040004e4c: 37ffff00 tbnz w0, #31, ffffff8040004e2c <sys_dup+0x1c> -ffffff8040004e50: aa1403e0 mov x0, x20 -ffffff8040004e54: 97fffce2 bl ffffff80400041dc <filedup> -ffffff8040004e58: 93407e60 sxtw x0, w19 -ffffff8040004e5c: 17fffff5 b ffffff8040004e30 <sys_dup+0x20> - -ffffff8040004e60 <sys_read>: -ffffff8040004e60: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040004e64: d2800000 mov x0, #0x0 // #0 -ffffff8040004e68: 910003fd mov x29, sp -ffffff8040004e6c: 910083e1 add x1, sp, #0x20 -ffffff8040004e70: 97ffffce bl ffffff8040004da8 <argfd.constprop.0> -ffffff8040004e74: 36f80080 tbz w0, #31, ffffff8040004e84 <sys_read+0x24> -ffffff8040004e78: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040004e7c: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040004e80: d65f03c0 ret -ffffff8040004e84: 910073e1 add x1, sp, #0x1c -ffffff8040004e88: 52800040 mov w0, #0x2 // #2 -ffffff8040004e8c: 97fff6bc bl ffffff804000297c <argint> -ffffff8040004e90: 37ffff40 tbnz w0, #31, ffffff8040004e78 <sys_read+0x18> -ffffff8040004e94: 9100a3e1 add x1, sp, #0x28 -ffffff8040004e98: 52800020 mov w0, #0x1 // #1 -ffffff8040004e9c: 97fff6c2 bl ffffff80400029a4 <argaddr> -ffffff8040004ea0: 37fffec0 tbnz w0, #31, ffffff8040004e78 <sys_read+0x18> -ffffff8040004ea4: b9401fe2 ldr w2, [sp, #28] -ffffff8040004ea8: a94207e0 ldp x0, x1, [sp, #32] -ffffff8040004eac: 97fffd39 bl ffffff8040004390 <fileread> -ffffff8040004eb0: 93407c00 sxtw x0, w0 -ffffff8040004eb4: 17fffff2 b ffffff8040004e7c <sys_read+0x1c> - -ffffff8040004eb8 <sys_write>: -ffffff8040004eb8: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff8040004ebc: d2800000 mov x0, #0x0 // #0 -ffffff8040004ec0: 910003fd mov x29, sp -ffffff8040004ec4: 910083e1 add x1, sp, #0x20 -ffffff8040004ec8: 97ffffb8 bl ffffff8040004da8 <argfd.constprop.0> -ffffff8040004ecc: 36f80080 tbz w0, #31, ffffff8040004edc <sys_write+0x24> -ffffff8040004ed0: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040004ed4: a8c37bfd ldp x29, x30, [sp], #48 -ffffff8040004ed8: d65f03c0 ret -ffffff8040004edc: 910073e1 add x1, sp, #0x1c -ffffff8040004ee0: 52800040 mov w0, #0x2 // #2 -ffffff8040004ee4: 97fff6a6 bl ffffff804000297c <argint> -ffffff8040004ee8: 37ffff40 tbnz w0, #31, ffffff8040004ed0 <sys_write+0x18> -ffffff8040004eec: 9100a3e1 add x1, sp, #0x28 -ffffff8040004ef0: 52800020 mov w0, #0x1 // #1 -ffffff8040004ef4: 97fff6ac bl ffffff80400029a4 <argaddr> -ffffff8040004ef8: 37fffec0 tbnz w0, #31, ffffff8040004ed0 <sys_write+0x18> -ffffff8040004efc: b9401fe2 ldr w2, [sp, #28] -ffffff8040004f00: a94207e0 ldp x0, x1, [sp, #32] -ffffff8040004f04: 97fffd61 bl ffffff8040004488 <filewrite> -ffffff8040004f08: 93407c00 sxtw x0, w0 -ffffff8040004f0c: 17fffff2 b ffffff8040004ed4 <sys_write+0x1c> - -ffffff8040004f10 <sys_close>: -ffffff8040004f10: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040004f14: 910003fd mov x29, sp -ffffff8040004f18: 910063e1 add x1, sp, #0x18 -ffffff8040004f1c: 910053e0 add x0, sp, #0x14 -ffffff8040004f20: 97ffffa2 bl ffffff8040004da8 <argfd.constprop.0> -ffffff8040004f24: 37f80140 tbnz w0, #31, ffffff8040004f4c <sys_close+0x3c> -ffffff8040004f28: 97fff311 bl ffffff8040001b6c <myproc> -ffffff8040004f2c: b98017e1 ldrsw x1, [sp, #20] -ffffff8040004f30: 91006821 add x1, x1, #0x1a -ffffff8040004f34: f821781f str xzr, [x0, x1, lsl #3] -ffffff8040004f38: f9400fe0 ldr x0, [sp, #24] -ffffff8040004f3c: 97fffcbe bl ffffff8040004234 <fileclose> -ffffff8040004f40: d2800000 mov x0, #0x0 // #0 -ffffff8040004f44: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004f48: d65f03c0 ret -ffffff8040004f4c: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040004f50: 17fffffd b ffffff8040004f44 <sys_close+0x34> - -ffffff8040004f54 <sys_fstat>: -ffffff8040004f54: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040004f58: d2800000 mov x0, #0x0 // #0 -ffffff8040004f5c: 910003fd mov x29, sp -ffffff8040004f60: 910043e1 add x1, sp, #0x10 -ffffff8040004f64: 97ffff91 bl ffffff8040004da8 <argfd.constprop.0> -ffffff8040004f68: 36f80080 tbz w0, #31, ffffff8040004f78 <sys_fstat+0x24> -ffffff8040004f6c: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040004f70: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040004f74: d65f03c0 ret -ffffff8040004f78: 910063e1 add x1, sp, #0x18 -ffffff8040004f7c: 52800020 mov w0, #0x1 // #1 -ffffff8040004f80: 97fff689 bl ffffff80400029a4 <argaddr> -ffffff8040004f84: 37ffff40 tbnz w0, #31, ffffff8040004f6c <sys_fstat+0x18> -ffffff8040004f88: a94107e0 ldp x0, x1, [sp, #16] -ffffff8040004f8c: 97fffce2 bl ffffff8040004314 <filestat> -ffffff8040004f90: 93407c00 sxtw x0, w0 -ffffff8040004f94: 17fffff7 b ffffff8040004f70 <sys_fstat+0x1c> - -ffffff8040004f98 <sys_link>: -ffffff8040004f98: a9ad7bfd stp x29, x30, [sp, #-304]! -ffffff8040004f9c: 52801002 mov w2, #0x80 // #128 -ffffff8040004fa0: 910003fd mov x29, sp -ffffff8040004fa4: 9102c3e1 add x1, sp, #0xb0 -ffffff8040004fa8: 52800000 mov w0, #0x0 // #0 -ffffff8040004fac: a90153f3 stp x19, x20, [sp, #16] -ffffff8040004fb0: 97fff687 bl ffffff80400029cc <argstr> -ffffff8040004fb4: 36f80060 tbz w0, #31, ffffff8040004fc0 <sys_link+0x28> -ffffff8040004fb8: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040004fbc: 1400003a b ffffff80400050a4 <sys_link+0x10c> -ffffff8040004fc0: 52801002 mov w2, #0x80 // #128 -ffffff8040004fc4: 9100c3e1 add x1, sp, #0x30 -ffffff8040004fc8: 52800020 mov w0, #0x1 // #1 -ffffff8040004fcc: 97fff680 bl ffffff80400029cc <argstr> -ffffff8040004fd0: 37ffff40 tbnz w0, #31, ffffff8040004fb8 <sys_link+0x20> -ffffff8040004fd4: 97fffb88 bl ffffff8040003df4 <begin_op> -ffffff8040004fd8: 9102c3e0 add x0, sp, #0xb0 -ffffff8040004fdc: 97fffb13 bl ffffff8040003c28 <namei> -ffffff8040004fe0: aa0003f3 mov x19, x0 -ffffff8040004fe4: b5000060 cbnz x0, ffffff8040004ff0 <sys_link+0x58> -ffffff8040004fe8: 97fffb9d bl ffffff8040003e5c <end_op> -ffffff8040004fec: 17fffff3 b ffffff8040004fb8 <sys_link+0x20> -ffffff8040004ff0: 97fff921 bl ffffff8040003474 <ilock> -ffffff8040004ff4: 79c08a60 ldrsh w0, [x19, #68] -ffffff8040004ff8: 7100041f cmp w0, #0x1 -ffffff8040004ffc: 54000081 b.ne ffffff804000500c <sys_link+0x74> // b.any -ffffff8040005000: aa1303e0 mov x0, x19 -ffffff8040005004: 97fff9b3 bl ffffff80400036d0 <iunlockput> -ffffff8040005008: 17fffff8 b ffffff8040004fe8 <sys_link+0x50> -ffffff804000500c: 79409660 ldrh w0, [x19, #74] -ffffff8040005010: 11000400 add w0, w0, #0x1 -ffffff8040005014: 79009660 strh w0, [x19, #74] -ffffff8040005018: aa1303e0 mov x0, x19 -ffffff804000501c: 97fff8e2 bl ffffff80400033a4 <iupdate> -ffffff8040005020: aa1303e0 mov x0, x19 -ffffff8040005024: 97fff948 bl ffffff8040003544 <iunlock> -ffffff8040005028: 910083e1 add x1, sp, #0x20 -ffffff804000502c: 9100c3e0 add x0, sp, #0x30 -ffffff8040005030: 97fffb05 bl ffffff8040003c44 <nameiparent> -ffffff8040005034: aa0003f4 mov x20, x0 -ffffff8040005038: b4000100 cbz x0, ffffff8040005058 <sys_link+0xc0> -ffffff804000503c: 97fff90e bl ffffff8040003474 <ilock> -ffffff8040005040: b9400260 ldr w0, [x19] -ffffff8040005044: b9400281 ldr w1, [x20] -ffffff8040005048: 6b00003f cmp w1, w0 -ffffff804000504c: 54000160 b.eq ffffff8040005078 <sys_link+0xe0> // b.none -ffffff8040005050: aa1403e0 mov x0, x20 -ffffff8040005054: 97fff99f bl ffffff80400036d0 <iunlockput> -ffffff8040005058: aa1303e0 mov x0, x19 -ffffff804000505c: 97fff906 bl ffffff8040003474 <ilock> -ffffff8040005060: 79409660 ldrh w0, [x19, #74] -ffffff8040005064: 51000400 sub w0, w0, #0x1 -ffffff8040005068: 79009660 strh w0, [x19, #74] -ffffff804000506c: aa1303e0 mov x0, x19 -ffffff8040005070: 97fff8cd bl ffffff80400033a4 <iupdate> -ffffff8040005074: 17ffffe3 b ffffff8040005000 <sys_link+0x68> -ffffff8040005078: b9400662 ldr w2, [x19, #4] -ffffff804000507c: 910083e1 add x1, sp, #0x20 -ffffff8040005080: aa1403e0 mov x0, x20 -ffffff8040005084: 97fffab4 bl ffffff8040003b54 <dirlink> -ffffff8040005088: 37fffe40 tbnz w0, #31, ffffff8040005050 <sys_link+0xb8> -ffffff804000508c: aa1403e0 mov x0, x20 -ffffff8040005090: 97fff990 bl ffffff80400036d0 <iunlockput> -ffffff8040005094: aa1303e0 mov x0, x19 -ffffff8040005098: 97fff967 bl ffffff8040003634 <iput> -ffffff804000509c: 97fffb70 bl ffffff8040003e5c <end_op> -ffffff80400050a0: d2800000 mov x0, #0x0 // #0 -ffffff80400050a4: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400050a8: a8d37bfd ldp x29, x30, [sp], #304 -ffffff80400050ac: d65f03c0 ret - -ffffff80400050b0 <sys_unlink>: -ffffff80400050b0: a9b27bfd stp x29, x30, [sp, #-224]! -ffffff80400050b4: 52801002 mov w2, #0x80 // #128 -ffffff80400050b8: 910003fd mov x29, sp -ffffff80400050bc: 910183e1 add x1, sp, #0x60 -ffffff80400050c0: 52800000 mov w0, #0x0 // #0 -ffffff80400050c4: a90153f3 stp x19, x20, [sp, #16] -ffffff80400050c8: f90013f5 str x21, [sp, #32] -ffffff80400050cc: 97fff640 bl ffffff80400029cc <argstr> -ffffff80400050d0: 37f80100 tbnz w0, #31, ffffff80400050f0 <sys_unlink+0x40> -ffffff80400050d4: 97fffb48 bl ffffff8040003df4 <begin_op> -ffffff80400050d8: 910103e1 add x1, sp, #0x40 -ffffff80400050dc: 910183e0 add x0, sp, #0x60 -ffffff80400050e0: 97fffad9 bl ffffff8040003c44 <nameiparent> -ffffff80400050e4: aa0003f4 mov x20, x0 -ffffff80400050e8: b5000080 cbnz x0, ffffff80400050f8 <sys_unlink+0x48> -ffffff80400050ec: 97fffb5c bl ffffff8040003e5c <end_op> -ffffff80400050f0: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff80400050f4: 14000051 b ffffff8040005238 <sys_unlink+0x188> -ffffff80400050f8: 97fff8df bl ffffff8040003474 <ilock> -ffffff80400050fc: d0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040005100: 91168421 add x1, x1, #0x5a1 -ffffff8040005104: 910103e0 add x0, sp, #0x40 -ffffff8040005108: 97fffa11 bl ffffff804000394c <namecmp> -ffffff804000510c: 34000a20 cbz w0, ffffff8040005250 <sys_unlink+0x1a0> -ffffff8040005110: d0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040005114: 91168021 add x1, x1, #0x5a0 -ffffff8040005118: 910103e0 add x0, sp, #0x40 -ffffff804000511c: 97fffa0c bl ffffff804000394c <namecmp> -ffffff8040005120: 34000980 cbz w0, ffffff8040005250 <sys_unlink+0x1a0> -ffffff8040005124: 9100f3e2 add x2, sp, #0x3c -ffffff8040005128: 910103e1 add x1, sp, #0x40 -ffffff804000512c: aa1403e0 mov x0, x20 -ffffff8040005130: 97fffa09 bl ffffff8040003954 <dirlookup> -ffffff8040005134: aa0003f3 mov x19, x0 -ffffff8040005138: b40008c0 cbz x0, ffffff8040005250 <sys_unlink+0x1a0> -ffffff804000513c: 97fff8ce bl ffffff8040003474 <ilock> -ffffff8040005140: 79c09660 ldrsh w0, [x19, #74] -ffffff8040005144: 7100001f cmp w0, #0x0 -ffffff8040005148: 5400008c b.gt ffffff8040005158 <sys_unlink+0xa8> -ffffff804000514c: d0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040005150: 9116cc00 add x0, x0, #0x5b3 -ffffff8040005154: 97ffeceb bl ffffff8040000500 <panic> -ffffff8040005158: 79c08a60 ldrsh w0, [x19, #68] -ffffff804000515c: 7100041f cmp w0, #0x1 -ffffff8040005160: 54000281 b.ne ffffff80400051b0 <sys_unlink+0x100> // b.any -ffffff8040005164: 52800415 mov w21, #0x20 // #32 -ffffff8040005168: 1400000f b ffffff80400051a4 <sys_unlink+0xf4> -ffffff804000516c: 52800204 mov w4, #0x10 // #16 -ffffff8040005170: 2a1503e3 mov w3, w21 -ffffff8040005174: 910143e2 add x2, sp, #0x50 -ffffff8040005178: 52800001 mov w1, #0x0 // #0 -ffffff804000517c: aa1303e0 mov x0, x19 -ffffff8040005180: 97fff968 bl ffffff8040003720 <readi> -ffffff8040005184: 7100401f cmp w0, #0x10 -ffffff8040005188: 54000080 b.eq ffffff8040005198 <sys_unlink+0xe8> // b.none -ffffff804000518c: d0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040005190: 91171400 add x0, x0, #0x5c5 -ffffff8040005194: 17fffff0 b ffffff8040005154 <sys_unlink+0xa4> -ffffff8040005198: 7940a3e0 ldrh w0, [sp, #80] -ffffff804000519c: 35000560 cbnz w0, ffffff8040005248 <sys_unlink+0x198> -ffffff80400051a0: 110042b5 add w21, w21, #0x10 -ffffff80400051a4: b9404e60 ldr w0, [x19, #76] -ffffff80400051a8: 6b15001f cmp w0, w21 -ffffff80400051ac: 54fffe08 b.hi ffffff804000516c <sys_unlink+0xbc> // b.pmore -ffffff80400051b0: 52800202 mov w2, #0x10 // #16 -ffffff80400051b4: 52800001 mov w1, #0x0 // #0 -ffffff80400051b8: 910143e0 add x0, sp, #0x50 -ffffff80400051bc: 97ffeecb bl ffffff8040000ce8 <memset> -ffffff80400051c0: b9403fe3 ldr w3, [sp, #60] -ffffff80400051c4: 52800204 mov w4, #0x10 // #16 -ffffff80400051c8: 910143e2 add x2, sp, #0x50 -ffffff80400051cc: 52800001 mov w1, #0x0 // #0 -ffffff80400051d0: aa1403e0 mov x0, x20 -ffffff80400051d4: 97fff997 bl ffffff8040003830 <writei> -ffffff80400051d8: 7100401f cmp w0, #0x10 -ffffff80400051dc: 54000080 b.eq ffffff80400051ec <sys_unlink+0x13c> // b.none -ffffff80400051e0: d0000000 adrp x0, ffffff8040007000 <etext> -ffffff80400051e4: 91175c00 add x0, x0, #0x5d7 -ffffff80400051e8: 17ffffdb b ffffff8040005154 <sys_unlink+0xa4> -ffffff80400051ec: 79c08a60 ldrsh w0, [x19, #68] -ffffff80400051f0: 7100041f cmp w0, #0x1 -ffffff80400051f4: 540000c1 b.ne ffffff804000520c <sys_unlink+0x15c> // b.any -ffffff80400051f8: 79409680 ldrh w0, [x20, #74] -ffffff80400051fc: 51000400 sub w0, w0, #0x1 -ffffff8040005200: 79009680 strh w0, [x20, #74] -ffffff8040005204: aa1403e0 mov x0, x20 -ffffff8040005208: 97fff867 bl ffffff80400033a4 <iupdate> -ffffff804000520c: aa1403e0 mov x0, x20 -ffffff8040005210: 97fff930 bl ffffff80400036d0 <iunlockput> -ffffff8040005214: 79409660 ldrh w0, [x19, #74] -ffffff8040005218: 51000400 sub w0, w0, #0x1 -ffffff804000521c: 79009660 strh w0, [x19, #74] -ffffff8040005220: aa1303e0 mov x0, x19 -ffffff8040005224: 97fff860 bl ffffff80400033a4 <iupdate> -ffffff8040005228: aa1303e0 mov x0, x19 -ffffff804000522c: 97fff929 bl ffffff80400036d0 <iunlockput> -ffffff8040005230: 97fffb0b bl ffffff8040003e5c <end_op> -ffffff8040005234: d2800000 mov x0, #0x0 // #0 -ffffff8040005238: a94153f3 ldp x19, x20, [sp, #16] -ffffff804000523c: f94013f5 ldr x21, [sp, #32] -ffffff8040005240: a8ce7bfd ldp x29, x30, [sp], #224 -ffffff8040005244: d65f03c0 ret -ffffff8040005248: aa1303e0 mov x0, x19 -ffffff804000524c: 97fff921 bl ffffff80400036d0 <iunlockput> -ffffff8040005250: aa1403e0 mov x0, x20 -ffffff8040005254: 97fff91f bl ffffff80400036d0 <iunlockput> -ffffff8040005258: 17ffffa5 b ffffff80400050ec <sys_unlink+0x3c> - -ffffff804000525c <sys_open>: -ffffff804000525c: a9b47bfd stp x29, x30, [sp, #-192]! -ffffff8040005260: 52801002 mov w2, #0x80 // #128 -ffffff8040005264: 910003fd mov x29, sp -ffffff8040005268: 910103e1 add x1, sp, #0x40 -ffffff804000526c: 52800000 mov w0, #0x0 // #0 -ffffff8040005270: a90153f3 stp x19, x20, [sp, #16] -ffffff8040005274: f90013f5 str x21, [sp, #32] -ffffff8040005278: 97fff5d5 bl ffffff80400029cc <argstr> -ffffff804000527c: 36f800c0 tbz w0, #31, ffffff8040005294 <sys_open+0x38> -ffffff8040005280: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040005284: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040005288: f94013f5 ldr x21, [sp, #32] -ffffff804000528c: a8cc7bfd ldp x29, x30, [sp], #192 -ffffff8040005290: d65f03c0 ret -ffffff8040005294: 9100f3e1 add x1, sp, #0x3c -ffffff8040005298: 52800020 mov w0, #0x1 // #1 -ffffff804000529c: 97fff5b8 bl ffffff804000297c <argint> -ffffff80400052a0: 37ffff00 tbnz w0, #31, ffffff8040005280 <sys_open+0x24> -ffffff80400052a4: 97fffad4 bl ffffff8040003df4 <begin_op> -ffffff80400052a8: b9403fe0 ldr w0, [sp, #60] -ffffff80400052ac: 36480140 tbz w0, #9, ffffff80400052d4 <sys_open+0x78> -ffffff80400052b0: 52800003 mov w3, #0x0 // #0 -ffffff80400052b4: 52800002 mov w2, #0x0 // #0 -ffffff80400052b8: 52800041 mov w1, #0x2 // #2 -ffffff80400052bc: 910103e0 add x0, sp, #0x40 -ffffff80400052c0: 97fffe63 bl ffffff8040004c4c <create> -ffffff80400052c4: aa0003f3 mov x19, x0 -ffffff80400052c8: b5000200 cbnz x0, ffffff8040005308 <sys_open+0xac> -ffffff80400052cc: 97fffae4 bl ffffff8040003e5c <end_op> -ffffff80400052d0: 17ffffec b ffffff8040005280 <sys_open+0x24> -ffffff80400052d4: 910103e0 add x0, sp, #0x40 -ffffff80400052d8: 97fffa54 bl ffffff8040003c28 <namei> -ffffff80400052dc: aa0003f3 mov x19, x0 -ffffff80400052e0: b4ffff60 cbz x0, ffffff80400052cc <sys_open+0x70> -ffffff80400052e4: 97fff864 bl ffffff8040003474 <ilock> -ffffff80400052e8: 79c08a60 ldrsh w0, [x19, #68] -ffffff80400052ec: 7100041f cmp w0, #0x1 -ffffff80400052f0: 540000c1 b.ne ffffff8040005308 <sys_open+0xac> // b.any -ffffff80400052f4: b9403fe0 ldr w0, [sp, #60] -ffffff80400052f8: 34000080 cbz w0, ffffff8040005308 <sys_open+0xac> -ffffff80400052fc: aa1303e0 mov x0, x19 -ffffff8040005300: 97fff8f4 bl ffffff80400036d0 <iunlockput> -ffffff8040005304: 17fffff2 b ffffff80400052cc <sys_open+0x70> -ffffff8040005308: 79c08a60 ldrsh w0, [x19, #68] -ffffff804000530c: 71000c1f cmp w0, #0x3 -ffffff8040005310: 54000081 b.ne ffffff8040005320 <sys_open+0xc4> // b.any -ffffff8040005314: 79408e60 ldrh w0, [x19, #70] -ffffff8040005318: 7100241f cmp w0, #0x9 -ffffff804000531c: 54ffff08 b.hi ffffff80400052fc <sys_open+0xa0> // b.pmore -ffffff8040005320: 97fffb95 bl ffffff8040004174 <filealloc> -ffffff8040005324: aa0003f5 mov x21, x0 -ffffff8040005328: b4fffea0 cbz x0, ffffff80400052fc <sys_open+0xa0> -ffffff804000532c: 97fffe33 bl ffffff8040004bf8 <fdalloc> -ffffff8040005330: 2a0003f4 mov w20, w0 -ffffff8040005334: 36f80080 tbz w0, #31, ffffff8040005344 <sys_open+0xe8> -ffffff8040005338: aa1503e0 mov x0, x21 -ffffff804000533c: 97fffbbe bl ffffff8040004234 <fileclose> -ffffff8040005340: 17ffffef b ffffff80400052fc <sys_open+0xa0> -ffffff8040005344: 79c08a60 ldrsh w0, [x19, #68] -ffffff8040005348: 71000c1f cmp w0, #0x3 -ffffff804000534c: 540002c1 b.ne ffffff80400053a4 <sys_open+0x148> // b.any -ffffff8040005350: 79408e61 ldrh w1, [x19, #70] -ffffff8040005354: b90002a0 str w0, [x21] -ffffff8040005358: 79004aa1 strh w1, [x21, #36] -ffffff804000535c: b9403fe1 ldr w1, [sp, #60] -ffffff8040005360: f9000eb3 str x19, [x21, #24] -ffffff8040005364: 2a2103e2 mvn w2, w1 -ffffff8040005368: f240043f tst x1, #0x3 -ffffff804000536c: 12000042 and w2, w2, #0x1 -ffffff8040005370: 390022a2 strb w2, [x21, #8] -ffffff8040005374: 1a9f07e2 cset w2, ne // ne = any -ffffff8040005378: 390026a2 strb w2, [x21, #9] -ffffff804000537c: 365000a1 tbz w1, #10, ffffff8040005390 <sys_open+0x134> -ffffff8040005380: 7100081f cmp w0, #0x2 -ffffff8040005384: 54000061 b.ne ffffff8040005390 <sys_open+0x134> // b.any -ffffff8040005388: aa1303e0 mov x0, x19 -ffffff804000538c: 97fff881 bl ffffff8040003590 <itrunc> -ffffff8040005390: aa1303e0 mov x0, x19 -ffffff8040005394: 97fff86c bl ffffff8040003544 <iunlock> -ffffff8040005398: 97fffab1 bl ffffff8040003e5c <end_op> -ffffff804000539c: 93407e80 sxtw x0, w20 -ffffff80400053a0: 17ffffb9 b ffffff8040005284 <sys_open+0x28> -ffffff80400053a4: 52800041 mov w1, #0x2 // #2 -ffffff80400053a8: b90022bf str wzr, [x21, #32] -ffffff80400053ac: b90002a1 str w1, [x21] -ffffff80400053b0: 17ffffeb b ffffff804000535c <sys_open+0x100> - -ffffff80400053b4 <sys_mkdir>: -ffffff80400053b4: a9b77bfd stp x29, x30, [sp, #-144]! -ffffff80400053b8: 910003fd mov x29, sp -ffffff80400053bc: 97fffa8e bl ffffff8040003df4 <begin_op> -ffffff80400053c0: 52801002 mov w2, #0x80 // #128 -ffffff80400053c4: 910043e1 add x1, sp, #0x10 -ffffff80400053c8: 52800000 mov w0, #0x0 // #0 -ffffff80400053cc: 97fff580 bl ffffff80400029cc <argstr> -ffffff80400053d0: 36f800a0 tbz w0, #31, ffffff80400053e4 <sys_mkdir+0x30> -ffffff80400053d4: 97fffaa2 bl ffffff8040003e5c <end_op> -ffffff80400053d8: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff80400053dc: a8c97bfd ldp x29, x30, [sp], #144 -ffffff80400053e0: d65f03c0 ret -ffffff80400053e4: 52800003 mov w3, #0x0 // #0 -ffffff80400053e8: 52800002 mov w2, #0x0 // #0 -ffffff80400053ec: 52800021 mov w1, #0x1 // #1 -ffffff80400053f0: 910043e0 add x0, sp, #0x10 -ffffff80400053f4: 97fffe16 bl ffffff8040004c4c <create> -ffffff80400053f8: b4fffee0 cbz x0, ffffff80400053d4 <sys_mkdir+0x20> -ffffff80400053fc: 97fff8b5 bl ffffff80400036d0 <iunlockput> -ffffff8040005400: 97fffa97 bl ffffff8040003e5c <end_op> -ffffff8040005404: d2800000 mov x0, #0x0 // #0 -ffffff8040005408: 17fffff5 b ffffff80400053dc <sys_mkdir+0x28> - -ffffff804000540c <sys_mknod>: -ffffff804000540c: a9b67bfd stp x29, x30, [sp, #-160]! -ffffff8040005410: 910003fd mov x29, sp -ffffff8040005414: 97fffa78 bl ffffff8040003df4 <begin_op> -ffffff8040005418: 52801002 mov w2, #0x80 // #128 -ffffff804000541c: 910083e1 add x1, sp, #0x20 -ffffff8040005420: 52800000 mov w0, #0x0 // #0 -ffffff8040005424: 97fff56a bl ffffff80400029cc <argstr> -ffffff8040005428: 36f800a0 tbz w0, #31, ffffff804000543c <sys_mknod+0x30> -ffffff804000542c: 97fffa8c bl ffffff8040003e5c <end_op> -ffffff8040005430: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040005434: a8ca7bfd ldp x29, x30, [sp], #160 -ffffff8040005438: d65f03c0 ret -ffffff804000543c: 910063e1 add x1, sp, #0x18 -ffffff8040005440: 52800020 mov w0, #0x1 // #1 -ffffff8040005444: 97fff54e bl ffffff804000297c <argint> -ffffff8040005448: 37ffff20 tbnz w0, #31, ffffff804000542c <sys_mknod+0x20> -ffffff804000544c: 910073e1 add x1, sp, #0x1c -ffffff8040005450: 52800040 mov w0, #0x2 // #2 -ffffff8040005454: 97fff54a bl ffffff804000297c <argint> -ffffff8040005458: 37fffea0 tbnz w0, #31, ffffff804000542c <sys_mknod+0x20> -ffffff804000545c: 79403be3 ldrh w3, [sp, #28] -ffffff8040005460: 52800061 mov w1, #0x3 // #3 -ffffff8040005464: 910083e0 add x0, sp, #0x20 -ffffff8040005468: 794033e2 ldrh w2, [sp, #24] -ffffff804000546c: 97fffdf8 bl ffffff8040004c4c <create> -ffffff8040005470: b4fffde0 cbz x0, ffffff804000542c <sys_mknod+0x20> -ffffff8040005474: 97fff897 bl ffffff80400036d0 <iunlockput> -ffffff8040005478: 97fffa79 bl ffffff8040003e5c <end_op> -ffffff804000547c: d2800000 mov x0, #0x0 // #0 -ffffff8040005480: 17ffffed b ffffff8040005434 <sys_mknod+0x28> - -ffffff8040005484 <sys_chdir>: -ffffff8040005484: a9b67bfd stp x29, x30, [sp, #-160]! -ffffff8040005488: 910003fd mov x29, sp -ffffff804000548c: a90153f3 stp x19, x20, [sp, #16] -ffffff8040005490: 97fff1b7 bl ffffff8040001b6c <myproc> -ffffff8040005494: aa0003f4 mov x20, x0 -ffffff8040005498: 97fffa57 bl ffffff8040003df4 <begin_op> -ffffff804000549c: 52801002 mov w2, #0x80 // #128 -ffffff80400054a0: 910083e1 add x1, sp, #0x20 -ffffff80400054a4: 52800000 mov w0, #0x0 // #0 -ffffff80400054a8: 97fff549 bl ffffff80400029cc <argstr> -ffffff80400054ac: 36f800c0 tbz w0, #31, ffffff80400054c4 <sys_chdir+0x40> -ffffff80400054b0: 97fffa6b bl ffffff8040003e5c <end_op> -ffffff80400054b4: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff80400054b8: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400054bc: a8ca7bfd ldp x29, x30, [sp], #160 -ffffff80400054c0: d65f03c0 ret -ffffff80400054c4: 910083e0 add x0, sp, #0x20 -ffffff80400054c8: 97fff9d8 bl ffffff8040003c28 <namei> -ffffff80400054cc: aa0003f3 mov x19, x0 -ffffff80400054d0: b4ffff00 cbz x0, ffffff80400054b0 <sys_chdir+0x2c> -ffffff80400054d4: 97fff7e8 bl ffffff8040003474 <ilock> -ffffff80400054d8: 79c08a60 ldrsh w0, [x19, #68] -ffffff80400054dc: 7100041f cmp w0, #0x1 -ffffff80400054e0: aa1303e0 mov x0, x19 -ffffff80400054e4: 54000060 b.eq ffffff80400054f0 <sys_chdir+0x6c> // b.none -ffffff80400054e8: 97fff87a bl ffffff80400036d0 <iunlockput> -ffffff80400054ec: 17fffff1 b ffffff80400054b0 <sys_chdir+0x2c> -ffffff80400054f0: 97fff815 bl ffffff8040003544 <iunlock> -ffffff80400054f4: f940aa80 ldr x0, [x20, #336] -ffffff80400054f8: 97fff84f bl ffffff8040003634 <iput> -ffffff80400054fc: 97fffa58 bl ffffff8040003e5c <end_op> -ffffff8040005500: d2800000 mov x0, #0x0 // #0 -ffffff8040005504: f900aa93 str x19, [x20, #336] -ffffff8040005508: 17ffffec b ffffff80400054b8 <sys_chdir+0x34> - -ffffff804000550c <sys_exec>: -ffffff804000550c: a9a47bfd stp x29, x30, [sp, #-448]! -ffffff8040005510: 52801002 mov w2, #0x80 // #128 -ffffff8040005514: 910003fd mov x29, sp -ffffff8040005518: 910103e1 add x1, sp, #0x40 -ffffff804000551c: 52800000 mov w0, #0x0 // #0 -ffffff8040005520: a90153f3 stp x19, x20, [sp, #16] -ffffff8040005524: a9025bf5 stp x21, x22, [sp, #32] -ffffff8040005528: 97fff529 bl ffffff80400029cc <argstr> -ffffff804000552c: 36f800c0 tbz w0, #31, ffffff8040005544 <sys_exec+0x38> -ffffff8040005530: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040005534: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040005538: a9425bf5 ldp x21, x22, [sp, #32] -ffffff804000553c: a8dc7bfd ldp x29, x30, [sp], #448 -ffffff8040005540: d65f03c0 ret -ffffff8040005544: 9100c3e1 add x1, sp, #0x30 -ffffff8040005548: 52800020 mov w0, #0x1 // #1 -ffffff804000554c: 97fff516 bl ffffff80400029a4 <argaddr> -ffffff8040005550: 37ffff00 tbnz w0, #31, ffffff8040005530 <sys_exec+0x24> -ffffff8040005554: 910303f4 add x20, sp, #0xc0 -ffffff8040005558: 52802002 mov w2, #0x100 // #256 -ffffff804000555c: 52800001 mov w1, #0x0 // #0 -ffffff8040005560: aa1403e0 mov x0, x20 -ffffff8040005564: d2800013 mov x19, #0x0 // #0 -ffffff8040005568: 97ffede0 bl ffffff8040000ce8 <memset> -ffffff804000556c: f9401be0 ldr x0, [sp, #48] -ffffff8040005570: 9100e3e1 add x1, sp, #0x38 -ffffff8040005574: 8b130c00 add x0, x0, x19, lsl #3 -ffffff8040005578: 97fff4d2 bl ffffff80400028c0 <fetchaddr> -ffffff804000557c: 37f80360 tbnz w0, #31, ffffff80400055e8 <sys_exec+0xdc> -ffffff8040005580: f9401ff5 ldr x21, [sp, #56] -ffffff8040005584: b50001d5 cbnz x21, ffffff80400055bc <sys_exec+0xb0> -ffffff8040005588: aa1403e1 mov x1, x20 -ffffff804000558c: 910103e0 add x0, sp, #0x40 -ffffff8040005590: f833da9f str xzr, [x20, w19, sxtw #3] -ffffff8040005594: 97fffcd5 bl ffffff80400048e8 <exec> -ffffff8040005598: 2a0003f3 mov w19, w0 -ffffff804000559c: f8757a80 ldr x0, [x20, x21, lsl #3] -ffffff80400055a0: b40000a0 cbz x0, ffffff80400055b4 <sys_exec+0xa8> -ffffff80400055a4: 910006b5 add x21, x21, #0x1 -ffffff80400055a8: 97ffed14 bl ffffff80400009f8 <kfree> -ffffff80400055ac: f10082bf cmp x21, #0x20 -ffffff80400055b0: 54ffff61 b.ne ffffff804000559c <sys_exec+0x90> // b.any -ffffff80400055b4: 93407e60 sxtw x0, w19 -ffffff80400055b8: 17ffffdf b ffffff8040005534 <sys_exec+0x28> -ffffff80400055bc: 97ffed4d bl ffffff8040000af0 <kalloc> -ffffff80400055c0: f8337a80 str x0, [x20, x19, lsl #3] -ffffff80400055c4: aa0003e1 mov x1, x0 -ffffff80400055c8: b4000100 cbz x0, ffffff80400055e8 <sys_exec+0xdc> -ffffff80400055cc: 52820002 mov w2, #0x1000 // #4096 -ffffff80400055d0: f9401fe0 ldr x0, [sp, #56] -ffffff80400055d4: 97fff4d3 bl ffffff8040002920 <fetchstr> -ffffff80400055d8: 37f80080 tbnz w0, #31, ffffff80400055e8 <sys_exec+0xdc> -ffffff80400055dc: 91000673 add x19, x19, #0x1 -ffffff80400055e0: f100827f cmp x19, #0x20 -ffffff80400055e4: 54fffc41 b.ne ffffff804000556c <sys_exec+0x60> // b.any -ffffff80400055e8: d2800013 mov x19, #0x0 // #0 -ffffff80400055ec: f8737a80 ldr x0, [x20, x19, lsl #3] -ffffff80400055f0: b4fffa00 cbz x0, ffffff8040005530 <sys_exec+0x24> -ffffff80400055f4: 91000673 add x19, x19, #0x1 -ffffff80400055f8: 97ffed00 bl ffffff80400009f8 <kfree> -ffffff80400055fc: f100827f cmp x19, #0x20 -ffffff8040005600: 54ffff61 b.ne ffffff80400055ec <sys_exec+0xe0> // b.any -ffffff8040005604: 17ffffcb b ffffff8040005530 <sys_exec+0x24> - -ffffff8040005608 <sys_pipe>: -ffffff8040005608: a9bc7bfd stp x29, x30, [sp, #-64]! -ffffff804000560c: 910003fd mov x29, sp -ffffff8040005610: f9000bf3 str x19, [sp, #16] -ffffff8040005614: 97fff156 bl ffffff8040001b6c <myproc> -ffffff8040005618: aa0003f3 mov x19, x0 -ffffff804000561c: 9100a3e1 add x1, sp, #0x28 -ffffff8040005620: 52800000 mov w0, #0x0 // #0 -ffffff8040005624: 97fff4e0 bl ffffff80400029a4 <argaddr> -ffffff8040005628: 36f800a0 tbz w0, #31, ffffff804000563c <sys_pipe+0x34> -ffffff804000562c: 92800000 mov x0, #0xffffffffffffffff // #-1 -ffffff8040005630: f9400bf3 ldr x19, [sp, #16] -ffffff8040005634: a8c47bfd ldp x29, x30, [sp], #64 -ffffff8040005638: d65f03c0 ret -ffffff804000563c: 9100e3e1 add x1, sp, #0x38 -ffffff8040005640: 9100c3e0 add x0, sp, #0x30 -ffffff8040005644: 97fffbe4 bl ffffff80400045d4 <pipealloc> -ffffff8040005648: 37ffff20 tbnz w0, #31, ffffff804000562c <sys_pipe+0x24> -ffffff804000564c: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040005650: b90023e0 str w0, [sp, #32] -ffffff8040005654: f9401be0 ldr x0, [sp, #48] -ffffff8040005658: 97fffd68 bl ffffff8040004bf8 <fdalloc> -ffffff804000565c: b90023e0 str w0, [sp, #32] -ffffff8040005660: 36f80100 tbz w0, #31, ffffff8040005680 <sys_pipe+0x78> -ffffff8040005664: b94023e0 ldr w0, [sp, #32] -ffffff8040005668: 36f802e0 tbz w0, #31, ffffff80400056c4 <sys_pipe+0xbc> -ffffff804000566c: f9401be0 ldr x0, [sp, #48] -ffffff8040005670: 97fffaf1 bl ffffff8040004234 <fileclose> -ffffff8040005674: f9401fe0 ldr x0, [sp, #56] -ffffff8040005678: 97fffaef bl ffffff8040004234 <fileclose> -ffffff804000567c: 17ffffec b ffffff804000562c <sys_pipe+0x24> -ffffff8040005680: f9401fe0 ldr x0, [sp, #56] -ffffff8040005684: 97fffd5d bl ffffff8040004bf8 <fdalloc> -ffffff8040005688: b90027e0 str w0, [sp, #36] -ffffff804000568c: 37fffec0 tbnz w0, #31, ffffff8040005664 <sys_pipe+0x5c> -ffffff8040005690: d2800083 mov x3, #0x4 // #4 -ffffff8040005694: 910083e2 add x2, sp, #0x20 -ffffff8040005698: f94017e1 ldr x1, [sp, #40] -ffffff804000569c: f9402a60 ldr x0, [x19, #80] -ffffff80400056a0: 97fff044 bl ffffff80400017b0 <copyout> -ffffff80400056a4: 36f80160 tbz w0, #31, ffffff80400056d0 <sys_pipe+0xc8> -ffffff80400056a8: b98023e0 ldrsw x0, [sp, #32] -ffffff80400056ac: 91006800 add x0, x0, #0x1a -ffffff80400056b0: f8207a7f str xzr, [x19, x0, lsl #3] -ffffff80400056b4: b98027e0 ldrsw x0, [sp, #36] -ffffff80400056b8: 91006800 add x0, x0, #0x1a -ffffff80400056bc: f8207a7f str xzr, [x19, x0, lsl #3] -ffffff80400056c0: 17ffffeb b ffffff804000566c <sys_pipe+0x64> -ffffff80400056c4: 8b20ce60 add x0, x19, w0, sxtw #3 -ffffff80400056c8: f900681f str xzr, [x0, #208] -ffffff80400056cc: 17ffffe8 b ffffff804000566c <sys_pipe+0x64> -ffffff80400056d0: f94017e1 ldr x1, [sp, #40] -ffffff80400056d4: d2800083 mov x3, #0x4 // #4 -ffffff80400056d8: 910093e2 add x2, sp, #0x24 -ffffff80400056dc: f9402a60 ldr x0, [x19, #80] -ffffff80400056e0: 8b030021 add x1, x1, x3 -ffffff80400056e4: 97fff033 bl ffffff80400017b0 <copyout> -ffffff80400056e8: 37fffe00 tbnz w0, #31, ffffff80400056a8 <sys_pipe+0xa0> -ffffff80400056ec: d2800000 mov x0, #0x0 // #0 -ffffff80400056f0: 17ffffd0 b ffffff8040005630 <sys_pipe+0x28> - ... - -ffffff8040005800 <alltraps>: - -.global alltraps -.balign 0x800 -alltraps: -// Current EL with sp0 - b . -ffffff8040005800: 14000000 b ffffff8040005800 <alltraps> -ffffff8040005804: d503201f nop -ffffff8040005808: d503201f nop -ffffff804000580c: d503201f nop -ffffff8040005810: d503201f nop -ffffff8040005814: d503201f nop -ffffff8040005818: d503201f nop -ffffff804000581c: d503201f nop -ffffff8040005820: d503201f nop -ffffff8040005824: d503201f nop -ffffff8040005828: d503201f nop -ffffff804000582c: d503201f nop -ffffff8040005830: d503201f nop -ffffff8040005834: d503201f nop -ffffff8040005838: d503201f nop -ffffff804000583c: d503201f nop -ffffff8040005840: d503201f nop -ffffff8040005844: d503201f nop -ffffff8040005848: d503201f nop -ffffff804000584c: d503201f nop -ffffff8040005850: d503201f nop -ffffff8040005854: d503201f nop -ffffff8040005858: d503201f nop -ffffff804000585c: d503201f nop -ffffff8040005860: d503201f nop -ffffff8040005864: d503201f nop -ffffff8040005868: d503201f nop -ffffff804000586c: d503201f nop -ffffff8040005870: d503201f nop -ffffff8040005874: d503201f nop -ffffff8040005878: d503201f nop -ffffff804000587c: d503201f nop -.balign 0x80 - b . -ffffff8040005880: 14000000 b ffffff8040005880 <alltraps+0x80> -ffffff8040005884: d503201f nop -ffffff8040005888: d503201f nop -ffffff804000588c: d503201f nop -ffffff8040005890: d503201f nop -ffffff8040005894: d503201f nop -ffffff8040005898: d503201f nop -ffffff804000589c: d503201f nop -ffffff80400058a0: d503201f nop -ffffff80400058a4: d503201f nop -ffffff80400058a8: d503201f nop -ffffff80400058ac: d503201f nop -ffffff80400058b0: d503201f nop -ffffff80400058b4: d503201f nop -ffffff80400058b8: d503201f nop -ffffff80400058bc: d503201f nop -ffffff80400058c0: d503201f nop -ffffff80400058c4: d503201f nop -ffffff80400058c8: d503201f nop -ffffff80400058cc: d503201f nop -ffffff80400058d0: d503201f nop -ffffff80400058d4: d503201f nop -ffffff80400058d8: d503201f nop -ffffff80400058dc: d503201f nop -ffffff80400058e0: d503201f nop -ffffff80400058e4: d503201f nop -ffffff80400058e8: d503201f nop -ffffff80400058ec: d503201f nop -ffffff80400058f0: d503201f nop -ffffff80400058f4: d503201f nop -ffffff80400058f8: d503201f nop -ffffff80400058fc: d503201f nop -.balign 0x80 - b . -ffffff8040005900: 14000000 b ffffff8040005900 <alltraps+0x100> -ffffff8040005904: d503201f nop -ffffff8040005908: d503201f nop -ffffff804000590c: d503201f nop -ffffff8040005910: d503201f nop -ffffff8040005914: d503201f nop -ffffff8040005918: d503201f nop -ffffff804000591c: d503201f nop -ffffff8040005920: d503201f nop -ffffff8040005924: d503201f nop -ffffff8040005928: d503201f nop -ffffff804000592c: d503201f nop -ffffff8040005930: d503201f nop -ffffff8040005934: d503201f nop -ffffff8040005938: d503201f nop -ffffff804000593c: d503201f nop -ffffff8040005940: d503201f nop -ffffff8040005944: d503201f nop -ffffff8040005948: d503201f nop -ffffff804000594c: d503201f nop -ffffff8040005950: d503201f nop -ffffff8040005954: d503201f nop -ffffff8040005958: d503201f nop -ffffff804000595c: d503201f nop -ffffff8040005960: d503201f nop -ffffff8040005964: d503201f nop -ffffff8040005968: d503201f nop -ffffff804000596c: d503201f nop -ffffff8040005970: d503201f nop -ffffff8040005974: d503201f nop -ffffff8040005978: d503201f nop -ffffff804000597c: d503201f nop -.balign 0x80 - b . -ffffff8040005980: 14000000 b ffffff8040005980 <alltraps+0x180> -ffffff8040005984: d503201f nop -ffffff8040005988: d503201f nop -ffffff804000598c: d503201f nop -ffffff8040005990: d503201f nop -ffffff8040005994: d503201f nop -ffffff8040005998: d503201f nop -ffffff804000599c: d503201f nop -ffffff80400059a0: d503201f nop -ffffff80400059a4: d503201f nop -ffffff80400059a8: d503201f nop -ffffff80400059ac: d503201f nop -ffffff80400059b0: d503201f nop -ffffff80400059b4: d503201f nop -ffffff80400059b8: d503201f nop -ffffff80400059bc: d503201f nop -ffffff80400059c0: d503201f nop -ffffff80400059c4: d503201f nop -ffffff80400059c8: d503201f nop -ffffff80400059cc: d503201f nop -ffffff80400059d0: d503201f nop -ffffff80400059d4: d503201f nop -ffffff80400059d8: d503201f nop -ffffff80400059dc: d503201f nop -ffffff80400059e0: d503201f nop -ffffff80400059e4: d503201f nop -ffffff80400059e8: d503201f nop -ffffff80400059ec: d503201f nop -ffffff80400059f0: d503201f nop -ffffff80400059f4: d503201f nop -ffffff80400059f8: d503201f nop -ffffff80400059fc: d503201f nop - -// Current EL with spx -.balign 0x80 - b el1sync -ffffff8040005a00: 14000161 b ffffff8040005f84 <el1sync> -ffffff8040005a04: d503201f nop -ffffff8040005a08: d503201f nop -ffffff8040005a0c: d503201f nop -ffffff8040005a10: d503201f nop -ffffff8040005a14: d503201f nop -ffffff8040005a18: d503201f nop -ffffff8040005a1c: d503201f nop -ffffff8040005a20: d503201f nop -ffffff8040005a24: d503201f nop -ffffff8040005a28: d503201f nop -ffffff8040005a2c: d503201f nop -ffffff8040005a30: d503201f nop -ffffff8040005a34: d503201f nop -ffffff8040005a38: d503201f nop -ffffff8040005a3c: d503201f nop -ffffff8040005a40: d503201f nop -ffffff8040005a44: d503201f nop -ffffff8040005a48: d503201f nop -ffffff8040005a4c: d503201f nop -ffffff8040005a50: d503201f nop -ffffff8040005a54: d503201f nop -ffffff8040005a58: d503201f nop -ffffff8040005a5c: d503201f nop -ffffff8040005a60: d503201f nop -ffffff8040005a64: d503201f nop -ffffff8040005a68: d503201f nop -ffffff8040005a6c: d503201f nop -ffffff8040005a70: d503201f nop -ffffff8040005a74: d503201f nop -ffffff8040005a78: d503201f nop -ffffff8040005a7c: d503201f nop -.balign 0x80 - b el1irq -ffffff8040005a80: 1400016d b ffffff8040006034 <el1irq> -ffffff8040005a84: d503201f nop -ffffff8040005a88: d503201f nop -ffffff8040005a8c: d503201f nop -ffffff8040005a90: d503201f nop -ffffff8040005a94: d503201f nop -ffffff8040005a98: d503201f nop -ffffff8040005a9c: d503201f nop -ffffff8040005aa0: d503201f nop -ffffff8040005aa4: d503201f nop -ffffff8040005aa8: d503201f nop -ffffff8040005aac: d503201f nop -ffffff8040005ab0: d503201f nop -ffffff8040005ab4: d503201f nop -ffffff8040005ab8: d503201f nop -ffffff8040005abc: d503201f nop -ffffff8040005ac0: d503201f nop -ffffff8040005ac4: d503201f nop -ffffff8040005ac8: d503201f nop -ffffff8040005acc: d503201f nop -ffffff8040005ad0: d503201f nop -ffffff8040005ad4: d503201f nop -ffffff8040005ad8: d503201f nop -ffffff8040005adc: d503201f nop -ffffff8040005ae0: d503201f nop -ffffff8040005ae4: d503201f nop -ffffff8040005ae8: d503201f nop -ffffff8040005aec: d503201f nop -ffffff8040005af0: d503201f nop -ffffff8040005af4: d503201f nop -ffffff8040005af8: d503201f nop -ffffff8040005afc: d503201f nop -.balign 0x80 - b . -ffffff8040005b00: 14000000 b ffffff8040005b00 <alltraps+0x300> -ffffff8040005b04: d503201f nop -ffffff8040005b08: d503201f nop -ffffff8040005b0c: d503201f nop -ffffff8040005b10: d503201f nop -ffffff8040005b14: d503201f nop -ffffff8040005b18: d503201f nop -ffffff8040005b1c: d503201f nop -ffffff8040005b20: d503201f nop -ffffff8040005b24: d503201f nop -ffffff8040005b28: d503201f nop -ffffff8040005b2c: d503201f nop -ffffff8040005b30: d503201f nop -ffffff8040005b34: d503201f nop -ffffff8040005b38: d503201f nop -ffffff8040005b3c: d503201f nop -ffffff8040005b40: d503201f nop -ffffff8040005b44: d503201f nop -ffffff8040005b48: d503201f nop -ffffff8040005b4c: d503201f nop -ffffff8040005b50: d503201f nop -ffffff8040005b54: d503201f nop -ffffff8040005b58: d503201f nop -ffffff8040005b5c: d503201f nop -ffffff8040005b60: d503201f nop -ffffff8040005b64: d503201f nop -ffffff8040005b68: d503201f nop -ffffff8040005b6c: d503201f nop -ffffff8040005b70: d503201f nop -ffffff8040005b74: d503201f nop -ffffff8040005b78: d503201f nop -ffffff8040005b7c: d503201f nop -.balign 0x80 - b . -ffffff8040005b80: 14000000 b ffffff8040005b80 <alltraps+0x380> -ffffff8040005b84: d503201f nop -ffffff8040005b88: d503201f nop -ffffff8040005b8c: d503201f nop -ffffff8040005b90: d503201f nop -ffffff8040005b94: d503201f nop -ffffff8040005b98: d503201f nop -ffffff8040005b9c: d503201f nop -ffffff8040005ba0: d503201f nop -ffffff8040005ba4: d503201f nop -ffffff8040005ba8: d503201f nop -ffffff8040005bac: d503201f nop -ffffff8040005bb0: d503201f nop -ffffff8040005bb4: d503201f nop -ffffff8040005bb8: d503201f nop -ffffff8040005bbc: d503201f nop -ffffff8040005bc0: d503201f nop -ffffff8040005bc4: d503201f nop -ffffff8040005bc8: d503201f nop -ffffff8040005bcc: d503201f nop -ffffff8040005bd0: d503201f nop -ffffff8040005bd4: d503201f nop -ffffff8040005bd8: d503201f nop -ffffff8040005bdc: d503201f nop -ffffff8040005be0: d503201f nop -ffffff8040005be4: d503201f nop -ffffff8040005be8: d503201f nop -ffffff8040005bec: d503201f nop -ffffff8040005bf0: d503201f nop -ffffff8040005bf4: d503201f nop -ffffff8040005bf8: d503201f nop -ffffff8040005bfc: d503201f nop - -// Lower EL using aarch64 -.balign 0x80 - b el0sync -ffffff8040005c00: 14000139 b ffffff80400060e4 <el0sync> -ffffff8040005c04: d503201f nop -ffffff8040005c08: d503201f nop -ffffff8040005c0c: d503201f nop -ffffff8040005c10: d503201f nop -ffffff8040005c14: d503201f nop -ffffff8040005c18: d503201f nop -ffffff8040005c1c: d503201f nop -ffffff8040005c20: d503201f nop -ffffff8040005c24: d503201f nop -ffffff8040005c28: d503201f nop -ffffff8040005c2c: d503201f nop -ffffff8040005c30: d503201f nop -ffffff8040005c34: d503201f nop -ffffff8040005c38: d503201f nop -ffffff8040005c3c: d503201f nop -ffffff8040005c40: d503201f nop -ffffff8040005c44: d503201f nop -ffffff8040005c48: d503201f nop -ffffff8040005c4c: d503201f nop -ffffff8040005c50: d503201f nop -ffffff8040005c54: d503201f nop -ffffff8040005c58: d503201f nop -ffffff8040005c5c: d503201f nop -ffffff8040005c60: d503201f nop -ffffff8040005c64: d503201f nop -ffffff8040005c68: d503201f nop -ffffff8040005c6c: d503201f nop -ffffff8040005c70: d503201f nop -ffffff8040005c74: d503201f nop -ffffff8040005c78: d503201f nop -ffffff8040005c7c: d503201f nop -.balign 0x80 - b el0irq -ffffff8040005c80: 14000146 b ffffff8040006198 <el0irq> -ffffff8040005c84: d503201f nop -ffffff8040005c88: d503201f nop -ffffff8040005c8c: d503201f nop -ffffff8040005c90: d503201f nop -ffffff8040005c94: d503201f nop -ffffff8040005c98: d503201f nop -ffffff8040005c9c: d503201f nop -ffffff8040005ca0: d503201f nop -ffffff8040005ca4: d503201f nop -ffffff8040005ca8: d503201f nop -ffffff8040005cac: d503201f nop -ffffff8040005cb0: d503201f nop -ffffff8040005cb4: d503201f nop -ffffff8040005cb8: d503201f nop -ffffff8040005cbc: d503201f nop -ffffff8040005cc0: d503201f nop -ffffff8040005cc4: d503201f nop -ffffff8040005cc8: d503201f nop -ffffff8040005ccc: d503201f nop -ffffff8040005cd0: d503201f nop -ffffff8040005cd4: d503201f nop -ffffff8040005cd8: d503201f nop -ffffff8040005cdc: d503201f nop -ffffff8040005ce0: d503201f nop -ffffff8040005ce4: d503201f nop -ffffff8040005ce8: d503201f nop -ffffff8040005cec: d503201f nop -ffffff8040005cf0: d503201f nop -ffffff8040005cf4: d503201f nop -ffffff8040005cf8: d503201f nop -ffffff8040005cfc: d503201f nop -.balign 0x80 - b . -ffffff8040005d00: 14000000 b ffffff8040005d00 <alltraps+0x500> -ffffff8040005d04: d503201f nop -ffffff8040005d08: d503201f nop -ffffff8040005d0c: d503201f nop -ffffff8040005d10: d503201f nop -ffffff8040005d14: d503201f nop -ffffff8040005d18: d503201f nop -ffffff8040005d1c: d503201f nop -ffffff8040005d20: d503201f nop -ffffff8040005d24: d503201f nop -ffffff8040005d28: d503201f nop -ffffff8040005d2c: d503201f nop -ffffff8040005d30: d503201f nop -ffffff8040005d34: d503201f nop -ffffff8040005d38: d503201f nop -ffffff8040005d3c: d503201f nop -ffffff8040005d40: d503201f nop -ffffff8040005d44: d503201f nop -ffffff8040005d48: d503201f nop -ffffff8040005d4c: d503201f nop -ffffff8040005d50: d503201f nop -ffffff8040005d54: d503201f nop -ffffff8040005d58: d503201f nop -ffffff8040005d5c: d503201f nop -ffffff8040005d60: d503201f nop -ffffff8040005d64: d503201f nop -ffffff8040005d68: d503201f nop -ffffff8040005d6c: d503201f nop -ffffff8040005d70: d503201f nop -ffffff8040005d74: d503201f nop -ffffff8040005d78: d503201f nop -ffffff8040005d7c: d503201f nop -.balign 0x80 - b . -ffffff8040005d80: 14000000 b ffffff8040005d80 <alltraps+0x580> -ffffff8040005d84: d503201f nop -ffffff8040005d88: d503201f nop -ffffff8040005d8c: d503201f nop -ffffff8040005d90: d503201f nop -ffffff8040005d94: d503201f nop -ffffff8040005d98: d503201f nop -ffffff8040005d9c: d503201f nop -ffffff8040005da0: d503201f nop -ffffff8040005da4: d503201f nop -ffffff8040005da8: d503201f nop -ffffff8040005dac: d503201f nop -ffffff8040005db0: d503201f nop -ffffff8040005db4: d503201f nop -ffffff8040005db8: d503201f nop -ffffff8040005dbc: d503201f nop -ffffff8040005dc0: d503201f nop -ffffff8040005dc4: d503201f nop -ffffff8040005dc8: d503201f nop -ffffff8040005dcc: d503201f nop -ffffff8040005dd0: d503201f nop -ffffff8040005dd4: d503201f nop -ffffff8040005dd8: d503201f nop -ffffff8040005ddc: d503201f nop -ffffff8040005de0: d503201f nop -ffffff8040005de4: d503201f nop -ffffff8040005de8: d503201f nop -ffffff8040005dec: d503201f nop -ffffff8040005df0: d503201f nop -ffffff8040005df4: d503201f nop -ffffff8040005df8: d503201f nop -ffffff8040005dfc: d503201f nop - -// Lower EL using aarch32 -.balign 0x80 - b . -ffffff8040005e00: 14000000 b ffffff8040005e00 <alltraps+0x600> -ffffff8040005e04: d503201f nop -ffffff8040005e08: d503201f nop -ffffff8040005e0c: d503201f nop -ffffff8040005e10: d503201f nop -ffffff8040005e14: d503201f nop -ffffff8040005e18: d503201f nop -ffffff8040005e1c: d503201f nop -ffffff8040005e20: d503201f nop -ffffff8040005e24: d503201f nop -ffffff8040005e28: d503201f nop -ffffff8040005e2c: d503201f nop -ffffff8040005e30: d503201f nop -ffffff8040005e34: d503201f nop -ffffff8040005e38: d503201f nop -ffffff8040005e3c: d503201f nop -ffffff8040005e40: d503201f nop -ffffff8040005e44: d503201f nop -ffffff8040005e48: d503201f nop -ffffff8040005e4c: d503201f nop -ffffff8040005e50: d503201f nop -ffffff8040005e54: d503201f nop -ffffff8040005e58: d503201f nop -ffffff8040005e5c: d503201f nop -ffffff8040005e60: d503201f nop -ffffff8040005e64: d503201f nop -ffffff8040005e68: d503201f nop -ffffff8040005e6c: d503201f nop -ffffff8040005e70: d503201f nop -ffffff8040005e74: d503201f nop -ffffff8040005e78: d503201f nop -ffffff8040005e7c: d503201f nop -.balign 0x80 - b . -ffffff8040005e80: 14000000 b ffffff8040005e80 <alltraps+0x680> -ffffff8040005e84: d503201f nop -ffffff8040005e88: d503201f nop -ffffff8040005e8c: d503201f nop -ffffff8040005e90: d503201f nop -ffffff8040005e94: d503201f nop -ffffff8040005e98: d503201f nop -ffffff8040005e9c: d503201f nop -ffffff8040005ea0: d503201f nop -ffffff8040005ea4: d503201f nop -ffffff8040005ea8: d503201f nop -ffffff8040005eac: d503201f nop -ffffff8040005eb0: d503201f nop -ffffff8040005eb4: d503201f nop -ffffff8040005eb8: d503201f nop -ffffff8040005ebc: d503201f nop -ffffff8040005ec0: d503201f nop -ffffff8040005ec4: d503201f nop -ffffff8040005ec8: d503201f nop -ffffff8040005ecc: d503201f nop -ffffff8040005ed0: d503201f nop -ffffff8040005ed4: d503201f nop -ffffff8040005ed8: d503201f nop -ffffff8040005edc: d503201f nop -ffffff8040005ee0: d503201f nop -ffffff8040005ee4: d503201f nop -ffffff8040005ee8: d503201f nop -ffffff8040005eec: d503201f nop -ffffff8040005ef0: d503201f nop -ffffff8040005ef4: d503201f nop -ffffff8040005ef8: d503201f nop -ffffff8040005efc: d503201f nop -.balign 0x80 - b . -ffffff8040005f00: 14000000 b ffffff8040005f00 <alltraps+0x700> -ffffff8040005f04: d503201f nop -ffffff8040005f08: d503201f nop -ffffff8040005f0c: d503201f nop -ffffff8040005f10: d503201f nop -ffffff8040005f14: d503201f nop -ffffff8040005f18: d503201f nop -ffffff8040005f1c: d503201f nop -ffffff8040005f20: d503201f nop -ffffff8040005f24: d503201f nop -ffffff8040005f28: d503201f nop -ffffff8040005f2c: d503201f nop -ffffff8040005f30: d503201f nop -ffffff8040005f34: d503201f nop -ffffff8040005f38: d503201f nop -ffffff8040005f3c: d503201f nop -ffffff8040005f40: d503201f nop -ffffff8040005f44: d503201f nop -ffffff8040005f48: d503201f nop -ffffff8040005f4c: d503201f nop -ffffff8040005f50: d503201f nop -ffffff8040005f54: d503201f nop -ffffff8040005f58: d503201f nop -ffffff8040005f5c: d503201f nop -ffffff8040005f60: d503201f nop -ffffff8040005f64: d503201f nop -ffffff8040005f68: d503201f nop -ffffff8040005f6c: d503201f nop -ffffff8040005f70: d503201f nop -ffffff8040005f74: d503201f nop -ffffff8040005f78: d503201f nop -ffffff8040005f7c: d503201f nop -.balign 0x80 - b . -ffffff8040005f80: 14000000 b ffffff8040005f80 <alltraps+0x780> - -ffffff8040005f84 <el1sync>: - -el1sync: - savereg -ffffff8040005f84: d10443ff sub sp, sp, #0x110 -ffffff8040005f88: a90007e0 stp x0, x1, [sp] -ffffff8040005f8c: a9010fe2 stp x2, x3, [sp, #16] -ffffff8040005f90: a90217e4 stp x4, x5, [sp, #32] -ffffff8040005f94: a9031fe6 stp x6, x7, [sp, #48] -ffffff8040005f98: a90427e8 stp x8, x9, [sp, #64] -ffffff8040005f9c: a9052fea stp x10, x11, [sp, #80] -ffffff8040005fa0: a90637ec stp x12, x13, [sp, #96] -ffffff8040005fa4: a9073fee stp x14, x15, [sp, #112] -ffffff8040005fa8: a90847f0 stp x16, x17, [sp, #128] -ffffff8040005fac: a9094ff2 stp x18, x19, [sp, #144] -ffffff8040005fb0: a90a57f4 stp x20, x21, [sp, #160] -ffffff8040005fb4: a90b5ff6 stp x22, x23, [sp, #176] -ffffff8040005fb8: a90c67f8 stp x24, x25, [sp, #192] -ffffff8040005fbc: a90d6ffa stp x26, x27, [sp, #208] -ffffff8040005fc0: a90e77fc stp x28, x29, [sp, #224] -ffffff8040005fc4: d5384029 mrs x9, elr_el1 -ffffff8040005fc8: d538400a mrs x10, spsr_el1 -ffffff8040005fcc: 910443eb add x11, sp, #0x110 -ffffff8040005fd0: a90f27fe stp x30, x9, [sp, #240] -ffffff8040005fd4: a9102fea stp x10, x11, [sp, #256] - - mov x0, sp -ffffff8040005fd8: 910003e0 mov x0, sp - bl kerneltrap -ffffff8040005fdc: 97fff1ac bl ffffff804000268c <kerneltrap> - - restorereg -ffffff8040005fe0: a94f27fe ldp x30, x9, [sp, #240] -ffffff8040005fe4: a9502fea ldp x10, x11, [sp, #256] -ffffff8040005fe8: d5184029 msr elr_el1, x9 -ffffff8040005fec: d518400a msr spsr_el1, x10 -ffffff8040005ff0: a94007e0 ldp x0, x1, [sp] -ffffff8040005ff4: a9410fe2 ldp x2, x3, [sp, #16] -ffffff8040005ff8: a94217e4 ldp x4, x5, [sp, #32] -ffffff8040005ffc: a9431fe6 ldp x6, x7, [sp, #48] -ffffff8040006000: a94427e8 ldp x8, x9, [sp, #64] -ffffff8040006004: a9452fea ldp x10, x11, [sp, #80] -ffffff8040006008: a94637ec ldp x12, x13, [sp, #96] -ffffff804000600c: a9473fee ldp x14, x15, [sp, #112] -ffffff8040006010: a94847f0 ldp x16, x17, [sp, #128] -ffffff8040006014: a9494ff2 ldp x18, x19, [sp, #144] -ffffff8040006018: a94a57f4 ldp x20, x21, [sp, #160] -ffffff804000601c: a94b5ff6 ldp x22, x23, [sp, #176] -ffffff8040006020: a94c67f8 ldp x24, x25, [sp, #192] -ffffff8040006024: a94d6ffa ldp x26, x27, [sp, #208] -ffffff8040006028: a94e77fc ldp x28, x29, [sp, #224] -ffffff804000602c: 910443ff add sp, sp, #0x110 - - eret -ffffff8040006030: d69f03e0 eret - -ffffff8040006034 <el1irq>: -el1irq: - savereg -ffffff8040006034: d10443ff sub sp, sp, #0x110 -ffffff8040006038: a90007e0 stp x0, x1, [sp] -ffffff804000603c: a9010fe2 stp x2, x3, [sp, #16] -ffffff8040006040: a90217e4 stp x4, x5, [sp, #32] -ffffff8040006044: a9031fe6 stp x6, x7, [sp, #48] -ffffff8040006048: a90427e8 stp x8, x9, [sp, #64] -ffffff804000604c: a9052fea stp x10, x11, [sp, #80] -ffffff8040006050: a90637ec stp x12, x13, [sp, #96] -ffffff8040006054: a9073fee stp x14, x15, [sp, #112] -ffffff8040006058: a90847f0 stp x16, x17, [sp, #128] -ffffff804000605c: a9094ff2 stp x18, x19, [sp, #144] -ffffff8040006060: a90a57f4 stp x20, x21, [sp, #160] -ffffff8040006064: a90b5ff6 stp x22, x23, [sp, #176] -ffffff8040006068: a90c67f8 stp x24, x25, [sp, #192] -ffffff804000606c: a90d6ffa stp x26, x27, [sp, #208] -ffffff8040006070: a90e77fc stp x28, x29, [sp, #224] -ffffff8040006074: d5384029 mrs x9, elr_el1 -ffffff8040006078: d538400a mrs x10, spsr_el1 -ffffff804000607c: 910443eb add x11, sp, #0x110 -ffffff8040006080: a90f27fe stp x30, x9, [sp, #240] -ffffff8040006084: a9102fea stp x10, x11, [sp, #256] - - mov x0, sp -ffffff8040006088: 910003e0 mov x0, sp - bl kernelirq -ffffff804000608c: 97fff1df bl ffffff8040002808 <kernelirq> - - restorereg -ffffff8040006090: a94f27fe ldp x30, x9, [sp, #240] -ffffff8040006094: a9502fea ldp x10, x11, [sp, #256] -ffffff8040006098: d5184029 msr elr_el1, x9 -ffffff804000609c: d518400a msr spsr_el1, x10 -ffffff80400060a0: a94007e0 ldp x0, x1, [sp] -ffffff80400060a4: a9410fe2 ldp x2, x3, [sp, #16] -ffffff80400060a8: a94217e4 ldp x4, x5, [sp, #32] -ffffff80400060ac: a9431fe6 ldp x6, x7, [sp, #48] -ffffff80400060b0: a94427e8 ldp x8, x9, [sp, #64] -ffffff80400060b4: a9452fea ldp x10, x11, [sp, #80] -ffffff80400060b8: a94637ec ldp x12, x13, [sp, #96] -ffffff80400060bc: a9473fee ldp x14, x15, [sp, #112] -ffffff80400060c0: a94847f0 ldp x16, x17, [sp, #128] -ffffff80400060c4: a9494ff2 ldp x18, x19, [sp, #144] -ffffff80400060c8: a94a57f4 ldp x20, x21, [sp, #160] -ffffff80400060cc: a94b5ff6 ldp x22, x23, [sp, #176] -ffffff80400060d0: a94c67f8 ldp x24, x25, [sp, #192] -ffffff80400060d4: a94d6ffa ldp x26, x27, [sp, #208] -ffffff80400060d8: a94e77fc ldp x28, x29, [sp, #224] -ffffff80400060dc: 910443ff add sp, sp, #0x110 - - eret -ffffff80400060e0: d69f03e0 eret - -ffffff80400060e4 <el0sync>: - -el0sync: - usavereg -ffffff80400060e4: d10443ff sub sp, sp, #0x110 -ffffff80400060e8: a90007e0 stp x0, x1, [sp] -ffffff80400060ec: a9010fe2 stp x2, x3, [sp, #16] -ffffff80400060f0: a90217e4 stp x4, x5, [sp, #32] -ffffff80400060f4: a9031fe6 stp x6, x7, [sp, #48] -ffffff80400060f8: a90427e8 stp x8, x9, [sp, #64] -ffffff80400060fc: a9052fea stp x10, x11, [sp, #80] -ffffff8040006100: a90637ec stp x12, x13, [sp, #96] -ffffff8040006104: a9073fee stp x14, x15, [sp, #112] -ffffff8040006108: a90847f0 stp x16, x17, [sp, #128] -ffffff804000610c: a9094ff2 stp x18, x19, [sp, #144] -ffffff8040006110: a90a57f4 stp x20, x21, [sp, #160] -ffffff8040006114: a90b5ff6 stp x22, x23, [sp, #176] -ffffff8040006118: a90c67f8 stp x24, x25, [sp, #192] -ffffff804000611c: a90d6ffa stp x26, x27, [sp, #208] -ffffff8040006120: a90e77fc stp x28, x29, [sp, #224] -ffffff8040006124: d5384029 mrs x9, elr_el1 -ffffff8040006128: d538400a mrs x10, spsr_el1 -ffffff804000612c: d538410b mrs x11, sp_el0 -ffffff8040006130: a90f27fe stp x30, x9, [sp, #240] -ffffff8040006134: a9102fea stp x10, x11, [sp, #256] - - mov x0, sp -ffffff8040006138: 910003e0 mov x0, sp - bl usertrap -ffffff804000613c: 97fff12e bl ffffff80400025f4 <usertrap> - - urestorereg -ffffff8040006140: a94f27fe ldp x30, x9, [sp, #240] -ffffff8040006144: a9502fea ldp x10, x11, [sp, #256] -ffffff8040006148: d5184029 msr elr_el1, x9 -ffffff804000614c: d518400a msr spsr_el1, x10 -ffffff8040006150: d518410b msr sp_el0, x11 -ffffff8040006154: a94007e0 ldp x0, x1, [sp] -ffffff8040006158: a9410fe2 ldp x2, x3, [sp, #16] -ffffff804000615c: a94217e4 ldp x4, x5, [sp, #32] -ffffff8040006160: a9431fe6 ldp x6, x7, [sp, #48] -ffffff8040006164: a94427e8 ldp x8, x9, [sp, #64] -ffffff8040006168: a9452fea ldp x10, x11, [sp, #80] -ffffff804000616c: a94637ec ldp x12, x13, [sp, #96] -ffffff8040006170: a9473fee ldp x14, x15, [sp, #112] -ffffff8040006174: a94847f0 ldp x16, x17, [sp, #128] -ffffff8040006178: a9494ff2 ldp x18, x19, [sp, #144] -ffffff804000617c: a94a57f4 ldp x20, x21, [sp, #160] -ffffff8040006180: a94b5ff6 ldp x22, x23, [sp, #176] -ffffff8040006184: a94c67f8 ldp x24, x25, [sp, #192] -ffffff8040006188: a94d6ffa ldp x26, x27, [sp, #208] -ffffff804000618c: a94e77fc ldp x28, x29, [sp, #224] -ffffff8040006190: 910443ff add sp, sp, #0x110 - - eret -ffffff8040006194: d69f03e0 eret - -ffffff8040006198 <el0irq>: -el0irq: - usavereg -ffffff8040006198: d10443ff sub sp, sp, #0x110 -ffffff804000619c: a90007e0 stp x0, x1, [sp] -ffffff80400061a0: a9010fe2 stp x2, x3, [sp, #16] -ffffff80400061a4: a90217e4 stp x4, x5, [sp, #32] -ffffff80400061a8: a9031fe6 stp x6, x7, [sp, #48] -ffffff80400061ac: a90427e8 stp x8, x9, [sp, #64] -ffffff80400061b0: a9052fea stp x10, x11, [sp, #80] -ffffff80400061b4: a90637ec stp x12, x13, [sp, #96] -ffffff80400061b8: a9073fee stp x14, x15, [sp, #112] -ffffff80400061bc: a90847f0 stp x16, x17, [sp, #128] -ffffff80400061c0: a9094ff2 stp x18, x19, [sp, #144] -ffffff80400061c4: a90a57f4 stp x20, x21, [sp, #160] -ffffff80400061c8: a90b5ff6 stp x22, x23, [sp, #176] -ffffff80400061cc: a90c67f8 stp x24, x25, [sp, #192] -ffffff80400061d0: a90d6ffa stp x26, x27, [sp, #208] -ffffff80400061d4: a90e77fc stp x28, x29, [sp, #224] -ffffff80400061d8: d5384029 mrs x9, elr_el1 -ffffff80400061dc: d538400a mrs x10, spsr_el1 -ffffff80400061e0: d538410b mrs x11, sp_el0 -ffffff80400061e4: a90f27fe stp x30, x9, [sp, #240] -ffffff80400061e8: a9102fea stp x10, x11, [sp, #256] - - mov x0, sp -ffffff80400061ec: 910003e0 mov x0, sp - bl userirq -ffffff80400061f0: 97fff175 bl ffffff80400027c4 <userirq> - -ffffff80400061f4 <trapret>: - -trapret: - urestorereg -ffffff80400061f4: a94f27fe ldp x30, x9, [sp, #240] -ffffff80400061f8: a9502fea ldp x10, x11, [sp, #256] -ffffff80400061fc: d5184029 msr elr_el1, x9 -ffffff8040006200: d518400a msr spsr_el1, x10 -ffffff8040006204: d518410b msr sp_el0, x11 -ffffff8040006208: a94007e0 ldp x0, x1, [sp] -ffffff804000620c: a9410fe2 ldp x2, x3, [sp, #16] -ffffff8040006210: a94217e4 ldp x4, x5, [sp, #32] -ffffff8040006214: a9431fe6 ldp x6, x7, [sp, #48] -ffffff8040006218: a94427e8 ldp x8, x9, [sp, #64] -ffffff804000621c: a9452fea ldp x10, x11, [sp, #80] -ffffff8040006220: a94637ec ldp x12, x13, [sp, #96] -ffffff8040006224: a9473fee ldp x14, x15, [sp, #112] -ffffff8040006228: a94847f0 ldp x16, x17, [sp, #128] -ffffff804000622c: a9494ff2 ldp x18, x19, [sp, #144] -ffffff8040006230: a94a57f4 ldp x20, x21, [sp, #160] -ffffff8040006234: a94b5ff6 ldp x22, x23, [sp, #176] -ffffff8040006238: a94c67f8 ldp x24, x25, [sp, #192] -ffffff804000623c: a94d6ffa ldp x26, x27, [sp, #208] -ffffff8040006240: a94e77fc ldp x28, x29, [sp, #224] -ffffff8040006244: 910443ff add sp, sp, #0x110 - - eret -ffffff8040006248: d69f03e0 eret - -ffffff804000624c <usertrapret>: - -.global usertrapret -usertrapret: - mov sp, x0 -ffffff804000624c: 9100001f mov sp, x0 - b trapret -ffffff8040006250: 17ffffe9 b ffffff80400061f4 <trapret> - -ffffff8040006254 <timerinit>: -ffffff8040006254: d53be320 mrs x0, cntv_ctl_el0 -ffffff8040006258: 927ff800 and x0, x0, #0xfffffffffffffffe -ffffff804000625c: b27f0000 orr x0, x0, #0x2 -ffffff8040006260: d51be320 msr cntv_ctl_el0, x0 -ffffff8040006264: d53be000 mrs x0, cntfrq_el0 -ffffff8040006268: d2884801 mov x1, #0x4240 // #16960 -ffffff804000626c: f2a001e1 movk x1, #0xf, lsl #16 -ffffff8040006270: 9ac10800 udiv x0, x0, x1 -ffffff8040006274: d290d401 mov x1, #0x86a0 // #34464 -ffffff8040006278: f2a00021 movk x1, #0x1, lsl #16 -ffffff804000627c: 9b017c00 mul x0, x0, x1 -ffffff8040006280: d51be300 msr cntv_tval_el0, x0 -ffffff8040006284: d53be320 mrs x0, cntv_ctl_el0 -ffffff8040006288: 927ef800 and x0, x0, #0xfffffffffffffffd -ffffff804000628c: b2400000 orr x0, x0, #0x1 -ffffff8040006290: d51be320 msr cntv_ctl_el0, x0 -ffffff8040006294: d65f03c0 ret - -ffffff8040006298 <timerintr>: -ffffff8040006298: 17ffffef b ffffff8040006254 <timerinit> - -ffffff804000629c <free_desc>: -ffffff804000629c: a9bf7bfd stp x29, x30, [sp, #-16]! -ffffff80400062a0: 71001c1f cmp w0, #0x7 -ffffff80400062a4: 910003fd mov x29, sp -ffffff80400062a8: 5400008d b.le ffffff80400062b8 <free_desc+0x1c> -ffffff80400062ac: b0000000 adrp x0, ffffff8040007000 <etext> -ffffff80400062b0: 91179800 add x0, x0, #0x5e6 -ffffff80400062b4: 97ffe893 bl ffffff8040000500 <panic> -ffffff80400062b8: d0000102 adrp x2, ffffff8040028000 <disk> -ffffff80400062bc: 91000042 add x2, x2, #0x0 -ffffff80400062c0: 93407c01 sxtw x1, w0 -ffffff80400062c4: 8b20c040 add x0, x2, w0, sxtw -ffffff80400062c8: 91400800 add x0, x0, #0x2, lsl #12 -ffffff80400062cc: 39406003 ldrb w3, [x0, #24] -ffffff80400062d0: 34000083 cbz w3, ffffff80400062e0 <free_desc+0x44> -ffffff80400062d4: b0000000 adrp x0, ffffff8040007000 <etext> -ffffff80400062d8: 9117c800 add x0, x0, #0x5f2 -ffffff80400062dc: 17fffff6 b ffffff80400062b4 <free_desc+0x18> -ffffff80400062e0: f9500042 ldr x2, [x2, #8192] -ffffff80400062e4: d37cec23 lsl x3, x1, #4 -ffffff80400062e8: 8b011041 add x1, x2, x1, lsl #4 -ffffff80400062ec: f823685f str xzr, [x2, x3] -ffffff80400062f0: f900043f str xzr, [x1, #8] -ffffff80400062f4: 52800021 mov w1, #0x1 // #1 -ffffff80400062f8: 39006001 strb w1, [x0, #24] -ffffff80400062fc: 90000120 adrp x0, ffffff804002a000 <disk+0x2000> -ffffff8040006300: 91006000 add x0, x0, #0x18 -ffffff8040006304: a8c17bfd ldp x29, x30, [sp], #16 -ffffff8040006308: 17ffefb9 b ffffff80400021ec <wakeup> - -ffffff804000630c <virtio_disk_init>: -ffffff804000630c: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff8040006310: b0000001 adrp x1, ffffff8040007000 <etext> -ffffff8040006314: 9117f821 add x1, x1, #0x5fe -ffffff8040006318: 910003fd mov x29, sp -ffffff804000631c: 90000120 adrp x0, ffffff804002a000 <disk+0x2000> -ffffff8040006320: 9104a000 add x0, x0, #0x128 -ffffff8040006324: f9000bf3 str x19, [sp, #16] -ffffff8040006328: 97ffea11 bl ffffff8040000b6c <initlock> -ffffff804000632c: b25963e0 mov x0, #0xffffff8000000000 // #-549755813888 -ffffff8040006330: f2a14000 movk x0, #0xa00, lsl #16 -ffffff8040006334: b9400001 ldr w1, [x0] -ffffff8040006338: 528d2ec0 mov w0, #0x6976 // #26998 -ffffff804000633c: 72ae8e40 movk w0, #0x7472, lsl #16 -ffffff8040006340: 6b00003f cmp w1, w0 -ffffff8040006344: 54000261 b.ne ffffff8040006390 <virtio_disk_init+0x84> // b.any -ffffff8040006348: 929fff60 mov x0, #0xffffffffffff0004 // #-65532 -ffffff804000634c: f2a14000 movk x0, #0xa00, lsl #16 -ffffff8040006350: f2dff000 movk x0, #0xff80, lsl #32 -ffffff8040006354: b9400001 ldr w1, [x0] -ffffff8040006358: 7100043f cmp w1, #0x1 -ffffff804000635c: 540001a1 b.ne ffffff8040006390 <virtio_disk_init+0x84> // b.any -ffffff8040006360: 91001000 add x0, x0, #0x4 -ffffff8040006364: b9400000 ldr w0, [x0] -ffffff8040006368: 7100081f cmp w0, #0x2 -ffffff804000636c: 54000121 b.ne ffffff8040006390 <virtio_disk_init+0x84> // b.any -ffffff8040006370: 929ffe60 mov x0, #0xffffffffffff000c // #-65524 -ffffff8040006374: f2a14000 movk x0, #0xa00, lsl #16 -ffffff8040006378: f2dff000 movk x0, #0xff80, lsl #32 -ffffff804000637c: b9400002 ldr w2, [x0] -ffffff8040006380: 5288aa20 mov w0, #0x4551 // #17745 -ffffff8040006384: 72aaa9a0 movk w0, #0x554d, lsl #16 -ffffff8040006388: 6b00005f cmp w2, w0 -ffffff804000638c: 54000080 b.eq ffffff804000639c <virtio_disk_init+0x90> // b.none -ffffff8040006390: b0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040006394: 91182800 add x0, x0, #0x60a -ffffff8040006398: 97ffe85a bl ffffff8040000500 <panic> -ffffff804000639c: 929ff1e0 mov x0, #0xffffffffffff0070 // #-65424 -ffffff80400063a0: f2a14000 movk x0, #0xa00, lsl #16 -ffffff80400063a4: f2dff000 movk x0, #0xff80, lsl #32 -ffffff80400063a8: d29cebe2 mov x2, #0xe75f // #59231 -ffffff80400063ac: f2b8ffe2 movk x2, #0xc7ff, lsl #16 -ffffff80400063b0: d100f000 sub x0, x0, #0x3c -ffffff80400063b4: b9003c01 str w1, [x0, #60] -ffffff80400063b8: 52800061 mov w1, #0x3 // #3 -ffffff80400063bc: b9003c01 str w1, [x0, #60] -ffffff80400063c0: 929ffde1 mov x1, #0xffffffffffff0010 // #-65520 -ffffff80400063c4: f2a14001 movk x1, #0xa00, lsl #16 -ffffff80400063c8: f2dff001 movk x1, #0xff80, lsl #32 -ffffff80400063cc: b9400021 ldr w1, [x1] -ffffff80400063d0: 8a020021 and x1, x1, x2 -ffffff80400063d4: 929ffbe2 mov x2, #0xffffffffffff0020 // #-65504 -ffffff80400063d8: f2a14002 movk x2, #0xa00, lsl #16 -ffffff80400063dc: f2dff002 movk x2, #0xff80, lsl #32 -ffffff80400063e0: b9000041 str w1, [x2] -ffffff80400063e4: 52800161 mov w1, #0xb // #11 -ffffff80400063e8: b9003c01 str w1, [x0, #60] -ffffff80400063ec: 528001e1 mov w1, #0xf // #15 -ffffff80400063f0: b9003c01 str w1, [x0, #60] -ffffff80400063f4: 52820001 mov w1, #0x1000 // #4096 -ffffff80400063f8: b81f4001 stur w1, [x0, #-12] -ffffff80400063fc: b81fc01f stur wzr, [x0, #-4] -ffffff8040006400: b9400000 ldr w0, [x0] -ffffff8040006404: 35000080 cbnz w0, ffffff8040006414 <virtio_disk_init+0x108> -ffffff8040006408: b0000000 adrp x0, ffffff8040007000 <etext> -ffffff804000640c: 91189400 add x0, x0, #0x625 -ffffff8040006410: 17ffffe2 b ffffff8040006398 <virtio_disk_init+0x8c> -ffffff8040006414: 71001c1f cmp w0, #0x7 -ffffff8040006418: 54000088 b.hi ffffff8040006428 <virtio_disk_init+0x11c> // b.pmore -ffffff804000641c: b0000000 adrp x0, ffffff8040007000 <etext> -ffffff8040006420: 91190000 add x0, x0, #0x640 -ffffff8040006424: 17ffffdd b ffffff8040006398 <virtio_disk_init+0x8c> -ffffff8040006428: 929ff8e0 mov x0, #0xffffffffffff0038 // #-65480 -ffffff804000642c: f2a14000 movk x0, #0xa00, lsl #16 -ffffff8040006430: f2dff000 movk x0, #0xff80, lsl #32 -ffffff8040006434: 52800101 mov w1, #0x8 // #8 -ffffff8040006438: d0000113 adrp x19, ffffff8040028000 <disk> -ffffff804000643c: 91000273 add x19, x19, #0x0 -ffffff8040006440: 52840002 mov w2, #0x2000 // #8192 -ffffff8040006444: b9000001 str w1, [x0] -ffffff8040006448: 52800001 mov w1, #0x0 // #0 -ffffff804000644c: aa1303e0 mov x0, x19 -ffffff8040006450: 97ffea26 bl ffffff8040000ce8 <memset> -ffffff8040006454: d2c01000 mov x0, #0x8000000000 // #549755813888 -ffffff8040006458: 929ff7e1 mov x1, #0xffffffffffff0040 // #-65472 -ffffff804000645c: f2a14001 movk x1, #0xa00, lsl #16 -ffffff8040006460: 8b000260 add x0, x19, x0 -ffffff8040006464: d34cfc00 lsr x0, x0, #12 -ffffff8040006468: f2dff001 movk x1, #0xff80, lsl #32 -ffffff804000646c: b9000020 str w0, [x1] -ffffff8040006470: d0000100 adrp x0, ffffff8040028000 <disk> -ffffff8040006474: 91020000 add x0, x0, #0x80 -ffffff8040006478: f9100273 str x19, [x19, #8192] -ffffff804000647c: f9100660 str x0, [x19, #8200] -ffffff8040006480: f0000100 adrp x0, ffffff8040029000 <disk+0x1000> -ffffff8040006484: 91000000 add x0, x0, #0x0 -ffffff8040006488: f9100a60 str x0, [x19, #8208] -ffffff804000648c: b200c3e0 mov x0, #0x101010101010101 // #72340172838076673 -ffffff8040006490: f9100e60 str x0, [x19, #8216] -ffffff8040006494: f9400bf3 ldr x19, [sp, #16] -ffffff8040006498: a8c27bfd ldp x29, x30, [sp], #32 -ffffff804000649c: d65f03c0 ret - -ffffff80400064a0 <virtio_disk_rw>: -ffffff80400064a0: a9b97bfd stp x29, x30, [sp, #-112]! -ffffff80400064a4: 910003fd mov x29, sp -ffffff80400064a8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400064ac: aa0003f4 mov x20, x0 -ffffff80400064b0: 90000133 adrp x19, ffffff804002a000 <disk+0x2000> -ffffff80400064b4: 9104a260 add x0, x19, #0x128 -ffffff80400064b8: a9025bf5 stp x21, x22, [sp, #32] -ffffff80400064bc: 2a0103f6 mov w22, w1 -ffffff80400064c0: b9400e95 ldr w21, [x20, #12] -ffffff80400064c4: a9046bf9 stp x25, x26, [sp, #64] -ffffff80400064c8: 90000139 adrp x25, ffffff804002a000 <disk+0x2000> -ffffff80400064cc: 9100633a add x26, x25, #0x18 -ffffff80400064d0: a90363f7 stp x23, x24, [sp, #48] -ffffff80400064d4: d0000118 adrp x24, ffffff8040028000 <disk> -ffffff80400064d8: 91000318 add x24, x24, #0x0 -ffffff80400064dc: 531f7ab5 lsl w21, w21, #1 -ffffff80400064e0: a90573fb stp x27, x28, [sp, #80] -ffffff80400064e4: 97ffe9c7 bl ffffff8040000c00 <acquire> -ffffff80400064e8: d2800002 mov x2, #0x0 // #0 -ffffff80400064ec: 91006324 add x4, x25, #0x18 -ffffff80400064f0: 910183fb add x27, sp, #0x60 -ffffff80400064f4: 2a0203fc mov w28, w2 -ffffff80400064f8: d2800003 mov x3, #0x0 // #0 -ffffff80400064fc: 38636881 ldrb w1, [x4, x3] -ffffff8040006500: 2a0303e0 mov w0, w3 -ffffff8040006504: 34000121 cbz w1, ffffff8040006528 <virtio_disk_rw+0x88> -ffffff8040006508: 8b23c301 add x1, x24, w3, sxtw -ffffff804000650c: 91400821 add x1, x1, #0x2, lsl #12 -ffffff8040006510: 3900603f strb wzr, [x1, #24] -ffffff8040006514: 3100041f cmn w0, #0x1 -ffffff8040006518: b8227b60 str w0, [x27, x2, lsl #2] -ffffff804000651c: 54000221 b.ne ffffff8040006560 <virtio_disk_rw+0xc0> // b.any -ffffff8040006520: d2800017 mov x23, #0x0 // #0 -ffffff8040006524: 14000009 b ffffff8040006548 <virtio_disk_rw+0xa8> -ffffff8040006528: 91000463 add x3, x3, #0x1 -ffffff804000652c: f100207f cmp x3, #0x8 -ffffff8040006530: 54fffe61 b.ne ffffff80400064fc <virtio_disk_rw+0x5c> // b.any -ffffff8040006534: 12800000 mov w0, #0xffffffff // #-1 -ffffff8040006538: 17fffff7 b ffffff8040006514 <virtio_disk_rw+0x74> -ffffff804000653c: b8777b60 ldr w0, [x27, x23, lsl #2] -ffffff8040006540: 910006f7 add x23, x23, #0x1 -ffffff8040006544: 97ffff56 bl ffffff804000629c <free_desc> -ffffff8040006548: 6b17039f cmp w28, w23 -ffffff804000654c: 54ffff8c b.gt ffffff804000653c <virtio_disk_rw+0x9c> -ffffff8040006550: 9104a261 add x1, x19, #0x128 -ffffff8040006554: aa1a03e0 mov x0, x26 -ffffff8040006558: 97ffeecc bl ffffff8040002088 <sleep> -ffffff804000655c: 17ffffe3 b ffffff80400064e8 <virtio_disk_rw+0x48> -ffffff8040006560: 91000442 add x2, x2, #0x1 -ffffff8040006564: f1000c5f cmp x2, #0x3 -ffffff8040006568: 54fffc61 b.ne ffffff80400064f4 <virtio_disk_rw+0x54> // b.any -ffffff804000656c: b94063e7 ldr w7, [sp, #96] -ffffff8040006570: d0000100 adrp x0, ffffff8040028000 <disk> -ffffff8040006574: 91000000 add x0, x0, #0x0 -ffffff8040006578: 710002df cmp w22, #0x0 -ffffff804000657c: 1a9f07e1 cset w1, ne // ne = any -ffffff8040006580: d2c01006 mov x6, #0x8000000000 // #549755813888 -ffffff8040006584: f9500004 ldr x4, [x0, #8192] -ffffff8040006588: 93407ce2 sxtw x2, w7 -ffffff804000658c: 91080042 add x2, x2, #0x200 -ffffff8040006590: d37cec43 lsl x3, x2, #4 -ffffff8040006594: 8b021002 add x2, x0, x2, lsl #4 -ffffff8040006598: d1400868 sub x8, x3, #0x2, lsl #12 -ffffff804000659c: 8b080085 add x5, x4, x8 -ffffff80400065a0: 29157c41 stp w1, wzr, [x2, #168] -ffffff80400065a4: 9102a061 add x1, x3, #0xa8 -ffffff80400065a8: 9100c063 add x3, x3, #0x30 -ffffff80400065ac: 8b000021 add x1, x1, x0 -ffffff80400065b0: f9005855 str x21, [x2, #176] -ffffff80400065b4: 8b000063 add x3, x3, x0 -ffffff80400065b8: 8b060021 add x1, x1, x6 -ffffff80400065bc: 8b060063 add x3, x3, x6 -ffffff80400065c0: f8286881 str x1, [x4, x8] -ffffff80400065c4: 52800201 mov w1, #0x10 // #16 -ffffff80400065c8: b90008a1 str w1, [x5, #8] -ffffff80400065cc: 52800021 mov w1, #0x1 // #1 -ffffff80400065d0: 790018a1 strh w1, [x5, #12] -ffffff80400065d4: b94067e1 ldr w1, [sp, #100] -ffffff80400065d8: 79001ca1 strh w1, [x5, #14] -ffffff80400065dc: 91016285 add x5, x20, #0x58 -ffffff80400065e0: 937c7c28 sbfiz x8, x1, #4, #32 -ffffff80400065e4: 8b0600a5 add x5, x5, x6 -ffffff80400065e8: 8b21d081 add x1, x4, w1, sxtw #4 -ffffff80400065ec: f8286885 str x5, [x4, x8] -ffffff80400065f0: 52808005 mov w5, #0x400 // #1024 -ffffff80400065f4: b9000825 str w5, [x1, #8] -ffffff80400065f8: 1a9f17e5 cset w5, eq // eq = none -ffffff80400065fc: 531f38a5 ubfiz w5, w5, #1, #15 -ffffff8040006600: 320000a5 orr w5, w5, #0x1 -ffffff8040006604: 79001825 strh w5, [x1, #12] -ffffff8040006608: b9406be5 ldr w5, [sp, #104] -ffffff804000660c: 79001c25 strh w5, [x1, #14] -ffffff8040006610: 12800001 mov w1, #0xffffffff // #-1 -ffffff8040006614: 3900c041 strb w1, [x2, #48] -ffffff8040006618: 937c7ca1 sbfiz x1, x5, #4, #32 -ffffff804000661c: 8b25d085 add x5, x4, w5, sxtw #4 -ffffff8040006620: f8216883 str x3, [x4, x1] -ffffff8040006624: d2800021 mov x1, #0x1 // #1 -ffffff8040006628: f2c00041 movk x1, #0x2, lsl #32 -ffffff804000662c: f90004a1 str x1, [x5, #8] -ffffff8040006630: 52800021 mov w1, #0x1 // #1 -ffffff8040006634: b9000681 str w1, [x20, #4] -ffffff8040006638: f9500401 ldr x1, [x0, #8200] -ffffff804000663c: f9001454 str x20, [x2, #40] -ffffff8040006640: 79400422 ldrh w2, [x1, #2] -ffffff8040006644: d37f0842 ubfiz x2, x2, #1, #3 -ffffff8040006648: 8b020021 add x1, x1, x2 -ffffff804000664c: 79000827 strh w7, [x1, #4] -ffffff8040006650: d5033bbf dmb ish -ffffff8040006654: f9500401 ldr x1, [x0, #8200] -ffffff8040006658: 79400420 ldrh w0, [x1, #2] -ffffff804000665c: 11000400 add w0, w0, #0x1 -ffffff8040006660: 79000420 strh w0, [x1, #2] -ffffff8040006664: d5033bbf dmb ish -ffffff8040006668: 929ff5e0 mov x0, #0xffffffffffff0050 // #-65456 -ffffff804000666c: f2a14000 movk x0, #0xa00, lsl #16 -ffffff8040006670: f2dff000 movk x0, #0xff80, lsl #32 -ffffff8040006674: 9104a275 add x21, x19, #0x128 -ffffff8040006678: b900001f str wzr, [x0] -ffffff804000667c: 14000004 b ffffff804000668c <virtio_disk_rw+0x1ec> -ffffff8040006680: aa1503e1 mov x1, x21 -ffffff8040006684: aa1403e0 mov x0, x20 -ffffff8040006688: 97ffee80 bl ffffff8040002088 <sleep> -ffffff804000668c: b9400680 ldr w0, [x20, #4] -ffffff8040006690: 7100041f cmp w0, #0x1 -ffffff8040006694: 54ffff60 b.eq ffffff8040006680 <virtio_disk_rw+0x1e0> // b.none -ffffff8040006698: b94063f4 ldr w20, [sp, #96] -ffffff804000669c: d0000115 adrp x21, ffffff8040028000 <disk> -ffffff80400066a0: 910002b5 add x21, x21, #0x0 -ffffff80400066a4: 8b34d2a0 add x0, x21, w20, sxtw #4 -ffffff80400066a8: f910141f str xzr, [x0, #8232] -ffffff80400066ac: 2a1403e0 mov w0, w20 -ffffff80400066b0: f95002a1 ldr x1, [x21, #8192] -ffffff80400066b4: 8b34d021 add x1, x1, w20, sxtw #4 -ffffff80400066b8: 79401836 ldrh w22, [x1, #12] -ffffff80400066bc: 79401c34 ldrh w20, [x1, #14] -ffffff80400066c0: 97fffef7 bl ffffff804000629c <free_desc> -ffffff80400066c4: 3707ff56 tbnz w22, #0, ffffff80400066ac <virtio_disk_rw+0x20c> -ffffff80400066c8: 9104a260 add x0, x19, #0x128 -ffffff80400066cc: a94153f3 ldp x19, x20, [sp, #16] -ffffff80400066d0: a9425bf5 ldp x21, x22, [sp, #32] -ffffff80400066d4: a94363f7 ldp x23, x24, [sp, #48] -ffffff80400066d8: a9446bf9 ldp x25, x26, [sp, #64] -ffffff80400066dc: a94573fb ldp x27, x28, [sp, #80] -ffffff80400066e0: a8c77bfd ldp x29, x30, [sp], #112 -ffffff80400066e4: 17ffe972 b ffffff8040000cac <release> - -ffffff80400066e8 <virtio_disk_intr>: -ffffff80400066e8: a9bd7bfd stp x29, x30, [sp, #-48]! -ffffff80400066ec: 910003fd mov x29, sp -ffffff80400066f0: f90013f5 str x21, [sp, #32] -ffffff80400066f4: 90000135 adrp x21, ffffff804002a000 <disk+0x2000> -ffffff80400066f8: 9104a2a0 add x0, x21, #0x128 -ffffff80400066fc: a90153f3 stp x19, x20, [sp, #16] -ffffff8040006700: 97ffe940 bl ffffff8040000c00 <acquire> -ffffff8040006704: 929ff3e0 mov x0, #0xffffffffffff0060 // #-65440 -ffffff8040006708: f2a14000 movk x0, #0xa00, lsl #16 -ffffff804000670c: f2dff000 movk x0, #0xff80, lsl #32 -ffffff8040006710: 929ff361 mov x1, #0xffffffffffff0064 // #-65436 -ffffff8040006714: f2a14001 movk x1, #0xa00, lsl #16 -ffffff8040006718: b9400000 ldr w0, [x0] -ffffff804000671c: f2dff001 movk x1, #0xff80, lsl #32 -ffffff8040006720: 12000400 and w0, w0, #0x3 -ffffff8040006724: b9000020 str w0, [x1] -ffffff8040006728: d5033bbf dmb ish -ffffff804000672c: d0000113 adrp x19, ffffff8040028000 <disk> -ffffff8040006730: 91000273 add x19, x19, #0x0 -ffffff8040006734: 91400a74 add x20, x19, #0x2, lsl #12 -ffffff8040006738: f9500a60 ldr x0, [x19, #8208] -ffffff804000673c: 79404281 ldrh w1, [x20, #32] -ffffff8040006740: 79400400 ldrh w0, [x0, #2] -ffffff8040006744: 6b00003f cmp w1, w0 -ffffff8040006748: 540000c1 b.ne ffffff8040006760 <virtio_disk_intr+0x78> // b.any -ffffff804000674c: 9104a2a0 add x0, x21, #0x128 -ffffff8040006750: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040006754: f94013f5 ldr x21, [sp, #32] -ffffff8040006758: a8c37bfd ldp x29, x30, [sp], #48 -ffffff804000675c: 17ffe954 b ffffff8040000cac <release> -ffffff8040006760: d5033bbf dmb ish -ffffff8040006764: 79404281 ldrh w1, [x20, #32] -ffffff8040006768: f9500a60 ldr x0, [x19, #8208] -ffffff804000676c: d37d0821 ubfiz x1, x1, #3, #3 -ffffff8040006770: 8b010000 add x0, x0, x1 -ffffff8040006774: b9800400 ldrsw x0, [x0, #4] -ffffff8040006778: 91080000 add x0, x0, #0x200 -ffffff804000677c: 8b001260 add x0, x19, x0, lsl #4 -ffffff8040006780: 3940c001 ldrb w1, [x0, #48] -ffffff8040006784: 34000081 cbz w1, ffffff8040006794 <virtio_disk_intr+0xac> -ffffff8040006788: b0000000 adrp x0, ffffff8040007000 <etext> -ffffff804000678c: 91198000 add x0, x0, #0x660 -ffffff8040006790: 97ffe75c bl ffffff8040000500 <panic> -ffffff8040006794: f9401400 ldr x0, [x0, #40] -ffffff8040006798: b900041f str wzr, [x0, #4] -ffffff804000679c: 97ffee94 bl ffffff80400021ec <wakeup> -ffffff80400067a0: 79404280 ldrh w0, [x20, #32] -ffffff80400067a4: 11000400 add w0, w0, #0x1 -ffffff80400067a8: 79004280 strh w0, [x20, #32] -ffffff80400067ac: 17ffffe3 b ffffff8040006738 <virtio_disk_intr+0x50> - -ffffff80400067b0 <gicv3init>: -ffffff80400067b0: a9be7bfd stp x29, x30, [sp, #-32]! -ffffff80400067b4: 910003fd mov x29, sp -ffffff80400067b8: b25963e0 mov x0, #0xffffff8000000000 // #-549755813888 -ffffff80400067bc: f2a10000 movk x0, #0x800, lsl #16 -ffffff80400067c0: b25963e2 mov x2, #0xffffff8000000000 // #-549755813888 -ffffff80400067c4: f2a10142 movk x2, #0x80a, lsl #16 -ffffff80400067c8: a90153f3 stp x19, x20, [sp, #16] -ffffff80400067cc: b0000134 adrp x20, ffffff804002b000 <gicv3> -ffffff80400067d0: 91000281 add x1, x20, #0x0 -ffffff80400067d4: f9000280 str x0, [x20] -ffffff80400067d8: f9000422 str x2, [x1, #8] -ffffff80400067dc: b900001f str wzr, [x0] -ffffff80400067e0: b9400413 ldr w19, [x0, #4] -ffffff80400067e4: b0000000 adrp x0, ffffff8040007000 <etext> -ffffff80400067e8: 9119e000 add x0, x0, #0x678 -ffffff80400067ec: 12001273 and w19, w19, #0x1f -ffffff80400067f0: 2a1303e1 mov w1, w19 -ffffff80400067f4: 97ffe755 bl ffffff8040000548 <printf> -ffffff80400067f8: f9400280 ldr x0, [x20] -ffffff80400067fc: 52800001 mov w1, #0x0 // #0 -ffffff8040006800: 12800003 mov w3, #0xffffffff // #-1 -ffffff8040006804: 91020002 add x2, x0, #0x80 -ffffff8040006808: 6b13003f cmp w1, w19 -ffffff804000680c: 540003c1 b.ne ffffff8040006884 <gicv3init+0xd4> // b.any -ffffff8040006810: b9442001 ldr w1, [x0, #1056] -ffffff8040006814: a94153f3 ldp x19, x20, [sp, #16] -ffffff8040006818: 12105c21 and w1, w1, #0xffff00ff -ffffff804000681c: b9042001 str w1, [x0, #1056] -ffffff8040006820: b9482001 ldr w1, [x0, #2080] -ffffff8040006824: 12105c21 and w1, w1, #0xffff00ff -ffffff8040006828: 32180021 orr w1, w1, #0x100 -ffffff804000682c: b9082001 str w1, [x0, #2080] -ffffff8040006830: b9428401 ldr w1, [x0, #644] -ffffff8040006834: 321f0021 orr w1, w1, #0x2 -ffffff8040006838: b9028401 str w1, [x0, #644] -ffffff804000683c: b9410401 ldr w1, [x0, #260] -ffffff8040006840: 321f0021 orr w1, w1, #0x2 -ffffff8040006844: b9010401 str w1, [x0, #260] -ffffff8040006848: b9443001 ldr w1, [x0, #1072] -ffffff804000684c: 12185c21 and w1, w1, #0xffffff00 -ffffff8040006850: b9043001 str w1, [x0, #1072] -ffffff8040006854: b9483001 ldr w1, [x0, #2096] -ffffff8040006858: 12185c21 and w1, w1, #0xffffff00 -ffffff804000685c: 32000021 orr w1, w1, #0x1 -ffffff8040006860: b9083001 str w1, [x0, #2096] -ffffff8040006864: b9428401 ldr w1, [x0, #644] -ffffff8040006868: 32100021 orr w1, w1, #0x10000 -ffffff804000686c: b9028401 str w1, [x0, #644] -ffffff8040006870: b9410401 ldr w1, [x0, #260] -ffffff8040006874: 32100021 orr w1, w1, #0x10000 -ffffff8040006878: b9010401 str w1, [x0, #260] -ffffff804000687c: a8c27bfd ldp x29, x30, [sp], #32 -ffffff8040006880: d65f03c0 ret -ffffff8040006884: 11000421 add w1, w1, #0x1 -ffffff8040006888: b8004443 str w3, [x2], #4 -ffffff804000688c: 17ffffdf b ffffff8040006808 <gicv3init+0x58> - -ffffff8040006890 <gicv3inithart>: -ffffff8040006890: d53800a0 mrs x0, mpidr_el1 -ffffff8040006894: 52800001 mov w1, #0x0 // #0 -ffffff8040006898: d518cce1 msr icc_igrpen1_el1, x1 -ffffff804000689c: 52801fe1 mov w1, #0xff // #255 -ffffff80400068a0: d5184601 msr icc_pmr_el1, x1 -ffffff80400068a4: b0000123 adrp x3, ffffff804002b000 <gicv3> -ffffff80400068a8: 91000061 add x1, x3, #0x0 -ffffff80400068ac: 8b200c20 add x0, x1, w0, uxtb #3 -ffffff80400068b0: f9400401 ldr x1, [x0, #8] -ffffff80400068b4: b900003f str wzr, [x1] -ffffff80400068b8: d538cca0 mrs x0, icc_sre_el1 -ffffff80400068bc: 32000000 orr w0, w0, #0x1 -ffffff80400068c0: d518cca0 msr icc_sre_el1, x0 -ffffff80400068c4: 12800002 mov w2, #0xffffffff // #-1 -ffffff80400068c8: 91404020 add x0, x1, #0x10, lsl #12 -ffffff80400068cc: b9008002 str w2, [x0, #128] -ffffff80400068d0: b90d001f str wzr, [x0, #3328] -ffffff80400068d4: b9401422 ldr w2, [x1, #20] -ffffff80400068d8: 121e7842 and w2, w2, #0xfffffffd -ffffff80400068dc: b9001422 str w2, [x1, #20] -ffffff80400068e0: b9401422 ldr w2, [x1, #20] -ffffff80400068e4: 3717ffe2 tbnz w2, #2, ffffff80400068e0 <gicv3inithart+0x50> -ffffff80400068e8: b9441801 ldr w1, [x0, #1048] -ffffff80400068ec: 12005c21 and w1, w1, #0xffffff -ffffff80400068f0: b9041801 str w1, [x0, #1048] -ffffff80400068f4: b9428001 ldr w1, [x0, #640] -ffffff80400068f8: 32050021 orr w1, w1, #0x8000000 -ffffff80400068fc: b9028001 str w1, [x0, #640] -ffffff8040006900: b9410001 ldr w1, [x0, #256] -ffffff8040006904: 32050021 orr w1, w1, #0x8000000 -ffffff8040006908: b9010001 str w1, [x0, #256] -ffffff804000690c: 52800061 mov w1, #0x3 // #3 -ffffff8040006910: f9400060 ldr x0, [x3] -ffffff8040006914: b9000001 str w1, [x0] -ffffff8040006918: 52800020 mov w0, #0x1 // #1 -ffffff804000691c: d518cce0 msr icc_igrpen1_el1, x0 -ffffff8040006920: d65f03c0 ret - -ffffff8040006924 <gic_iar_irq>: -ffffff8040006924: 12002400 and w0, w0, #0x3ff -ffffff8040006928: d65f03c0 ret - -ffffff804000692c <gic_iar>: -ffffff804000692c: d538cc00 mrs x0, icc_iar1_el1 -ffffff8040006930: d65f03c0 ret - -ffffff8040006934 <gic_eoi>: -ffffff8040006934: d518cc20 msr icc_eoir1_el1, x0 -ffffff8040006938: d65f03c0 ret - ...
--- a/xv6-aarch64/kernel/kernel.sym Thu Jan 18 10:56:41 2024 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ -ffffff8040000000 .text -ffffff8040007000 .rodata -ffffff8040007688 .eh_frame -ffffff80400092e0 .data -ffffff804000a000 .bss -0000000000000000 .debug_line -0000000000000000 .debug_line_str -0000000000000000 .debug_info -0000000000000000 .debug_abbrev -0000000000000000 .debug_aranges -0000000000000000 .debug_str -0000000000000000 .comment -0000000000000000 entry.o -ffffff8040000010 entry -ffffff80400000dc entryothers -ffffff804000004c l2epgt_loop -ffffff80400000ac l2kpgt_loop -ffffff8040000114 _start -0000000000000000 start.c -0000000000000000 console.c -ffffff80400002e4 consputc.part.0 -0000000000000000 printf.c -ffffff8040000478 printint.constprop.0 -ffffff8040007020 digits -ffffff80400160a8 pr -0000000000000000 uart.c -0000000000000000 kalloc.c -0000000000000000 spinlock.c -0000000000000000 string.c -0000000000000000 main.c -ffffff8040016138 started -0000000000000000 vm.c -ffffff8040000f8c flush_tlb -ffffff8040001090 uvmunmap.part.0 -0000000000000000 proc.c -ffffff80400019a0 freeproc -ffffff8040001c30 allocproc -ffffff8040007248 states.0 -ffffff80400092e0 first.1 -0000000000000000 swtch.o -0000000000000000 trap.c -0000000000000000 syscall.c -ffffff8040002844 argraw -ffffff8040007340 syscalls -0000000000000000 sysproc.c -0000000000000000 bio.c -0000000000000000 fs.c -ffffff8040002f0c bfree -ffffff8040002f78 balloc -ffffff8040003078 iget -ffffff8040003144 bmap -ffffff8040003a10 namex -0000000000000000 log.c -ffffff8040003c50 write_head -ffffff8040003cb8 install_trans -0000000000000000 sleeplock.c -0000000000000000 file.c -0000000000000000 pipe.c -0000000000000000 exec.c -0000000000000000 sysfile.c -ffffff8040004bf8 fdalloc -ffffff8040004c4c create -ffffff8040004da8 argfd.constprop.0 -0000000000000000 trapasm.o -ffffff8040005f84 el1sync -ffffff8040006034 el1irq -ffffff80400060e4 el0sync -ffffff8040006198 el0irq -ffffff80400061f4 trapret -0000000000000000 timer.c -0000000000000000 virtio_disk.c -ffffff804000629c free_desc -ffffff8040028000 disk -0000000000000000 gicv3.c -ffffff804002b000 gicv3 -ffffff80400011a8 mappages -ffffff80400018d0 copyinstr -ffffff80400001e8 consoleread -ffffff8040000e14 safestrcpy -ffffff8040004f10 sys_close -ffffff8040002054 yield -ffffff8040026128 log -ffffff8040016118 kmem -ffffff80400007c4 uartinit -ffffff8040002408 either_copyout -ffffff8040006254 timerinit -ffffff8040016580 proc -ffffff8040004390 fileread -ffffff8040000548 printf -ffffff8040002b00 sys_sbrk -ffffff80400160c8 panicked -ffffff80400160f8 uart_tx_buf -ffffff8040001f84 sched -ffffff8040000d3c memmove -ffffff80400029f8 syscall -ffffff8040003830 writei -ffffff8040002ab4 sys_fork -ffffff804001bfa0 bcache -ffffff80400053b4 sys_mkdir -ffffff80400013b4 uvmunmap -ffffff804000394c namecmp -ffffff8040000b48 __aarch64_swp4_acq -ffffff8040002264 reparent -ffffff80400029cc argstr -ffffff80400014d0 uvmdealloc -ffffff80400041dc filedup -ffffff8040003c28 namei -ffffff8040002c50 binit -ffffff804000177c uvmclear -ffffff8040004e60 sys_read -ffffff8040003208 fsinit -ffffff8040000d98 memcpy -ffffff8040001278 kvmmap -ffffff804000086c uartstart -ffffff80400009f8 kfree -ffffff8040001b50 mycpu -ffffff8040003634 iput -ffffff80400012a8 kvmmake -ffffff8040002728 devintr -ffffff80400092e4 nextpid -ffffff804000a000 l2kpgt -ffffff8040004160 fileinit -ffffff8040000b6c initlock -ffffff80400017b0 copyout -ffffff8040002088 sleep -ffffff804000c000 l2entrypgt -ffffff80400036f4 stati -ffffff8040016160 wait_lock -ffffff8040002be0 sys_kill -ffffff804000468c pipeclose -ffffff8040004f54 sys_fstat -ffffff8040000174 consolewrite -ffffff8040003e5c end_op -ffffff8040000a74 freerange -ffffff8040000fa0 kvminithart -ffffff804000152c uvmalloc -ffffff8040001408 uvminit -ffffff804000167c uvmcopy -ffffff8040016578 initproc -ffffff8040002808 kernelirq -ffffff8040003544 iunlock -ffffff804000e000 stack0 -ffffff8040002b48 sys_sleep -ffffff804000013c psci_call -ffffff8040004f98 sys_link -ffffff8040001140 uva2ka -ffffff8040004174 filealloc -ffffff80400021ec wakeup -ffffff804000630c virtio_disk_init -ffffff8040001b6c myproc -ffffff8040003430 idup -ffffff80400160e8 uart_tx_r -ffffff8040000fc0 walk -ffffff804000525c sys_open -ffffff80400160f0 uart_tx_w -ffffff8040003720 readi -ffffff8040000318 consoleintr -ffffff8040000308 consputc -ffffff8040006934 gic_eoi -ffffff8040002380 kill -ffffff804000d000 l1entrypgt -ffffff8040001be8 allocpid -ffffff80400032e4 ialloc -ffffff804000099c uartintr -ffffff8040001840 copyin -ffffff80400025d0 trapinit -ffffff8040001644 uvmfree -ffffff804002b010 end -ffffff8040003590 itrunc -ffffff8040004488 filewrite -ffffff804000297c argint -ffffff80400048e8 exec -ffffff8040007000 etext -ffffff8040004eb8 sys_write -ffffff8040000cac release -ffffff8040002920 fetchstr -ffffff80400020e4 wait -ffffff804000624c usertrapret -ffffff8040006890 gicv3inithart -ffffff8040001ee8 scheduler -ffffff8040003954 dirlookup -ffffff8040003df4 begin_op -ffffff8040004234 fileclose -ffffff804002b010 bss_end -ffffff80400025f4 usertrap -ffffff8040000d9c strncmp -ffffff804001bf80 tickslock -ffffff80400046f0 pipewrite -ffffff8040000dd4 strncpy -ffffff80400261d0 ftable -ffffff80400066e8 virtio_disk_intr -ffffff8040004e10 sys_dup -ffffff8040000500 panic -0000000000004202 bss_size -ffffff804000a000 bss_start -ffffff8040001ba8 forkret -ffffff8040000d04 memcmp -ffffff8040002474 either_copyin -ffffff8040001de8 fork -ffffff80400026e8 clockintr -ffffff8040016178 cpus -ffffff80400040cc releasesleep -ffffff8040000000 _entry -ffffff8040000b78 holding -ffffff8040024660 sb -ffffff8040000c00 acquire -ffffff8040003c44 nameiparent -ffffff8040005800 alltraps -ffffff80400092e8 initcode -ffffff80400025e4 trapinithart -ffffff80400033a4 iupdate -ffffff8040000ce8 memset -ffffff8040000e58 main -ffffff80400014c4 switchkvm -ffffff8040003f7c log_write -ffffff8040004074 acquiresleep -ffffff80400050b0 sys_unlink -ffffff8040001398 kvminit -ffffff8040000ab0 kinit1 -ffffff8040002ed0 bunpin -ffffff80400029a4 argaddr -ffffff8040002c14 sys_uptime -ffffff8040000970 uartgetc -ffffff80400027c4 userirq -ffffff804000078c printfinit -ffffff80400160d0 uart_tx_lock -ffffff80400013d4 uvmcreate -ffffff8040001d74 growproc -ffffff8040004108 holdingsleep -ffffff8040001cf0 userinit -ffffff8040002ce4 bread -ffffff80400047f0 piperead -ffffff80400067b0 gicv3init -ffffff804001bf98 ticks -ffffff8040006298 timerintr -ffffff8040000430 consoleinit -ffffff80400024e0 procdump -ffffff80400008ec uartputc -ffffff8040002e04 brelse -ffffff8040003474 ilock -ffffff804000550c sys_exec -ffffff8040002584 swtch -ffffff80400036d0 iunlockput -ffffff8040000bb0 push_off -ffffff8040000c54 pop_off -ffffff8040002dc8 bwrite -ffffff804000081c uartputc_sync -ffffff80400022c0 exit -ffffff80400015e4 freewalk -ffffff8040002acc sys_wait -ffffff8040002a68 sys_exit -ffffff8040003b54 dirlink -ffffff8040004038 initsleeplock -ffffff8040000170 start -ffffff8040016140 kernel_pagetable -ffffff80400064a0 virtio_disk_rw -ffffff8040006924 gic_iar_irq -ffffff8040000e3c strlen -ffffff8040005608 sys_pipe -ffffff8040003280 iinit -ffffff8040003d64 initlog -ffffff8040016000 cons -ffffff8040000af0 kalloc -ffffff80400028c0 fetchaddr -ffffff8040027188 devsw -ffffff8040002a9c sys_getpid -ffffff80400045d4 pipealloc -ffffff8040005484 sys_chdir -ffffff80400019e8 proc_mapstacks -ffffff804000692c gic_iar -ffffff804000b000 l1kpgt -ffffff804000268c kerneltrap -ffffff8040002e94 bpin -ffffff8040001a94 procinit -ffffff8040024680 itable -ffffff804000540c sys_mknod -ffffff8040001484 switchuvm -ffffff8040000aec kinit2 -ffffff8040004314 filestat -ffffff8040016148 pid_lock
--- a/xv6-aarch64/kernel/spinlock.d Thu Jan 18 10:56:41 2024 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -kernel/spinlock.o: kernel/spinlock.c kernel/types.h kernel/param.h \ - kernel/memlayout.h kernel/spinlock.h kernel/aarch64.h kernel/proc.h \ - kernel/defs.h /usr/lib/gcc-cross/aarch64-linux-gnu/11/include/stdint.h \ - /usr/lib/gcc-cross/aarch64-linux-gnu/11/include/stdint-gcc.h