\hypertarget{usb__bus_8h_source}{}\doxysection{usb\+\_\+bus.\+h}
\label{usb__bus_8h_source}\index{dev/usb/usb\_bus.h@{dev/usb/usb\_bus.h}}
\mbox{\hyperlink{usb__bus_8h}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00001}00001 \textcolor{comment}{/* \$FreeBSD\$ */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00002}00002 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00003}00003 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00004}00004 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2008-\/2019 Hans Petter Selasky. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00012}00012 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00014}00014 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00015}00015 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00016}00016 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00017}00017 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00018}00018 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00019}00019 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00020}00020 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00021}00021 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00022}00022 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00023}00023 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00024}00024 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00025}00025 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00026}00026 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00027}00027 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00028}00028 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00029}00029 \textcolor{preprocessor}{\#ifndef \_USB\_BUS\_H\_}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00030}00030 \textcolor{preprocessor}{\#define \_USB\_BUS\_H\_}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00031}00031 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00032}00032 \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__fs__privdata}{usb\_fs\_privdata}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00034}00034 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00035}00035 \textcolor{comment}{ * The following structure defines the USB explore message sent to the USB}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00036}00036 \textcolor{comment}{ * explore process.}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00037}00037 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00038}00038 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00039}\mbox{\hyperlink{structusb__bus__msg}{00039}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \{}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00040}\mbox{\hyperlink{structusb__bus__msg_a58d8fb00571bfdcd3afb6a584baa6193}{00040}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__proc__msg}{usb\_proc\_msg}} \mbox{\hyperlink{structusb__bus__msg_a58d8fb00571bfdcd3afb6a584baa6193}{hdr}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00041}\mbox{\hyperlink{structusb__bus__msg_a49e7ef076b49c9407a48f36c65ed4b39}{00041}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus}{usb\_bus}} *\mbox{\hyperlink{structusb__bus__msg_a49e7ef076b49c9407a48f36c65ed4b39}{bus}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00042}00042 \};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00043}00043 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00044}00044 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00045}00045 \textcolor{comment}{ * The following structure defines an USB BUS. There is one USB BUS}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00046}00046 \textcolor{comment}{ * for every Host or Device controller.}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00047}00047 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00048}\mbox{\hyperlink{structusb__bus}{00048}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus}{usb\_bus}} \{}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00049}00049 \textcolor{preprocessor}{\#if USB\_HAVE\_ROOT\_MOUNT\_HOLD}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00050}00050         \textcolor{keyword}{struct }root\_hold\_token *bus\_roothold;}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00051}00051 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00053}00053 \textcolor{comment}{/* convenience macros */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00054}\mbox{\hyperlink{usb__bus_8h_a3b6da1eec23f714f48e137f743f5cbcf}{00054}} \textcolor{preprocessor}{\#define USB\_BUS\_TT\_PROC(bus) USB\_BUS\_NON\_GIANT\_ISOC\_PROC(bus)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00055}\mbox{\hyperlink{usb__bus_8h_aa4da3dd2229599c7c776cd486ab47d42}{00055}} \textcolor{preprocessor}{\#define USB\_BUS\_CS\_PROC(bus) USB\_BUS\_NON\_GIANT\_ISOC\_PROC(bus)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00056}00056   }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00057}00057 \textcolor{preprocessor}{\#if USB\_HAVE\_PER\_BUS\_PROCESS}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00058}00058 \textcolor{preprocessor}{\#define USB\_BUS\_GIANT\_PROC(bus) (\&(bus)-\/>giant\_callback\_proc)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00059}00059 \textcolor{preprocessor}{\#define USB\_BUS\_NON\_GIANT\_ISOC\_PROC(bus) (\&(bus)-\/>non\_giant\_isoc\_callback\_proc)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00060}00060 \textcolor{preprocessor}{\#define USB\_BUS\_NON\_GIANT\_BULK\_PROC(bus) (\&(bus)-\/>non\_giant\_bulk\_callback\_proc)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00061}00061 \textcolor{preprocessor}{\#define USB\_BUS\_EXPLORE\_PROC(bus) (\&(bus)-\/>explore\_proc)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00062}00062 \textcolor{preprocessor}{\#define USB\_BUS\_CONTROL\_XFER\_PROC(bus) (\&(bus)-\/>control\_xfer\_proc)}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00063}00063         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00064}00064 \textcolor{comment}{         * There are three callback processes. One for Giant locked}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00065}00065 \textcolor{comment}{         * callbacks. One for non-\/Giant locked non-\/periodic callbacks}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00066}00066 \textcolor{comment}{         * and one for non-\/Giant locked periodic callbacks. This}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00067}00067 \textcolor{comment}{         * should avoid congestion and reduce response time in most}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00068}00068 \textcolor{comment}{         * cases.}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00069}00069 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00070}00070         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__process}{usb\_process}} giant\_callback\_proc;}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00071}00071         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__process}{usb\_process}} non\_giant\_isoc\_callback\_proc;}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00072}00072         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__process}{usb\_process}} non\_giant\_bulk\_callback\_proc;}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00073}00073 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00074}00074         \textcolor{comment}{/* Explore process */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00075}00075         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__process}{usb\_process}} explore\_proc;}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00076}00076 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00077}00077         \textcolor{comment}{/* Control request process */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00078}00078         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__process}{usb\_process}} control\_xfer\_proc;}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00079}00079 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00080}00080 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00081}\mbox{\hyperlink{structusb__bus_a9856abd5b4dc646df82169ee6ef9e9fc}{00081}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \mbox{\hyperlink{structusb__bus_a9856abd5b4dc646df82169ee6ef9e9fc}{explore\_msg}}[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00082}\mbox{\hyperlink{structusb__bus_afce4be04580f33ebbbb363aedf228132}{00082}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \mbox{\hyperlink{structusb__bus_afce4be04580f33ebbbb363aedf228132}{detach\_msg}}[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00083}\mbox{\hyperlink{structusb__bus_af0e731a3dc652a10a6d49e406e749523}{00083}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \mbox{\hyperlink{structusb__bus_af0e731a3dc652a10a6d49e406e749523}{attach\_msg}}[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00084}\mbox{\hyperlink{structusb__bus_a12574789166d7acab584e6bdf15455f1}{00084}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \mbox{\hyperlink{structusb__bus_a12574789166d7acab584e6bdf15455f1}{suspend\_msg}}[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00085}\mbox{\hyperlink{structusb__bus_a266d5a717cbcfec543097f3967b9bcb0}{00085}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \mbox{\hyperlink{structusb__bus_a266d5a717cbcfec543097f3967b9bcb0}{resume\_msg}}[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00086}\mbox{\hyperlink{structusb__bus_a4f3d9d381c6f259f7fb3251302f8b9f1}{00086}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \mbox{\hyperlink{structusb__bus_a4f3d9d381c6f259f7fb3251302f8b9f1}{reset\_msg}}[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00087}\mbox{\hyperlink{structusb__bus_a091cecf0bc753822b7c8e149f614eae4}{00087}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} \mbox{\hyperlink{structusb__bus_a091cecf0bc753822b7c8e149f614eae4}{shutdown\_msg}}[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00088}00088 \textcolor{preprocessor}{\#if USB\_HAVE\_UGEN}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00089}00089         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__msg}{usb\_bus\_msg}} cleanup\_msg[2];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00090}00090         LIST\_HEAD(,\mbox{\hyperlink{structusb__fs__privdata}{usb\_fs\_privdata}}) pd\_cleanup\_list;}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00091}00091 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00092}00092         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00093}00093 \textcolor{comment}{         * This mutex protects the USB hardware:}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00094}00094 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00095}\mbox{\hyperlink{structusb__bus_a7355d01a9b05ad01972eccabe5747edf}{00095}}         \textcolor{keyword}{struct }mtx \mbox{\hyperlink{structusb__bus_a7355d01a9b05ad01972eccabe5747edf}{bus\_mtx}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00096}\mbox{\hyperlink{structusb__bus_a3727a01b1d4db1dbe295e34d14970045}{00096}}         \textcolor{keyword}{struct }mtx \mbox{\hyperlink{structusb__bus_a3727a01b1d4db1dbe295e34d14970045}{bus\_spin\_lock}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00097}\mbox{\hyperlink{structusb__bus_afe87bf7e25fe7284a87d14ca231bc818}{00097}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__xfer__queue}{usb\_xfer\_queue}} \mbox{\hyperlink{structusb__bus_afe87bf7e25fe7284a87d14ca231bc818}{intr\_q}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00098}\mbox{\hyperlink{structusb__bus_a38bbb1eda5001ffc3c2c55b711149b30}{00098}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__callout}{usb\_callout}} \mbox{\hyperlink{structusb__bus_a38bbb1eda5001ffc3c2c55b711149b30}{power\_wdog}};     \textcolor{comment}{/* power management */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00099}00099 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00100}\mbox{\hyperlink{structusb__bus_a7855a7fc5c4b3f5289323c7743c6a975}{00100}}         device\_t \mbox{\hyperlink{structusb__bus_a7855a7fc5c4b3f5289323c7743c6a975}{parent}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00101}\mbox{\hyperlink{structusb__bus_a50629655e638e1f775df1ed160d3c533}{00101}}         device\_t \mbox{\hyperlink{structusb__bus_a50629655e638e1f775df1ed160d3c533}{bdev}};                      \textcolor{comment}{/* filled by HC driver */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00102}00102 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00103}00103 \textcolor{preprocessor}{\#if USB\_HAVE\_BUSDMA}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00104}00104         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__dma__parent__tag}{usb\_dma\_parent\_tag}} dma\_parent\_tag[1];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00105}00105         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__dma__tag}{usb\_dma\_tag}} dma\_tags[\mbox{\hyperlink{usb__controller_8h_a3fdd90c668e705e9e731b4c5027b2a80}{USB\_BUS\_DMA\_TAG\_MAX}}];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00106}00106 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00107}\mbox{\hyperlink{structusb__bus_a81450db76aab5d75bdc5a8a67b2d0939}{00107}}         \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__bus__methods}{usb\_bus\_methods}} *\mbox{\hyperlink{structusb__bus_a81450db76aab5d75bdc5a8a67b2d0939}{methods}};    \textcolor{comment}{/* filled by HC driver */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00108}\mbox{\hyperlink{structusb__bus_a9412f3e10804046f19d5e8ab00a38b59}{00108}}         \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device}{usb\_device}} **\mbox{\hyperlink{structusb__bus_a9412f3e10804046f19d5e8ab00a38b59}{devices}};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00109}00109 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00110}\mbox{\hyperlink{structusb__bus_a7202127281b1e864538025fbb902f36b}{00110}}         \textcolor{keyword}{struct }ifnet *\mbox{\hyperlink{structusb__bus_a7202127281b1e864538025fbb902f36b}{ifp}};   \textcolor{comment}{/* only for USB Packet Filter */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00111}00111 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00112}\mbox{\hyperlink{structusb__bus_a634cacdf21cc82abc9b9bdf22cbd0dfe}{00112}}         \mbox{\hyperlink{usb__freebsd_8h_a1f4161d804e96a8aea324305ad2f7897}{usb\_power\_mask\_t}} \mbox{\hyperlink{structusb__bus_a634cacdf21cc82abc9b9bdf22cbd0dfe}{hw\_power\_state}};  \textcolor{comment}{/* see USB\_HW\_POWER\_XXX */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00113}\mbox{\hyperlink{structusb__bus_ae62886eb7f99dfd7c4297a57ad0383fd}{00113}}         \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\_size\_t}} \mbox{\hyperlink{structusb__bus_ae62886eb7f99dfd7c4297a57ad0383fd}{uframe\_usage}}[\mbox{\hyperlink{usb_8h_a9cc6aaae1f66d6158016b854cdd1cc80}{USB\_HS\_MICRO\_FRAMES\_MAX}}];}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00114}00114 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00115}\mbox{\hyperlink{structusb__bus_a50d11a870712e41cac3ce168c831ef1c}{00115}}         uint16\_t \mbox{\hyperlink{structusb__bus_a50d11a870712e41cac3ce168c831ef1c}{isoc\_time\_last}};  \textcolor{comment}{/* in milliseconds */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00116}00116 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00117}\mbox{\hyperlink{structusb__bus_ac1551aad98f1916bd66469bc67e8d2a0}{00117}}         uint8\_t \mbox{\hyperlink{structusb__bus_ac1551aad98f1916bd66469bc67e8d2a0}{alloc\_failed}};               \textcolor{comment}{/* Set if memory allocation failed. */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00118}\mbox{\hyperlink{structusb__bus_a3cb220a8866f14b065d78ad1736dbab0}{00118}}         uint8\_t \mbox{\hyperlink{structusb__bus_a3cb220a8866f14b065d78ad1736dbab0}{driver\_added\_refcount}};     \textcolor{comment}{/* Current driver generation count */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00119}\mbox{\hyperlink{structusb__bus_a333d9234cb56ddeb93ac0625c3d48252}{00119}}         \textcolor{keyword}{enum} \mbox{\hyperlink{usb_8h_ad11f3f35a7768f59a4f69ad460a7661f}{usb\_revision}} \mbox{\hyperlink{structusb__bus_a333d9234cb56ddeb93ac0625c3d48252}{usbrev}};     \textcolor{comment}{/* USB revision. See "{}USB\_REV\_XXX"{}. */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00120}00120 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00121}\mbox{\hyperlink{structusb__bus_ac665d059dd509782705e2eb35fdc9c58}{00121}}         uint8\_t \mbox{\hyperlink{structusb__bus_ac665d059dd509782705e2eb35fdc9c58}{devices\_max}};         \textcolor{comment}{/* maximum number of USB devices */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00122}\mbox{\hyperlink{structusb__bus_a46db983bd13e9e36afd74803753e1172}{00122}}         uint8\_t \mbox{\hyperlink{structusb__bus_a46db983bd13e9e36afd74803753e1172}{do\_probe}};               \textcolor{comment}{/* set if USB should be re-\/probed */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00123}\mbox{\hyperlink{structusb__bus_ad276bd27f9593fec2408497e1846218d}{00123}}         uint8\_t \mbox{\hyperlink{structusb__bus_ad276bd27f9593fec2408497e1846218d}{no\_explore}};           \textcolor{comment}{/* don't explore USB ports */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00124}\mbox{\hyperlink{structusb__bus_af7cf6d04a3d928e28be8825b637fab68}{00124}}         uint8\_t \mbox{\hyperlink{structusb__bus_af7cf6d04a3d928e28be8825b637fab68}{dma\_bits}};               \textcolor{comment}{/* number of DMA address lines */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00125}\mbox{\hyperlink{structusb__bus_ac655af036d8a6d28592b8ad645265f70}{00125}}         uint8\_t \mbox{\hyperlink{structusb__bus_ac655af036d8a6d28592b8ad645265f70}{control\_ep\_quirk}};       \textcolor{comment}{/* need 64kByte buffer for data stage */}}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00126}00126 \};}
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00127}00127 }
\DoxyCodeLine{\Hypertarget{usb__bus_8h_source_l00128}00128 \textcolor{preprocessor}{\#endif                                  }\textcolor{comment}{/* \_USB\_BUS\_H\_ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
