trapframe 122 kernel/exec.c p->trapframe->a1 = sp; trapframe 134 kernel/exec.c p->trapframe->epc = elf.entry; // initial program counter = main trapframe 135 kernel/exec.c p->trapframe->sp = sp; // initial stack pointer trapframe 129 kernel/proc.c if((p->trapframe = (struct trapframe *)kalloc()) == 0){ trapframe 158 kernel/proc.c if(p->trapframe) trapframe 159 kernel/proc.c kfree((void*)p->trapframe); trapframe 160 kernel/proc.c p->trapframe = 0; trapframe 199 kernel/proc.c (uint64)(p->trapframe), PTE_R | PTE_W) < 0){ trapframe 277 kernel/proc.c *(np->trapframe) = *(p->trapframe); trapframe 280 kernel/proc.c np->trapframe->a0 = 0; trapframe 524 kernel/proc.c p->trapframe->a0 = kexec("/init", (char *[]){ "/init", 0 }); trapframe 525 kernel/proc.c if (p->trapframe->a0 == -1) { trapframe 102 kernel/proc.h struct trapframe *trapframe; // data page for trampoline.S trapframe 39 kernel/syscall.c return p->trapframe->a0; trapframe 41 kernel/syscall.c return p->trapframe->a1; trapframe 43 kernel/syscall.c return p->trapframe->a2; trapframe 45 kernel/syscall.c return p->trapframe->a3; trapframe 47 kernel/syscall.c return p->trapframe->a4; trapframe 49 kernel/syscall.c return p->trapframe->a5; trapframe 137 kernel/syscall.c num = p->trapframe->a7; trapframe 141 kernel/syscall.c p->trapframe->a0 = syscalls[num](); trapframe 145 kernel/syscall.c p->trapframe->a0 = -1; trapframe 52 kernel/trap.c p->trapframe->epc = r_sepc(); trapframe 62 kernel/trap.c p->trapframe->epc += 4; trapframe 115 kernel/trap.c p->trapframe->kernel_satp = r_satp(); // kernel page table trapframe 116 kernel/trap.c p->trapframe->kernel_sp = p->kstack + PGSIZE; // process's kernel stack trapframe 117 kernel/trap.c p->trapframe->kernel_trap = (uint64)usertrap; trapframe 118 kernel/trap.c p->trapframe->kernel_hartid = r_tp(); // hartid for cpuid() trapframe 130 kernel/trap.c w_sepc(p->trapframe->epc);