<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libusb: libusb_endpoint_descriptor Struct Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <script type="text/javascript"> <!-- function changeDisplayState (e){ var num=this.id.replace(/[^[0-9]/g,''); var button=this.firstChild; var sectionDiv=document.getElementById('dynsection'+num); if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){ sectionDiv.style.display='block'; button.src='open.gif'; }else{ sectionDiv.style.display='none'; button.src='closed.gif'; } } function initDynSections(){ var divs=document.getElementsByTagName('div'); var sectionCounter=1; for(var i=0;i<divs.length-1;i++){ if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){ var header=divs[i]; var section=divs[i+1]; var button=header.firstChild; if (button!='IMG'){ divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild); button=document.createElement('img'); divs[i].insertBefore(button,divs[i].firstChild); } header.style.cursor='pointer'; header.onclick=changeDisplayState; header.id='dynheader'+sectionCounter; button.src='closed.gif'; section.id='dynsection'+sectionCounter; section.style.display='none'; section.style.marginLeft='14px'; sectionCounter++; } } } window.onload = initDynSections; --> </script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div> <div class="contents"> <h1>libusb_endpoint_descriptor Struct Reference<br/> <small> [<a class="el" href="group__desc.html">USB descriptors</a>]</small> </h1><!-- doxytag: class="libusb_endpoint_descriptor" --> <p>A structure representing the standard USB endpoint descriptor. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="libusb_8h_source.html">libusb.h</a>></code></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Data Fields</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa47a5fa31c179e7cb92818c0572c18a3"></a><!-- doxytag: member="libusb_endpoint_descriptor::bLength" ref="aa47a5fa31c179e7cb92818c0572c18a3" args="" --> uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#aa47a5fa31c179e7cb92818c0572c18a3">bLength</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Size of this descriptor (in bytes). <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#a609c257394a574af229293bddf26986e">bDescriptorType</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Descriptor type. <a href="#a609c257394a574af229293bddf26986e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#a111d087a09cbeded8e15eda9127e23d2">bEndpointAddress</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The address of the endpoint described by this descriptor. <a href="#a111d087a09cbeded8e15eda9127e23d2"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#a932b84417c46467f9916ecf7b679160b">bmAttributes</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Attributes which apply to the endpoint when it is configured using the bConfigurationValue. <a href="#a932b84417c46467f9916ecf7b679160b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#ac1feafc3d7310b2c8ab360513bcfa7b4">wMaxPacketSize</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum packet size this endpoint is capable of sending/receiving. <a href="#ac1feafc3d7310b2c8ab360513bcfa7b4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#a3194f3f04ebd860d59cbdb07d758f9d8">bInterval</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Interval for polling endpoint for data transfers. <a href="#a3194f3f04ebd860d59cbdb07d758f9d8"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#a9176a6d206a48731244e33a89a2bea0b">bRefresh</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">For audio devices only: the rate at which synchronization feedback is provided. <a href="#a9176a6d206a48731244e33a89a2bea0b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8408ca33f4e135039b1900c6f50ce6d"></a><!-- doxytag: member="libusb_endpoint_descriptor::bSynchAddress" ref="ab8408ca33f4e135039b1900c6f50ce6d" args="" --> uint8_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#ab8408ca33f4e135039b1900c6f50ce6d">bSynchAddress</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">For audio devices only: the address if the synch endpoint. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#a27a637679d4cd75fd6af5b8ea19a88d6">extra</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Extra descriptors. <a href="#a27a637679d4cd75fd6af5b8ea19a88d6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structlibusb__endpoint__descriptor.html#a0b34ea2919834df309eba8f2775491ae">extra_length</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Length of the extra descriptors, in bytes. <a href="#a0b34ea2919834df309eba8f2775491ae"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>A structure representing the standard USB endpoint descriptor. </p> <p>This descriptor is documented in section 9.6.3 of the USB 2.0 specification. All multiple-byte fields are represented in host-endian format. </p> <hr/><h2>Field Documentation</h2> <a class="anchor" id="a609c257394a574af229293bddf26986e"></a><!-- doxytag: member="libusb_endpoint_descriptor::bDescriptorType" ref="a609c257394a574af229293bddf26986e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint8_t <a class="el" href="structlibusb__endpoint__descriptor.html#a609c257394a574af229293bddf26986e">libusb_endpoint_descriptor::bDescriptorType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Descriptor type. </p> <p>Will have value <a class="el" href="group__desc.html#gga0a2e8a25dfdebf29fdd4764dcdbc1a9ca97df43465eec9e6db81346f521777815">libusb_descriptor_type::LIBUSB_DT_ENDPOINT</a> LIBUSB_DT_ENDPOINT in this context. </p> </div> </div> <a class="anchor" id="a111d087a09cbeded8e15eda9127e23d2"></a><!-- doxytag: member="libusb_endpoint_descriptor::bEndpointAddress" ref="a111d087a09cbeded8e15eda9127e23d2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint8_t <a class="el" href="structlibusb__endpoint__descriptor.html#a111d087a09cbeded8e15eda9127e23d2">libusb_endpoint_descriptor::bEndpointAddress</a></td> </tr> </table> </div> <div class="memdoc"> <p>The address of the endpoint described by this descriptor. </p> <p>Bits 0:3 are the endpoint number. Bits 4:6 are reserved. Bit 7 indicates direction, see <a class="el" href="group__desc.html#ga86c880af878493aa8f805c2aba654b8b">libusb_endpoint_direction</a>. </p> </div> </div> <a class="anchor" id="a932b84417c46467f9916ecf7b679160b"></a><!-- doxytag: member="libusb_endpoint_descriptor::bmAttributes" ref="a932b84417c46467f9916ecf7b679160b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint8_t <a class="el" href="structlibusb__endpoint__descriptor.html#a932b84417c46467f9916ecf7b679160b">libusb_endpoint_descriptor::bmAttributes</a></td> </tr> </table> </div> <div class="memdoc"> <p>Attributes which apply to the endpoint when it is configured using the bConfigurationValue. </p> <p>Bits 0:1 determine the transfer type and correspond to <a class="el" href="group__desc.html#gacb52027036a07de6ecc6c2bf07d07c71">libusb_transfer_type</a>. Bits 2:3 are only used for isochronous endpoints and correspond to <a class="el" href="group__desc.html#gaa2231202dfe12eddca49b1193d44a441">libusb_iso_sync_type</a>. Bits 4:5 are also only used for isochronous endpoints and correspond to <a class="el" href="group__desc.html#gab72474551b0eb965401e6febb856007c">libusb_iso_usage_type</a>. Bits 6:7 are reserved. </p> </div> </div> <a class="anchor" id="ac1feafc3d7310b2c8ab360513bcfa7b4"></a><!-- doxytag: member="libusb_endpoint_descriptor::wMaxPacketSize" ref="ac1feafc3d7310b2c8ab360513bcfa7b4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint16_t <a class="el" href="structlibusb__endpoint__descriptor.html#ac1feafc3d7310b2c8ab360513bcfa7b4">libusb_endpoint_descriptor::wMaxPacketSize</a></td> </tr> </table> </div> <div class="memdoc"> <p>Maximum packet size this endpoint is capable of sending/receiving. </p> </div> </div> <a class="anchor" id="a3194f3f04ebd860d59cbdb07d758f9d8"></a><!-- doxytag: member="libusb_endpoint_descriptor::bInterval" ref="a3194f3f04ebd860d59cbdb07d758f9d8" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint8_t <a class="el" href="structlibusb__endpoint__descriptor.html#a3194f3f04ebd860d59cbdb07d758f9d8">libusb_endpoint_descriptor::bInterval</a></td> </tr> </table> </div> <div class="memdoc"> <p>Interval for polling endpoint for data transfers. </p> </div> </div> <a class="anchor" id="a9176a6d206a48731244e33a89a2bea0b"></a><!-- doxytag: member="libusb_endpoint_descriptor::bRefresh" ref="a9176a6d206a48731244e33a89a2bea0b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint8_t <a class="el" href="structlibusb__endpoint__descriptor.html#a9176a6d206a48731244e33a89a2bea0b">libusb_endpoint_descriptor::bRefresh</a></td> </tr> </table> </div> <div class="memdoc"> <p>For audio devices only: the rate at which synchronization feedback is provided. </p> </div> </div> <a class="anchor" id="a27a637679d4cd75fd6af5b8ea19a88d6"></a><!-- doxytag: member="libusb_endpoint_descriptor::extra" ref="a27a637679d4cd75fd6af5b8ea19a88d6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const unsigned char* <a class="el" href="structlibusb__endpoint__descriptor.html#a27a637679d4cd75fd6af5b8ea19a88d6">libusb_endpoint_descriptor::extra</a></td> </tr> </table> </div> <div class="memdoc"> <p>Extra descriptors. </p> <p>If libusb encounters unknown endpoint descriptors, it will store them here, should you wish to parse them. </p> </div> </div> <a class="anchor" id="a0b34ea2919834df309eba8f2775491ae"></a><!-- doxytag: member="libusb_endpoint_descriptor::extra_length" ref="a0b34ea2919834df309eba8f2775491ae" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="structlibusb__endpoint__descriptor.html#a0b34ea2919834df309eba8f2775491ae">libusb_endpoint_descriptor::extra_length</a></td> </tr> </table> </div> <div class="memdoc"> <p>Length of the extra descriptors, in bytes. </p> </div> </div> <hr/>The documentation for this struct was generated from the following file:<ul> <li><a class="el" href="libusb_8h_source.html">libusb.h</a></li> </ul> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Apr 28 09:03:59 2010 for libusb by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>