plan 9 kernel history: overview | file list | diff list

1993/0330/boot/dosboot.c (diff list | history)

1992/0828/sys/src/9/boot/dosboot.c:32,381993/0115/sys/src/9/boot/dosboot.c:32,38 (short | long)
1992/0828    
		fatal("bind"); 
	if(mount(fd, "/", MAFTER|MCREATE, "#f/fd0disk", "") < 0) 
		if(mount(fd, "/", MAFTER|MCREATE, "#f/fd1disk", "") < 0) 
			if(mount(fd, "/", MAFTER|MCREATE, "#w/hd0dos", "") < 0) 
1993/0115    
			if(mount(fd, "/", MAFTER|MCREATE, "#H/hd0dos", "") < 0) 
1992/0828    
				fatal("mount"); 
	close(fd); 
 
1993/0115/sys/src/9/boot/dosboot.c:30,381993/0330/sys/src/9/boot/dosboot.c:30,38 (short | long)
1992/0828    
	 */ 
	if(bind("/", "/", MREPL) < 0) 
		fatal("bind"); 
	if(mount(fd, "/", MAFTER|MCREATE, "#f/fd0disk", "") < 0) 
		if(mount(fd, "/", MAFTER|MCREATE, "#f/fd1disk", "") < 0) 
1993/0115    
			if(mount(fd, "/", MAFTER|MCREATE, "#H/hd0dos", "") < 0) 
1993/0330    
	if(mount(fd, "/", MAFTER|MCREATE, "#f/fd0disk") < 0) 
		if(mount(fd, "/", MAFTER|MCREATE, "#f/fd1disk") < 0) 
			if(mount(fd, "/", MAFTER|MCREATE, "#H/hd0dos") < 0) 
1992/0828    
				fatal("mount"); 
	close(fd); 
 
1993/0330/sys/src/9/boot/dosboot.c:29,391997/0812/sys/src/9/boot/dosboot.c:29,39 (short | long)
1992/0828    
	 *  pick a floppy and mount it as root 
	 */ 
	if(bind("/", "/", MREPL) < 0) 
		fatal("bind"); 
1997/0812    
		fatal("bind /"); 
1993/0330    
	if(mount(fd, "/", MAFTER|MCREATE, "#f/fd0disk") < 0) 
		if(mount(fd, "/", MAFTER|MCREATE, "#f/fd1disk") < 0) 
			if(mount(fd, "/", MAFTER|MCREATE, "#H/hd0dos") < 0) 
1992/0828    
				fatal("mount"); 
1997/0812    
				fatal("mount /"); 
1992/0828    
	close(fd); 
 
	settime(1); 
1997/0812/sys/src/9/boot/dosboot.c:32,382000/0518/sys/src/9/boot/dosboot.c:32,38 (short | long)
1997/0812    
		fatal("bind /"); 
1993/0330    
	if(mount(fd, "/", MAFTER|MCREATE, "#f/fd0disk") < 0) 
		if(mount(fd, "/", MAFTER|MCREATE, "#f/fd1disk") < 0) 
			if(mount(fd, "/", MAFTER|MCREATE, "#H/hd0dos") < 0) 
2000/0518    
			if(mount(fd, "/", MAFTER|MCREATE, "#S/sdC0/dos") < 0) 
1997/0812    
				fatal("mount /"); 
1992/0828    
	close(fd); 
 
2000/0518/sys/src/9/boot/dosboot.c:30,422001/0819/sys/src/9/boot/dosboot.c:30,42 (short | long)
1992/0828    
	 */ 
	if(bind("/", "/", MREPL) < 0) 
1997/0812    
		fatal("bind /"); 
1993/0330    
	if(mount(fd, "/", MAFTER|MCREATE, "#f/fd0disk") < 0) 
		if(mount(fd, "/", MAFTER|MCREATE, "#f/fd1disk") < 0) 
2000/0518    
			if(mount(fd, "/", MAFTER|MCREATE, "#S/sdC0/dos") < 0) 
2001/0819    
	if(mount(fd, -1, "/", MAFTER|MCREATE, "#f/fd0disk") < 0) 
		if(mount(fd, -1, "/", MAFTER|MCREATE, "#f/fd1disk") < 0) 
			if(mount(fd, -1, "/", MAFTER|MCREATE, "#S/sdC0/dos") < 0) 
1997/0812    
				fatal("mount /"); 
1992/0828    
	close(fd); 
 
	settime(1); 
2001/0819    
	settime(1, -1); 
1992/0828    
	swapproc(); 
 
	execl("/386/init", "init", "-mt", 0); 
2001/0819/sys/src/9/boot/dosboot.c:1,772001/1215/sys/src/9/boot/dosboot.c:0 (short | long)
Deleted.
rsc Mon Mar 7 10:21:00 2005
1992/0828    
#include <u.h> 
#include <libc.h> 
#include "../boot/boot.h" 
                 
int	printcol; 
                 
static void	dossrv(void); 
static void	swapproc(void); 
                 
void 
dosboot(void) 
{ 
	int fd; 
                 
	open("#c/cons", OREAD); 
	open("#c/cons", OWRITE); 
	open("#c/cons", OWRITE); 
                 
	/* 
	 *  start to dos file system server 
	 */ 
	dossrv(); 
	sleep(1000); 
	fd = open("#s/boot", ORDWR); 
	if(fd < 0) 
		fatal("open #s/boot"); 
                 
	/* 
	 *  pick a floppy and mount it as root 
	 */ 
	if(bind("/", "/", MREPL) < 0) 
1997/0812    
		fatal("bind /"); 
2001/0819    
	if(mount(fd, -1, "/", MAFTER|MCREATE, "#f/fd0disk") < 0) 
		if(mount(fd, -1, "/", MAFTER|MCREATE, "#f/fd1disk") < 0) 
			if(mount(fd, -1, "/", MAFTER|MCREATE, "#S/sdC0/dos") < 0) 
1997/0812    
				fatal("mount /"); 
1992/0828    
	close(fd); 
                 
2001/0819    
	settime(1, -1); 
1992/0828    
	swapproc(); 
                 
	execl("/386/init", "init", "-mt", 0); 
	fatal("/386/init"); 
} 
                 
static void 
dossrv(void) 
{ 
	print("dossrv..."); 
	if(bind("#c", "/dev", MREPL) < 0) 
		fatal("bind #c"); 
	if(bind("#p", "/proc", MREPL) < 0) 
		fatal("bind #p"); 
	switch(fork()){ 
	case -1: 
		fatal("fork"); 
	case 0: 
		execl("/cfs", "cfs", "boot", 0); 
		fatal("can't exec cfs"); 
	default: 
		break; 
	} 
} 
                 
static void 
swapproc(void) 
{ 
	int fd; 
                 
	fd = open("#c/swap", OWRITE); 
	if(fd < 0){ 
		warning("opening #c/swap"); 
		return; 
	} 
	if(write(fd, "start", 5) <= 0) 
		warning("starting swap kproc"); 
} 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)