📄 core_8h.html
字号:
</table></div><div class="memdoc"><p>Enumerate new device and create data structures for the core. usb_add_device expected that the device answers to address zero. </div></div><p><a class="anchor" name="7e0bd9c92c1fb753304e6f77c0d6bd2c"></a><!-- doxytag: member="core.h::usb_create_transfer_descriptor" ref="7e0bd9c92c1fb753304e6f77c0d6bd2c" args="(usb_irp *irp)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structusb__transfer__descriptor__t.html">usb_transfer_descriptor</a>* usb_create_transfer_descriptor </td> <td>(</td> <td class="paramtype"><a class="el" href="structusb__irp__t.html">usb_irp</a> * </td> <td class="paramname"> <em>irp</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Create a transfer descriptor with an parent irp. </div></div><p><a class="anchor" name="b4a317acc71220967da6cf6dd1da7ac9"></a><!-- doxytag: member="core.h::usb_get_irp" ref="b4a317acc71220967da6cf6dd1da7ac9" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structusb__irp__t.html">usb_irp</a>* usb_get_irp </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Not implemented. </div></div><p><a class="anchor" name="60af0d8621d025f018ba0f56bca00a93"></a><!-- doxytag: member="core.h::usb_init" ref="60af0d8621d025f018ba0f56bca00a93" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void usb_init </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Initialize USB stack. </div></div><p><a class="anchor" name="c58f28f1c2693257b89945e785403baf"></a><!-- doxytag: member="core.h::usb_next_address" ref="c58f28f1c2693257b89945e785403baf" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">u8 usb_next_address </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Get next free usb device address. </div></div><p><a class="anchor" name="56f96c6ef2028c55dce92873a489419d"></a><!-- doxytag: member="core.h::usb_periodic" ref="56f96c6ef2028c55dce92873a489419d" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void usb_periodic </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Call this function periodically for control and transfer management. </div></div><p><a class="anchor" name="99cd77f8e4ac64be0d886f31148acb09"></a><!-- doxytag: member="core.h::usb_probe_driver" ref="99cd77f8e4ac64be0d886f31148acb09" args="()" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">void usb_probe_driver </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Call every probe function from every registered driver, to check if there is a valid driver for the new device. </div></div><p><a class="anchor" name="6dda3b9fd835433080e92265e3678a8b"></a><!-- doxytag: member="core.h::usb_register_driver" ref="6dda3b9fd835433080e92265e3678a8b" args="(usb_driver *driver)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">u8 usb_register_driver </td> <td>(</td> <td class="paramtype"><a class="el" href="structusb__driver__t.html">usb_driver</a> * </td> <td class="paramname"> <em>dev</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Register new driver at usb stack. <p>first check to find a suitable device (root hub drivers need this call here) </div></div><p><a class="anchor" name="750a0d6554fd2aec4459d0e3af2dd6ef"></a><!-- doxytag: member="core.h::usb_remove_device" ref="750a0d6554fd2aec4459d0e3af2dd6ef" args="(usb_device *dev)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">u8 usb_remove_device </td> <td>(</td> <td class="paramtype"><a class="el" href="structusb__device__t.html">usb_device</a> * </td> <td class="paramname"> <em>dev</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Find currently detached device and remove data structures </div></div><p><a class="anchor" name="ddc2d9767934c9943b6e08b8b8125b33"></a><!-- doxytag: member="core.h::usb_remove_irp" ref="ddc2d9767934c9943b6e08b8b8125b33" args="(usb_irp *irp)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">u8 usb_remove_irp </td> <td>(</td> <td class="paramtype"><a class="el" href="structusb__irp__t.html">usb_irp</a> * </td> <td class="paramname"> <em>irp</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Not implemented. </div></div><p><a class="anchor" name="265cc39d7b493019e5681b27a4349183"></a><!-- doxytag: member="core.h::usb_submit_irp" ref="265cc39d7b493019e5681b27a4349183" args="(usb_irp *irp)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">u16 usb_submit_irp </td> <td>(</td> <td class="paramtype"><a class="el" href="structusb__irp__t.html">usb_irp</a> * </td> <td class="paramname"> <em>irp</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Takes usb_irp and split it into several usb packeges (SETUP,IN,OUT) In the usbstack they are transported with the usb_transfer_descriptor data structure. <p>You can see at bit 7 of bmRequestType if this stage is used, default requests are always 8 byte greate, from host to device. Stage 3 is only neccessary if the request expected datas from the device. bit7 - 1 = from device to host -> yes we need data stage bit7 - 0 = from host to device -> no send zero packet<p>nach einem setup token kann nur ein IN token in stage 3 folgen nie aber ein OUT. Ein Zero OUT wird nur als Bestaetigung benoetigt.<p>bit7 = 1 Device to Host<ul><li>es kommen noch Daten mit PID_IN an</li><li>host beendet mit PID_OUT DATA1 Zero bit7 - 0 Host zu Device (wie set address)</li><li>device sendet ein PID_IN DATA1 Zero Packet als bestaetigung</li></ul><p>bit7 = 1, host beendet mit PID_OUT DATA1 Zero bit7 = 0, device sendet ein PID_IN DATA1 Zero Packet als bestaetigung </div></div><p><hr><h2>Variable Documentation</h2><a class="anchor" name="e79ca4bd27b7b91dc5296ab6ada4ba8a"></a><!-- doxytag: member="core.h::core" ref="e79ca4bd27b7b91dc5296ab6ada4ba8a" args="" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structusb__core__t.html">usb_core_t</a> <a class="el" href="core_8h.html#e79ca4bd27b7b91dc5296ab6ada4ba8a">core</a> </td> </tr> </table></div><div class="memdoc"><p></div></div><p><hr size="1"><address style="align: right;"><small>Generated on Tue Jul 17 08:14:10 2007 for usbstack 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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -