<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 13.6.?快速參考 本節總結本章介紹的符號: #include <linux/usb.h> 所有和 USB 相關的頭文件. 它必須被所有的 USB 設備驅動包含. struct usb_driver; 描述 USB 驅動的結構. struct usb_device_id; 描述這個驅動支持的 USB 設備的結構. int usb_register(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 usb urb*的函數. ~~~ 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 數據傳輸的函數. ~~~ 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 的函數. ~~~ 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); ~~~ 用來發送和接受 USB 數據的函數, 不必使用一個 struct urb.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看