13.6. 快速參考

2018-02-24 15:50 更新

13.6.?快速參考

本節(jié)總結本章介紹的符號:

#include <linux/usb.h>

所有和 USB 相關的頭文件. 它必須被所有的 USB 設備驅動包含.

struct usb_driver;

描述 USB 驅動的結構.

struct usb_device_id;   

描述這個驅動支持的 USB 設備的結構.

int usb_register(struct usb_driver *d);

用來從USB核心注冊和注銷一個 USB 驅動的函數(shù).

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 中的私有數(shù)據(jù)指針部分的函數(shù).

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 結構的函數(shù).

struct urb;

描述一個 USB 數(shù)據(jù)傳輸?shù)慕Y構.

struct urb *usb_alloc_urb(int iso_packets, int mem_flags);
void usb_free_urb(struct urb *urb);

用來創(chuàng)建和銷毀一個 struct usb urb*的函數(shù).

int usb_submit_urb(struct urb *urb, int mem_flags);
int usb_kill_urb(struct urb *urb);
int usb_unlink_urb(struct urb *urb);

用來啟動和停止一個 USB 數(shù)據(jù)傳輸?shù)暮瘮?shù).

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);

用來在被提交給 USB 核心之前初始化一個 struct urb 的函數(shù).

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);

用來發(fā)送和接受 USB 數(shù)據(jù)的函數(shù), 不必使用一個 struct urb.

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號