| plan 9 kernel history: overview | file list | diff list |
1992/0114/port/sysproc.c (diff list | history)
| 1992/0111/sys/src/9/port/sysproc.c:259,265 – 1992/0114/sys/src/9/port/sysproc.c:259,265 (short | long | prev | next) | ||
| 1990/0227 | * Build the stack segment, putting it in kernel virtual for the moment */ | |
| 1991/0523 | if(spage > TSTKSIZ) | |
| 1991/0709 |
| |
| 1992/0114 | error(Enovmem); | |
| 1991/0522 | ||
| 1991/0705 | p->seg[ESEG] = newseg(SG_STACK, TSTKTOP-USTKSIZE, USTKSIZE/BY2PG); | |
| 1992/0111/sys/src/9/port/sysproc.c:528,534 – 1992/0114/sys/src/9/port/sysproc.c:528,534 | ||
| 1991/0705 | switch(s->type&SG_TYPE) { case SG_TEXT: case SG_DATA: | |
| 1992/0114 | error(Ebadarg); | |
| 1991/0705 | default: return ibrk(arg[1], i); } | |
| 1992/0111/sys/src/9/port/sysproc.c:535,541 – 1992/0114/sys/src/9/port/sysproc.c:535,541 | ||
| 1991/0705 | } } | |
| 1992/0114 | error(Ebadarg); | |
| 1990/0227 | } | |
| 1991/0606 | ||
| 1991/0605 | long | |
| 1992/0111/sys/src/9/port/sysproc.c:560,571 – 1992/0114/sys/src/9/port/sysproc.c:560,571 | ||
| 1991/0705 | qunlock(&s->lk); } | |
| 1992/0114 | error(Ebadarg); | |
| 1991/0705 | found: if((ulong)arg >= s->base && (ulong)arg < s->top) { qunlock(&s->lk); | |
| 1992/0114 | error(Ebadarg); | |
| 1991/0705 | } u->p->seg[i] = 0; qunlock(&s->lk); | |
| 1992/0111/sys/src/9/port/sysproc.c:585,597 – 1992/0114/sys/src/9/port/sysproc.c:585,597 | ||
| 1991/0706 | from = PGROUND(arg[0]); s = seg(u->p, from, 1); | |
| 1991/0705 | if(s == 0) | |
| 1992/0114 | error(Ebadarg); | |
| 1991/0705 | ||
| 1991/0712 | pages = (arg[1]+BY2PG-1)/BY2PG; | |
| 1991/0705 | ||
| 1991/0712 | if(from+pages*BY2PG > s->top) { | |
| 1991/0705 | qunlock(&s->lk); | |
| 1992/0114 | error(Ebadarg); | |
| 1991/0705 | } | |
| 1991/0712 | mfreeseg(s, from, pages); | |