testugen.c
author darius@Inchoate
Mon, 19 Jan 2009 22:54:19 +1030
changeset 71 553c061fda7c
permissions -rw-r--r--
Keep the newer GCC happy.
     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