trapframe 124 kernel/exec.c p->trapframe->a1 = sp; trapframe 136 kernel/exec.c p->trapframe->epc = elf.entry; // initial program counter = ulib.c:start() trapframe 137 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 197 kernel/proc.c if (mappages(pagetable, TRAPFRAME, PGSIZE, (uint64)(p->trapframe), trapframe 279 kernel/proc.c *(np->trapframe) = *(p->trapframe); trapframe 282 kernel/proc.c np->trapframe->a0 = 0; trapframe 532 kernel/proc.c p->trapframe->a0 = kexec("/init", (char *[]){"/init", 0}); trapframe 533 kernel/proc.c if (p->trapframe->a0 == -1) { trapframe 99 kernel/proc.h struct trapframe *trapframe; // data page for trampoline.S trapframe 40 kernel/syscall.c return p->trapframe->a0; trapframe 42 kernel/syscall.c return p->trapframe->a1; trapframe 44 kernel/syscall.c return p->trapframe->a2; trapframe 46 kernel/syscall.c return p->trapframe->a3; trapframe 48 kernel/syscall.c return p->trapframe->a4; trapframe 50 kernel/syscall.c return p->trapframe->a5; trapframe 142 kernel/syscall.c num = p->trapframe->a7; trapframe 146 kernel/syscall.c p->trapframe->a0 = syscalls[num](); trapframe 149 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 116 kernel/trap.c p->trapframe->kernel_satp = r_satp(); // kernel page table trapframe 117 kernel/trap.c p->trapframe->kernel_sp = p->kstack + PGSIZE; // process's kernel stack trapframe 118 kernel/trap.c p->trapframe->kernel_trap = (uint64)usertrap; trapframe 119 kernel/trap.c p->trapframe->kernel_hartid = r_tp(); // hartid for cpuid() trapframe 131 kernel/trap.c w_sepc(p->trapframe->epc);