Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
#include <libc.h>
3
#include <thread.h>
4
#include "usb.h"
5
#include "hid.h"
6
 
7
typedef struct Parg Parg;
8
 
9
enum
10
{
11
	Ndevs = 10,
12
	Arglen = 80,
13
	Nargs = 10,
14
};
15
 
16
static void
17
usage(void)
18
{
19
	fprint(2, "usage: %s [-bdkm] [-a n] [-N nb] [dev...]\n", argv0);
20
	threadexitsall("usage");
21
}
22
 
23
void
24
threadmain(int argc, char **argv)
25
{
26
	char args[Arglen];
27
	char *as, *ae;
28
	int accel, pena, devid;
29
	int csps[] = { KbdCSP, PtrCSP, 0 };
30
 
31
	quotefmtinstall();
32
	pena = 1;
33
	ae = args+sizeof(args);
34
	as = seprint(args, ae, "kb");
35
	ARGBEGIN{
36
	case 'a':
37
		accel = strtol(EARGF(usage()), nil, 0);
38
		as = seprint(as, ae, " -a %d", accel);
39
		break;
40
	case 'd':
41
		usbdebug++;
42
		as = seprint(as, ae, " -d");
43
		break;
44
	case 'k':
45
		as = seprint(as, ae, " -k");
46
		pena = 0;
47
		break;
48
	case 'm':
49
		as = seprint(as, ae, " -m");
50
		pena = 1;
51
		break;
52
	case 'N':
53
		devid = atoi(EARGF(usage()));		/* ignore dev number */
54
		USED(devid);
55
		break;
56
	case 'b':
57
		as = seprint(as, ae, " -b");
58
		break;
59
	default:
60
		usage();
61
	}ARGEND;
62
 
63
	rfork(RFNOTEG);
64
	fmtinstall('U', Ufmt);
65
	threadsetgrp(threadid());
66
	if(pena == 0)
67
		csps[1] = 0;
68
	startdevs(args, argv, argc, matchdevcsp, csps, kbmain);
69
	threadexits(nil);
70
}