tf 93 exec.c proc->tf->eip = elf.entry; // main tf 94 exec.c proc->tf->esp = sp; tf 60 proc.c sp -= sizeof *p->tf; tf 61 proc.c p->tf = (struct trapframe*)sp; tf 90 proc.c memset(p->tf, 0, sizeof(*p->tf)); tf 91 proc.c p->tf->cs = (SEG_UCODE << 3) | DPL_USER; tf 92 proc.c p->tf->ds = (SEG_UDATA << 3) | DPL_USER; tf 93 proc.c p->tf->es = p->tf->ds; tf 94 proc.c p->tf->ss = p->tf->ds; tf 95 proc.c p->tf->eflags = FL_IF; tf 96 proc.c p->tf->esp = PGSIZE; tf 97 proc.c p->tf->eip = 0; // beginning of initcode.S tf 147 proc.c *np->tf = *proc->tf; tf 150 proc.c np->tf->eax = 0; tf 62 proc.h struct trapframe *tf; // Trap frame for current syscall tf 48 syscall.c return fetchint(proc->tf->esp + 4 + 4*n, ip); tf 131 syscall.c num = proc->tf->eax; tf 133 syscall.c proc->tf->eax = syscalls[num](); tf 137 syscall.c proc->tf->eax = -1; tf 37 trap.c trap(struct trapframe *tf) tf 39 trap.c if(tf->trapno == T_SYSCALL){ tf 42 trap.c proc->tf = tf; tf 49 trap.c switch(tf->trapno){ tf 77 trap.c cpu->id, tf->cs, tf->eip); tf 83 trap.c if(proc == 0 || (tf->cs&3) == 0){ tf 86 trap.c tf->trapno, cpu->id, tf->eip, rcr2()); tf 92 trap.c proc->pid, proc->name, tf->trapno, tf->err, cpu->id, tf->eip, tf 100 trap.c if(proc && proc->killed && (tf->cs&3) == DPL_USER) tf 105 trap.c if(proc && proc->state == RUNNING && tf->trapno == T_IRQ0+IRQ_TIMER) tf 109 trap.c if(proc && proc->killed && (tf->cs&3) == DPL_USER)