#include<linux/usb.h>
所有和USB相关的头文件.它必须被所有的USB设备驱动包含.
structusb_driver;
描述USB驱动的结构.
structusb_device_id;
描述这个驱动支持的USB设备的结构.
intusb_register(structusb_driver*d);
用来从USB核心注册和注销一个USB驱动的函数.
structusb_device*interface_to_usbdev(structusb_interface*intf);
从structusb_interface获取控制structusb_device*.
structusb_device;
控制完整USB设备的结构.
structusb_interface;
主USB设备结构,所有的USB驱动用来和USB核心通讯的.
voidusb_set_intfdata(structusb_interface*intf,void*data);
void*usb_get_intfdata(structusb_interface*intf);
设置和获取在structusb_interface中的私有数据指针部分的函数.
structusb_class_driver;
描述USB驱动的一个结构,这个驱动要使用USB主编号来和用户空间程序通讯.
intusb_register_dev(structusb_interface*intf,structusb_class_driver*class_driver);
voidusb_deregister_dev(structusb_interface*intf,structusb_class_driver*class_driver);
用来注册和注销一个特定structusb_interface*结构到structusb_class_driver结构的函数.
structurb;
描述一个USB数据传输的结构.
structurb*usb_alloc_urb(intiso_packets,intmem_flags);
voidusb_free_urb(structurb*urb);
用来创建和销毁一个structusburb*的函数.
intusb_submit_urb(structurb*urb,intmem_flags);
intusb_kill_urb(structurb*urb);
intusb_unlink_urb(structurb*urb);
用来启动和停止一个USB数据传输的函数.
voidusb_fill_int_urb(structurb*urb,structusb_device*dev,unsignedintpipe,void*transfer_buffer,int
buffer_length,usb_complete_tcomplete,void*context,intinterval);
voidusb_fill_bulk_urb(structurb*urb,structusb_device*dev,unsignedintpipe,void*transfer_buffer,int
buffer_length,usb_complete_tcomplete,void*context);
voidusb_fill_control_urb(structurb*urb,structusb_device*dev,unsignedintpipe,unsignedchar
*setup_packet,void*transfer_buffer,intbuffer_length,usb_complete_tcomplete,void*context);
用来在被提交给USB核心之前初始化一个structurb的函数.
intusb_bulk_msg(structusb_device*usb_dev,unsignedintpipe,void*data,intlen,int*actual_length,int
timeout);
intusb_control_msg(structusb_device*dev,unsignedintpipe,__u8request,__u8requesttype,__u16
value,__u16index,void*data,__u16size,inttimeout);
用来发送和接受USB数据的函数,不必使用一个structurb.