xref: /plan9/sys/src/9/boot/sac.c (revision 41dd6b4775bcffc7275c15aee7294944759a2ea7)
17dd7cddfSDavid du Colombier #include <u.h>
27dd7cddfSDavid du Colombier #include <libc.h>
37dd7cddfSDavid du Colombier #include <../boot/boot.h>
47dd7cddfSDavid du Colombier 
5*41dd6b47SDavid du Colombier /*
6*41dd6b47SDavid du Colombier  * HACK - take over from boot since file system is not
7*41dd6b47SDavid du Colombier  * available on a pipe
8*41dd6b47SDavid du Colombier  */
97dd7cddfSDavid du Colombier 
107dd7cddfSDavid du Colombier void
configsac(Method * mp)117dd7cddfSDavid du Colombier configsac(Method *mp)
127dd7cddfSDavid du Colombier {
137dd7cddfSDavid du Colombier 	int fd;
147dd7cddfSDavid du Colombier 	char cmd[64];
157dd7cddfSDavid du Colombier 
167dd7cddfSDavid du Colombier 	USED(mp);
177dd7cddfSDavid du Colombier 
189a747e4fSDavid du Colombier 	/*
199a747e4fSDavid du Colombier 	 *  create the name space, mount the root fs
209a747e4fSDavid du Colombier 	 */
217dd7cddfSDavid du Colombier 	if(bind("/", "/", MREPL) < 0)
227dd7cddfSDavid du Colombier 		fatal("bind /");
237dd7cddfSDavid du Colombier 	if(bind("#C", "/", MAFTER) < 0)
247dd7cddfSDavid du Colombier 		fatal("bind /");
257dd7cddfSDavid du Colombier 
26*41dd6b47SDavid du Colombier 	/* fixed sysname - enables correct namespace file */
277dd7cddfSDavid du Colombier 	fd = open("#c/sysname", OWRITE);
287dd7cddfSDavid du Colombier 	if(fd < 0)
297dd7cddfSDavid du Colombier 		fatal("open sysname");
309a747e4fSDavid du Colombier 	write(fd, "brick", 5);
317dd7cddfSDavid du Colombier 	close(fd);
327dd7cddfSDavid du Colombier 
337dd7cddfSDavid du Colombier 	fd = open("#c/hostowner", OWRITE);
347dd7cddfSDavid du Colombier 	if(fd < 0)
357dd7cddfSDavid du Colombier 		fatal("open sysname");
369a747e4fSDavid du Colombier 	write(fd, "brick", 5);
377dd7cddfSDavid du Colombier 	close(fd);
387dd7cddfSDavid du Colombier 
397dd7cddfSDavid du Colombier 	sprint(cmd, "/%s/init", cputype);
4080ee5cbfSDavid du Colombier 	print("starting %s\n", cmd);
417dd7cddfSDavid du Colombier 	execl(cmd, "init", "-c", 0);
427dd7cddfSDavid du Colombier 	fatal(cmd);
437dd7cddfSDavid du Colombier }
447dd7cddfSDavid du Colombier 
457dd7cddfSDavid du Colombier int
connectsac(void)467dd7cddfSDavid du Colombier connectsac(void)
477dd7cddfSDavid du Colombier {
48*41dd6b47SDavid du Colombier 	/* does not get here */
497dd7cddfSDavid du Colombier 	return -1;
507dd7cddfSDavid du Colombier }
51