12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #include <u.h>
- #include <libc.h>
- #include <../boot/boot.h>
- char *fparts[] =
- {
- "add bootldr 0x0000000 0x0040000",
- "add params 0x0040000 0x0080000",
- "add kernel 0x0080000 0x0140000",
- "add user 0x0140000 0x0200000",
- "add ramdisk 0x0200000 0x0600000",
- };
- void
- configpaq(Method*)
- {
- int fd;
- int i;
- if(bind("#F", "/dev", MAFTER) < 0)
- fatal("bind #c");
- if(bind("#p", "/proc", MREPL) < 0)
- fatal("bind #p");
- fd = open("/dev/flash/flashctl", OWRITE);
- if(fd < 0)
- fatal("opening flashctl");
- for(i = 0; i < nelem(fparts); i++)
- if(fprint(fd, fparts[i]) < 0)
- fatal(fparts[i]);
- close(fd);
- }
- int
- connectpaq(void)
- {
- int p[2];
- char **arg, **argp;
- print("paq...");
- if(pipe(p)<0)
- fatal("pipe");
- switch(fork()){
- case -1:
- fatal("fork");
- case 0:
- arg = malloc(10*sizeof(char*));
- argp = arg;
- *argp++ = "paqfs";
- *argp++ = "-v";
- *argp++ = "-i";
- *argp++ = "/dev/flash/ramdisk";
- *argp = 0;
- dup(p[0], 0);
- dup(p[1], 1);
- close(p[0]);
- close(p[1]);
- exec("/boot/paqfs", arg);
- fatal("can't exec paqfs");
- default:
- break;
- }
- waitpid();
- close(p[1]);
- return p[0];
- }
|