| plan 9 kernel history: overview | file list | diff list |
2001/0527/boot/boot.c (diff list | history)
| 2001/0301/sys/src/9/boot/boot.c:4,12 – 2001/0527/sys/src/9/boot/boot.c:4,11 (short | long | prev | next) | ||
| 1993/0501 | #include <fcall.h> | |
| 1992/0318 | #include "../boot/boot.h" | |
| 1992/0317 |
| |
| 2001/0527 | char cputype[64]; char sys[2*64]; | |
| 1994/0317 | char reply[256]; | |
| 1993/0501 | int printcol; int mflag; | |
| 2001/0301/sys/src/9/boot/boot.c:17,34 – 2001/0527/sys/src/9/boot/boot.c:16,32 | ||
| 1994/0317 | int bargc; | |
| 1992/0530 | static void swapproc(void); | |
| 1993/0501 |
| |
| 1992/0530 | static Method *rootserver(char*); | |
| 1992/0317 | ||
| 1995/0301 | static int | |
| 1996/0214 | rconv(va_list *arg, Fconv *fp) | |
| 1995/0301 | { | |
| 2001/0527 | char s[ERRMAX]; | |
| 1995/0301 | ||
| 1996/0214 | USED(arg); | |
| 1995/0301 |
| |
| 2001/0527 | s[0] = '\0'; errstr(s, sizeof s); | |
| 1995/0301 | strconv(s, fp); return 0; } | |
| 2001/0301/sys/src/9/boot/boot.c:38,47 – 2001/0527/sys/src/9/boot/boot.c:36,48 | ||
| 1992/0317 | { int fd; Method *mp; | |
| 2001/0217 |
| |
| 2001/0527 | char cmd[64]; | |
| 2000/0310 | char rootbuf[64]; | |
| 2001/0217 |
| |
| 2001/0527 | char flags[6]; int islocal, ishybrid; | |
| 2000/0310 | char *rp; | |
| 2001/0527 | int n; char buf[32]; | |
| 1992/0317 | sleep(1000); | |
| 2001/0301/sys/src/9/boot/boot.c:90,104 – 2001/0527/sys/src/9/boot/boot.c:91,96 | ||
| 1992/0317 | */ | |
| 1992/0318 | (*pword)(islocal, mp); | |
| 1992/0317 | ||
| 1993/0501 |
| |
| 1992/0317 | /* * connect to the root file system */ | |
| 2001/0301/sys/src/9/boot/boot.c:105,111 – 2001/0527/sys/src/9/boot/boot.c:97,110 | ||
| 1992/0317 | fd = (*mp->connect)(); if(fd < 0) fatal("can't connect to file server"); | |
| 1993/0501 |
| |
| 2001/0527 | if(getenv("srvold9p")) fd = old9p(fd); print("version..."); buf[0] = '\0'; n = fversion(fd, 0, buf, sizeof buf); if(n < 0) fatal("can't init 9P"); print("(%.*s)", n, buf); | |
| 1992/0909 | if(!islocal && !ishybrid){ | |
| 1992/0318 | if(cfs) fd = (*cfs)(fd); | |
| 2001/0301/sys/src/9/boot/boot.c:151,161 – 2001/0527/sys/src/9/boot/boot.c:150,159 | ||
| 1992/0611 | * if a local file server exists and it's not * running, start it and mount it onto /n/kfs | |
| 1992/0317 | */ | |
| 1992/1006 |
| |
| 2001/0527 | if(0 && access("#s/kfs", 0) < 0){ /* BUG: DISABLED UNTIL KFS SUPPORTS 9P2000 */ | |
| 1992/0902 | for(mp = method; mp->name; mp++){ if(strcmp(mp->name, "local") != 0) continue; | |
| 2000/1019 |
| |
| 1992/0902 | (*mp->config)(mp); fd = (*mp->connect)(); if(fd < 0) | |
| 2001/0301/sys/src/9/boot/boot.c:169,192 – 2001/0527/sys/src/9/boot/boot.c:167,175 | ||
| 1992/0317 | settime(islocal); swapproc(); | |
| 2001/0217 |
| |
| 2001/0527 | sprint(cmd, "/%s/ninit", cputype); sprint(flags, "-%s%s", cpuflag ? "c" : "t", mflag ? "m" : ""); execl(cmd, "init", flags, 0); | |
| 1992/0317 | fatal(cmd); } | |
| 2001/0301/sys/src/9/boot/boot.c:213,246 – 2001/0527/sys/src/9/boot/boot.c:196,201 | ||
| 1994/0311 | return 0; } | |
| 2000/1107 |
| |
| 1992/0317 | /* | |
| 1992/0318 | * ask user from whence cometh the root file system | |
| 1992/0317 | */ | |
| 2001/0301/sys/src/9/boot/boot.c:276,282 – 2001/0527/sys/src/9/boot/boot.c:231,237 | ||
| 1995/02021 | outin(prompt, reply, sizeof(reply)); | |
| 1994/0311 | mp = findmethod(reply); if(mp){ | |
| 2000/1107 |
| |
| 2001/0527 | bargc = getfields(reply, bargv, Nbarg-1, 1, " "); | |
| 1994/0311 | cp = strchr(reply, '!'); if(cp) strcpy(sys, cp+1); | |
| 2001/0301/sys/src/9/boot/boot.c:287,330 – 2001/0527/sys/src/9/boot/boot.c:242,247 | ||
| 1992/0520 | return 0; /* not reached */ | |
| 1992/0317 | } | |
| 1993/0501 |
| |
| 1992/0530 | static void | |
| 1992/0317 | swapproc(void) { | |
| 2001/0301/sys/src/9/boot/boot.c:340,418 – 2001/0527/sys/src/9/boot/boot.c:257,285 | ||
| 1993/0501 | close(fd); } | |
| 2001/0527 | int old9p(int fd) | |
| 1993/0501 | { | |
| 2001/0527 | int p[2]; | |
| 1993/0501 |
| |
| 2001/0527 | if(pipe(p) < 0) fatal("pipe"); | |
| 1993/0501 |
| |
| 1994/1212 | ||
| 1993/0501 |
| |
| 1994/1212 | ||
| 1993/0501 |
| |
| 1994/1212 | ||
| 1993/0501 |
| |
| 1994/0829 |
| |
| 1993/0501 |
| |
| 1994/0829 |
| |
| 1993/0501 |
| |
| 2001/0527 | print("srvold9p..."); switch(fork()) { case -1: fatal("rfork srvold9p"); case 0: dup(fd, 1); close(fd); dup(p[0], 0); close(p[0]); close(p[1]); execl("/srvold9p", "srvold9p", "-s", 0); fatal("exec srvold9p"); default: close(fd); close(p[0]); | |
| 1993/0501 | } | |
| 1995/1122 |
| |
| 1993/0501 |
| |
| 2001/0527 | return p[1]; | |
| 1992/0317 | } | |