1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>usb_hcd_link_urb_to_ep</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The Linux-USB Host Side API"><link rel="up" href="hcd.html" title="Chapter 6. Host Controller APIs"><link rel="prev" href="API-usb-calc-bus-time.html" title="usb_calc_bus_time"><link rel="next" href="API-usb-hcd-check-unlink-urb.html" title="usb_hcd_check_unlink_urb"></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"><span class="phrase">usb_hcd_link_urb_to_ep</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-usb-calc-bus-time.html">Prev</a> </td><th width="60%" align="center">Chapter 6. Host Controller APIs</th><td width="20%" align="right"> <a accesskey="n" href="API-usb-hcd-check-unlink-urb.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-usb-hcd-link-urb-to-ep"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>usb_hcd_link_urb_to_ep — 2 add an URB to its endpoint queue 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">usb_hcd_link_urb_to_ep </b>(</code></td><td>struct usb_hcd * <var class="pdparam">hcd</var>, </td></tr><tr><td> </td><td>struct urb * <var class="pdparam">urb</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1116726468"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>hcd</code></em></span></dt><dd><p> 4 host controller to which <em class="parameter"><code>urb</code></em> was submitted 5 </p></dd><dt><span class="term"><em class="parameter"><code>urb</code></em></span></dt><dd><p> 6 URB being submitted 7 </p></dd></dl></div></div><div class="refsect1"><a name="idp1116729428"></a><h2>Description</h2><p> 8 Host controller drivers should call this routine in their <code class="function">enqueue</code> 9 method. The HCD's private spinlock must be held and interrupts must 10 be disabled. The actions carried out here are required for URB 11 submission, as well as for endpoint shutdown and for usb_kill_urb. 12</p></div><div class="refsect1"><a name="idp1116730652"></a><h2>Return</h2><p> 13 0 for no error, otherwise a negative error code (in which case 14 the <code class="function">enqueue</code> method must fail). If no error occurs but <code class="function">enqueue</code> fails 15 anyway, it must call <code class="function">usb_hcd_unlink_urb_from_ep</code> before releasing 16 the private spinlock and returning. 17</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-usb-calc-bus-time.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="hcd.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-usb-hcd-check-unlink-urb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">usb_calc_bus_time</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">usb_hcd_check_unlink_urb</span></td></tr></table></div></body></html> 18