1906943f9SDavid du Colombier /*
2906943f9SDavid du Colombier * usb/print - usb printer
3906943f9SDavid du Colombier */
4906943f9SDavid du Colombier #include <u.h>
5906943f9SDavid du Colombier #include <libc.h>
6906943f9SDavid du Colombier #include <thread.h>
7906943f9SDavid du Colombier #include "usb.h"
8906943f9SDavid du Colombier
9906943f9SDavid du Colombier enum
10906943f9SDavid du Colombier {
11906943f9SDavid du Colombier Arglen = 80,
12906943f9SDavid du Colombier };
13906943f9SDavid du Colombier
14906943f9SDavid du Colombier static void
usage(void)15906943f9SDavid du Colombier usage(void)
16906943f9SDavid du Colombier {
17*ed868a7cSDavid du Colombier fprint(2, "usage: %s [-d] [-N nb] [dev...]\n", argv0);
18906943f9SDavid du Colombier threadexitsall("usage");
19906943f9SDavid du Colombier }
20906943f9SDavid du Colombier
21906943f9SDavid du Colombier static int csps[] = { 0x020107, 0 };
22906943f9SDavid du Colombier
23906943f9SDavid du Colombier extern int printmain(Dev*, int, char**);
24906943f9SDavid du Colombier
25906943f9SDavid du Colombier void
threadmain(int argc,char ** argv)26906943f9SDavid du Colombier threadmain(int argc, char **argv)
27906943f9SDavid du Colombier {
28906943f9SDavid du Colombier char args[Arglen];
29*ed868a7cSDavid du Colombier char *as;
30906943f9SDavid du Colombier char *ae;
31906943f9SDavid du Colombier
32906943f9SDavid du Colombier quotefmtinstall();
33906943f9SDavid du Colombier ae = args+sizeof(args);
34*ed868a7cSDavid du Colombier as = seprint(args, ae, "print");
35906943f9SDavid du Colombier ARGBEGIN{
36906943f9SDavid du Colombier case 'd':
37906943f9SDavid du Colombier usbdebug++;
38906943f9SDavid du Colombier break;
39*ed868a7cSDavid du Colombier case 'N':
40*ed868a7cSDavid du Colombier as = seprint(as, ae, " -N %s", EARGF(usage()));
41*ed868a7cSDavid du Colombier break;
42906943f9SDavid du Colombier default:
43906943f9SDavid du Colombier usage();
44906943f9SDavid du Colombier }ARGEND
45906943f9SDavid du Colombier
46906943f9SDavid du Colombier rfork(RFNOTEG);
47906943f9SDavid du Colombier threadsetgrp(threadid());
48906943f9SDavid du Colombier fmtinstall('U', Ufmt);
49906943f9SDavid du Colombier startdevs(args, argv, argc, matchdevcsp, csps, printmain);
50906943f9SDavid du Colombier threadexits(nil);
51906943f9SDavid du Colombier }
52