xref: /plan9/sys/src/cmd/usb/print/main.c (revision 906943f9f6b8411972abb5e3a03ed19f74be7ccc)
1*906943f9SDavid du Colombier /*
2*906943f9SDavid du Colombier  * usb/print - usb printer
3*906943f9SDavid du Colombier  */
4*906943f9SDavid du Colombier #include <u.h>
5*906943f9SDavid du Colombier #include <libc.h>
6*906943f9SDavid du Colombier #include <thread.h>
7*906943f9SDavid du Colombier #include "usb.h"
8*906943f9SDavid du Colombier 
9*906943f9SDavid du Colombier enum
10*906943f9SDavid du Colombier {
11*906943f9SDavid du Colombier 	Arglen = 80,
12*906943f9SDavid du Colombier };
13*906943f9SDavid du Colombier 
14*906943f9SDavid du Colombier static void
15*906943f9SDavid du Colombier usage(void)
16*906943f9SDavid du Colombier {
17*906943f9SDavid du Colombier 	fprint(2, "usage: %s [-d] [dev...]\n", argv0);
18*906943f9SDavid du Colombier 	threadexitsall("usage");
19*906943f9SDavid du Colombier }
20*906943f9SDavid du Colombier 
21*906943f9SDavid du Colombier static int csps[] = { 0x020107, 0 };
22*906943f9SDavid du Colombier 
23*906943f9SDavid du Colombier extern int printmain(Dev*, int, char**);
24*906943f9SDavid du Colombier 
25*906943f9SDavid du Colombier void
26*906943f9SDavid du Colombier threadmain(int argc, char **argv)
27*906943f9SDavid du Colombier {
28*906943f9SDavid du Colombier 	char args[Arglen];
29*906943f9SDavid du Colombier 	char *ae;
30*906943f9SDavid du Colombier 
31*906943f9SDavid du Colombier 	quotefmtinstall();
32*906943f9SDavid du Colombier 	ae = args+sizeof(args);
33*906943f9SDavid du Colombier 	seprint(args, ae, "print");
34*906943f9SDavid du Colombier 	ARGBEGIN{
35*906943f9SDavid du Colombier 	case 'd':
36*906943f9SDavid du Colombier 		usbdebug++;
37*906943f9SDavid du Colombier 		break;
38*906943f9SDavid du Colombier 	default:
39*906943f9SDavid du Colombier 		usage();
40*906943f9SDavid du Colombier 	}ARGEND
41*906943f9SDavid du Colombier 
42*906943f9SDavid du Colombier 	rfork(RFNOTEG);
43*906943f9SDavid du Colombier 	threadsetgrp(threadid());
44*906943f9SDavid du Colombier 	fmtinstall('U', Ufmt);
45*906943f9SDavid du Colombier 	startdevs(args, argv, argc, matchdevcsp, csps, printmain);
46*906943f9SDavid du Colombier 	threadexits(nil);
47*906943f9SDavid du Colombier }
48