tf 100 exec.c curproc->tf->eip = elf.entry; // main tf 101 exec.c curproc->tf->esp = sp; tf 102 proc.c sp -= sizeof *p->tf; tf 103 proc.c p->tf = (struct trapframe*)sp; tf 133 proc.c memset(p->tf, 0, sizeof(*p->tf)); tf 134 proc.c p->tf->cs = (SEG_UCODE << 3) | DPL_USER; tf 135 proc.c p->tf->ds = (SEG_UDATA << 3) | DPL_USER; tf 136 proc.c p->tf->es = p->tf->ds; tf 137 proc.c p->tf->ss = p->tf->ds; tf 138 proc.c p->tf->eflags = FL_IF; tf 139 proc.c p->tf->esp = PGSIZE; tf 140 proc.c p->tf->eip = 0; // beginning of initcode.S tf 201 proc.c *np->tf = *curproc->tf; tf 204 proc.c np->tf->eax = 0; tf 45 proc.h struct trapframe *tf; // Trap frame for current syscall tf 52 syscall.c return fetchint((myproc()->tf->esp) + 4 + 4*n, ip); tf 137 syscall.c num = curproc->tf->eax; tf 139 syscall.c curproc->tf->eax = syscalls[num](); tf 143 syscall.c curproc->tf->eax = -1; tf 37 trap.c trap(struct trapframe *tf) tf 39 trap.c if(tf->trapno == T_SYSCALL){ tf 42 trap.c myproc()->tf = tf; tf 49 trap.c switch(tf->trapno){ tf 77 trap.c cpuid(), tf->cs, tf->eip); tf 83 trap.c if(myproc() == 0 || (tf->cs&3) == 0){ tf 86 trap.c tf->trapno, cpuid(), tf->eip, rcr2()); tf 92 trap.c myproc()->pid, myproc()->name, tf->trapno, tf 93 trap.c tf->err, cpuid(), tf->eip, rcr2()); tf 100 trap.c if(myproc() && myproc()->killed && (tf->cs&3) == DPL_USER) tf 106 trap.c tf->trapno == T_IRQ0+IRQ_TIMER) tf 110 trap.c if(myproc() && myproc()->killed && (tf->cs&3) == DPL_USER)