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