X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=sys%2Fsrc%2F9%2Fboot%2Fboot.c;h=3f947047dcb1bf221f436f33692102002646ec5f;hb=cb9e638c004ea7de8404a6746d12a42041ee9f74;hp=74b18a4825cd99641cf9520aaa980607865d4b34;hpb=418d88fe3d151662634c50026cbd9565a7c10fcf;p=plan9front.git diff --git a/sys/src/9/boot/boot.c b/sys/src/9/boot/boot.c index 74b18a482..3f947047d 100644 --- a/sys/src/9/boot/boot.c +++ b/sys/src/9/boot/boot.c @@ -4,18 +4,11 @@ #include #include "../boot/boot.h" -char cputype[64]; -char reply[256]; -int printcol; -int mflag; -int fflag; -int kflag; - void boot(int argc, char *argv[]) { - Waitmsg *w; - int pid, i; + char cputype[64]; + char buf[32]; fmtinstall('r', errfmt); @@ -30,56 +23,26 @@ boot(int argc, char *argv[]) bind("#ec", "/env", MREPL); bind("#e", "/env", MBEFORE|MCREATE); bind("#s", "/srv", MREPL|MCREATE); + bind("#σ", "/shr", MREPL); if(Debug){ + int i; + print("argc=%d\n", argc); for(i = 0; i < argc; i++) print("%lux %s ", (ulong)argv[i], argv[i]); print("\n"); } - ARGBEGIN{ - case 'k': - kflag = 1; - break; - case 'm': - mflag = 1; - break; - case 'f': - fflag = 1; - break; - }ARGEND - readfile("#e/cputype", cputype, sizeof(cputype)); setenv("bootdisk", bootdisk, 0); - + /* setup the boot namespace */ - run("/boot/mntgen", "-s", "slash", "/mnt", nil); - run("/boot/bzfs", "-f", "/boot/rootfs.bz2", "-m", "/mnt/broot", nil); - bind("/mnt/broot", "/", MAFTER); - bind("/386/bin", "/bin", MAFTER); - bind("/rc/bin", "/bin", MAFTER); bind("/boot", "/bin", MAFTER); - - switch(pid = rfork(RFFDG|RFREND|RFPROC)){ - case -1: - fatal("fork error"); - case 0: - setenv("cpuflag", cpuflag ? "1" : "0", 0); - run("/bin/rc", "/rc/bin/bootrc", nil); - break; - default: - while((w = wait()) != nil) - if(w->pid == pid) - break; - if(w == nil){ - free(w); - fatal("wait error"); - } - free(w); - break; - } - - for(;;) - ; + run("/bin/paqfs", "-q", "-c", "8", "-m" "/root", "/boot/bootfs.paq", nil); + bind("/root", "/", MAFTER); + snprint(buf, sizeof(buf), "/%s/bin", cputype); + bind(buf, "/bin", MAFTER); + bind("/rc/bin", "/bin", MAFTER); + exec("/bin/bootrc", argv); }