• Linux 内核控制 urb


    控制 urb 被初始化几乎和 块 urb 相同的方式, 使用对函数 usb_fill_control_urb 的 调用:

    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_fill_bulk_urb 函数都相同, 除了有个新参数, unsigned char

    *setup_packet, 它必须指向要发送给端点的 setup 报文数据. 还有, unsigned int

    pipe 变量必须被初始化, 使用对 usb_sndctrlpipe 或者 usb_rcvictrlpipe 函数的调用.

    usb_fill_control_urb 函数不设置 transfer_flags 变量在 urb 中, 因此任何对这个成 员的修改必须游驱动自己完成. 大部分驱动不使用这个函数, 因为使用在"USB 传送不用 urb"一节中介绍的同步 API 调用更简单.

  • 相关阅读:
    UVA 1590 IP Networks
    UVA 12108
    HDUOJ 1042 N!
    UVA201 Squares
    UVaOJ 1339
    UVaOJ 202
    UVaOJ 100
    UVaOJ 10340
    第五章 跳跃表
    第四章 字典
  • 原文地址:https://www.cnblogs.com/fanweisheng/p/11147321.html
Copyright © 2020-2023  润新知