]> git.lizzy.rs Git - plan9front.git/blob - sys/src/9/boot/boot.c
kernel: simplify /boot/boot: 28K down to less than 4K.
[plan9front.git] / sys / src / 9 / boot / boot.c
1 #include <u.h>
2 #include <libc.h>
3
4 char bin[] = "/bin";
5 char root[] = "/root";
6
7 void
8 main(int, char *argv[])
9 {
10         char buf[32];
11
12         /* setup the boot namespace */
13         bind("/boot", bin, MAFTER);
14
15         if(fork() == 0){
16                 execl("/bin/paqfs", "-qa", "-c", "8", "-m", root, "/boot/bootfs.paq", nil);
17                 goto Err;
18         }
19         if(await(buf, sizeof(buf)) < 0)
20                 goto Err;
21
22         bind(root, "/", MAFTER);
23
24         buf[0] = '/';
25         buf[1+read(open("/env/cputype", OREAD|OCEXEC), buf+1, sizeof buf - 5)] = '\0';
26         strcat(buf, bin);
27         bind(buf, bin, MAFTER);
28         bind("/rc/bin", bin, MAFTER);
29
30         exec("/bin/bootrc", argv);
31 Err:
32         errstr(buf, sizeof buf);
33         _exits(buf);
34 }