?? usbcontrol_8c.html
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>LPCUSB: usbcontrol.c File Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.1 --><div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul></div><div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul></div><h1>usbcontrol.c File Reference</h1><code>#include "<a class="el" href="type_8h-source.html">type.h</a>"</code><br><code>#include "usbdebug.h"</code><br><code>#include "usbstruct.h"</code><br><code>#include "<a class="el" href="usbapi_8h-source.html">usbapi.h</a>"</code><br><p>Include dependency graph for usbcontrol.c:<p><center><img src="usbcontrol_8c__incl.png" border="0" usemap="#usbcontrol.c_map" alt=""></center><map name="usbcontrol.c_map"><area href="type_8h.html" shape="rect" coords="428,107,487,133" alt=""><area href="usbdebug_8h-source.html" shape="rect" coords="151,56,241,83" alt=""><area href="usbstruct_8h-source.html" shape="rect" coords="291,107,379,133" alt=""><area href="usbapi_8h.html" shape="rect" coords="160,157,232,184" alt=""></map><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usbcontrol_8c.html#5e88408279bd004961a1fbcf4a20cc0c">MAX_CONTROL_SIZE</a> 128</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="usbcontrol_8c.html#15136a2bda6efe224bf6d43d4849165a">MAX_REQ_HANDLERS</a> 4</td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usbcontrol_8c.html#a315d521825a97d3693f82ec48aa5282">USBHandleControlTransfer</a> (<a class="el" href="type_8h.html#3cb25ca6f51f003950f9625ff05536fc">U8</a> bEP, <a class="el" href="type_8h.html#3cb25ca6f51f003950f9625ff05536fc">U8</a> bEPStat)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="usbcontrol_8c.html#baee648abed6949546fc94714e49d91c">USBRegisterRequestHandler</a> (int iType, <a class="el" href="usbapi_8h.html#cdc2d456f793c62f73c83a684b9eb67d">TFnHandleRequest</a> *pfnHandler, <a class="el" href="type_8h.html#3cb25ca6f51f003950f9625ff05536fc">U8</a> *pbDataStore)</td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>Control transfer handler.<p>This module handles control transfers and is normally installed on the endpoint 0 callback.<p>Control transfers can be of the following type: 0 Standard; 1 Class; 2 Vendor; 3 Reserved.<p>A callback can be installed for each of these control transfers using USBRegisterRequestHandler. When an OUT request arrives, data is collected in the data store provided with the USBRegisterRequestHandler call. When the transfer is done, the callback is called. When an IN request arrives, the callback is called immediately to either put the control transfer data in the data store, or to get a pointer to control transfer data. The data is then packetised and sent to the host. <hr><h2>Define Documentation</h2><a class="anchor" name="5e88408279bd004961a1fbcf4a20cc0c"></a><!-- doxytag: member="usbcontrol.c::MAX_CONTROL_SIZE" ref="5e88408279bd004961a1fbcf4a20cc0c" args="" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MAX_CONTROL_SIZE 128 </td> </tr> </table></div><div class="memdoc"><p>maximum total size of control transfer data </div></div><p><a class="anchor" name="15136a2bda6efe224bf6d43d4849165a"></a><!-- doxytag: member="usbcontrol.c::MAX_REQ_HANDLERS" ref="15136a2bda6efe224bf6d43d4849165a" args="" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define MAX_REQ_HANDLERS 4 </td> </tr> </table></div><div class="memdoc"><p>standard, class, vendor, reserved </div></div><p><hr><h2>Function Documentation</h2><a class="anchor" name="a315d521825a97d3693f82ec48aa5282"></a><!-- doxytag: member="usbcontrol.c::USBHandleControlTransfer" ref="a315d521825a97d3693f82ec48aa5282" args="(U8 bEP, U8 bEPStat)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void USBHandleControlTransfer </td> <td>(</td> <td class="paramtype"><a class="el" href="type_8h.html#3cb25ca6f51f003950f9625ff05536fc">U8</a> </td> <td class="paramname"> <em>bEP</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="type_8h.html#3cb25ca6f51f003950f9625ff05536fc">U8</a> </td> <td class="paramname"> <em>bEPStat</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Handles IN/OUT transfers on EP0<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>bEP</em> </td><td>Endpoint address </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>bEPStat</em> </td><td>Endpoint status </td></tr> </table></dl></div></div><p><a class="anchor" name="baee648abed6949546fc94714e49d91c"></a><!-- doxytag: member="usbcontrol.c::USBRegisterRequestHandler" ref="baee648abed6949546fc94714e49d91c" args="(int iType, TFnHandleRequest *pfnHandler, U8 *pbDataStore)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void USBRegisterRequestHandler </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"> <em>iType</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="usbapi_8h.html#cdc2d456f793c62f73c83a684b9eb67d">TFnHandleRequest</a> * </td> <td class="paramname"> <em>pfnHandler</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="type_8h.html#3cb25ca6f51f003950f9625ff05536fc">U8</a> * </td> <td class="paramname"> <em>pbDataStore</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Registers a callback for handling requests<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>iType</em> </td><td>Type of request, e.g. REQTYPE_TYPE_STANDARD </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>*pfnHandler</em> </td><td>Callback function pointer </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>*pbDataStore</em> </td><td>Data storage area for this type of request </td></tr> </table></dl></div></div><p><hr size="1"><address style="align: right;"><small>Generated on Fri Jul 27 12:07:02 2007 for LPCUSB by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address></body></html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -