27
|
1 #include <sys/types.h>
|
|
2 #include <sys/ioctl.h>
|
|
3 #include <dev/usb/usb.h>
|
|
4 #include <sys/errno.h>
|
|
5 #include <sys/uio.h>
|
|
6 #include <unistd.h>
|
|
7 #include <fcntl.h>
|
|
8 #include <stdio.h>
|
|
9
|
|
10 int
|
|
11 main(int argc, char **argv) {
|
|
12 int endpt2fd, i, len;
|
|
13 char *endpt2name = "/dev/ugen0.2";
|
|
14 uint8_t data[256];
|
|
15
|
|
16 if ((endpt2fd = open(endpt2name, O_RDWR)) == -1) {
|
|
17 fprintf(stderr, "Unable to open %s: %s\n", endpt2name, strerror(errno));
|
|
18 exit(1);
|
|
19 }
|
|
20
|
|
21 i = 1;
|
|
22 if (ioctl(endpt2fd, USB_SET_SHORT_XFER, &i) == -1) {
|
|
23 fprintf(stderr, "Unable to set short xfer on end point 2: %s\n", strerror(errno));
|
|
24 exit(1);
|
|
25 }
|
|
26
|
|
27 while(1) {
|
|
28 len = read(endpt2fd, data, 256);
|
|
29 printf("len = %d\n", len);
|
|
30 if (len == 0) {
|
|
31 printf("EOF\n");
|
|
32 continue;
|
|
33 }
|
|
34 if (len == -1) {
|
|
35 printf("read error: %s\n", strerror(errno));
|
|
36 exit(1);
|
|
37 }
|
|
38
|
|
39 for (i = 0; i < len; i++)
|
|
40 printf("0x%02x ", data[i]);
|
|
41 printf("\n");
|
|
42 }
|
|
43 }
|
|
44
|