sp 15 exec.c uint argc, sz, sp, ustack[3+MAXARG+1]; sp 62 exec.c sp = sz; sp 68 exec.c sp = (sp - (strlen(argv[argc]) + 1)) & ~3; sp 69 exec.c if(copyout(pgdir, sp, argv[argc], strlen(argv[argc]) + 1) < 0) sp 71 exec.c ustack[3+argc] = sp; sp 77 exec.c ustack[2] = sp - (argc+1)*4; // argv pointer sp 79 exec.c sp -= (3+argc+1) * 4; sp 80 exec.c if(copyout(pgdir, sp, ustack, (3+argc+1)*4) < 0) sp 94 exec.c proc->tf->esp = sp; sp 38 proc.c char *sp; sp 57 proc.c sp = p->kstack + KSTACKSIZE; sp 60 proc.c sp -= sizeof *p->tf; sp 61 proc.c p->tf = (struct trapframe*)sp; sp 65 proc.c sp -= 4; sp 66 proc.c *(uint*)sp = (uint)trapret; sp 68 proc.c sp -= sizeof *p->context; sp 69 proc.c p->context = (struct context*)sp;