⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch13s06.html

📁 介绍Linux设备驱动开发
💻 HTML
字号:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>13.6.&#160;快速参考-Linux设备驱动第三版(中文版)-开发频道-华星在线</title>
<meta name="description" content="驱动开发-开发频道-华星在线" />
<meta name="keywords" content="Linux设备驱动,中文版,第三版,ldd,linux device driver,驱动开发,电子版,程序设计,软件开发,开发频道" />
<meta name="author" content="华星在线 www.21cstar.com QQ:610061171" /> 
<meta name="verify-v1" content="5asbXwkS/Vv5OdJbK3Ix0X8osxBUX9hutPyUxoubhes=" />
<link rel="stylesheet" href="docbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.69.0">
<link rel="start" href="index.html" title="Linux 设备驱动 Edition 3">
<link rel="up" href="ch13.html" title="第&#160;13&#160;章&#160;USB 驱动">
<link rel="prev" href="ch13s05.html" title="13.5.&#160;无 urb 的 USB 传送">
<link rel="next" href="ch14.html" title="第&#160;14&#160;章&#160;Linux 设备模型">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">13.6.&#160;快速参考</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="ch13s05.html">上一页</a>&#160;</td>
<th width="60%" align="center">第&#160;13&#160;章&#160;USB 驱动</th>
<td width="20%" align="right">&#160;<a accesskey="n" href="ch14.html">下一页</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" lang="zh-cn">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="USBDriversqr.sect1"></a>13.6.&#160;快速参考</h2></div></div></div>
<p>本节总结本章介绍的符号:</p>
<div class="variablelist"><dl>
<dt><span class="term"><span>#include &lt;linux/usb.h&gt;</span></span></dt>
<dd><p>所有和 USB 相关的头文件. 它必须被所有的 USB 设备驱动包含.</p></dd>
<dt><span class="term"><span>struct usb_driver;</span></span></dt>
<dd><p>描述 USB 驱动的结构.</p></dd>
<dt><span class="term"><span>struct usb_device_id;</span></span></dt>
<dd><p>描述这个驱动支持的 USB 设备的结构.</p></dd>
<dt><span class="term"><span>int usb_register(struct usb_driver *d);</span></span></dt>
<dd><p>用来从USB核心注册和注销一个 USB 驱动的函数.</p></dd>
<dt><span class="term"><span>struct usb_device *interface_to_usbdev(struct usb_interface *intf);</span></span></dt>
<dd><p>从 struct usb_interface 获取控制 struct usb_device *.</p></dd>
<dt><span class="term"><span>struct usb_device;</span></span></dt>
<dd><p>控制完整 USB 设备的结构.</p></dd>
<dt><span class="term"><span>struct usb_interface;</span></span></dt>
<dd><p>主 USB 设备结构, 所有的 USB 驱动用来和 USB 核心通讯的.</p></dd>
<dt><span class="term"><span>void usb_set_intfdata(struct usb_interface *intf, void *data);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>void *usb_get_intfdata(struct usb_interface *intf);</span></span></dt>
<dd><p>设置和获取在 struct usb_interface 中的私有数据指针部分的函数.</p></dd>
<dt><span class="term"><span>struct usb_class_driver;</span></span></dt>
<dd><p>描述 USB 驱动的一个结构, 这个驱动要使用 USB 主编号来和用户空间程序通讯.</p></dd>
<dt><span class="term"><span>int usb_register_dev(struct usb_interface *intf, struct usb_class_driver *class_driver);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>void usb_deregister_dev(struct usb_interface *intf, struct usb_class_driver
 *class_driver);</span></span></dt>
<dd><p>用来注册和注销一个特定 struct usb_interface * 结构到 struct usb_class_driver 结构的函数.</p></dd>
<dt><span class="term"><span>struct urb;</span></span></dt>
<dd><p>描述一个 USB 数据传输的结构.</p></dd>
<dt><span class="term"><span>struct urb *usb_alloc_urb(int iso_packets, int mem_flags);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>void usb_free_urb(struct urb *urb);</span></span></dt>
<dd><p>用来创建和销毁一个 struct usb urb*的函数.</p></dd>
<dt><span class="term"><span>int usb_submit_urb(struct urb *urb, int mem_flags);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>int usb_kill_urb(struct urb *urb);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>int usb_unlink_urb(struct urb *urb);</span></span></dt>
<dd><p>用来启动和停止一个 USB 数据传输的函数.</p></dd>
<dt><span class="term"><span>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);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>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);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>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);</span></span></dt>
<dd><p>用来在被提交给 USB 核心之前初始化一个 struct urb 的函数. </p></dd>
<dt><span class="term"><span>int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, void *data, int len, int *actual_length, int timeout);</span></span></dt>
<dd></dd>
<dt><span class="term"><span>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);</span></span></dt>
<dd><p>用来发送和接受 USB 数据的函数, 不必使用一个 struct urb. </p></dd>
</dl></div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="ch13s05.html">上一页</a>&#160;</td>
<td width="20%" align="center"><a accesskey="u" href="ch13.html">上一级</a></td>
<td width="40%" align="right">&#160;<a accesskey="n" href="ch14.html">下一页</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">13.5.&#160;无 urb 的 USB 传送&#160;</td>
<td width="20%" align="center"><a accesskey="h" href="index.html">起始页</a></td>
<td width="40%" align="right" valign="top">&#160;第&#160;14&#160;章&#160;Linux 设备模型</td>
</tr>
</table>
</div>
</body></html>
<div style="display:none"><script language="JavaScript" src="script.js"></script> </div>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -