trapframe 115 kernel/exec.c p->trapframe->a1 = sp; trapframe 127 kernel/exec.c p->trapframe->epc = elf.entry; // initial program counter = main trapframe 128 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 246 kernel/proc.c p->trapframe->epc = 0; // user program counter trapframe 247 kernel/proc.c p->trapframe->sp = PGSIZE; // user stack pointer trapframe 300 kernel/proc.c *(np->trapframe) = *(p->trapframe); trapframe 303 kernel/proc.c np->trapframe->a0 = 0; 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 51 kernel/trap.c p->trapframe->epc = r_sepc(); trapframe 61 kernel/trap.c p->trapframe->epc += 4; trapframe 105 kernel/trap.c p->trapframe->kernel_satp = r_satp(); // kernel page table trapframe 106 kernel/trap.c p->trapframe->kernel_sp = p->kstack + PGSIZE; // process's kernel stack trapframe 107 kernel/trap.c p->trapframe->kernel_trap = (uint64)usertrap; trapframe 108 kernel/trap.c p->trapframe->kernel_hartid = r_tp(); // hartid for cpuid() trapframe 120 kernel/trap.c w_sepc(p->trapframe->epc);