| plan 9 kernel history: overview | file list | diff list |
1992/0323/pc/main.c (diff list | history)
| 1992/0321/sys/src/9/pc/main.c:8,13 – 1992/0323/sys/src/9/pc/main.c:8,14 (short | long | prev | next) | ||
| 1991/0716 | #include "init.h" | |
| 1991/0629 | ||
| 1991/1210 | int machtype; | |
| 1992/0323 | uchar *sp; /* stack pointer for /boot */ | |
| 1991/0711 | ||
| 1991/0716 | void | |
| 1991/0702 | main(void) | |
| 1992/0321/sys/src/9/pc/main.c:93,99 – 1992/0323/sys/src/9/pc/main.c:94,100 | ||
| 1991/0927 | ksetenv("cputype", "386"); | |
| 1991/0926 | poperror(); } | |
| 1991/0716 |
| |
| 1992/0323 | touser(sp); | |
| 1991/0712 | } | |
| 1991/0629 | void | |
| 1992/0321/sys/src/9/pc/main.c:103,108 – 1992/0323/sys/src/9/pc/main.c:104,110 | ||
| 1991/0716 | Segment *s; User *up; KMap *k; | |
| 1992/0323 | Page *pg; | |
| 1991/0905 | ||
| 1991/0716 | p = newproc(); p->pgrp = newpgrp(); | |
| 1992/0321/sys/src/9/pc/main.c:138,143 – 1992/0323/sys/src/9/pc/main.c:140,150 | ||
| 1991/0716 | */ s = newseg(SG_STACK, USTKTOP-BY2PG, 1); p->seg[SSEG] = s; | |
| 1992/0323 | pg = newpage(1, 0, USTKTOP-BY2PG); segpage(s, pg); k = kmap(pg); bootargs(VA(k)); kunmap(k); | |
| 1991/0716 | /* * Text | |
| 1992/0321/sys/src/9/pc/main.c:150,155 – 1992/0323/sys/src/9/pc/main.c:157,199 | ||
| 1991/0716 | kunmap(k); ready(p); | |
| 1992/0323 | } uchar * pusharg(char *p) { int n; n = strlen(p)+1; sp -= n; memmove(sp, p, n); return sp; } void bootargs(ulong base) { int i, ac; uchar *av[32]; char *p, *pp; uchar **lsp; sp = (uchar*)base + BY2PG - MAXSYSARG*BY2WD; ac = 0; av[ac++] = pusharg("/386/9safari"); av[ac++] = pusharg("-p"); /* 4 byte word align stack */ sp = (uchar*)((ulong)sp & ~3); /* build argc, argv on stack */ sp -= (ac+1)*sizeof(sp); lsp = (uchar**)sp; for(i = 0; i < ac; i++) *lsp++ = av[i] + ((USTKTOP - BY2PG) - base); *lsp = 0; sp += (USTKTOP - BY2PG) - base - sizeof(ulong); | |
| 1991/0711 | } | |
| 1991/0716 | Conf conf; | |