本节总结本章中介绍的符号:
#include <linux/usb.h>
和USB相关的所有内容所在的头文件。所有的USB设备驱动程序都必须包括该文件。
struct usb_driver
描述USB驱动程序的结构体。
struct usb_device_id
描述该驱动程序支持的USB设备类型的结构体。
int usb_register(struct usb_driver *d);
void usb_deregister(struct usb_driver *d);
用于往USB核心注册和注销USB驱动程序的函数。
struct usb_device *interface_to_usbdev(struct usb_interface *intf);
从一个struct usb_interface *获取一个控制的struct usb_device *.
struct usb_device;
控制整个USB设备的结构体。
struct usb_interface;
主要的USB设备结构体,所有的USB驱动程序都用它来和USB核心进行通信。
void usb_set_intfdata(struct usb_interface *intf,void *data);
void *usb_get_intfdata(struct usb_interface *intf);
用于设置和获取struct usb_interface内私有数据指针的函数。
struct usb_class_driver;
描述了想要使用USB主设备号和用户空间程序进行通信的USB驱动程序段额结构体。
int usb_register_dev(struct usb_interface *intf,struct usb_class_driver *class_driver);
void usb_deregister_dev(struct usb_interface *intf,struct usb_class_driver *class_driver);
用于注册和注销特定的struct usb_interface *结构体的函数,使用一个struct usb_class_driver *结构体。
struct urb;
描述一个USB数据传输的结构体。
struct urb *usb_alloc_urb(int iso_packets,int mem_flags);
void usb_free_urb(struct urb *urb);
用于创建和销毁一个struct urb *的函数。
int usb_submit_urb(struct urb *urb,int mem_flags);
int usb_kill_urb(struct urb *urb);
用于开始和终止一个USB数据传输。
void usb_fill_int_urb(struct urb *urb,struct usb_device *dev,unsigned int pipe,void *transfer_buffer,int buffer_length,usb_complete_t complete, void *context,int interval);
void usb_fill_bulk_urb(struct urb *urb,struct usb_device *dev,unsigned int pipe,void *transfer_buffer,int buffer_length,usb_complete_t complete,void *context);
void usb_fill_control_urb(struct urb *urb,struct usb_device *dev,unsigned int pipe,unsigned char *setup_packet,void *transfer_buffer,int buffer_length,usb_complete_t complete,void *context);
用于在一个struct urb被提交到USB核心之前对它进行初始化的函数。
int usb_bulk_msg(struct usb_device *usb_dev,unsigned int pipe,void *data,int len,int *actual_length,int timeout);
int usb_control_msg(struct usb_device *dev,unsigned int pipe,__u8 request,__u8 requesttype,__u16 value,__u16 index,void *data,__u16 size,int timeout);
用于在不使用struct urb的情况下发送或接收USB数据的函数。