\hypertarget{usbdi_8h_source}{}\doxysection{usbdi.\+h}
\label{usbdi_8h_source}\index{dev/usb/usbdi.h@{dev/usb/usbdi.h}}
\mbox{\hyperlink{usbdi_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00003}\mbox{\hyperlink{usbdi_8h_a7f2d7233cf1e279e35ebfcae637b2e75}{00003}} \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00004}\mbox{\hyperlink{usbdi_8h_a292e617189e1b492499c64c1db0cc17b}{00004}} \textcolor{comment}{ * Copyright (c) 2009 Andrew Thompson}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00005}\mbox{\hyperlink{usbdi_8h_a47f8268aa5ec221f49644eac68e00045}{00005}} \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00006}\mbox{\hyperlink{usbdi_8h_af9865240817e8bac84e7bb663ab8818d}{00006}} \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00007}00007 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00008}\mbox{\hyperlink{usbdi_8h_a83c853adc29da5332afb2ed13ca177ee}{00008}} \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00009}\mbox{\hyperlink{usbdi_8h_a6b35fb9c9b342208531272ad8cf159b8}{00009}} \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00010}\mbox{\hyperlink{usbdi_8h_aeb0399628e21ac4cb8d63df1f0efea8a}{00010}} \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00011}\mbox{\hyperlink{usbdi_8h_a30099f76508434a2b2e6650fe6d97786}{00011}} \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00012}00012 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00013}\mbox{\hyperlink{usbdi_8h_a841331ed832cdce96ad90d87cf34830e}{00013}} \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00014}\mbox{\hyperlink{usbdi_8h_aecf7e801d7d28139596ba9545b4f72a5}{00014}} \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00015}\mbox{\hyperlink{usbdi_8h_aa104b2de9aea5306c8a4011d18429ad2}{00015}} \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00016}00016 \textcolor{comment}{ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00017}00017 \textcolor{comment}{ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00018}00018 \textcolor{comment}{ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00019}00019 \textcolor{comment}{ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00020}00020 \textcolor{comment}{ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00021}00021 \textcolor{comment}{ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00022}00022 \textcolor{comment}{ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00023}00023 \textcolor{comment}{ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00024}00024 \textcolor{comment}{ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00025}00025 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00026}00026 \textcolor{comment}{ * \$FreeBSD\$}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00027}00027 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00028}00028 \textcolor{preprocessor}{\#ifndef \_USB\_USBDI\_H\_}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00029}00029 \textcolor{preprocessor}{\#define \_USB\_USBDI\_H\_}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00030}00030 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00031}00031 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo}{usb\_fifo}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00032}00032 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer}{usb\_xfer}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00033}00033 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device}{usb\_device}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00034}\mbox{\hyperlink{usbdi_8h_ab393e07556e3858fed36ed2e260d4b4c}{00034}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00035}\mbox{\hyperlink{usbdi_8h_a2cf29745398a958349d784b1911c6b2b}{00035}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__interface}{usb\_interface}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00036}\mbox{\hyperlink{usbdi_8h_ae2677292820ff1b842dfa6409213b44f}{00036}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__endpoint}{usb\_endpoint}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00037}\mbox{\hyperlink{usbdi_8h_ab0482665786ea138509ae8b89816baf3}{00037}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00038}00038 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__page__search}{usb\_page\_search}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00039}00039 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__process}{usb\_process}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00040}\mbox{\hyperlink{usbdi_8h_ab8e1b1fca77a607c39bba2278623d4f4}{00040}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__proc__msg}{usb\_proc\_msg}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00041}\mbox{\hyperlink{usbdi_8h_a260eec0b4e7279e6ecae808ca34c2604}{00041}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__mbuf}{usb\_mbuf}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00042}\mbox{\hyperlink{usbdi_8h_a44e204b5f7158f4048edcb944351ce27}{00042}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fs__privdata}{usb\_fs\_privdata}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00043}00043 \textcolor{keyword}{struct }mbuf;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00045}\mbox{\hyperlink{usbdi_8h_ae899427763e325f03241afc69a6e1ea0}{00045}} \textcolor{keyword}{typedef} \textcolor{keyword}{enum} \{  \textcolor{comment}{/* keep in sync with usb\_errstr\_table */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00046}\mbox{\hyperlink{usbdi_8h_a3b3919d1203cd42550d77287f7585595}{00046}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a01e440e0629669433dd14bc477757c74}{USB\_ERR\_NORMAL\_COMPLETION}} = 0,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00047}\mbox{\hyperlink{usbdi_8h_a6872c4ec51fd061e2955f84d97bea2a7}{00047}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a79bf386e402aebe42f83772218ece446}{USB\_ERR\_PENDING\_REQUESTS}},       \textcolor{comment}{/* 1 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00048}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a59040227c0438dd879a9e8cfc0346e4f}{00048}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a59040227c0438dd879a9e8cfc0346e4f}{USB\_ERR\_NOT\_STARTED}},         \textcolor{comment}{/* 2 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00049}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945ac568d752239d287fca75588222df1bdf}{00049}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945ac568d752239d287fca75588222df1bdf}{USB\_ERR\_INVAL}},                     \textcolor{comment}{/* 3 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00050}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945ab676f37fd789593cd476f746210170cf}{00050}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945ab676f37fd789593cd476f746210170cf}{USB\_ERR\_NOMEM}},                     \textcolor{comment}{/* 4 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00051}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{00051}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abe72c3e4b6644141519a28f1ef97f717}{USB\_ERR\_CANCELLED}},             \textcolor{comment}{/* 5 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00052}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a19bf8b26629f475d94ae7c0dbfaf26bd}{00052}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a19bf8b26629f475d94ae7c0dbfaf26bd}{USB\_ERR\_BAD\_ADDRESS}},         \textcolor{comment}{/* 6 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00053}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abc64140f8c4eace931b45c7d8191bd8d}{00053}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945abc64140f8c4eace931b45c7d8191bd8d}{USB\_ERR\_BAD\_BUFSIZE}},         \textcolor{comment}{/* 7 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00054}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a4c21c18e25fa14acc8ac73fff4a01b9d}{00054}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a4c21c18e25fa14acc8ac73fff4a01b9d}{USB\_ERR\_BAD\_FLAG}},               \textcolor{comment}{/* 8 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00055}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945adf90eacc7c95e9023e4492db4f348434}{00055}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945adf90eacc7c95e9023e4492db4f348434}{USB\_ERR\_NO\_CALLBACK}},         \textcolor{comment}{/* 9 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00056}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a15905ea2b83c6746e376fb07504e1ed1}{00056}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a15905ea2b83c6746e376fb07504e1ed1}{USB\_ERR\_IN\_USE}},                   \textcolor{comment}{/* 10 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00057}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a41c7d14937e7c369f56bf6bab844c939}{00057}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a41c7d14937e7c369f56bf6bab844c939}{USB\_ERR\_NO\_ADDR}},         \textcolor{comment}{/* 11 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00058}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945aa2d5591274807d976378f663ce37773e}{00058}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945aa2d5591274807d976378f663ce37773e}{USB\_ERR\_NO\_PIPE}},         \textcolor{comment}{/* 12 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00059}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a1e60715af41cc35677d91795c62d424a}{00059}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a1e60715af41cc35677d91795c62d424a}{USB\_ERR\_ZERO\_NFRAMES}},               \textcolor{comment}{/* 13 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00060}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a7cd34da4d8870381954586a4fb95fb90}{00060}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a7cd34da4d8870381954586a4fb95fb90}{USB\_ERR\_ZERO\_MAXP}},             \textcolor{comment}{/* 14 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00061}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945acdf5b021b6bf3058b75bed99284543e1}{00061}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945acdf5b021b6bf3058b75bed99284543e1}{USB\_ERR\_SET\_ADDR\_FAILED}}, \textcolor{comment}{/* 15 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00062}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a52ed03f2068a333a31925494dddb66ec}{00062}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a52ed03f2068a333a31925494dddb66ec}{USB\_ERR\_NO\_POWER}},               \textcolor{comment}{/* 16 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00063}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945af9970ff1ecbba19b1c4be49545f40481}{00063}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945af9970ff1ecbba19b1c4be49545f40481}{USB\_ERR\_TOO\_DEEP}},               \textcolor{comment}{/* 17 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00064}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a91e19b8efd2de831078be0a8d2a030ed}{00064}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a91e19b8efd2de831078be0a8d2a030ed}{USB\_ERR\_IOERROR}},         \textcolor{comment}{/* 18 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00065}\mbox{\hyperlink{usbdi_8h_a7d611c7ba08a20171f5f3fef52442ece}{00065}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945afc29c33fc101c147a8da2e51daa061bf}{USB\_ERR\_NOT\_CONFIGURED}},           \textcolor{comment}{/* 19 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00066}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945aeb31baaa7bf416e200f2a0d4ece60820}{00066}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945aeb31baaa7bf416e200f2a0d4ece60820}{USB\_ERR\_TIMEOUT}},         \textcolor{comment}{/* 20 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00067}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a70162ae58dd5e4923d325d67b196f281}{00067}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a70162ae58dd5e4923d325d67b196f281}{USB\_ERR\_SHORT\_XFER}},           \textcolor{comment}{/* 21 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00068}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a83258c6183686c303988db96e7f5713a}{00068}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a83258c6183686c303988db96e7f5713a}{USB\_ERR\_STALLED}},         \textcolor{comment}{/* 22 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00069}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a7444859007262602335e70d1b3bcfdd9}{00069}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a7444859007262602335e70d1b3bcfdd9}{USB\_ERR\_INTERRUPTED}},         \textcolor{comment}{/* 23 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00070}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a93d103cc21b30628d8e33db25f06f7c5}{00070}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a93d103cc21b30628d8e33db25f06f7c5}{USB\_ERR\_DMA\_LOAD\_FAILED}}, \textcolor{comment}{/* 24 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00071}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a75b7cd61ecd61273b6660a358743ff55}{00071}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a75b7cd61ecd61273b6660a358743ff55}{USB\_ERR\_BAD\_CONTEXT}},         \textcolor{comment}{/* 25 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00072}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a898b05f3b34b7aac16da30f26a906079}{00072}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a898b05f3b34b7aac16da30f26a906079}{USB\_ERR\_NO\_ROOT\_HUB}},         \textcolor{comment}{/* 26 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00073}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a803970e01c030f0f4ccff4856fa69b7f}{00073}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a803970e01c030f0f4ccff4856fa69b7f}{USB\_ERR\_NO\_INTR\_THREAD}},           \textcolor{comment}{/* 27 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00074}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945aa0e87d8ec95affa17bf260675f0235c3}{00074}}         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945aa0e87d8ec95affa17bf260675f0235c3}{USB\_ERR\_NOT\_LOCKED}},           \textcolor{comment}{/* 28 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00075}00075         \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a0a87ea1e02144fdf4552cde86ce1ff5f}{USB\_ERR\_MAX}}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00076}\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a0a87ea1e02144fdf4552cde86ce1ff5f}{00076}} \} \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00078}00078 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00079}00079 \textcolor{comment}{ * Flags for transfers}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00080}00080 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00081}\mbox{\hyperlink{usbdi_8h_a460c943d044267cf1a6f7bb0270a32cd}{00081}} \textcolor{preprocessor}{\#define USB\_FORCE\_SHORT\_XFER    0x0001  }\textcolor{comment}{/* force a short transmit last */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00082}\mbox{\hyperlink{usbdi_8h_a7d5cf39b730f3e4d901208079a7340ab}{00082}} \textcolor{preprocessor}{\#define USB\_SHORT\_XFER\_OK       0x0004  }\textcolor{comment}{/* allow short reads */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00083}\mbox{\hyperlink{usbdi_8h_a385e68f5c3fe707f8c4a05e72132ee93}{00083}} \textcolor{preprocessor}{\#define USB\_DELAY\_STATUS\_STAGE  0x0010  }\textcolor{comment}{/* insert delay before STATUS stage */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00084}\mbox{\hyperlink{usbdi_8h_a6b85775a39b87933096e26e559f96b82}{00084}} \textcolor{preprocessor}{\#define USB\_USER\_DATA\_PTR       0x0020  }\textcolor{comment}{/* internal flag */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00085}\mbox{\hyperlink{usbdi_8h_aef04d19538db042e55de9ff23d137dc9}{00085}} \textcolor{preprocessor}{\#define USB\_MULTI\_SHORT\_OK      0x0040  }\textcolor{comment}{/* allow multiple short frames */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00086}\mbox{\hyperlink{usbdi_8h_a3e8a28b7e0e8809c1c09bbfb217365c1}{00086}} \textcolor{preprocessor}{\#define USB\_MANUAL\_STATUS       0x0080  }\textcolor{comment}{/* manual ctrl status */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00087}00087 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00088}\mbox{\hyperlink{usbdi_8h_aaa4cd217c436ddac03af845241887ddf}{00088}} \textcolor{preprocessor}{\#define USB\_NO\_TIMEOUT 0}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00089}\mbox{\hyperlink{usbdi_8h_a07bf0b2ba580cae69a6c567c40d64b1c}{00089}} \textcolor{preprocessor}{\#define USB\_DEFAULT\_TIMEOUT 5000        }\textcolor{comment}{/* 5000 ms = 5 seconds */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00090}00090 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00091}00091 \textcolor{preprocessor}{\#if defined(\_KERNEL) || defined(\_STANDALONE)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00092}00092 \textcolor{comment}{/* typedefs */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00093}00093 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00094}\mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{00094}} \textcolor{keyword}{typedef} void (\mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00095}\mbox{\hyperlink{usbdi_8h_a1ef139097c29321af159f8c11cdaad3d}{00095}} \textcolor{keyword}{typedef} void (\mbox{\hyperlink{usbdi_8h_a1ef139097c29321af159f8c11cdaad3d}{usb\_proc\_callback\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__proc__msg}{usb\_proc\_msg}} *);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00096}\mbox{\hyperlink{usbdi_8h_afa642180c02ceeda4775d44f798495c2}{00096}} \textcolor{keyword}{typedef} \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} (\mbox{\hyperlink{usbdi_8h_afa642180c02ceeda4775d44f798495c2}{usb\_handle\_req\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device}{usb\_device}} *,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00097}00097     \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__request}{usb\_device\_request}} *, \textcolor{keyword}{const} \textcolor{keywordtype}{void} **, uint16\_t *);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00098}00098 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00099}\mbox{\hyperlink{usbdi_8h_abf627b9df5961890963bce30a2cf9e1d}{00099}} \textcolor{keyword}{typedef} int (\mbox{\hyperlink{usbdi_8h_abf627b9df5961890963bce30a2cf9e1d}{usb\_fifo\_open\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, \textcolor{keywordtype}{int} fflags);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00100}\mbox{\hyperlink{usbdi_8h_a1f11bee0038616aab627d2eb67a544b5}{00100}} \textcolor{keyword}{typedef} void (\mbox{\hyperlink{usbdi_8h_a1f11bee0038616aab627d2eb67a544b5}{usb\_fifo\_close\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, \textcolor{keywordtype}{int} fflags);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00101}\mbox{\hyperlink{usbdi_8h_a1216ed6c6a9a63cba57811e6fe1f7fea}{00101}} \textcolor{keyword}{typedef} int (\mbox{\hyperlink{usbdi_8h_a1216ed6c6a9a63cba57811e6fe1f7fea}{usb\_fifo\_ioctl\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, u\_long cmd, \textcolor{keywordtype}{void} *addr, \textcolor{keywordtype}{int} fflags);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00102}\mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{00102}} \textcolor{keyword}{typedef} void (\mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\_fifo\_cmd\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00103}\mbox{\hyperlink{usbdi_8h_ac132590154cf5e06851670a58d4fc6aa}{00103}} \textcolor{keyword}{typedef} void (\mbox{\hyperlink{usbdi_8h_ac132590154cf5e06851670a58d4fc6aa}{usb\_fifo\_filter\_t}})(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__mbuf}{usb\_mbuf}} *m);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00104}00104 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00105}00105 \textcolor{comment}{/* USB events */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00106}00106 \textcolor{preprocessor}{\#ifndef USB\_GLOBAL\_INCLUDE\_FILE}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00107}00107 \textcolor{preprocessor}{\#include <sys/\_eventhandler.h>}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00108}00108 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00109}\mbox{\hyperlink{usbdi_8h_a01a8be46279b1827192db5543d9a0ab4}{00109}} \textcolor{keyword}{typedef} void (*\mbox{\hyperlink{usbdi_8h_a01a8be46279b1827192db5543d9a0ab4}{usb\_dev\_configured\_t}})(\textcolor{keywordtype}{void} *, \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device}{usb\_device}} *,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00110}00110     \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00111}\mbox{\hyperlink{usbdi_8h_a04b20cdcfd466ce81c4d99755e59718d}{00111}} \mbox{\hyperlink{usbdi_8h_ad606a74eca7e5678631dc7f6dd06cb28}{EVENTHANDLER\_DECLARE}}(usb\_dev\_configured, \mbox{\hyperlink{usbdi_8h_a01a8be46279b1827192db5543d9a0ab4}{usb\_dev\_configured\_t}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00112}00112 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00113}00113 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00114}00114 \textcolor{comment}{ * The following macros are used used to convert milliseconds into}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00115}00115 \textcolor{comment}{ * HZ. We use 1024 instead of 1000 milliseconds per second to save a}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00116}00116 \textcolor{comment}{ * full division.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00117}00117 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00118}\mbox{\hyperlink{usbdi_8h_a0fc95562f7d27b59ac234342414e3a81}{00118}} \textcolor{preprocessor}{\#define USB\_MS\_HZ 1024}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00120}\mbox{\hyperlink{usbdi_8h_a9715d25e0db2e92bd86423a9283893b7}{00120}} \textcolor{preprocessor}{\#define USB\_MS\_TO\_TICKS(ms) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00121}00121 \textcolor{preprocessor}{  (((uint32\_t)((((uint32\_t)(ms)) * ((uint32\_t)(hz))) + USB\_MS\_HZ -\/ 1)) / USB\_MS\_HZ)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00122}00122 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00123}00123 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00124}00124 \textcolor{comment}{ * Common queue structure for USB transfers.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00125}00125 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00126}\mbox{\hyperlink{structusb__xfer__queue}{00126}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer__queue}{usb\_xfer\_queue}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00127}\mbox{\hyperlink{structusb__xfer__queue_ab324f0fc4506653abdfee5281657df29}{00127}}         \mbox{\hyperlink{structusb__xfer__queue_ab324f0fc4506653abdfee5281657df29}{TAILQ\_HEAD}}(, \mbox{\hyperlink{structusb__xfer}{usb\_xfer}}) head;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00128}\mbox{\hyperlink{structusb__xfer__queue_a335a8109524426b694f58cceeced3ee3}{00128}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *\mbox{\hyperlink{structusb__xfer__queue_a335a8109524426b694f58cceeced3ee3}{curr}};              \textcolor{comment}{/* current USB transfer processed */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00129}\mbox{\hyperlink{structusb__xfer__queue_a1294c317888f0d67e12f115f484cb679}{00129}}         void    (*\mbox{\hyperlink{structusb__xfer__queue_a1294c317888f0d67e12f115f484cb679}{command}}) (\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer__queue}{usb\_xfer\_queue}} *pq);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00130}\mbox{\hyperlink{structusb__xfer__queue_a5c321eb44997ae8c6b37d048b348bde9}{00130}}         uint8\_t \mbox{\hyperlink{structusb__xfer__queue_a5c321eb44997ae8c6b37d048b348bde9}{recurse\_1}}:1;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00131}\mbox{\hyperlink{structusb__xfer__queue_aeb278018437996c5cbd30b7f7675f1a6}{00131}}         uint8\_t \mbox{\hyperlink{structusb__xfer__queue_aeb278018437996c5cbd30b7f7675f1a6}{recurse\_2}}:1;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00132}\mbox{\hyperlink{structusb__xfer__queue_a851163deb1067f08ca910ee55e26f21f}{00132}}         uint8\_t \mbox{\hyperlink{structusb__xfer__queue_a851163deb1067f08ca910ee55e26f21f}{recurse\_3}}:1;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00133}\mbox{\hyperlink{structusb__xfer__queue_ab4e0e2fb973e7ecf6e30a41baa41a772}{00133}}         uint8\_t \mbox{\hyperlink{structusb__xfer__queue_ab4e0e2fb973e7ecf6e30a41baa41a772}{reserved}}:5;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00134}00134 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00136}00136 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00137}00137 \textcolor{comment}{ * The following structure defines an USB endpoint}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00138}00138 \textcolor{comment}{ * USB endpoint.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00139}00139 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00140}\mbox{\hyperlink{structusb__endpoint}{00140}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__endpoint}{usb\_endpoint}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00141}00141         \textcolor{comment}{/* queue of USB transfers */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00142}\mbox{\hyperlink{structusb__endpoint_a8c6530aca08e1e74ed95341bed82b12f}{00142}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer__queue}{usb\_xfer\_queue}} \mbox{\hyperlink{structusb__endpoint_a8c6530aca08e1e74ed95341bed82b12f}{endpoint\_q}}[\mbox{\hyperlink{usb__freebsd_8h_acf0a6ee982e1d7711be9a1ccb7f2850d}{USB\_MAX\_EP\_STREAMS}}];}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00143}00143 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00144}\mbox{\hyperlink{structusb__endpoint_af3b96b9fe1e612b303833c2e2d0365e1}{00144}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__endpoint__descriptor}{usb\_endpoint\_descriptor}} *\mbox{\hyperlink{structusb__endpoint_af3b96b9fe1e612b303833c2e2d0365e1}{edesc}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00145}\mbox{\hyperlink{structusb__endpoint_a702da1f344a591607260d638613a43ff}{00145}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__endpoint__ss__comp__descriptor}{usb\_endpoint\_ss\_comp\_descriptor}} *\mbox{\hyperlink{structusb__endpoint_a702da1f344a591607260d638613a43ff}{ecomp}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00146}\mbox{\hyperlink{structusb__endpoint_ab31775284691ffc7392330fea7924f18}{00146}}         \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__pipe__methods}{usb\_pipe\_methods}} *\mbox{\hyperlink{structusb__endpoint_ab31775284691ffc7392330fea7924f18}{methods}};  \textcolor{comment}{/* set by HC driver */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00147}00147 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00148}\mbox{\hyperlink{structusb__endpoint_a6a4a923c46e82cd1298d7832e169d7d1}{00148}}         uint16\_t \mbox{\hyperlink{structusb__endpoint_a6a4a923c46e82cd1298d7832e169d7d1}{isoc\_next}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00150}\mbox{\hyperlink{structusb__endpoint_a23e80980572fb57b1a6097114e92cfbc}{00150}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_a23e80980572fb57b1a6097114e92cfbc}{toggle\_next}}:1;               \textcolor{comment}{/* next data toggle value */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00151}\mbox{\hyperlink{structusb__endpoint_a80bc696d02be9439a7f712c04372427f}{00151}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_a80bc696d02be9439a7f712c04372427f}{is\_stalled}}:1;         \textcolor{comment}{/* set if endpoint is stalled */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00152}\mbox{\hyperlink{structusb__endpoint_aa2d42d991a2e7409385a95f9fbc51068}{00152}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_aa2d42d991a2e7409385a95f9fbc51068}{is\_synced}}:1;           \textcolor{comment}{/* set if we a synchronised */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00153}\mbox{\hyperlink{structusb__endpoint_a56adc65a96d050a6c0b0f498154cb674}{00153}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_a56adc65a96d050a6c0b0f498154cb674}{unused}}:5;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00154}\mbox{\hyperlink{structusb__endpoint_a580fcd46d189c26accb301203a97bf43}{00154}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_a580fcd46d189c26accb301203a97bf43}{iface\_index}};         \textcolor{comment}{/* not used by "{}default endpoint"{} */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00155}00155 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00156}\mbox{\hyperlink{structusb__endpoint_a2eac69c2a2e69eb3849fa96e16dbbbf2}{00156}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_a2eac69c2a2e69eb3849fa96e16dbbbf2}{refcount\_alloc}};           \textcolor{comment}{/* allocation refcount */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00157}\mbox{\hyperlink{structusb__endpoint_a1824d7b9dcac23c1a37d9de32ed69ce3}{00157}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_a1824d7b9dcac23c1a37d9de32ed69ce3}{refcount\_bw}};         \textcolor{comment}{/* bandwidth refcount */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00158}\mbox{\hyperlink{usbdi_8h_a5840b8d00efece2ea460fe3c4f4623b3}{00158}} \textcolor{preprocessor}{\#define USB\_EP\_REF\_MAX 0x3f}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00159}00159 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00160}00160         \textcolor{comment}{/* High-\/Speed resource allocation (valid if "{}refcount\_bw"{} > 0) */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00161}00161 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00162}\mbox{\hyperlink{structusb__endpoint_a0467beb83bb15b27efb600885a43de11}{00162}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_a0467beb83bb15b27efb600885a43de11}{usb\_smask}};             \textcolor{comment}{/* USB start mask */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00163}\mbox{\hyperlink{structusb__endpoint_afe00eb77e7d3cdcd91ffd4319aeb7516}{00163}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_afe00eb77e7d3cdcd91ffd4319aeb7516}{usb\_cmask}};             \textcolor{comment}{/* USB complete mask */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00164}\mbox{\hyperlink{structusb__endpoint_ad707a53929239a4709ffcb4b0cd284ac}{00164}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_ad707a53929239a4709ffcb4b0cd284ac}{usb\_uframe}};           \textcolor{comment}{/* USB microframe */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00165}00165 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00166}00166         \textcolor{comment}{/* USB endpoint mode, see USB\_EP\_MODE\_XXX */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00167}00167 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00168}\mbox{\hyperlink{structusb__endpoint_aa0d71bd1ddc4591f448a88a33d1eaff2}{00168}}         uint8\_t \mbox{\hyperlink{structusb__endpoint_aa0d71bd1ddc4591f448a88a33d1eaff2}{ep\_mode}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00169}00169 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00170}00170 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00171}00171 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00172}00172 \textcolor{comment}{ * The following structure defines an USB interface.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00173}00173 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00174}\mbox{\hyperlink{structusb__interface}{00174}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__interface}{usb\_interface}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00175}\mbox{\hyperlink{structusb__interface_aa5cea795ac14467ffdbe70b7f59beaba}{00175}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__interface__descriptor}{usb\_interface\_descriptor}} *\mbox{\hyperlink{structusb__interface_aa5cea795ac14467ffdbe70b7f59beaba}{idesc}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00176}\mbox{\hyperlink{structusb__interface_a30771ef505042d5d21771ce48c80e45a}{00176}}         device\_t \mbox{\hyperlink{structusb__interface_a30771ef505042d5d21771ce48c80e45a}{subdev}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00177}00177         \textcolor{comment}{/* Total number of alternate settings, from 1 to 256 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00178}\mbox{\hyperlink{structusb__interface_adaa0dc0c06d706826017b7c2fed24578}{00178}}         uint16\_t \mbox{\hyperlink{structusb__interface_adaa0dc0c06d706826017b7c2fed24578}{num\_altsetting}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00179}00179         \textcolor{comment}{/* Current alternate interface index, from 0 to 255 */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00180}\mbox{\hyperlink{structusb__interface_abe6dfd442aa844e892cf38426c0cf75c}{00180}}         uint8\_t \mbox{\hyperlink{structusb__interface_abe6dfd442aa844e892cf38426c0cf75c}{alt\_index}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00181}\mbox{\hyperlink{structusb__interface_a4d85f85fbd0e08fe94c8ef40e5beea69}{00181}}         uint8\_t \mbox{\hyperlink{structusb__interface_a4d85f85fbd0e08fe94c8ef40e5beea69}{parent\_iface\_index}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00182}00182 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00183}00183         \textcolor{comment}{/* Linux compat */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00184}\mbox{\hyperlink{structusb__interface_a68aedead8295ae4f5b1071679916506a}{00184}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__host__interface}{usb\_host\_interface}} *\mbox{\hyperlink{structusb__interface_a68aedead8295ae4f5b1071679916506a}{altsetting}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00185}\mbox{\hyperlink{structusb__interface_a55f954611bd98219b61228c0153568fc}{00185}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__host__interface}{usb\_host\_interface}} *\mbox{\hyperlink{structusb__interface_a55f954611bd98219b61228c0153568fc}{cur\_altsetting}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00186}\mbox{\hyperlink{structusb__interface_ae46852841b38dc7ffb943cfe7cf56225}{00186}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device}{usb\_device}} *\mbox{\hyperlink{structusb__interface_ae46852841b38dc7ffb943cfe7cf56225}{linux\_udev}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00187}\mbox{\hyperlink{structusb__interface_a05ad8b8eda63c129d08127ceb55088e2}{00187}}         \textcolor{keywordtype}{void}   *\mbox{\hyperlink{structusb__interface_a05ad8b8eda63c129d08127ceb55088e2}{bsd\_priv\_sc}};         \textcolor{comment}{/* device specific information */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00188}\mbox{\hyperlink{structusb__interface_aeeffc440984d91de29ba046b4735deb6}{00188}}         \textcolor{keywordtype}{char}   *\mbox{\hyperlink{structusb__interface_aeeffc440984d91de29ba046b4735deb6}{pnpinfo}};         \textcolor{comment}{/* additional PnP-\/info for this interface */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00189}\mbox{\hyperlink{structusb__interface_a684c13120370b7e96ce2833951eec8e4}{00189}}         uint8\_t \mbox{\hyperlink{structusb__interface_a684c13120370b7e96ce2833951eec8e4}{bsd\_iface\_index}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00190}00190 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00191}00191 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00192}00192 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00193}00193 \textcolor{comment}{ * The following structure defines a set of USB transfer flags.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00194}00194 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00195}\mbox{\hyperlink{structusb__xfer__flags}{00195}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer__flags}{usb\_xfer\_flags}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00196}\mbox{\hyperlink{structusb__xfer__flags_a76816b701c58c22a9a78904b109c2e95}{00196}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a76816b701c58c22a9a78904b109c2e95}{force\_short\_xfer}}:1;     \textcolor{comment}{/* force a short transmit transfer}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00197}00197 \textcolor{comment}{                                         * last */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00198}\mbox{\hyperlink{structusb__xfer__flags_a295c379f07c6ff99b213195edc70e3a2}{00198}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a295c379f07c6ff99b213195edc70e3a2}{short\_xfer\_ok}}:1;   \textcolor{comment}{/* allow short receive transfers */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00199}\mbox{\hyperlink{structusb__xfer__flags_a4cebfba0749680b43016090e78773210}{00199}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a4cebfba0749680b43016090e78773210}{short\_frames\_ok}}:1;       \textcolor{comment}{/* allow short frames */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00200}\mbox{\hyperlink{structusb__xfer__flags_a1d8753add0a6492b5dc13e1fba50106c}{00200}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a1d8753add0a6492b5dc13e1fba50106c}{pipe\_bof}}:1;             \textcolor{comment}{/* block pipe on failure */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00201}\mbox{\hyperlink{structusb__xfer__flags_a0654b9d81007fe4e04eca967e546c4c0}{00201}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a0654b9d81007fe4e04eca967e546c4c0}{proxy\_buffer}}:1;             \textcolor{comment}{/* makes buffer size a factor of}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00202}00202 \textcolor{comment}{                                         * "{}max\_frame\_size"{} */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00203}\mbox{\hyperlink{structusb__xfer__flags_ab4d22a745b8cdf7853cb70e4e71ce4b5}{00203}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_ab4d22a745b8cdf7853cb70e4e71ce4b5}{ext\_buffer}}:1;         \textcolor{comment}{/* uses external DMA buffer */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00204}\mbox{\hyperlink{structusb__xfer__flags_a2df55489fc97240c42834151d9c8b8d0}{00204}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a2df55489fc97240c42834151d9c8b8d0}{manual\_status}}:1;   \textcolor{comment}{/* non automatic status stage on}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00205}00205 \textcolor{comment}{                                         * control transfers */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00206}\mbox{\hyperlink{structusb__xfer__flags_a7844c9d23bffec21cfaea8e157217e54}{00206}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a7844c9d23bffec21cfaea8e157217e54}{no\_pipe\_ok}}:1;         \textcolor{comment}{/* set if "{}USB\_ERR\_NO\_PIPE"{} error can}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00207}00207 \textcolor{comment}{                                         * be ignored */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00208}\mbox{\hyperlink{structusb__xfer__flags_a2c12dafab7afc38dc63f7ba2cd359517}{00208}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a2c12dafab7afc38dc63f7ba2cd359517}{stall\_pipe}}:1;         \textcolor{comment}{/* set if the endpoint belonging to}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00209}00209 \textcolor{comment}{                                         * this USB transfer should be stalled}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00210}00210 \textcolor{comment}{                                         * before starting this transfer! */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00211}\mbox{\hyperlink{structusb__xfer__flags_a98ca1b16485efe9047956752474cfbf3}{00211}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a98ca1b16485efe9047956752474cfbf3}{pre\_scale\_frames}}:1;     \textcolor{comment}{/* "{}usb\_config-\/>frames"{} is}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00212}00212 \textcolor{comment}{                                         * assumed to give the}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00213}00213 \textcolor{comment}{                                         * buffering time in}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00214}00214 \textcolor{comment}{                                         * milliseconds and is}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00215}00215 \textcolor{comment}{                                         * converted into the nearest}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00216}00216 \textcolor{comment}{                                         * number of frames when the}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00217}00217 \textcolor{comment}{                                         * USB transfer is setup. This}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00218}00218 \textcolor{comment}{                                         * option only has effect for}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00219}00219 \textcolor{comment}{                                         * ISOCHRONOUS transfers.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00220}00220 \textcolor{comment}{                                         */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00221}\mbox{\hyperlink{structusb__xfer__flags_a2ab54d4c84f4c7eeec4bd43756fed0fc}{00221}}         uint8\_t \mbox{\hyperlink{structusb__xfer__flags_a2ab54d4c84f4c7eeec4bd43756fed0fc}{send\_zlp}}:1;             \textcolor{comment}{/* send a zero length packet first */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00222}00222 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00223}00223 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00224}00224 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00225}00225 \textcolor{comment}{ * The following structure define an USB configuration, that basically}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00226}00226 \textcolor{comment}{ * is used when setting up an USB transfer.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00227}00227 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00228}\mbox{\hyperlink{structusb__config}{00228}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__config}{usb\_config}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00229}\mbox{\hyperlink{structusb__config_ad6cf53d455b808964f881c91074d2696}{00229}}         \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\_callback\_t}} *\mbox{\hyperlink{structusb__config_ad6cf53d455b808964f881c91074d2696}{callback}}; \textcolor{comment}{/* USB transfer callback */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00230}\mbox{\hyperlink{structusb__config_a730af89f830066662eac76401fc037ff}{00230}}         \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{structusb__config_a730af89f830066662eac76401fc037ff}{bufsize}};    \textcolor{comment}{/* total pipe buffer size in bytes */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00231}\mbox{\hyperlink{structusb__config_a54ec61088238cb0e3128eecd279aa7f0}{00231}}         \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} \mbox{\hyperlink{structusb__config_a54ec61088238cb0e3128eecd279aa7f0}{frames}};                \textcolor{comment}{/* maximum number of USB frames */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00232}\mbox{\hyperlink{structusb__config_adb5ccd473bd3b92d01d005c8faed656d}{00232}}         \mbox{\hyperlink{usb__freebsd_8h_ad024d1bfb97f4cb78c73989e05d13176}{usb\_timeout\_t}} \mbox{\hyperlink{structusb__config_adb5ccd473bd3b92d01d005c8faed656d}{interval}};    \textcolor{comment}{/* interval in milliseconds */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00233}\mbox{\hyperlink{usbdi_8h_a230a796257ac99a7977a90c4fc9e1c09}{00233}} \textcolor{preprocessor}{\#define USB\_DEFAULT\_INTERVAL    0}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00234}\mbox{\hyperlink{structusb__config_a80178ca6c609b484f4cd441928940d16}{00234}}         \mbox{\hyperlink{usb__freebsd_8h_ad024d1bfb97f4cb78c73989e05d13176}{usb\_timeout\_t}} \mbox{\hyperlink{structusb__config_a80178ca6c609b484f4cd441928940d16}{timeout}};              \textcolor{comment}{/* transfer timeout in milliseconds */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00235}\mbox{\hyperlink{structusb__config_a0e7feb3ff903ed490f21c1e5b128fc71}{00235}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer__flags}{usb\_xfer\_flags}} \mbox{\hyperlink{structusb__config_a0e7feb3ff903ed490f21c1e5b128fc71}{flags}}; \textcolor{comment}{/* transfer flags */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00236}\mbox{\hyperlink{structusb__config_a4129bd12510d8e621af9edf9468e6872}{00236}}         \mbox{\hyperlink{usb__freebsd_8h_a3f3a2ea5069eca21eab610b65c30c173}{usb\_stream\_t}} \mbox{\hyperlink{structusb__config_a4129bd12510d8e621af9edf9468e6872}{stream\_id}};            \textcolor{comment}{/* USB3.0 specific */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00237}\mbox{\hyperlink{structusb__config_a45b9e9ae72187e9854d90fbf8542c2ce}{00237}}         \textcolor{keyword}{enum} \mbox{\hyperlink{usb_8h_a9bc559812598988121896dceb483806b}{usb\_hc\_mode}} \mbox{\hyperlink{structusb__config_a45b9e9ae72187e9854d90fbf8542c2ce}{usb\_mode}};   \textcolor{comment}{/* host or device mode */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00238}\mbox{\hyperlink{structusb__config_a5bd5d569870291a54d9bed8377ed8b10}{00238}}         uint8\_t \mbox{\hyperlink{structusb__config_a5bd5d569870291a54d9bed8377ed8b10}{type}};                       \textcolor{comment}{/* pipe type */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00239}\mbox{\hyperlink{structusb__config_a81074abe7ded5be9dabdf9bcfed79317}{00239}}         uint8\_t \mbox{\hyperlink{structusb__config_a81074abe7ded5be9dabdf9bcfed79317}{endpoint}};               \textcolor{comment}{/* pipe number */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00240}\mbox{\hyperlink{structusb__config_a7df71cda1db402b095c2eab34e28feab}{00240}}         uint8\_t \mbox{\hyperlink{structusb__config_a7df71cda1db402b095c2eab34e28feab}{direction}};             \textcolor{comment}{/* pipe direction */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00241}\mbox{\hyperlink{structusb__config_a427eb947858b0e06b36890eaffb99a15}{00241}}         uint8\_t \mbox{\hyperlink{structusb__config_a427eb947858b0e06b36890eaffb99a15}{ep\_index}};               \textcolor{comment}{/* pipe index match to use */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00242}\mbox{\hyperlink{structusb__config_a080077f34b2679ce17ba834606f2f1b8}{00242}}         uint8\_t \mbox{\hyperlink{structusb__config_a080077f34b2679ce17ba834606f2f1b8}{if\_index}};               \textcolor{comment}{/* "{}ifaces"{} index to use */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00243}00243 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00244}00244 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00245}00245 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00246}00246 \textcolor{comment}{ * Use these macro when defining USB device ID arrays if you want to}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00247}00247 \textcolor{comment}{ * have your driver module automatically loaded in host, device or}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00248}00248 \textcolor{comment}{ * both modes respectively:}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00249}00249 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00250}00250 \textcolor{preprocessor}{\#if USB\_HAVE\_ID\_SECTION}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00251}00251 \textcolor{preprocessor}{\#define STRUCT\_USB\_HOST\_ID \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00252}00252 \textcolor{preprocessor}{    struct usb\_device\_id \_\_section("{}usb\_host\_id"{}})}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00253}00253 \textcolor{preprocessor}{\#define STRUCT\_USB\_DEVICE\_ID \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00254}00254 \textcolor{preprocessor}{    struct usb\_device\_id \_\_section("{}usb\_device\_id"{}})}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00255}00255 \textcolor{preprocessor}{\#define STRUCT\_USB\_DUAL\_ID \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00256}00256 \textcolor{preprocessor}{    struct usb\_device\_id \_\_section("{}usb\_dual\_id"{}})}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00257}00257 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00258}\mbox{\hyperlink{usbdi_8h_acf836fd8d6349b66a31f45420728da8d}{00258}} \textcolor{preprocessor}{\#define STRUCT\_USB\_HOST\_ID \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00259}00259 \textcolor{preprocessor}{    struct usb\_device\_id}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00260}\mbox{\hyperlink{usbdi_8h_a2d8a72c7d94ba6e9cacaebb4373dd9e6}{00260}} \textcolor{preprocessor}{\#define STRUCT\_USB\_DEVICE\_ID \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00261}00261 \textcolor{preprocessor}{    struct usb\_device\_id}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00262}\mbox{\hyperlink{usbdi_8h_af64e69291bcbb3b3649ec36583d47c87}{00262}} \textcolor{preprocessor}{\#define STRUCT\_USB\_DUAL\_ID \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00263}00263 \textcolor{preprocessor}{    struct usb\_device\_id}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00264}00264 \textcolor{preprocessor}{\#endif                  }\textcolor{comment}{/* USB\_HAVE\_ID\_SECTION */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00265}00265 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00266}00266 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00267}00267 \textcolor{comment}{ * The following structure is used when looking up an USB driver for}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00268}00268 \textcolor{comment}{ * an USB device. It is inspired by the Linux structure called}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00269}00269 \textcolor{comment}{ * "{}usb\_device\_id"{}.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00270}00270 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00271}\mbox{\hyperlink{structusb__device__id}{00271}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__id}{usb\_device\_id}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00272}00272         \textcolor{comment}{/* Select which fields to match against */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00273}00273 \textcolor{preprocessor}{\#if BYTE\_ORDER == LITTLE\_ENDIAN}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00274}00274         uint16\_t}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00275}\mbox{\hyperlink{structusb__device__id_a3e7406a83574ab6e1fcda787a00f7ca5}{00275}}                 \mbox{\hyperlink{structusb__device__id_a3e7406a83574ab6e1fcda787a00f7ca5}{match\_flag\_vendor}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00276}\mbox{\hyperlink{structusb__device__id_acefbefa71d56568381e70604ccc599e1}{00276}}                 \mbox{\hyperlink{structusb__device__id_acefbefa71d56568381e70604ccc599e1}{match\_flag\_product}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00277}\mbox{\hyperlink{structusb__device__id_aad8a10eca450f319b534727e343ea86f}{00277}}                 \mbox{\hyperlink{structusb__device__id_aad8a10eca450f319b534727e343ea86f}{match\_flag\_dev\_lo}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00278}\mbox{\hyperlink{structusb__device__id_ae09a27a8729f582fcbdcfba43024dfce}{00278}}                 \mbox{\hyperlink{structusb__device__id_ae09a27a8729f582fcbdcfba43024dfce}{match\_flag\_dev\_hi}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00279}00279 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00280}\mbox{\hyperlink{structusb__device__id_ae3754c4fd0cf88b64a2f1a3571d2bb00}{00280}}                 \mbox{\hyperlink{structusb__device__id_ae3754c4fd0cf88b64a2f1a3571d2bb00}{match\_flag\_dev\_class}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00281}\mbox{\hyperlink{structusb__device__id_ac75fb79563243d9f951e6648f1e7a003}{00281}}                 \mbox{\hyperlink{structusb__device__id_ac75fb79563243d9f951e6648f1e7a003}{match\_flag\_dev\_subclass}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00282}\mbox{\hyperlink{structusb__device__id_acfcd155a711351485b2ff1a77a774985}{00282}}                 \mbox{\hyperlink{structusb__device__id_acfcd155a711351485b2ff1a77a774985}{match\_flag\_dev\_protocol}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00283}\mbox{\hyperlink{structusb__device__id_acb895f1e65b2621ea5b95272b9d7b3bc}{00283}}                 \mbox{\hyperlink{structusb__device__id_acb895f1e65b2621ea5b95272b9d7b3bc}{match\_flag\_int\_class}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00284}00284 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00285}\mbox{\hyperlink{structusb__device__id_a83ae0ae5be796228690abc18c5656c81}{00285}}                 \mbox{\hyperlink{structusb__device__id_a83ae0ae5be796228690abc18c5656c81}{match\_flag\_int\_subclass}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00286}\mbox{\hyperlink{structusb__device__id_a4bf57b879f509610770d1e9b1e29c4c9}{00286}}                 \mbox{\hyperlink{structusb__device__id_a4bf57b879f509610770d1e9b1e29c4c9}{match\_flag\_int\_protocol}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00287}\mbox{\hyperlink{structusb__device__id_a58777ee2668cb357ed484162dcd62e20}{00287}}                 \mbox{\hyperlink{structusb__device__id_a58777ee2668cb357ed484162dcd62e20}{match\_flag\_unused}}:6;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00288}00288 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00289}00289         uint16\_t}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00290}00290                 \mbox{\hyperlink{structusb__device__id_a58777ee2668cb357ed484162dcd62e20}{match\_flag\_unused}}:6,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00291}00291                 \mbox{\hyperlink{structusb__device__id_a4bf57b879f509610770d1e9b1e29c4c9}{match\_flag\_int\_protocol}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00292}00292                 \mbox{\hyperlink{structusb__device__id_a83ae0ae5be796228690abc18c5656c81}{match\_flag\_int\_subclass}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00293}00293 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00294}00294                 \mbox{\hyperlink{structusb__device__id_acb895f1e65b2621ea5b95272b9d7b3bc}{match\_flag\_int\_class}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00295}00295                 \mbox{\hyperlink{structusb__device__id_acfcd155a711351485b2ff1a77a774985}{match\_flag\_dev\_protocol}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00296}00296                 \mbox{\hyperlink{structusb__device__id_ac75fb79563243d9f951e6648f1e7a003}{match\_flag\_dev\_subclass}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00297}00297                 \mbox{\hyperlink{structusb__device__id_ae3754c4fd0cf88b64a2f1a3571d2bb00}{match\_flag\_dev\_class}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00298}00298 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00299}00299                 \mbox{\hyperlink{structusb__device__id_ae09a27a8729f582fcbdcfba43024dfce}{match\_flag\_dev\_hi}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00300}00300                 \mbox{\hyperlink{structusb__device__id_aad8a10eca450f319b534727e343ea86f}{match\_flag\_dev\_lo}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00301}00301                 \mbox{\hyperlink{structusb__device__id_acefbefa71d56568381e70604ccc599e1}{match\_flag\_product}}:1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00302}00302                 \mbox{\hyperlink{structusb__device__id_a3e7406a83574ab6e1fcda787a00f7ca5}{match\_flag\_vendor}}:1;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00303}00303 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00304}00304 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00305}00305         \textcolor{comment}{/* Used for product specific matches; the BCD range is inclusive */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00306}\mbox{\hyperlink{structusb__device__id_aec281bdf7ff07f1508a7430c58577bcb}{00306}}         uint16\_t \mbox{\hyperlink{structusb__device__id_aec281bdf7ff07f1508a7430c58577bcb}{idVendor}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00307}\mbox{\hyperlink{structusb__device__id_a3193112f6a8ce6c65859a025055abf3a}{00307}}         uint16\_t \mbox{\hyperlink{structusb__device__id_a3193112f6a8ce6c65859a025055abf3a}{idProduct}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00308}\mbox{\hyperlink{structusb__device__id_af6ff15dc0227e8dc2c82d1ac049a3f2f}{00308}}         uint16\_t \mbox{\hyperlink{structusb__device__id_af6ff15dc0227e8dc2c82d1ac049a3f2f}{bcdDevice\_lo}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00309}\mbox{\hyperlink{structusb__device__id_a1c4708e66ea13463818ce72d5cbb4797}{00309}}         uint16\_t \mbox{\hyperlink{structusb__device__id_a1c4708e66ea13463818ce72d5cbb4797}{bcdDevice\_hi}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00310}00310 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00311}00311         \textcolor{comment}{/* Used for device class matches */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00312}\mbox{\hyperlink{structusb__device__id_ab45c1debb992aa144339e85c1fe14d6d}{00312}}         uint8\_t \mbox{\hyperlink{structusb__device__id_ab45c1debb992aa144339e85c1fe14d6d}{bDeviceClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00313}\mbox{\hyperlink{structusb__device__id_a638ce2193d0f8d3786e4c6279bf110ab}{00313}}         uint8\_t \mbox{\hyperlink{structusb__device__id_a638ce2193d0f8d3786e4c6279bf110ab}{bDeviceSubClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00314}\mbox{\hyperlink{structusb__device__id_a282d6fc7dfadded8786677d87f9ae36e}{00314}}         uint8\_t \mbox{\hyperlink{structusb__device__id_a282d6fc7dfadded8786677d87f9ae36e}{bDeviceProtocol}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00316}00316         \textcolor{comment}{/* Used for interface class matches */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00317}\mbox{\hyperlink{structusb__device__id_a0e5095c5782eae6d77313dfffa849745}{00317}}         uint8\_t \mbox{\hyperlink{structusb__device__id_a0e5095c5782eae6d77313dfffa849745}{bInterfaceClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00318}\mbox{\hyperlink{structusb__device__id_a36f7fbc37760309eac5af5f73eafb46d}{00318}}         uint8\_t \mbox{\hyperlink{structusb__device__id_a36f7fbc37760309eac5af5f73eafb46d}{bInterfaceSubClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00319}\mbox{\hyperlink{structusb__device__id_ae43c2e6757e810cd11cdee1c1ce78841}{00319}}         uint8\_t \mbox{\hyperlink{structusb__device__id_ae43c2e6757e810cd11cdee1c1ce78841}{bInterfaceProtocol}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00320}00320 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00321}00321 \textcolor{preprocessor}{\#if USB\_HAVE\_COMPAT\_LINUX}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00322}00322         \textcolor{comment}{/* which fields to match against */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00323}00323         uint16\_t match\_flags;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00324}00324 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_VENDOR              0x0001}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00325}00325 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_PRODUCT             0x0002}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00326}00326 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_DEV\_LO              0x0004}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00327}00327 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_DEV\_HI              0x0008}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00328}00328 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_DEV\_CLASS           0x0010}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00329}00329 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_DEV\_SUBCLASS        0x0020}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00330}00330 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_DEV\_PROTOCOL        0x0040}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00331}00331 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_INT\_CLASS           0x0080}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00332}00332 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_INT\_SUBCLASS        0x0100}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00333}00333 \textcolor{preprocessor}{\#define USB\_DEVICE\_ID\_MATCH\_INT\_PROTOCOL        0x0200}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00334}00334 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00335}00335 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00336}00336         \textcolor{comment}{/* Hook for driver specific information */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00337}\mbox{\hyperlink{structusb__device__id_a0a21fb1f9b7602b36d72672dc4795b64}{00337}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \mbox{\hyperlink{structusb__device__id_a0a21fb1f9b7602b36d72672dc4795b64}{driver\_info}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00338}00338 \} \mbox{\hyperlink{usbdi_8h_a502d7493450dfc3a82463d3fd78c3eec}{\_\_aligned}}(32);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00339}00339 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00340}\mbox{\hyperlink{usbdi_8h_a150577454d07d8b3d874ed81e07abeec}{00340}} \textcolor{preprocessor}{\#define USB\_STD\_PNP\_INFO "{}M16:mask;U16:vendor;U16:product;L16:release;G16:release;"{}} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00341}00341         "{}U8:devclass;U8:devsubclass;U8:devproto;"{} \(\backslash\)}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00342}00342         "{}U8:intclass;U8:intsubclass;U8:intprotocol;"{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00343}\mbox{\hyperlink{usbdi_8h_af870a9ba81c1c1d28c3952cbe9c18e8f}{00343}} \textcolor{preprocessor}{\#define USB\_STD\_PNP\_HOST\_INFO USB\_STD\_PNP\_INFO "{}T:mode=host;"{}}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00344}\mbox{\hyperlink{usbdi_8h_ac13dea80314193829ff0a7f04ea8d3d4}{00344}} \textcolor{preprocessor}{\#define USB\_STD\_PNP\_DEVICE\_INFO USB\_STD\_PNP\_INFO "{}T:mode=device;"{}}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00345}\mbox{\hyperlink{usbdi_8h_a17c402de65b53a23b1ac83d6ff32f397}{00345}} \textcolor{preprocessor}{\#define USB\_PNP\_HOST\_INFO(table)                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00346}00346 \textcolor{preprocessor}{        MODULE\_PNP\_INFO(USB\_STD\_PNP\_HOST\_INFO, uhub, table, table,      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00347}00347 \textcolor{preprocessor}{            sizeof(table) / sizeof(table[0]))}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00348}\mbox{\hyperlink{usbdi_8h_a7bac82d28bb4fea24fa2d04dd411b2a5}{00348}} \textcolor{preprocessor}{\#define USB\_PNP\_DEVICE\_INFO(table)                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00349}00349 \textcolor{preprocessor}{        MODULE\_PNP\_INFO(USB\_STD\_PNP\_DEVICE\_INFO, uhub, table, table,    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00350}00350 \textcolor{preprocessor}{            sizeof(table) / sizeof(table[0]))}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00351}\mbox{\hyperlink{usbdi_8h_ae28c8703ca267f2250d112050d6fccd0}{00351}} \textcolor{preprocessor}{\#define USB\_PNP\_DUAL\_INFO(table)                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00352}00352 \textcolor{preprocessor}{        MODULE\_PNP\_INFO(USB\_STD\_PNP\_INFO, uhub, table, table,           \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00353}00353 \textcolor{preprocessor}{            sizeof(table) / sizeof(table[0]))}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00354}00354 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00355}00355 \textcolor{comment}{/* check that the size of the structure above is correct */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00356}00356 \textcolor{keyword}{extern} \textcolor{keywordtype}{char} \mbox{\hyperlink{usbdi_8h_a24835380283a147a24b17bc118972c83}{usb\_device\_id\_assert}}[(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__id}{usb\_device\_id}}) == 32) ? 1 : -\/1];}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00357}00357 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00358}\mbox{\hyperlink{usbdi_8h_ab5d541c01afa5eb1a62de5dc85273298}{00358}} \textcolor{preprocessor}{\#define USB\_VENDOR(vend)                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00359}00359 \textcolor{preprocessor}{  .match\_flag\_vendor = 1, .idVendor = (vend)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00360}00360 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00361}\mbox{\hyperlink{usbdi_8h_a3a6e3012f2ff278a6c7a19747b9f1650}{00361}} \textcolor{preprocessor}{\#define USB\_PRODUCT(prod)                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00362}00362 \textcolor{preprocessor}{  .match\_flag\_product = 1, .idProduct = (prod)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00363}00363 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00364}\mbox{\hyperlink{usbdi_8h_a5b31cb666de14c80efa3edbce7f5ae19}{00364}} \textcolor{preprocessor}{\#define USB\_VP(vend,prod)                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00365}00365 \textcolor{preprocessor}{  USB\_VENDOR(vend), USB\_PRODUCT(prod)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00366}00366 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00367}\mbox{\hyperlink{usbdi_8h_acdab3edd999014815e8baeb9b33e9071}{00367}} \textcolor{preprocessor}{\#define USB\_VPI(vend,prod,info)                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00368}00368 \textcolor{preprocessor}{  USB\_VENDOR(vend), USB\_PRODUCT(prod), USB\_DRIVER\_INFO(info)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00369}00369 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00370}\mbox{\hyperlink{usbdi_8h_a8e4e91cf55621d4b624b7a8d326c859e}{00370}} \textcolor{preprocessor}{\#define USB\_DEV\_BCD\_GTEQ(lo)    }\textcolor{comment}{/* greater than or equal */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00371}00371 \textcolor{preprocessor}{  .match\_flag\_dev\_lo = 1, .bcdDevice\_lo = (lo)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00372}00372 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00373}\mbox{\hyperlink{usbdi_8h_af7dd6e87428530cb80caf51d25e3db84}{00373}} \textcolor{preprocessor}{\#define USB\_DEV\_BCD\_LTEQ(hi)    }\textcolor{comment}{/* less than or equal */}\textcolor{preprocessor}{ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00374}00374 \textcolor{preprocessor}{  .match\_flag\_dev\_hi = 1, .bcdDevice\_hi = (hi)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00375}00375 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00376}\mbox{\hyperlink{usbdi_8h_a6f5ae3fec1fb188d44bef5e6e11db879}{00376}} \textcolor{preprocessor}{\#define USB\_DEV\_CLASS(dc)                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00377}00377 \textcolor{preprocessor}{  .match\_flag\_dev\_class = 1, .bDeviceClass = (dc)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00378}00378 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00379}\mbox{\hyperlink{usbdi_8h_a046f2ddb5b849aeb11e4f07443d8c1b0}{00379}} \textcolor{preprocessor}{\#define USB\_DEV\_SUBCLASS(dsc)                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00380}00380 \textcolor{preprocessor}{  .match\_flag\_dev\_subclass = 1, .bDeviceSubClass = (dsc)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00381}00381 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00382}\mbox{\hyperlink{usbdi_8h_a6438408b4a853403ed90c32bd6c5abf0}{00382}} \textcolor{preprocessor}{\#define USB\_DEV\_PROTOCOL(dp)                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00383}00383 \textcolor{preprocessor}{  .match\_flag\_dev\_protocol = 1, .bDeviceProtocol = (dp)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00384}00384 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00385}\mbox{\hyperlink{usbdi_8h_a74c0bae2d55b3014e0583ec8ea4d5dc0}{00385}} \textcolor{preprocessor}{\#define USB\_IFACE\_CLASS(ic)                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00386}00386 \textcolor{preprocessor}{  .match\_flag\_int\_class = 1, .bInterfaceClass = (ic)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00387}00387 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00388}\mbox{\hyperlink{usbdi_8h_a15ff0bc986f953c98128bd03e394b571}{00388}} \textcolor{preprocessor}{\#define USB\_IFACE\_SUBCLASS(isc)                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00389}00389 \textcolor{preprocessor}{  .match\_flag\_int\_subclass = 1, .bInterfaceSubClass = (isc)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00390}00390 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00391}\mbox{\hyperlink{usbdi_8h_a99fe00139ae050549bc725ebd3c0d5cc}{00391}} \textcolor{preprocessor}{\#define USB\_IFACE\_PROTOCOL(ip)                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00392}00392 \textcolor{preprocessor}{  .match\_flag\_int\_protocol = 1, .bInterfaceProtocol = (ip)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00393}00393 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00394}\mbox{\hyperlink{usbdi_8h_a0ce37b26e8cc4d466fe460c5bc490777}{00394}} \textcolor{preprocessor}{\#define USB\_IF\_CSI(class,subclass,info)                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00395}00395 \textcolor{preprocessor}{  USB\_IFACE\_CLASS(class), USB\_IFACE\_SUBCLASS(subclass), USB\_DRIVER\_INFO(info)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00396}00396 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00397}\mbox{\hyperlink{usbdi_8h_afd3bc04918a50ee7b7aad1178fd01880}{00397}} \textcolor{preprocessor}{\#define USB\_DRIVER\_INFO(n)                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00398}00398 \textcolor{preprocessor}{  .driver\_info = (n)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00399}00399 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00400}\mbox{\hyperlink{usbdi_8h_ad61be4846786fb86de5691968d1e9b66}{00400}} \textcolor{preprocessor}{\#define USB\_GET\_DRIVER\_INFO(did)                \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00401}00401 \textcolor{preprocessor}{  (did)-\/>driver\_info}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00402}00402 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00403}00403 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00404}00404 \textcolor{comment}{ * The following structure keeps information that is used to match}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00405}00405 \textcolor{comment}{ * against an array of "{}usb\_device\_id"{} elements.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00406}00406 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00407}\mbox{\hyperlink{structusbd__lookup__info}{00407}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusbd__lookup__info}{usbd\_lookup\_info}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00408}\mbox{\hyperlink{structusbd__lookup__info_ae7eb209900d63daa0453bfad02b214d2}{00408}}         uint16\_t \mbox{\hyperlink{structusbd__lookup__info_ae7eb209900d63daa0453bfad02b214d2}{idVendor}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00409}\mbox{\hyperlink{structusbd__lookup__info_a4bca08a16ef6b481d70d9eaf6a48f559}{00409}}         uint16\_t \mbox{\hyperlink{structusbd__lookup__info_a4bca08a16ef6b481d70d9eaf6a48f559}{idProduct}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00410}\mbox{\hyperlink{structusbd__lookup__info_afb2ebde174df050730dc83fcb0927582}{00410}}         uint16\_t \mbox{\hyperlink{structusbd__lookup__info_afb2ebde174df050730dc83fcb0927582}{bcdDevice}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00411}\mbox{\hyperlink{structusbd__lookup__info_a76f8856fd2dc0b921987c8a9719059a9}{00411}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_a76f8856fd2dc0b921987c8a9719059a9}{bDeviceClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00412}\mbox{\hyperlink{structusbd__lookup__info_a0dbebc3f825f58a41f412cfd6222f937}{00412}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_a0dbebc3f825f58a41f412cfd6222f937}{bDeviceSubClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00413}\mbox{\hyperlink{structusbd__lookup__info_a606e5da09fb942be125f50a2c23d2d33}{00413}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_a606e5da09fb942be125f50a2c23d2d33}{bDeviceProtocol}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00414}\mbox{\hyperlink{structusbd__lookup__info_ab0d02dc59a6a042d2de8c12708afc8b3}{00414}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_ab0d02dc59a6a042d2de8c12708afc8b3}{bInterfaceClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00415}\mbox{\hyperlink{structusbd__lookup__info_aa8ed5421fc671dcbd1fefb09180b604c}{00415}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_aa8ed5421fc671dcbd1fefb09180b604c}{bInterfaceSubClass}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00416}\mbox{\hyperlink{structusbd__lookup__info_ae7cd4aacf13732f19919bf228d2b2ef4}{00416}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_ae7cd4aacf13732f19919bf228d2b2ef4}{bInterfaceProtocol}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00417}\mbox{\hyperlink{structusbd__lookup__info_a50a68740a4c82f1a9b999d4a7994b550}{00417}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_a50a68740a4c82f1a9b999d4a7994b550}{bIfaceIndex}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00418}\mbox{\hyperlink{structusbd__lookup__info_a268433f99f7bfcc278a619418e3c44fa}{00418}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_a268433f99f7bfcc278a619418e3c44fa}{bIfaceNum}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00419}\mbox{\hyperlink{structusbd__lookup__info_a9e2af2c9a58f0df11559c7679185b0e8}{00419}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_a9e2af2c9a58f0df11559c7679185b0e8}{bConfigIndex}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00420}\mbox{\hyperlink{structusbd__lookup__info_ab944247e1a3d6733de7364dd7c142a4c}{00420}}         uint8\_t \mbox{\hyperlink{structusbd__lookup__info_ab944247e1a3d6733de7364dd7c142a4c}{bConfigNum}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00421}\mbox{\hyperlink{usbdi_8h_a502d7493450dfc3a82463d3fd78c3eec}{00421}} \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00422}00422 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00423}00423 \textcolor{comment}{/* Structure used by probe and attach */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00424}00424 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00425}\mbox{\hyperlink{structusb__attach__arg}{00425}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00426}\mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{00426}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusbd__lookup__info}{usbd\_lookup\_info}} \mbox{\hyperlink{structusb__attach__arg_a66c2afc71fce73cc432f7d58593e1f26}{info}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00427}\mbox{\hyperlink{structusb__attach__arg_a3ac3f8fc04d9de8b31d85cd72eeb089d}{00427}}         device\_t \mbox{\hyperlink{structusb__attach__arg_a3ac3f8fc04d9de8b31d85cd72eeb089d}{temp\_dev}};              \textcolor{comment}{/* for internal use */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00428}\mbox{\hyperlink{structusb__attach__arg_a4d32c1b722effd2adff410595d390e4b}{00428}}         \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \mbox{\hyperlink{structusb__attach__arg_a4d32c1b722effd2adff410595d390e4b}{driver\_info}};   \textcolor{comment}{/* for internal use */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00429}\mbox{\hyperlink{structusb__attach__arg_a9caf5d5b18731d642584bdb9946226fe}{00429}}         \textcolor{keywordtype}{void} *\mbox{\hyperlink{structusb__attach__arg_a9caf5d5b18731d642584bdb9946226fe}{driver\_ivar}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00430}\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{00430}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device}{usb\_device}} *\mbox{\hyperlink{structusb__attach__arg_ac86557d3eaf77874d436ce38648b0276}{device}};      \textcolor{comment}{/* current device */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00431}\mbox{\hyperlink{structusb__attach__arg_aaf4432c55ec34c0e4eb0cb3ddfb08ffd}{00431}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__interface}{usb\_interface}} *\mbox{\hyperlink{structusb__attach__arg_aaf4432c55ec34c0e4eb0cb3ddfb08ffd}{iface}};  \textcolor{comment}{/* current interface */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00432}\mbox{\hyperlink{structusb__attach__arg_a246691e99681281d3113d63e81b7e4f0}{00432}}         \textcolor{keyword}{enum} \mbox{\hyperlink{usb_8h_a9bc559812598988121896dceb483806b}{usb\_hc\_mode}} \mbox{\hyperlink{structusb__attach__arg_a246691e99681281d3113d63e81b7e4f0}{usb\_mode}};   \textcolor{comment}{/* host or device mode */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00433}\mbox{\hyperlink{structusb__attach__arg_a571470a93082d1e7696a1abeac618b0e}{00433}}         uint8\_t \mbox{\hyperlink{structusb__attach__arg_a571470a93082d1e7696a1abeac618b0e}{port}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00434}\mbox{\hyperlink{structusb__attach__arg_a2b48f36369d07d7452d70d4a923a35ae}{00434}}         uint8\_t \mbox{\hyperlink{structusb__attach__arg_a2b48f36369d07d7452d70d4a923a35ae}{dev\_state}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00435}\mbox{\hyperlink{usbdi_8h_a635711fa84ca8e34068c774ff5518450}{00435}} \textcolor{preprocessor}{\#define UAA\_DEV\_READY           0}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00436}\mbox{\hyperlink{usbdi_8h_a5c236511f9b04efbff470fee1e356a19}{00436}} \textcolor{preprocessor}{\#define UAA\_DEV\_DISABLED        1}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00437}\mbox{\hyperlink{usbdi_8h_af0a1ac09514bfda3e5418bcb253b5221}{00437}} \textcolor{preprocessor}{\#define UAA\_DEV\_EJECTING        2}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00438}00438 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00439}00439 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00440}00440 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00441}00441 \textcolor{comment}{ * General purpose locking wrappers to ease supporting}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00442}00442 \textcolor{comment}{ * USB polled mode:}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00443}00443 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00444}00444 \textcolor{preprocessor}{\#ifdef INVARIANTS}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00445}00445 \textcolor{preprocessor}{\#define USB\_MTX\_ASSERT(\_m, \_t) do \{             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00446}00446 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC())        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00447}00447 \textcolor{preprocessor}{                mtx\_assert(\_m, \_t);             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00448}00448 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00449}00449 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00450}\mbox{\hyperlink{usbdi_8h_a107993503e7d0b7e1178eddef27e57a9}{00450}} \textcolor{preprocessor}{\#define USB\_MTX\_ASSERT(\_m, \_t) do \{ \} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00451}00451 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00452}00452 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00453}\mbox{\hyperlink{usbdi_8h_a356c200da9171c8f047afae5440c2a0a}{00453}} \textcolor{preprocessor}{\#define USB\_MTX\_LOCK(\_m) do \{                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00454}00454 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC())        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00455}00455 \textcolor{preprocessor}{                mtx\_lock(\_m);                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00456}00456 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00457}00457 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00458}\mbox{\hyperlink{usbdi_8h_a101cc5e91f4afa03b678d8941551c4d5}{00458}} \textcolor{preprocessor}{\#define USB\_MTX\_UNLOCK(\_m) do \{                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00459}00459 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC())        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00460}00460 \textcolor{preprocessor}{                mtx\_unlock(\_m);                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00461}00461 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00462}00462 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00463}\mbox{\hyperlink{usbdi_8h_a3e1eaa0d620e7f74844848151e9b02b8}{00463}} \textcolor{preprocessor}{\#define USB\_MTX\_LOCK\_SPIN(\_m) do \{              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00464}00464 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC())        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00465}00465 \textcolor{preprocessor}{                mtx\_lock\_spin(\_m);              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00466}00466 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00467}00467 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00468}\mbox{\hyperlink{usbdi_8h_a901aa5018095a05b25c69b679af6e71e}{00468}} \textcolor{preprocessor}{\#define USB\_MTX\_UNLOCK\_SPIN(\_m) do \{            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00469}00469 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC())        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00470}00470 \textcolor{preprocessor}{                mtx\_unlock\_spin(\_m);            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00471}00471 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00472}00472 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00473}00473 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00474}00474 \textcolor{comment}{ * The following is a wrapper for the callout structure to ease}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00475}00475 \textcolor{comment}{ * porting the code to other platforms.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00476}00476 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00477}\mbox{\hyperlink{structusb__callout}{00477}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__callout}{usb\_callout}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00478}\mbox{\hyperlink{structusb__callout_ac4ffd33124058739cf61d736526afbb8}{00478}}         \textcolor{keyword}{struct }callout \mbox{\hyperlink{structusb__callout_ac4ffd33124058739cf61d736526afbb8}{co}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00479}00479 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00480}\mbox{\hyperlink{usbdi_8h_a1f241362056f1ed3d4c4b5cfb63ce8e5}{00480}} \textcolor{preprocessor}{\#define usb\_callout\_init\_mtx(c,m,f) callout\_init\_mtx(\&(c)-\/>co,m,f)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00481}\mbox{\hyperlink{usbdi_8h_a5ba556ca3595eb8006822a123ac9d54f}{00481}} \textcolor{preprocessor}{\#define usb\_callout\_reset(c,...) do \{                   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00482}00482 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC())                \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00483}00483 \textcolor{preprocessor}{                callout\_reset(\&(c)-\/>co, \_\_VA\_ARGS\_\_);   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00484}00484 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00485}\mbox{\hyperlink{usbdi_8h_afa7217d76bc57d5eea7c26c7234b27d2}{00485}} \textcolor{preprocessor}{\#define usb\_callout\_reset\_sbt(c,...) do \{                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00486}00486 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC())                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00487}00487 \textcolor{preprocessor}{                callout\_reset\_sbt(\&(c)-\/>co, \_\_VA\_ARGS\_\_);       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00488}00488 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00489}\mbox{\hyperlink{usbdi_8h_ad74dd2f25febf2ba5083574711e4101a}{00489}} \textcolor{preprocessor}{\#define usb\_callout\_stop(c) do \{                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00490}00490 \textcolor{preprocessor}{        if (!USB\_IN\_POLLING\_MODE\_FUNC()) \{              \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00491}00491 \textcolor{preprocessor}{                callout\_stop(\&(c)-\/>co);                 \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00492}00492 \textcolor{preprocessor}{        \} else \{                                        \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00493}00493 \textcolor{preprocessor}{                }\textcolor{comment}{/*                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00494}00494 \textcolor{comment}{                 * Cannot stop callout when             \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00495}00495 \textcolor{comment}{                 * polling. Set dummy callback          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00496}00496 \textcolor{comment}{                 * function instead:                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00497}\mbox{\hyperlink{usbdi_8h_a828c4d79b0d9b11c8dcb77899a2bffda}{00497}} \textcolor{comment}{                 */}\textcolor{preprocessor}{                                     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00498}\mbox{\hyperlink{usbdi_8h_a3ecd86f9c5548c3bfc5f92af96ba1acd}{00498}} \textcolor{preprocessor}{                (c)-\/>co.c\_func = \&usbd\_dummy\_timeout;   \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00499}00499 \textcolor{preprocessor}{        \}                                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00500}00500 \textcolor{preprocessor}{\} while (0)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00501}00501 \textcolor{preprocessor}{\#define usb\_callout\_drain(c) callout\_drain(\&(c)-\/>co)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00502}\mbox{\hyperlink{usbdi_8h_a3aa7120c3ecab31972b8fe219530f552}{00502}} \textcolor{preprocessor}{\#define usb\_callout\_pending(c) callout\_pending(\&(c)-\/>co)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00503}\mbox{\hyperlink{usbdi_8h_a8f0386217ba77be3e47721fae9aa9b3d}{00503}} }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00504}\mbox{\hyperlink{usbdi_8h_a0897ccb9ed03670020da850d8a75d0f3}{00504}} \textcolor{comment}{/* USB transfer states */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00505}00505 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00506}00506 \textcolor{preprocessor}{\#define USB\_ST\_SETUP       0}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00507}\mbox{\hyperlink{usbdi_8h_a2539d3945aa5ae5e58e3eced63ab5b16}{00507}} \textcolor{preprocessor}{\#define USB\_ST\_TRANSFERRED 1}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00508}\mbox{\hyperlink{usbdi_8h_a01056f98799a951db5cc018cd604d53e}{00508}} \textcolor{preprocessor}{\#define USB\_ST\_ERROR       2}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00509}\mbox{\hyperlink{usbdi_8h_ab71be157ec76ec40786c2722785d0be0}{00509}} }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00510}00510 \textcolor{comment}{/* USB handle request states */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00511}00511 \textcolor{preprocessor}{\#define USB\_HR\_NOT\_COMPLETE     0}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00512}00512 \textcolor{preprocessor}{\#define USB\_HR\_COMPLETE\_OK      1}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00513}00513 \textcolor{preprocessor}{\#define USB\_HR\_COMPLETE\_ERR     2}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00514}00514 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00515}\mbox{\hyperlink{usbdi_8h_adc2dd35bd0dd6a42d3abd4230796a7b0}{00515}} \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00516}00516 \textcolor{comment}{ * The following macro will return the current state of an USB}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00517}00517 \textcolor{comment}{ * transfer like defined by the "{}USB\_ST\_XXX"{} enums.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00518}00518 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00519}00519 \textcolor{preprocessor}{\#define USB\_GET\_STATE(xfer) (usbd\_xfer\_state(xfer))}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00520}\mbox{\hyperlink{structusb__proc__msg}{00520}} }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00521}\mbox{\hyperlink{structusb__proc__msg_aea6e52cdb0a139eaa28c709e1ed62e8c}{00521}} \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00522}\mbox{\hyperlink{structusb__proc__msg_a3ef3a62c9c45df2eca4677c43eb0e1a0}{00522}} \textcolor{comment}{ * The following structure defines the USB process message header.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00523}\mbox{\hyperlink{structusb__proc__msg_a36eddec232ee31ff71b5aa38128cd447}{00523}} \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00524}00524 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__proc__msg}{usb\_proc\_msg}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00525}00525         \mbox{\hyperlink{structusb__proc__msg_aea6e52cdb0a139eaa28c709e1ed62e8c}{TAILQ\_ENTRY}}(\mbox{\hyperlink{structusb__proc__msg}{usb\_proc\_msg}}) pm\_qentry;}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00526}\mbox{\hyperlink{usbdi_8h_ab42694ba7d2dc0d510f4a139fb8cf5d8}{00526}}         \mbox{\hyperlink{usbdi_8h_a1ef139097c29321af159f8c11cdaad3d}{usb\_proc\_callback\_t}} *\mbox{\hyperlink{structusb__proc__msg_a3ef3a62c9c45df2eca4677c43eb0e1a0}{pm\_callback}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00527}\mbox{\hyperlink{usbdi_8h_aa4759b44daa392a7b438d6fba784f30a}{00527}}         \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} \mbox{\hyperlink{structusb__proc__msg_a36eddec232ee31ff71b5aa38128cd447}{pm\_num}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00528}00528 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00529}00529 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00530}00530 \textcolor{preprocessor}{\#define USB\_FIFO\_TX 0}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00531}00531 \textcolor{preprocessor}{\#define USB\_FIFO\_RX 1}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00532}00532 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00533}00533 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00534}\mbox{\hyperlink{structusb__fifo__methods}{00534}} \textcolor{comment}{ * Locking note for the following functions.  All the}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00535}\mbox{\hyperlink{structusb__fifo__methods_ab412e16bde144a591c8ca291876506a2}{00535}} \textcolor{comment}{ * "{}usb\_fifo\_cmd\_t"{} and "{}usb\_fifo\_filter\_t"{} functions are called}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00536}\mbox{\hyperlink{structusb__fifo__methods_a115a1ddc0fbdaa0d2e462fe6f9568119}{00536}} \textcolor{comment}{ * locked. The others are called unlocked.}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00537}\mbox{\hyperlink{structusb__fifo__methods_a58485ac017af8e77027f28816555ff17}{00537}} \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00538}00538 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo__methods}{usb\_fifo\_methods}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00539}00539         \mbox{\hyperlink{usbdi_8h_abf627b9df5961890963bce30a2cf9e1d}{usb\_fifo\_open\_t}} *\mbox{\hyperlink{structusb__fifo__methods_ab412e16bde144a591c8ca291876506a2}{f\_open}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00540}00540         \mbox{\hyperlink{usbdi_8h_a1f11bee0038616aab627d2eb67a544b5}{usb\_fifo\_close\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a115a1ddc0fbdaa0d2e462fe6f9568119}{f\_close}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00541}00541         \mbox{\hyperlink{usbdi_8h_a1216ed6c6a9a63cba57811e6fe1f7fea}{usb\_fifo\_ioctl\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a58485ac017af8e77027f28816555ff17}{f\_ioctl}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00542}\mbox{\hyperlink{structusb__fifo__methods_a091381aa3f119dc7b76dc92ffcf06b1b}{00542}}         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00543}\mbox{\hyperlink{structusb__fifo__methods_a3af8d21b33b8118e5278c557078f22d7}{00543}} \textcolor{comment}{         * NOTE: The post-\/ioctl callback is called after the USB reference}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00544}\mbox{\hyperlink{structusb__fifo__methods_a65b536a2c2ae01320bd9c331fa960437}{00544}} \textcolor{comment}{         * gets locked in the IOCTL handler:}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00545}\mbox{\hyperlink{structusb__fifo__methods_a656f16fd7fb94c880c7b61518e27f427}{00545}} \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00546}\mbox{\hyperlink{structusb__fifo__methods_a70063ee13182d35519ae6d2348043c7d}{00546}}         \mbox{\hyperlink{usbdi_8h_a1216ed6c6a9a63cba57811e6fe1f7fea}{usb\_fifo\_ioctl\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a091381aa3f119dc7b76dc92ffcf06b1b}{f\_ioctl\_post}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00547}\mbox{\hyperlink{structusb__fifo__methods_a41dee0a7decf1845bb3d41ea13298087}{00547}}         \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\_fifo\_cmd\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a3af8d21b33b8118e5278c557078f22d7}{f\_start\_read}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00548}\mbox{\hyperlink{structusb__fifo__methods_acc2185607f0bcd124668a7ca2e0a35e2}{00548}}         \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\_fifo\_cmd\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a65b536a2c2ae01320bd9c331fa960437}{f\_stop\_read}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00549}\mbox{\hyperlink{structusb__fifo__methods_ad8f6914502b9d5c6ab89d231a721b7d6}{00549}}         \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\_fifo\_cmd\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a656f16fd7fb94c880c7b61518e27f427}{f\_start\_write}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00550}\mbox{\hyperlink{structusb__fifo__methods_aa57e2ac34c04dc80175c31e1a68bcc4f}{00550}}         \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\_fifo\_cmd\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a70063ee13182d35519ae6d2348043c7d}{f\_stop\_write}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00551}00551         \mbox{\hyperlink{usbdi_8h_ac132590154cf5e06851670a58d4fc6aa}{usb\_fifo\_filter\_t}} *\mbox{\hyperlink{structusb__fifo__methods_a41dee0a7decf1845bb3d41ea13298087}{f\_filter\_read}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00552}00552         \mbox{\hyperlink{usbdi_8h_ac132590154cf5e06851670a58d4fc6aa}{usb\_fifo\_filter\_t}} *\mbox{\hyperlink{structusb__fifo__methods_acc2185607f0bcd124668a7ca2e0a35e2}{f\_filter\_write}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00553}\mbox{\hyperlink{structusb__fifo__sc}{00553}}         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{structusb__fifo__methods_ad8f6914502b9d5c6ab89d231a721b7d6}{basename}}[4];}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00554}\mbox{\hyperlink{structusb__fifo__sc_a58c8d2178de01b2acf563667afa688d8}{00554}}         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{structusb__fifo__methods_aa57e2ac34c04dc80175c31e1a68bcc4f}{postfix}}[4];}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00555}\mbox{\hyperlink{structusb__fifo__sc_a94407bd38fafe0cbe1ae04165c991da1}{00555}} \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00556}00556 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00557}00557 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo__sc}{usb\_fifo\_sc}} \{}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00558}00558         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *\mbox{\hyperlink{structusb__fifo__sc_a58c8d2178de01b2acf563667afa688d8}{fp}}[2];}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00559}00559         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fs__privdata}{usb\_fs\_privdata}} *\mbox{\hyperlink{structusb__fifo__sc_a94407bd38fafe0cbe1ae04165c991da1}{dev}};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00560}00560 \};}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00561}00561 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00562}00562 \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{usbdi_8h_a162e0e558662686d19610c37a43356f4}{usbd\_errstr}}(\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00563}00563 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{usbdi_8h_a6cad4345e7f3c057be6067849349d082}{usbd\_find\_descriptor}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, \textcolor{keywordtype}{void} *\textcolor{keywordtype}{id},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00564}00564             uint8\_t iface\_index, uint8\_t type, uint8\_t type\_mask,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00565}00565             uint8\_t subtype, uint8\_t subtype\_mask);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00566}00566 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__config__descriptor}{usb\_config\_descriptor}} *\mbox{\hyperlink{usbdi_8h_a5833d02ea7d69fb84106d7b97391431a}{usbd\_get\_config\_descriptor}}(}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00567}00567             \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00568}00568 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__descriptor}{usb\_device\_descriptor}} *\mbox{\hyperlink{usbdi_8h_a8f67d00d4e9d051fd220f7a1562654d2}{usbd\_get\_device\_descriptor}}(}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00569}00569             \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00570}00570 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__interface}{usb\_interface}} *\mbox{\hyperlink{usbdi_8h_ad241549c2225f6ccb72345851d5b9ed8}{usbd\_get\_iface}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00571}00571             uint8\_t iface\_index);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00572}00572 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__interface__descriptor}{usb\_interface\_descriptor}} *\mbox{\hyperlink{usbdi_8h_a4b209681fa34e4570ab0544d0ae9002f}{usbd\_get\_interface\_descriptor}}(}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00573}00573             \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__interface}{usb\_interface}} *iface);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00574}00574 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__endpoint}{usb\_endpoint}} *\mbox{\hyperlink{usbdi_8h_ad28b06f4326ed530ead266110d7527f8}{usbd\_get\_endpoint}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, uint8\_t \mbox{\hyperlink{structusb__endpoint_a580fcd46d189c26accb301203a97bf43}{iface\_index}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00575}00575                     \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__config}{usb\_config}} *setup);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00576}00576 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__endpoint}{usb\_endpoint}} *\mbox{\hyperlink{usbdi_8h_abb8c67ad52ff01e2b863cc2d7e3c7dbc}{usbd\_get\_ep\_by\_addr}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, uint8\_t ea\_val);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00577}00577 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}}  \mbox{\hyperlink{usbdi_8h_a0c0a263480d3314dcbfb544e90233838}{usbd\_interface\_count}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, uint8\_t *count);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00578}00578 \textcolor{keyword}{enum} \mbox{\hyperlink{usb_8h_a9bc559812598988121896dceb483806b}{usb\_hc\_mode}} \mbox{\hyperlink{usbdi_8h_aaa773f565713c83ed1fd087d9123dce9}{usbd\_get\_mode}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00579}00579 \textcolor{keyword}{enum} \mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ff}{usb\_dev\_speed}} \mbox{\hyperlink{usbdi_8h_a7aed6ff31c86f304cb29317095a0de1c}{usbd\_get\_speed}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00580}00580 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a2f65a197990caa1a69a16691ce4dc66a}{device\_set\_usb\_desc}}(device\_t dev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00581}00581 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a829694c986b6fc1a5a0e6687759a2780}{usb\_pause\_mtx}}(\textcolor{keyword}{struct} mtx *mtx, \textcolor{keywordtype}{int} \_ticks);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00582}00582 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}}  \mbox{\hyperlink{usbdi_8h_ae0483fa4fd2c68d83f0253207d47f01d}{usbd\_set\_pnpinfo}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00583}00583                         uint8\_t \mbox{\hyperlink{structusb__endpoint_a580fcd46d189c26accb301203a97bf43}{iface\_index}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *pnpinfo);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00584}00584 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}}  \mbox{\hyperlink{usbdi_8h_a5afea05b6cef27780d577c0a9ab98987}{usbd\_add\_dynamic\_quirk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00585}00585                         uint16\_t quirk);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00586}00586 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}}  \mbox{\hyperlink{usbdi_8h_a977e49b1fad0389a72922f830583203e}{usbd\_set\_endpoint\_mode}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00587}00587                         \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__endpoint}{usb\_endpoint}} *ep, uint8\_t \mbox{\hyperlink{structusb__endpoint_aa0d71bd1ddc4591f448a88a33d1eaff2}{ep\_mode}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00588}00588 uint8\_t         \mbox{\hyperlink{usbdi_8h_a7cecec38207586be771cd530b287b8d3}{usbd\_get\_endpoint\_mode}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00589}00589                         \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__endpoint}{usb\_endpoint}} *ep);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00590}00590 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00591}00591 \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__id}{usb\_device\_id}} *\mbox{\hyperlink{usbdi_8h_aec7e4e8a210d83fd2ce8b0f34188f974}{usbd\_lookup\_id\_by\_info}}(}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00592}00592             \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device__id}{usb\_device\_id}} *\textcolor{keywordtype}{id}, \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} sizeof\_id,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00593}00593             \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusbd__lookup__info}{usbd\_lookup\_info}} *info);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00594}00594 \textcolor{keywordtype}{int}     \mbox{\hyperlink{usbdi_8h_aa691ad42d532498716f358cb1c994fb2}{usbd\_lookup\_id\_by\_uaa}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device__id}{usb\_device\_id}} *\textcolor{keywordtype}{id},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00595}00595             \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} sizeof\_id, \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__attach__arg}{usb\_attach\_arg}} *uaa);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00596}\mbox{\hyperlink{usbdi_8h_adf0c9751da27fa2e6a3b52a9bfd5f7d1}{00596}} }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00597}00597 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{usbdi_8h_ae914a46bd63666caf7f4d8c182fa5e71}{usbd\_do\_request\_flags}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, \textcolor{keyword}{struct} mtx *mtx,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00598}00598                     \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device__request}{usb\_device\_request}} *\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}, \textcolor{keywordtype}{void} *data, uint16\_t flags,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00599}00599                     uint16\_t *actlen, \mbox{\hyperlink{usb__freebsd_8h_ad024d1bfb97f4cb78c73989e05d13176}{usb\_timeout\_t}} timeout);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00600}00600 \textcolor{preprocessor}{\#define usbd\_do\_request(u,m,r,d) \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00601}00601 \textcolor{preprocessor}{  usbd\_do\_request\_flags(u,m,r,d,0,NULL,USB\_DEFAULT\_TIMEOUT)}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00602}00602 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00603}00603 uint8\_t \mbox{\hyperlink{usbdi_8h_a4088ac29158c7fdb2c7b466ca3473ab9}{usbd\_clear\_stall\_callback}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer1,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00604}00604             \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer2);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00605}00605 uint8\_t \mbox{\hyperlink{usbdi_8h_a7105595431c9c77c9d69e40f462547bc}{usbd\_get\_interface\_altindex}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__interface}{usb\_interface}} *iface);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00606}00606 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{usbdi_8h_a04693d160af658ae93ddddeac41e6ef2}{usbd\_set\_alt\_interface\_index}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00607}00607             uint8\_t iface\_index, uint8\_t alt\_index);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00608}00608 uint32\_t \mbox{\hyperlink{usbdi_8h_a812b7e63d8ac7860d351ae13be539ae4}{usbd\_get\_isoc\_fps}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00609}00609 uint32\_t \mbox{\hyperlink{usbdi_8h_a37be1cc112cdf11ac7ce51107cb7b87d}{usbd\_get\_max\_frame\_length}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__endpoint__descriptor}{usb\_endpoint\_descriptor}} *,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00610}00610     \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__endpoint__ss__comp__descriptor}{usb\_endpoint\_ss\_comp\_descriptor}} *,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00611}00611     \textcolor{keyword}{enum} \mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ff}{usb\_dev\_speed}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00612}00612 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}} \mbox{\hyperlink{usbdi_8h_aa8b356f9be4d82ed624f2f8b2404e33c}{usbd\_transfer\_setup}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00613}00613             \textcolor{keyword}{const} uint8\_t *ifaces, \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} **pxfer,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00614}00614             \textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__config}{usb\_config}} *setup\_start, uint16\_t n\_setup,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00615}00615             \textcolor{keywordtype}{void} *priv\_sc, \textcolor{keyword}{struct} mtx *priv\_mtx);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00616}00616 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a10c440b0b97cac293b4df9d558f15bac}{usbd\_transfer\_submit}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00617}00617 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a43bb1d4988af63164bf28fe6701f38c2}{usbd\_transfer\_clear\_stall}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00618}00618 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_aa525d15cc84d40dafaaecf86537e2c7f}{usbd\_transfer\_drain}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00619}00619 uint8\_t \mbox{\hyperlink{usbdi_8h_ae863fcac801fc9fdc00b3f3251e05692}{usbd\_transfer\_pending}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00620}00620 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a7a1f2d22a70b832e8cc31366adec443d}{usbd\_transfer\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00621}00621 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_abe245d973df0cfd6fb96b884d33ebce3}{usbd\_transfer\_stop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00622}00622 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a2f5ab55bfe7f356bb7a7505ff35c9741}{usbd\_transfer\_unsetup}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} **pxfer, uint16\_t n\_setup);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00623}00623 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_ab2036eadf83fca25cf0d8cdec16d7227}{usbd\_transfer\_poll}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} **ppxfer, uint16\_t max);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00624}00624 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a6aef4e9889e1a62a17d7c7ac8f0d2bfa}{usbd\_set\_parent\_iface}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, uint8\_t iface\_index,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00625}00625             uint8\_t parent\_index);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00626}00626 uint8\_t \mbox{\hyperlink{usbdi_8h_a6624075c44563546c2977fd76254a7ee}{usbd\_get\_bus\_index}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00627}00627 uint8\_t \mbox{\hyperlink{usbdi_8h_af8630adb8d1d257c963227e4a409c52d}{usbd\_get\_device\_index}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00628}00628 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a0fe52cb0293b8d1de260b88e4558bd00}{usbd\_set\_power\_mode}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, uint8\_t power\_mode);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00629}00629 uint8\_t \mbox{\hyperlink{usbdi_8h_a9a88866c459d791347d5eed03261cd61}{usbd\_filter\_power\_mode}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, uint8\_t power\_mode);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00630}00630 uint8\_t \mbox{\hyperlink{usbdi_8h_a52a48c2d81e9f87f15827b345c6da659}{usbd\_device\_attached}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00631}00631 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00632}00632 \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00633}00633         \mbox{\hyperlink{usbdi_8h_a4207c2b249f95d68095072c28478675d}{usbd\_xfer\_old\_frame\_length}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} frindex);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00634}00634 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_ac0c68320222f26c2a3eba47b46c47899}{usbd\_xfer\_status}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keywordtype}{int} *actlen, \textcolor{keywordtype}{int} *sumlen,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00635}00635             \textcolor{keywordtype}{int} *aframes, \textcolor{keywordtype}{int} *nframes);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00636}00636 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *\mbox{\hyperlink{usbdi_8h_a3430462b7df7342f2d1d47f053e13da5}{usbd\_xfer\_get\_frame}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *, \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00637}00637 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{usbdi_8h_a97fbf703c1723dae6a341243707a7dcf}{usbd\_xfer\_get\_frame\_buffer}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *, \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00638}00638 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{usbdi_8h_ab75ef6d82c4a000a3d16c133d1d589b0}{usbd\_xfer\_softc}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00639}00639 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{usbdi_8h_a1d9c627eab802e6281cea4de0369afde}{usbd\_xfer\_get\_priv}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00640}00640 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_af514f291f66c2f49d2aaa1da0db12828}{usbd\_xfer\_set\_priv}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00641}00641 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a7c8aa39ffbb326346eef4fb7af6b643a}{usbd\_xfer\_set\_interval}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00642}00642 uint8\_t \mbox{\hyperlink{usbdi_8h_a22495b34c7d36044a1bb6004ffa2399d}{usbd\_xfer\_state}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00643}00643 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a30d239cbfe3c02ec7da6e6dfe5055762}{usbd\_xfer\_set\_frame\_data}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} frindex,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00644}00644             \textcolor{keywordtype}{void} *ptr, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00645}00645 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a877f046732a9993d6adcecab4f70dff4}{usbd\_xfer\_frame\_data}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} frindex,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00646}00646             \textcolor{keywordtype}{void} **ptr, \textcolor{keywordtype}{int} *\mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00647}00647 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_aa9f706e03ede8468e81331de474aebb4}{usbd\_xfer\_set\_frame\_offset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00648}00648             \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} frindex);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00649}00649 \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usbdi_8h_ae34a7cc2f01c6dfb68bca6fd0b72647e}{usbd\_xfer\_max\_len}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00650}00650 \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usbdi_8h_a4d41eea82b32aa4587eaea8aa888ca9d}{usbd\_xfer\_max\_framelen}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00651}00651 \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} \mbox{\hyperlink{usbdi_8h_a1ec59b4f760b7aa645b57140a3a7dc1f}{usbd\_xfer\_max\_frames}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00652}00652 uint8\_t \mbox{\hyperlink{usbdi_8h_a479907ed14a6a7e05e1409a19562b8c2}{usbd\_xfer\_get\_fps\_shift}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00653}00653 \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usbdi_8h_a4a41497e9ac637390a5147766c135968}{usbd\_xfer\_frame\_len}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00654}00654             \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} frindex);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00655}00655 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a31786497f0f4222203b1e993d52af753}{usbd\_xfer\_set\_frame\_len}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} frindex,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00656}00656             \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00657}00657 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_acb81a2b8f3426ab1e1f2c973be03a2ae}{usbd\_xfer\_set\_timeout}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keywordtype}{int} timeout);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00658}00658 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a10f82b008c3a5311e5210e44beaca014}{usbd\_xfer\_set\_frames}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \mbox{\hyperlink{usb__freebsd_8h_ace73c4fca228e0d4c98bc32c063b0714}{usb\_frcount\_t}} \mbox{\hyperlink{if__run_8c_a5a648f5ec00c526b0dfa2df7a272c6c0}{n}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00659}00659 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_abede33cfb866cf334375d714c3973fbd}{usbd\_xfer\_set\_zlp}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00660}00660 uint8\_t \mbox{\hyperlink{usbdi_8h_a0b7d70f3dcbd82402dc8e370e7361112}{usbd\_xfer\_get\_and\_clr\_zlp}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00661}00661 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_abadf9cb2f8e81a5133af0c8030039de3}{usbd\_xfer\_set\_stall}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00662}00662 \textcolor{keywordtype}{int}     \mbox{\hyperlink{usbdi_8h_a9072c9b566e9debc3256945558cf9860}{usbd\_xfer\_is\_stalled}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00663}00663 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a082882e3b111da906360d70571c27185}{usbd\_xfer\_set\_flag}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keywordtype}{int} flag);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00664}00664 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_aac106827b5e245e018342e191160ba35}{usbd\_xfer\_clr\_flag}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer, \textcolor{keywordtype}{int} flag);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00665}00665 uint16\_t \mbox{\hyperlink{usbdi_8h_a54422cb3525f4239114c3e6032345e1e}{usbd\_xfer\_get\_timestamp}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00666}\mbox{\hyperlink{usbdi_8h_a1d701580482f85901268de678444b02a}{00666}} uint8\_t \mbox{\hyperlink{usbdi_8h_a6f0f450465112dba97888aa954335582}{usbd\_xfer\_maxp\_was\_clamped}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__xfer}{usb\_xfer}} *xfer);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00667}00667 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00668}00668 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_accb7cd85c3477e50c1ba1b1489226d09}{usbd\_copy\_in}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *cache, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00669}00669             \textcolor{keyword}{const} \textcolor{keywordtype}{void} *ptr, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00670}\mbox{\hyperlink{usbdi_8h_a522769e04b78d1458ec511bcfd4b1e55}{00670}} \textcolor{keywordtype}{int}     \mbox{\hyperlink{usbdi_8h_a1d701580482f85901268de678444b02a}{usbd\_copy\_in\_user}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *cache, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00671}00671             \textcolor{keyword}{const} \textcolor{keywordtype}{void} *ptr, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00672}00672 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_af52eece45b7868dbf58386f4c9e4eb9a}{usbd\_copy\_out}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *cache, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00673}00673             \textcolor{keywordtype}{void} *ptr, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00674}\mbox{\hyperlink{usbdi_8h_a9696aa8bcb25b1adcf45e8387a13897a}{00674}} \textcolor{keywordtype}{int}     \mbox{\hyperlink{usbdi_8h_a522769e04b78d1458ec511bcfd4b1e55}{usbd\_copy\_out\_user}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *cache, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00675}00675             \textcolor{keywordtype}{void} *ptr, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00676}00676 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_ab4f9d07714be540b6d002b44b3716bb2}{usbd\_get\_page}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *pc, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00677}00677             \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__search}{usb\_page\_search}} *res);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00678}00678 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a9696aa8bcb25b1adcf45e8387a13897a}{usbd\_m\_copy\_in}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *cache, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} dst\_offset,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00679}00679             \textcolor{keyword}{struct} mbuf *m, \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} src\_offset, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} src\_len);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00680}00680 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a462a55c3d98d29504f946ac3882f2961}{usbd\_frame\_zero}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *cache, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00681}00681             \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00682}00682 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_ad106034391805ab4957d9e7ed20ed000}{usbd\_start\_re\_enumerate}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00683}00683 \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00684}\mbox{\hyperlink{usbdi_8h_a5371ea3e610eb1aab81d81494838ab3e}{00684}}         \mbox{\hyperlink{usbdi_8h_accc7f05031f9459b5e7d03ff54b37c69}{usbd\_start\_set\_config}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *, uint8\_t);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00685}00685 \textcolor{keywordtype}{int}     \mbox{\hyperlink{usbdi_8h_adf16de668c995258c2f233518dc600b8}{usbd\_in\_polling\_mode}}(\textcolor{keywordtype}{void});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00686}00686 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a7d1a87b64462b31452e38f1d620e149e}{usbd\_dummy\_timeout}}(\textcolor{keywordtype}{void} *);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00687}00687 }
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00688}\mbox{\hyperlink{usbdi_8h_a383e94e216e88e5dd62e6cfe8888ccf9}{00688}} \textcolor{keywordtype}{int}     \mbox{\hyperlink{usbdi_8h_a5371ea3e610eb1aab81d81494838ab3e}{usb\_fifo\_attach}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, \textcolor{keywordtype}{void} *priv\_sc,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00689}\mbox{\hyperlink{usbdi_8h_a05da54c8f6953ece429c6bb534ef9677}{00689}}             \textcolor{keyword}{struct} mtx *priv\_mtx, \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo__methods}{usb\_fifo\_methods}} *pm,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00690}00690             \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo__sc}{usb\_fifo\_sc}} *f\_sc, uint16\_t unit, int16\_t subunit,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00691}\mbox{\hyperlink{usbdi_8h_a6434b2c65d370a12bdd87cec8863f1ff}{00691}}             uint8\_t iface\_index, uid\_t uid, gid\_t gid, \textcolor{keywordtype}{int} mode);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00692}\mbox{\hyperlink{usbdi_8h_ae1674780bb74ed9a3bc64923b8515f1f}{00692}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a383e94e216e88e5dd62e6cfe8888ccf9}{usb\_fifo\_detach}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo__sc}{usb\_fifo\_sc}} *f\_sc);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00693}\mbox{\hyperlink{usbdi_8h_a444304a04a6daab49a4d9ee6483f5415}{00693}} \textcolor{keywordtype}{int}     \mbox{\hyperlink{usbdi_8h_a05da54c8f6953ece429c6bb534ef9677}{usb\_fifo\_alloc\_buffer}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *f, uint32\_t bufsize,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00694}00694             uint16\_t nbuf);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00695}\mbox{\hyperlink{usbdi_8h_a4dbc3f55a3104b19ca4c8ed8b8d8713d}{00695}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a6434b2c65d370a12bdd87cec8863f1ff}{usb\_fifo\_free\_buffer}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *f);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00696}00696 uint32\_t \mbox{\hyperlink{usbdi_8h_ae1674780bb74ed9a3bc64923b8515f1f}{usb\_fifo\_put\_bytes\_max}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00697}\mbox{\hyperlink{usbdi_8h_a876210952cab32514496263b26d59e2f}{00697}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a444304a04a6daab49a4d9ee6483f5415}{usb\_fifo\_put\_data}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *pc,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00698}\mbox{\hyperlink{usbdi_8h_a73943b2c8fabf001cfa319d44f28a3ad}{00698}}             \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}}, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, uint8\_t what);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00699}\mbox{\hyperlink{usbdi_8h_a74c7414859dbebc635199a18f73f545d}{00699}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a4dbc3f55a3104b19ca4c8ed8b8d8713d}{usb\_fifo\_put\_data\_linear}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, \textcolor{keywordtype}{void} *ptr,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00700}00700             \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, uint8\_t what);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00701}00701 uint8\_t \mbox{\hyperlink{usbdi_8h_a876210952cab32514496263b26d59e2f}{usb\_fifo\_put\_data\_buffer}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *f, \textcolor{keywordtype}{void} *ptr, \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00702}\mbox{\hyperlink{usbdi_8h_aa7c3f9e825fac0600ff6bdfbe89f419a}{00702}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a73943b2c8fabf001cfa319d44f28a3ad}{usb\_fifo\_put\_data\_error}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00703}00703 uint8\_t \mbox{\hyperlink{usbdi_8h_a74c7414859dbebc635199a18f73f545d}{usb\_fifo\_get\_data}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__page__cache}{usb\_page\_cache}} *pc,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00704}\mbox{\hyperlink{usbdi_8h_a0a7b32f1b45fb3c5d8b24822cbc0ae37}{00704}}             \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{usb__if_8m_ac681806181c80437cfab37335f62ff39}{offset}}, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, \mbox{\hyperlink{usb__freebsd_8h_a66bb6b1869e5e89aff3b693720b39cfb}{usb\_frlength\_t}} *actlen,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00705}00705             uint8\_t what);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00706}\mbox{\hyperlink{usbdi_8h_a8536856b10a89b79816e7db365d81ef1}{00706}} uint8\_t \mbox{\hyperlink{usbdi_8h_aa7c3f9e825fac0600ff6bdfbe89f419a}{usb\_fifo\_get\_data\_linear}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo, \textcolor{keywordtype}{void} *ptr,}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00707}\mbox{\hyperlink{usbdi_8h_a3f0b9e46ef9b3efb39684bb1272a051c}{00707}}             \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} \mbox{\hyperlink{ehci_8h_a8aed22e2c7b283705ec82e0120515618}{len}}, \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} *actlen, uint8\_t what);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00708}\mbox{\hyperlink{usbdi_8h_a5118bcefdea5337dcd695e3e1396281f}{00708}} uint8\_t \mbox{\hyperlink{usbdi_8h_a0a7b32f1b45fb3c5d8b24822cbc0ae37}{usb\_fifo\_get\_data\_buffer}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *f, \textcolor{keywordtype}{void} **\mbox{\hyperlink{usb__if_8m_a074c17a419327b41805af2dd7cb152e7}{pptr}},}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00709}\mbox{\hyperlink{usbdi_8h_a1686d97012d48512200abd8ad0d86d1e}{00709}}             \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} *\mbox{\hyperlink{usb__if_8m_aaba3806a5156b2c2a6d6f95f0d95ed03}{plen}});}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00710}\mbox{\hyperlink{usbdi_8h_ad475c2f4ea1b02f4bb2de3c7a2ccdb9f}{00710}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a8536856b10a89b79816e7db365d81ef1}{usb\_fifo\_reset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *f);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00711}\mbox{\hyperlink{usbdi_8h_a62d971e07732f8db7c9f0797bd1a3934}{00711}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a3f0b9e46ef9b3efb39684bb1272a051c}{usb\_fifo\_wakeup}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *f);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00712}\mbox{\hyperlink{usbdi_8h_a492ab08a880079a7af1f47d5e5ac198c}{00712}} \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a5118bcefdea5337dcd695e3e1396281f}{usb\_fifo\_get\_data\_error}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00713}00713 \textcolor{keywordtype}{void}    *\mbox{\hyperlink{usbdi_8h_a1686d97012d48512200abd8ad0d86d1e}{usb\_fifo\_softc}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *fifo);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00714}00714 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_ad475c2f4ea1b02f4bb2de3c7a2ccdb9f}{usb\_fifo\_set\_close\_zlp}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *, uint8\_t);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00715}00715 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a62d971e07732f8db7c9f0797bd1a3934}{usb\_fifo\_set\_write\_defrag}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *, uint8\_t);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00716}00716 \textcolor{keywordtype}{void}    \mbox{\hyperlink{usbdi_8h_a492ab08a880079a7af1f47d5e5ac198c}{usb\_fifo\_free}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__fifo}{usb\_fifo}} *f);}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00717}00717 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_KERNEL || \_STANDALONE */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usbdi_8h_source_l00718}00718 \textcolor{preprocessor}{\#endif  }\textcolor{comment}{/* \_USB\_USBDI\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
