==== OUTPUT ==== leftwing@atlantis USB $ cc -I/usr/sfw/include -L/usr/sfw/lib -R/usr/sfw/lib -lusb test1.c -o test1 ; ./test1 libusb test (JMC #1) usb_init()... usb_find_busses()... usb_find_devices()... busses = usb_get_busses()... BUS: 001 Device: 0430_00a2 Vendor: 1072 Product: 162 Device Class: USB_CLASS_PER_INTERFACE Device: 046d_c043 Vendor: 1133 Product: 49219 (Logitech) Device Class: USB_CLASS_PER_INTERFACE Device: 0430_100e Vendor: 1072 Product: 4110 Device Class: USB_CLASS_HUB Device: 0518_0001 Vendor: 1304 Product: 1 Device Class: USB_CLASS_PER_INTERFACE Device: 0451_2046 Vendor: 1105 Product: 8262 Device Class: USB_CLASS_HUB Device: 0451_1446 Vendor: 1105 Product: 5190 Device Class: USB_CLASS_HUB Device: 0000_0000 Vendor: 0 Product: 0 Device Class: USB_CLASS_HUB ==== SOURCE ==== #include #include #include void main(void) { struct usb_bus *busses; struct usb_bus *bus; int c, i, a; printf("libusb test (JMC #1)\n"); printf("usb_init()...\n"); usb_init(); printf("usb_find_busses()...\n"); usb_find_busses(); printf("usb_find_devices()...\n"); usb_find_devices(); printf("busses = usb_get_busses()...\n"); busses = usb_get_busses(); for (bus = busses; bus; bus = bus->next) { struct usb_device *dev; printf("BUS: %s\n", bus->dirname); for (dev = bus->devices; dev; dev = dev->next) { struct usb_device_descriptor *desc = &(dev->descriptor); printf(" Device: %s\n", dev->filename); printf(" Vendor: %d\n", desc->idVendor); printf(" Product: %d\n", desc->idProduct); if (desc->idVendor == 1133) printf(" (Logitech)\n"); if (desc->idProduct == 2160) printf(" (Quickcam Express)\n"); // Enumerate and print values for bDeviceClass: printf(" Device Class:\n"); if (desc->bDeviceClass == USB_CLASS_PER_INTERFACE) printf(" USB_CLASS_PER_INTERFACE\n"); if (desc->bDeviceClass == USB_CLASS_AUDIO) printf(" USB_CLASS_AUDIO\n"); if (desc->bDeviceClass == USB_CLASS_COMM) printf(" USB_CLASS_COMM\n"); if (desc->bDeviceClass == USB_CLASS_HID) printf(" USB_CLASS_HID\n"); if (desc->bDeviceClass == USB_CLASS_PRINTER) printf(" USB_CLASS_PRINTER\n"); if (desc->bDeviceClass == USB_CLASS_MASS_STORAGE) printf(" USB_CLASS_MASS_STORAGE\n"); if (desc->bDeviceClass == USB_CLASS_HUB) printf(" USB_CLASS_HUB\n"); if (desc->bDeviceClass == USB_CLASS_DATA) printf(" USB_CLASS_DATA\n"); if (desc->bDeviceClass == USB_CLASS_VENDOR_SPEC) printf(" USB_CLASS_VENDOR_SPEC\n"); printf("\n"); } } }