61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2006 Chris Double.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
!
 | 
						|
IN: usb
 | 
						|
USING: kernel alien ;
 | 
						|
 | 
						|
"usb" "libusb.so" "cdecl" add-library
 | 
						|
 | 
						|
LIBRARY: usb
 | 
						|
 | 
						|
C-STRUCT: usb_bus
 | 
						|
    { "void*" "next" }
 | 
						|
    { "void*" "prev" }
 | 
						|
    { { "char" 4097 } "dirname" }
 | 
						|
    { "void*" "devices" }
 | 
						|
    { "uint" "location" }
 | 
						|
    { "void*" "root_dev" } ;
 | 
						|
 | 
						|
! __attribute__ ((packed))
 | 
						|
C-STRUCT: usb_device_descriptor
 | 
						|
    { +packed+ "uchar" "bLength" }
 | 
						|
    { +packed+ "uchar" "bDescriptorType" }
 | 
						|
    { +packed+ "ushort" "bcdUSB" }
 | 
						|
    { +packed+ "uchar" "bDeviceClass" }
 | 
						|
    { +packed+ "uchar" "bDeviceSubClass" }
 | 
						|
    { +packed+ "uchar" "bDeviceProtocol" }
 | 
						|
    { +packed+ "uchar" "bMaxPacketSize0" }
 | 
						|
    { +packed+ "ushort" "idVendor" }
 | 
						|
    { +packed+ "ushort" "idProduct" }
 | 
						|
    { +packed+ "ushort" "bcdDevice" }
 | 
						|
    { +packed+ "uchar" "iManufacturer" }
 | 
						|
    { +packed+ "uchar" "iProduct" }
 | 
						|
    { +packed+ "uchar" "iSerialNumber" }
 | 
						|
    { +packed+ "uchar" "bNumConfigurations" } ;
 | 
						|
 | 
						|
C-STRUCT: usb_config_descriptor
 | 
						|
    { +packed+ "uchar" "bLength" }
 | 
						|
    { +packed+ "uchar" "bDescriptorType" }
 | 
						|
    { +packed+ "ushort" "wTotalLength" }
 | 
						|
    { +packed+ "uchar" "bNumInterfaces" }
 | 
						|
    { +packed+ "uchar" "bConfigurationValue" }
 | 
						|
    { +packed+ "uchar" "iConfiguration" }
 | 
						|
    { +packed+ "uchar" "bmAttributes" }
 | 
						|
    { +packed+ "uchar" "MaxPower" }
 | 
						|
    
 | 
						|
    { "void*" "interface" }
 | 
						|
    
 | 
						|
    { "uchar*" "extra" }
 | 
						|
    { "int" "extralen" } ;
 | 
						|
 | 
						|
C-STRUCT: usb_device
 | 
						|
    { "void*" "next" }
 | 
						|
    { "void*" "prev" }
 | 
						|
    { { "char" 4097 } "filename" }
 | 
						|
    { "usb_bus*" "bus" }
 | 
						|
    { "usb_device_descriptor" "descriptor" }
 | 
						|
    { "usb_config_descriptor*" "config" }
 | 
						|
    { "void*" "dev" }
 | 
						|
    { "uchar" "devnum" }
 | 
						|
    { "uchar" "num_children" }
 | 
						|
    { "void*" "children" } ; |