1*9ef1f84bSDavid du Colombier /*
2*9ef1f84bSDavid du Colombier * IMPORTANT! DO NOT ADD LIBRARY CALLS TO THIS FILE.
3*9ef1f84bSDavid du Colombier * The entire text image must fit on one page
4*9ef1f84bSDavid du Colombier * (and there's no data segment, so any read/write data must be on the stack).
5*9ef1f84bSDavid du Colombier */
6*9ef1f84bSDavid du Colombier
7*9ef1f84bSDavid du Colombier #include <u.h>
8*9ef1f84bSDavid du Colombier #include <libc.h>
9*9ef1f84bSDavid du Colombier
10*9ef1f84bSDavid du Colombier char cons[] = "#c/cons";
11*9ef1f84bSDavid du Colombier char boot[] = "/boot/boot";
12*9ef1f84bSDavid du Colombier char dev[] = "/dev";
13*9ef1f84bSDavid du Colombier char c[] = "#c";
14*9ef1f84bSDavid du Colombier char e[] = "#e";
15*9ef1f84bSDavid du Colombier char ec[] = "#ec";
16*9ef1f84bSDavid du Colombier char s[] = "#s";
17*9ef1f84bSDavid du Colombier char srv[] = "/srv";
18*9ef1f84bSDavid du Colombier char env[] = "/env";
19*9ef1f84bSDavid du Colombier
20*9ef1f84bSDavid du Colombier void
startboot(char * argv0,char ** argv)21*9ef1f84bSDavid du Colombier startboot(char *argv0, char **argv)
22*9ef1f84bSDavid du Colombier {
23*9ef1f84bSDavid du Colombier char buf[200];
24*9ef1f84bSDavid du Colombier
25*9ef1f84bSDavid du Colombier USED(argv0);
26*9ef1f84bSDavid du Colombier /*
27*9ef1f84bSDavid du Colombier * open the console here so that /boot/boot,
28*9ef1f84bSDavid du Colombier * which could be a shell script, can inherit the open fds.
29*9ef1f84bSDavid du Colombier */
30*9ef1f84bSDavid du Colombier open(cons, OREAD);
31*9ef1f84bSDavid du Colombier open(cons, OWRITE);
32*9ef1f84bSDavid du Colombier open(cons, OWRITE);
33*9ef1f84bSDavid du Colombier bind(c, dev, MAFTER);
34*9ef1f84bSDavid du Colombier bind(ec, env, MAFTER);
35*9ef1f84bSDavid du Colombier bind(e, env, MCREATE|MAFTER);
36*9ef1f84bSDavid du Colombier bind(s, srv, MREPL|MCREATE);
37*9ef1f84bSDavid du Colombier exec(boot, argv);
38*9ef1f84bSDavid du Colombier
39*9ef1f84bSDavid du Colombier rerrstr(buf, sizeof buf);
40*9ef1f84bSDavid du Colombier buf[sizeof buf - 1] = '\0';
41*9ef1f84bSDavid du Colombier _exits(buf);
42*9ef1f84bSDavid du Colombier }
43