49 lines · 1.2 KB · C
RawDownload
/*  * This file is part of the UCB release of Plan 9. It is subject to the license * terms in the LICENSE file found in the top-level directory of this * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No * part of the UCB release of Plan 9, including this file, may be copied, * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ /* * IMPORTANT!  DO NOT ADD LIBRARY CALLS TO THIS FILE. * The entire text image must fit on one page * (and there's no data segment, so any read/write data must be on the stack). */ #include <u.h>#include <libc.h> char cons[] = "#c/cons";char boot[] = "/boot/boot";char dev[] = "/dev";char c[] = "#c";char e[] = "#e";char ec[] = "#ec";char s[] = "#s";char srv[] = "/srv";char env[] = "/env"; voidstartboot(char *argv0, char **argv){	char buf[200];	/* keep this fairly large to capture error details */ 	/* in case boot is a shell script */	open(cons, OREAD);	open(cons, OWRITE);	open(cons, OWRITE);	bind(c, dev, MAFTER);	bind(ec, env, MAFTER);	bind(e, env, MCREATE|MAFTER);	bind(s, srv, MREPL|MCREATE); 	USED(argv0);	exec(boot, argv); 	rerrstr(buf, sizeof buf);	buf[sizeof buf - 1] = '\0';	_exits(buf);}