LDD3读书笔记(第16章 USB驱动程序)

本节总结本章中介绍的符号:

#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数据的函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值