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