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 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 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