==== OUTPUT ==== leftwing@atlantis USB $ cc -I/usr/sfw/include -L/usr/sfw/lib -R/usr/sfw/lib -lusb test1.c -o test1 ; ./test1 #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"); } } } ==== 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"); } } }