| plan 9 kernel history: overview | file list | diff list |
1999/0501/boot/local.c (diff list | history)
| 1992/0317/sys/src/9/boot/local.c:30,36 – 1992/0318/sys/src/9/boot/local.c:30,36 (short | long) | ||
| 1992/0317 | if(stat("/kfs", d) < 0) return -1; | |
| 1992/0318 | sprint(partition, "%sfs", disk ? disk : bootdisk); | |
| 1992/0317 | if(stat(partition, d) < 0) return -1; | |
| 1992/0318/sys/src/9/boot/local.c:33,39 – 1992/0321/sys/src/9/boot/local.c:33,39 (short | long) | ||
| 1992/0318 | sprint(partition, "%sfs", disk ? disk : bootdisk); | |
| 1992/0317 | if(stat(partition, d) < 0) return -1; | |
| 1992/0321 | print("kfs..."); | |
| 1992/0317 | if(bind("#c", "/dev", MREPL) < 0) fatal("bind #c"); if(bind("#p", "/proc", MREPL) < 0) | |
| 1992/0321/sys/src/9/boot/local.c:20,31 – 1992/0728/sys/src/9/boot/local.c:20,29 (short | long) | ||
| 1992/0317 | int connectlocal(void) { | |
| 1992/0728/sys/src/9/boot/local.c:7,13 – 1992/0825/sys/src/9/boot/local.c:7,13 (short | long) | ||
| 1992/0317 | void configlocal(Method *mp) { | |
| 1992/0825 | disk = *sys ? sys : mp->arg; | |
| 1992/0317 | USED(mp); } | |
| 1992/0825/sys/src/9/boot/local.c:7,13 – 1992/0826/sys/src/9/boot/local.c:7,16 (short | long) | ||
| 1992/0317 | void configlocal(Method *mp) { | |
| 1992/0825 |
| |
| 1992/0826 | if(*sys == '/' || *sys == '#') disk = sys; else disk = mp->arg; | |
| 1992/0317 | USED(mp); } | |
| 1992/0826/sys/src/9/boot/local.c:25,40 – 1992/0902/sys/src/9/boot/local.c:25,45 (short | long) | ||
| 1992/0317 | { int p[2]; char d[DIRLEN]; | |
| 1992/0902 | char *dev; | |
| 1992/0317 |
| |
| 1992/0902 | if(stat("/fs", d) < 0) | |
| 1992/0317 | return -1; | |
| 1992/0318 |
| |
| 1992/0317 |
| |
| 1992/0321 |
| |
| 1992/0902 | dev = disk ? disk : bootdisk; sprint(partition, "%sfs", dev); if(stat(partition, d) < 0){ strcpy(partition, dev); if(stat(partition, d) < 0) return -1; } print("fs..."); | |
| 1992/0317 | if(bind("#c", "/dev", MREPL) < 0) fatal("bind #c"); if(bind("#p", "/proc", MREPL) < 0) | |
| 1992/0826/sys/src/9/boot/local.c:45,54 – 1992/0902/sys/src/9/boot/local.c:50,61 | ||
| 1992/0317 | case -1: fatal("fork"); case 0: | |
| 1992/0902 | dup(p[0], 0); dup(p[1], 1); close(p[0]); close(p[1]); execl("/fs", "fs", "-f", partition, "-s", 0); fatal("can't exec fs"); | |
| 1992/0317 | default: break; } | |
| 1992/0902/sys/src/9/boot/local.c:3,8 – 1993/0403/sys/src/9/boot/local.c:3,9 (short | long) | ||
| 1992/0317 | #include <../boot/boot.h> static char *disk; | |
| 1993/0403 | static char *niob; | |
| 1992/0317 | void configlocal(Method *mp) | |
| 1992/0902/sys/src/9/boot/local.c:11,16 – 1993/0403/sys/src/9/boot/local.c:12,19 | ||
| 1992/0826 | disk = sys; else disk = mp->arg; | |
| 1993/0403 | if(niob = strchr(disk, ' ')) /* assign = */ *niob++ = 0; | |
| 1992/0317 | USED(mp); } | |
| 1992/0902/sys/src/9/boot/local.c:27,32 – 1993/0403/sys/src/9/boot/local.c:30,36 | ||
| 1992/0317 | char d[DIRLEN]; char partition[2*NAMELEN]; | |
| 1992/0902 | char *dev; | |
| 1993/0403 | char *args[16], **argp; | |
| 1992/0317 | ||
| 1992/0902 | if(stat("/fs", d) < 0) | |
| 1992/0317 | return -1; | |
| 1992/0902/sys/src/9/boot/local.c:54,60 – 1993/0403/sys/src/9/boot/local.c:58,74 | ||
| 1992/0902 | dup(p[1], 1); close(p[0]); close(p[1]); | |
| 1993/0403 | argp = args; *argp++ = "fs"; if(niob){ *argp++ = "-B"; *argp++ = niob; } *argp++ = "-f"; *argp++ = partition; *argp++ = "-s"; *argp = 0; exec("/fs", args); | |
| 1992/0902 | fatal("can't exec fs"); | |
| 1992/0317 | default: break; | |
| 1993/0403/sys/src/9/boot/local.c:2,7 – 1993/0406/sys/src/9/boot/local.c:2,8 (short | long) | ||
| 1992/0317 | #include <libc.h> #include <../boot/boot.h> | |
| 1993/0406 | static char diskname[2*NAMELEN]; | |
| 1992/0317 | static char *disk; | |
| 1993/0403 | static char *niob; | |
| 1992/0317 | ||
| 1993/0403/sys/src/9/boot/local.c:8,19 – 1993/0406/sys/src/9/boot/local.c:9,29 | ||
| 1992/0317 | void configlocal(Method *mp) { | |
| 1993/0406 | char *p; int n; disk = mp->arg; /* 1st try from config file */ if(disk && (niob = strchr(disk, ' '))) /* assign = */ *niob++ = 0; if(strncmp(argv0, "dksc(0,", 7) == 0){ p = strchr(argv0, ','); n = strtoul(p+1, 0, 10); sprint(diskname, "#w%d/sd%dfs", n, n); disk = diskname; /*print("argv0=\"%s\" --> disk = \"%s\"\n", argv0, disk);/**/ } | |
| 1992/0826 | if(*sys == '/' || *sys == '#') disk = sys; | |
| 1993/0403 |
| |
| 1992/0317 | USED(mp); } | |
| 1993/0406/sys/src/9/boot/local.c:24,29 – 1993/0410/sys/src/9/boot/local.c:24,31 (short | long) | ||
| 1993/0406 | } | |
| 1992/0826 | if(*sys == '/' || *sys == '#') disk = sys; | |
| 1993/0410 | if(disk) setenv("bootdisk", disk); | |
| 1992/0317 | USED(mp); } | |
| 1993/0410/sys/src/9/boot/local.c:2,8 – 1993/0501/sys/src/9/boot/local.c:2,7 (short | long) | ||
| 1992/0317 | #include <libc.h> #include <../boot/boot.h> | |
| 1993/0406 |
| |
| 1992/0317 | static char *disk; | |
| 1993/0403 | static char *niob; | |
| 1992/0317 | ||
| 1993/0410/sys/src/9/boot/local.c:9,31 – 1993/0501/sys/src/9/boot/local.c:8,19 | ||
| 1992/0317 | void configlocal(Method *mp) { | |
| 1993/0406 |
| |
| 1992/0826 | if(*sys == '/' || *sys == '#') disk = sys; | |
| 1993/0410 |
| |
| 1993/0501 | else disk = mp->arg; if(niob = strchr(disk, ' ')) /* assign = */ *niob++ = 0; | |
| 1992/0317 | USED(mp); } | |
| 1993/0501/sys/src/9/boot/local.c:2,7 – 1994/0312/sys/src/9/boot/local.c:2,8 (short | long) | ||
| 1992/0317 | #include <libc.h> #include <../boot/boot.h> | |
| 1994/0312 | static char diskname[2*NAMELEN]; | |
| 1992/0317 | static char *disk; | |
| 1993/0403 | static char *niob; | |
| 1992/0317 | ||
| 1993/0501/sys/src/9/boot/local.c:8,19 – 1994/0312/sys/src/9/boot/local.c:9,31 | ||
| 1992/0317 | void configlocal(Method *mp) { | |
| 1994/0312 | char *p; int n; disk = mp->arg; /* 1st try from config file */ if(disk && (niob = strchr(disk, ' '))) /* assign = */ *niob++ = 0; if(strncmp(argv0, "dksc(0,", 7) == 0){ p = strchr(argv0, ','); n = strtoul(p+1, 0, 10); sprint(diskname, "#w%d/sd%dfs", n, n); disk = diskname; /*print("argv0=\"%s\" --> disk = \"%s\"\n", argv0, disk);/**/ } | |
| 1992/0826 | if(*sys == '/' || *sys == '#') disk = sys; | |
| 1993/0501 |
| |
| 1994/0312 | if(disk) setenv("bootdisk", disk); | |
| 1992/0317 | USED(mp); } | |
| 1994/0312/sys/src/9/boot/local.c:4,10 – 1995/02021/sys/src/9/boot/local.c:4,9 (short | long) | ||
| 1992/0317 | ||
| 1994/0312 | static char diskname[2*NAMELEN]; | |
| 1992/0317 | static char *disk; | |
| 1993/0403 |
| |
| 1992/0317 | void configlocal(Method *mp) | |
| 1994/0312/sys/src/9/boot/local.c:12,31 – 1995/02021/sys/src/9/boot/local.c:11,49 | ||
| 1994/0312 | char *p; int n; | |
| 1995/02021 | if(*sys == '/' || *sys == '#'){ /* * if the user specifies the disk in the boot cmd or * 'root is from' prompt, use it */ disk = sys; } else if(strncmp(argv0, "dksc(0,", 7) == 0){ /* * on many mips arg0 of the boot command specifies the * scsi logical unit number */ | |
| 1994/0312 | p = strchr(argv0, ','); n = strtoul(p+1, 0, 10); sprint(diskname, "#w%d/sd%dfs", n, n); disk = diskname; | |
| 1995/02021 | } else if(mp->arg){ /* * a default is supplied when the kernel is made */ disk = mp->arg; } else if(*bootdisk){ /* * an environment variable from a pc's plan9.ini or * from the mips nvram or generated by the kernel * is the last resort. */ disk = bootdisk; | |
| 1994/0312 | } | |
| 1992/0826 |
| |
| 1995/02021 | /* if we've decided on one, pass it on to all programs */ | |
| 1994/0312 | if(disk) setenv("bootdisk", disk); | |
| 1995/02021 | ||
| 1992/0317 | USED(mp); } | |
| 1994/0312/sys/src/9/boot/local.c:72,81 – 1995/02021/sys/src/9/boot/local.c:90,95 | ||
| 1992/0902 | close(p[1]); | |
| 1993/0403 | argp = args; *argp++ = "fs"; | |
| 1995/02021/sys/src/9/boot/local.c:62,68 – 1999/0501/sys/src/9/boot/local.c:62,68 (short | long) | ||
| 1992/0902 | char *dev; | |
| 1993/0403 | char *args[16], **argp; | |
| 1992/0317 | ||
| 1992/0902 |
| |
| 1999/0501 | if(stat("/kfs", d) < 0) | |
| 1992/0317 | return -1; | |
| 1992/0902 | dev = disk ? disk : bootdisk; | |
| 1995/02021/sys/src/9/boot/local.c:73,79 – 1999/0501/sys/src/9/boot/local.c:73,79 | ||
| 1992/0902 | return -1; } | |
| 1999/0501 | print("kfs..."); | |
| 1992/0317 | if(bind("#c", "/dev", MREPL) < 0) fatal("bind #c"); if(bind("#p", "/proc", MREPL) < 0) | |
| 1995/02021/sys/src/9/boot/local.c:89,101 – 1999/0501/sys/src/9/boot/local.c:89,101 | ||
| 1992/0902 | close(p[0]); close(p[1]); | |
| 1993/0403 | argp = args; | |
| 1999/0501 | *argp++ = "kfs"; | |
| 1993/0403 | *argp++ = "-f"; *argp++ = partition; *argp++ = "-s"; *argp = 0; | |
| 1992/0902 |
| |
| 1999/0501 | exec("/kfs", args); fatal("can't exec kfs"); | |
| 1992/0317 | default: break; } | |
| 1999/0501/sys/src/9/boot/local.c:57,62 – 2000/0506/sys/src/9/boot/local.c:57,63 (short | long) | ||
| 1992/0317 | connectlocal(void) { int p[2]; | |
| 2000/0506 | Dir dir; | |
| 1992/0317 | char d[DIRLEN]; char partition[2*NAMELEN]; | |
| 1992/0902 | char *dev; | |
| 1999/0501/sys/src/9/boot/local.c:67,77 – 2000/0506/sys/src/9/boot/local.c:68,80 | ||
| 1992/0902 | dev = disk ? disk : bootdisk; sprint(partition, "%sfs", dev); | |
| 2000/0506 | if(dirstat(partition, &dir) < 0){ | |
| 1992/0902 | strcpy(partition, dev); | |
| 2000/0506 | if(dirstat(partition, &dir) < 0) | |
| 1992/0902 | return -1; } | |
| 2000/0506 | if(dir.mode & CHDIR) return -1; | |
| 1992/0902 | ||
| 1999/0501 | print("kfs..."); | |
| 1992/0317 | if(bind("#c", "/dev", MREPL) < 0) | |
| 2000/0506/sys/src/9/boot/local.c:4,9 – 2000/1018/sys/src/9/boot/local.c:4,10 (short | long) | ||
| 1992/0317 | ||
| 1994/0312 | static char diskname[2*NAMELEN]; | |
| 1992/0317 | static char *disk; | |
| 2000/1018 | static char **args; | |
| 1992/0317 | void configlocal(Method *mp) | |
| 2000/0506/sys/src/9/boot/local.c:56,67 – 2000/1018/sys/src/9/boot/local.c:57,68 | ||
| 1992/0317 | int connectlocal(void) { | |
| 2000/1018 | int i, p[2]; | |
| 2000/0506 | Dir dir; | |
| 1992/0317 | char d[DIRLEN]; char partition[2*NAMELEN]; | |
| 1992/0902 | char *dev; | |
| 1993/0403 |
| |
| 2000/1018 | char **arg, **argp; | |
| 1992/0317 | ||
| 1999/0501 | if(stat("/kfs", d) < 0) | |
| 1992/0317 | return -1; | |
| 2000/0506/sys/src/9/boot/local.c:87,103 – 2000/1018/sys/src/9/boot/local.c:88,113 | ||
| 1992/0317 | case -1: fatal("fork"); case 0: | |
| 1992/0902 |
| |
| 1993/0403 |
| |
| 2000/1018 | arg = malloc((bargc+5)*sizeof(char*)); argp = arg; | |
| 1999/0501 | *argp++ = "kfs"; | |
| 1993/0403 | *argp++ = "-f"; *argp++ = partition; *argp++ = "-s"; | |
| 2000/1018 | for(i=1; i<bargc; i++) *argp++ = bargv[i]; | |
| 1993/0403 | *argp = 0; | |
| 1999/0501 |
| |
| 2000/1018 | print("kfs"); for(argp=arg; *argp; argp++) print(" %s", *argp); print("\n"); dup(p[0], 0); dup(p[1], 1); close(p[0]); close(p[1]); exec("/kfs", arg); | |
| 1999/0501 | fatal("can't exec kfs"); | |
| 1992/0317 | default: break; | |
| 2000/1018/sys/src/9/boot/local.c:98,108 – 2000/1129/sys/src/9/boot/local.c:98,103 (short | long) | ||
| 2000/1018 | *argp++ = bargv[i]; | |
| 1993/0403 | *argp = 0; | |
| 2000/1018 |
| |
| 2000/1129/sys/src/9/boot/local.c:64,78 – 2001/0119/sys/src/9/boot/local.c:64,83 (short | long) | ||
| 1992/0902 | char *dev; | |
| 2000/1018 | char **arg, **argp; | |
| 1992/0317 | ||
| 1999/0501 |
| |
| 2001/0119 | if(stat("/kfs", d) < 0){ print("stat /kfs fails: %r\n"); | |
| 1992/0317 | return -1; | |
| 2001/0119 | } | |
| 1992/0902 | dev = disk ? disk : bootdisk; sprint(partition, "%sfs", dev); | |
| 2000/0506 | if(dirstat(partition, &dir) < 0){ | |
| 1992/0902 | strcpy(partition, dev); | |
| 2000/0506 |
| |
| 2001/0119 | if(dirstat(partition, &dir) < 0){ print("stat %s fails: %r\n", partition); print("(stat %sfs also failed)\n", dev); | |
| 1992/0902 | return -1; | |
| 2001/0119 | } | |
| 1992/0902 | } | |
| 2000/0506 | if(dir.mode & CHDIR) return -1; | |
| 2001/0119/sys/src/9/boot/local.c:2,8 – 2001/0527/sys/src/9/boot/local.c:2,8 (short | long) | ||
| 1992/0317 | #include <libc.h> #include <../boot/boot.h> | |
| 1994/0312 |
| |
| 2001/0527 | static char diskname[64]; | |
| 1992/0317 | static char *disk; | |
| 2000/1018 | static char **args; | |
| 1992/0317 | ||
| 2001/0119/sys/src/9/boot/local.c:58,85 – 2001/0527/sys/src/9/boot/local.c:58,84 | ||
| 1992/0317 | connectlocal(void) { | |
| 2000/1018 | int i, p[2]; | |
| 2000/0506 |
| |
| 1992/0317 |
| |
| 2001/0527 | Dir *dir; char partition[64]; | |
| 1992/0902 | char *dev; | |
| 2000/1018 | char **arg, **argp; | |
| 2001/0527 | ulong mode; | |
| 1992/0317 | ||
| 2001/0119 |
| |
| 2001/0527 | if(stat("/kfs", statbuf, sizeof statbuf) < 0) | |
| 1992/0317 | return -1; | |
| 2001/0119 |
| |
| 1992/0902 | dev = disk ? disk : bootdisk; | |
| 2000/0506 |
| |
| 2001/0527 | snprint(partition, sizeof partition, "%sfs", dev); dir = dirstat(partition); if(dir == nil){ | |
| 1992/0902 | strcpy(partition, dev); | |
| 2001/0119 |
| |
| 2001/0527 | dir = dirstat(partition); if(dir == nil) | |
| 1992/0902 | return -1; | |
| 2001/0119 |
| |
| 1992/0902 | } | |
| 2000/0506 |
| |
| 2001/0527 | mode = dir->mode; free(dir); if(mode & DMDIR) | |
| 2000/0506 | return -1; | |
| 1992/0902 | ||
| 1999/0501 | print("kfs..."); | |
| 2001/0119/sys/src/9/boot/local.c:102,107 – 2001/0527/sys/src/9/boot/local.c:101,111 | ||
| 2000/1018 | for(i=1; i<bargc; i++) *argp++ = bargv[i]; | |
| 1993/0403 | *argp = 0; | |
| 2001/0527 | print("kfs"); for(argp=arg; *argp; argp++) print(" %s", *argp); print("\n"); | |
| 2000/1018 | dup(p[0], 0); dup(p[1], 1); | |
| 2001/0527/sys/src/9/boot/local.c:49,60 – 2002/0109/sys/src/9/boot/local.c:49,54 (short | long) | ||
| 1992/0317 | } int | |
| 2000/1018 | int i, p[2]; | |
| 2002/0109/sys/src/9/boot/local.c:110,115 – 2002/0401/sys/src/9/boot/local.c:110,116 (short | long) | ||
| 1992/0317 | default: break; } | |
| 2002/0401 | waitpid(); | |
| 1992/0317 | close(p[1]); return p[0]; | |
| 2002/0401/sys/src/9/boot/local.c:96,106 – 2002/0414/sys/src/9/boot/local.c:96,101 (short | long) | ||
| 2000/1018 | *argp++ = bargv[i]; | |
| 1993/0403 | *argp = 0; | |
| 2001/0527 |
| |
| 2000/1018 |
| |
| 2002/0414/sys/src/9/boot/local.c:58,64 – 2002/1130/sys/src/9/boot/local.c:58,64 (short | long) | ||
| 2000/1018 | char **arg, **argp; | |
| 2001/0527 | ulong mode; | |
| 1992/0317 | ||
| 2001/0527 |
| |
| 2002/1130 | if(stat("/boot/kfs", statbuf, sizeof statbuf) < 0) | |
| 1992/0317 | return -1; | |
| 1992/0902 | dev = disk ? disk : bootdisk; | |
| 2002/0414/sys/src/9/boot/local.c:100,106 – 2002/1130/sys/src/9/boot/local.c:100,106 | ||
| 2000/1018 | dup(p[1], 1); close(p[0]); close(p[1]); | |
| 2002/1130 | exec("/boot/kfs", arg); | |
| 1999/0501 | fatal("can't exec kfs"); | |
| 1992/0317 | default: break; | |