xref: /plan9/sys/src/cmd/execnet/main.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <fcall.h>
4*9a747e4fSDavid du Colombier #include <thread.h>
5*9a747e4fSDavid du Colombier #include <9p.h>
6*9a747e4fSDavid du Colombier #include "dat.h"
7*9a747e4fSDavid du Colombier 
8*9a747e4fSDavid du Colombier void
usage(void)9*9a747e4fSDavid du Colombier usage(void)
10*9a747e4fSDavid du Colombier {
11*9a747e4fSDavid du Colombier 	fprint(2, "usage: execnet [-n exec] [/net]\n");
12*9a747e4fSDavid du Colombier 	exits("usage");
13*9a747e4fSDavid du Colombier }
14*9a747e4fSDavid du Colombier 
15*9a747e4fSDavid du Colombier void
threadmain(int argc,char ** argv)16*9a747e4fSDavid du Colombier threadmain(int argc, char **argv)
17*9a747e4fSDavid du Colombier {
18*9a747e4fSDavid du Colombier 	char *net;
19*9a747e4fSDavid du Colombier 
20*9a747e4fSDavid du Colombier //extern long _threaddebuglevel;
21*9a747e4fSDavid du Colombier //_threaddebuglevel = 1<<20;	/* DBGNOTE */
22*9a747e4fSDavid du Colombier 
23*9a747e4fSDavid du Colombier 	rfork(RFNOTEG);
24*9a747e4fSDavid du Colombier 	ARGBEGIN{
25*9a747e4fSDavid du Colombier 	case 'D':
26*9a747e4fSDavid du Colombier 		chatty9p++;
27*9a747e4fSDavid du Colombier 		break;
28*9a747e4fSDavid du Colombier 	case 'n':
29*9a747e4fSDavid du Colombier 		setexecname(EARGF(usage()));
30*9a747e4fSDavid du Colombier 		break;
31*9a747e4fSDavid du Colombier 	}ARGEND
32*9a747e4fSDavid du Colombier 
33*9a747e4fSDavid du Colombier 	switch(argc){
34*9a747e4fSDavid du Colombier 	default:
35*9a747e4fSDavid du Colombier 		usage();
36*9a747e4fSDavid du Colombier 	case 0:
37*9a747e4fSDavid du Colombier 		net = "/net";
38*9a747e4fSDavid du Colombier 		break;
39*9a747e4fSDavid du Colombier 	case 1:
40*9a747e4fSDavid du Colombier 		net = argv[0];
41*9a747e4fSDavid du Colombier 		break;
42*9a747e4fSDavid du Colombier 	}
43*9a747e4fSDavid du Colombier 
44*9a747e4fSDavid du Colombier 	quotefmtinstall();
45*9a747e4fSDavid du Colombier 
46*9a747e4fSDavid du Colombier 	initfs();
47*9a747e4fSDavid du Colombier 	threadpostmountsrv(&fs, nil, net, MBEFORE);
48*9a747e4fSDavid du Colombier 	threadexits(nil);
49*9a747e4fSDavid du Colombier }
50*9a747e4fSDavid du Colombier 
51*9a747e4fSDavid du Colombier 
52