summaryrefslogtreecommitdiff
path: root/sys/src/9/boot/testboot.c
blob: 07333163b49a8deee93b5f41e787182b14a357e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <u.h>
#include <libc.h>
#include <auth.h>

void
usage(void)
{
	fprint(2, "usage: testboot cmd args...\n");
	exits("usage");
}

void
main(int argc, char **argv)
{
	int p[2];

	if(argc == 1)
		usage();

	pipe(p);
	switch(rfork(RFPROC|RFFDG|RFNAMEG)){
	case -1:
		sysfatal("fork: %r");

	case 0:
		dup(p[0], 0);
		dup(p[1], 1);
		exec(argv[1], argv+1);
		sysfatal("exec: %r");

	default:
		if(amount(p[0], "/n/kremvax", MREPL, "") < 0)
			sysfatal("amount: %r");
		break;
	}
	exits(nil);
}