\hypertarget{usb__dynamic_8c_source}{}\doxysection{usb\+\_\+dynamic.\+c}
\label{usb__dynamic_8c_source}\index{dev/usb/usb\_dynamic.c@{dev/usb/usb\_dynamic.c}}
\mbox{\hyperlink{usb__dynamic_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00001}00001 \textcolor{comment}{/* \$FreeBSD\$ */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00002}00002 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00003}00003 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00004}00004 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2008 Hans Petter Selasky. All rights reserved.}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00012}00012 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00014}00014 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00015}00015 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00016}00016 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00017}00017 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00018}00018 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00019}00019 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00020}00020 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00021}00021 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00022}00022 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00023}00023 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00024}00024 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00025}00025 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00026}00026 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00027}00027 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00028}00028 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00029}00029 \textcolor{preprocessor}{\#ifdef USB\_GLOBAL\_INCLUDE\_FILE}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00030}00030 \textcolor{preprocessor}{\#include USB\_GLOBAL\_INCLUDE\_FILE}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00031}00031 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00032}00032 \textcolor{preprocessor}{\#include <sys/stdint.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00033}00033 \textcolor{preprocessor}{\#include <sys/stddef.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/types.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/condvar.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/sx.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/unistd.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <sys/callout.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <sys/priv.h>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00050}00050 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb_8h}{dev/usb/usb.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi_8h}{dev/usb/usbdi.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00053}00053 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00054}00054 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__core_8h}{dev/usb/usb\_core.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00055}00055 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__process_8h}{dev/usb/usb\_process.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00056}00056 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__device_8h}{dev/usb/usb\_device.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00057}00057 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__dynamic_8h}{dev/usb/usb\_dynamic.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00058}00058 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__request_8h}{dev/usb/usb\_request.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00059}00059 \textcolor{preprocessor}{\#endif                  }\textcolor{comment}{/* USB\_GLOBAL\_INCLUDE\_FILE */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00060}00060 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00061}00061 \textcolor{comment}{/* function prototypes */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00062}\mbox{\hyperlink{usb__dynamic_8c_a16f3ede4d8085e1a97364aa3b49792c5}{00062}} \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_afa642180c02ceeda4775d44f798495c2}{usb\_handle\_req\_t}} \mbox{\hyperlink{usb__dynamic_8c_a16f3ede4d8085e1a97364aa3b49792c5}{usb\_temp\_get\_desc\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00063}\mbox{\hyperlink{usb__dynamic_8c_a8364d0ca0a47ba90b179a6cba643e797}{00063}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__dynamic_8h_a9357c96ebbac44e22695ffcbc91bfe00}{usb\_temp\_setup\_by\_index\_t}} \mbox{\hyperlink{usb__dynamic_8c_a8364d0ca0a47ba90b179a6cba643e797}{usb\_temp\_setup\_by\_index\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00064}00064 \textcolor{preprocessor}{\#if USB\_HAVE\_COMPAT\_LINUX}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00065}00065 \textcolor{keyword}{static} \mbox{\hyperlink{usb__dynamic_8h_a6e8cd0a9521b3227fcc9df385d3afd55}{usb\_linux\_free\_device\_t}} usb\_linux\_free\_device\_w;}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00066}00066 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00067}\mbox{\hyperlink{usb__dynamic_8c_aa63d1232fc8e531fc3fc4575d4b1c7b3}{00067}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__dynamic_8h_a8374d2efbf68370b727884a71ee9d1b5}{usb\_temp\_unsetup\_t}} \mbox{\hyperlink{usb__dynamic_8c_aa63d1232fc8e531fc3fc4575d4b1c7b3}{usb\_temp\_unsetup\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00068}\mbox{\hyperlink{usb__dynamic_8c_a596abc5e17ed5eee90f80477f6666e15}{00068}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__dynamic_8h_abfd7492c90f96d733bcc925030bbadc3}{usb\_test\_quirk\_t}} \mbox{\hyperlink{usb__dynamic_8c_a596abc5e17ed5eee90f80477f6666e15}{usb\_test\_quirk\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00069}\mbox{\hyperlink{usb__dynamic_8c_a8ced6421c2b4bcc610ee8a04bd548bb0}{00069}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__dynamic_8h_a1c3f23f2496a8eb9f488a160fab018d4}{usb\_quirk\_ioctl\_t}} \mbox{\hyperlink{usb__dynamic_8c_a8ced6421c2b4bcc610ee8a04bd548bb0}{usb\_quirk\_ioctl\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00071}00071 \textcolor{comment}{/* global variables */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00072}\mbox{\hyperlink{usb__dynamic_8c_a9b2789c56cd4d59f46ae5dfe4b3f75e8}{00072}} \mbox{\hyperlink{usbdi_8h_afa642180c02ceeda4775d44f798495c2}{usb\_handle\_req\_t}} *\mbox{\hyperlink{usb__dynamic_8c_a9b2789c56cd4d59f46ae5dfe4b3f75e8}{usb\_temp\_get\_desc\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a16f3ede4d8085e1a97364aa3b49792c5}{usb\_temp\_get\_desc\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00073}\mbox{\hyperlink{usb__dynamic_8c_a8c013a97e6e82b156336ba406d25eb7a}{00073}} \mbox{\hyperlink{usb__dynamic_8h_a9357c96ebbac44e22695ffcbc91bfe00}{usb\_temp\_setup\_by\_index\_t}} *\mbox{\hyperlink{usb__dynamic_8c_a8c013a97e6e82b156336ba406d25eb7a}{usb\_temp\_setup\_by\_index\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a8364d0ca0a47ba90b179a6cba643e797}{usb\_temp\_setup\_by\_index\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00074}00074 \textcolor{preprocessor}{\#if USB\_HAVE\_COMPAT\_LINUX}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00075}00075 \mbox{\hyperlink{usb__dynamic_8h_a6e8cd0a9521b3227fcc9df385d3afd55}{usb\_linux\_free\_device\_t}} *\mbox{\hyperlink{usb__dynamic_8h_ae9d5593d39bddc8d00399a83baebcd34}{usb\_linux\_free\_device\_p}} = \&usb\_linux\_free\_device\_w;}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00076}00076 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00077}\mbox{\hyperlink{usb__dynamic_8c_a537286792fa0820aecdef36693670120}{00077}} \mbox{\hyperlink{usb__dynamic_8h_a8374d2efbf68370b727884a71ee9d1b5}{usb\_temp\_unsetup\_t}} *\mbox{\hyperlink{usb__dynamic_8c_a537286792fa0820aecdef36693670120}{usb\_temp\_unsetup\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_aa63d1232fc8e531fc3fc4575d4b1c7b3}{usb\_temp\_unsetup\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00078}\mbox{\hyperlink{usb__dynamic_8c_ababdba29de6537d7a67d0e34523455b5}{00078}} \mbox{\hyperlink{usb__dynamic_8h_abfd7492c90f96d733bcc925030bbadc3}{usb\_test\_quirk\_t}} *\mbox{\hyperlink{usb__dynamic_8c_ababdba29de6537d7a67d0e34523455b5}{usb\_test\_quirk\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a596abc5e17ed5eee90f80477f6666e15}{usb\_test\_quirk\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00079}\mbox{\hyperlink{usb__dynamic_8c_a79ae38ee72fb32c93959a69c9c9984e4}{00079}} \mbox{\hyperlink{usb__dynamic_8h_a1c3f23f2496a8eb9f488a160fab018d4}{usb\_quirk\_ioctl\_t}} *\mbox{\hyperlink{usb__dynamic_8c_a79ae38ee72fb32c93959a69c9c9984e4}{usb\_quirk\_ioctl\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a8ced6421c2b4bcc610ee8a04bd548bb0}{usb\_quirk\_ioctl\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00080}\mbox{\hyperlink{usb__dynamic_8c_adf556021e8988d1fc682eb59a02c197d}{00080}} devclass\_t \mbox{\hyperlink{usb__dynamic_8c_adf556021e8988d1fc682eb59a02c197d}{usb\_devclass\_ptr}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00081}00081 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00082}00082 \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00083}\mbox{\hyperlink{usb__dynamic_8c_a3068e3a2dfddebaa579122bab6b7f5de}{00083}} \mbox{\hyperlink{usb__dynamic_8c_a8364d0ca0a47ba90b179a6cba643e797}{usb\_temp\_setup\_by\_index\_w}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, uint16\_t index)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00084}00084 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00085}00085         \textcolor{keywordflow}{return} (\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945ac568d752239d287fca75588222df1bdf}{USB\_ERR\_INVAL}});}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00086}00086 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00087}00087 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00088}00088 \textcolor{keyword}{static} uint8\_t}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00089}\mbox{\hyperlink{usb__dynamic_8c_af693cb07c2e6abf6e4acf53f8ce2d0cb}{00089}} \mbox{\hyperlink{usb__dynamic_8c_a596abc5e17ed5eee90f80477f6666e15}{usb\_test\_quirk\_w}}(\textcolor{keyword}{const} \textcolor{keyword}{struct} \mbox{\hyperlink{structusbd__lookup__info}{usbd\_lookup\_info}} *info, uint16\_t quirk)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00090}00090 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00091}00091         \textcolor{keywordflow}{return} (0);                     \textcolor{comment}{/* no match */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00092}00092 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00093}00093 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00094}00094 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00095}\mbox{\hyperlink{usb__dynamic_8c_aefac416ac35ca48fe9cf943570ce5bc7}{00095}} \mbox{\hyperlink{usb__dynamic_8c_a8ced6421c2b4bcc610ee8a04bd548bb0}{usb\_quirk\_ioctl\_w}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} cmd, caddr\_t data, \textcolor{keywordtype}{int} fflag, \textcolor{keyword}{struct} thread *td)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00096}00096 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00097}00097         \textcolor{keywordflow}{return} (ENOIOCTL);}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00098}00098 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00099}00099 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00100}00100 \textcolor{keyword}{static} \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\_error\_t}}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00101}\mbox{\hyperlink{usb__dynamic_8c_afea7b7670e788047e8ff4508bab7479e}{00101}} \mbox{\hyperlink{usb__dynamic_8c_a16f3ede4d8085e1a97364aa3b49792c5}{usb\_temp\_get\_desc\_w}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev, \textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device__request}{usb\_device\_request}} *\mbox{\hyperlink{usb__if_8m_accfb270fc1884a0d1e4b9a0fb6234f14}{req}}, \textcolor{keyword}{const} \textcolor{keywordtype}{void} **pPtr, uint16\_t *pLength)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00102}00102 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00103}00103         \textcolor{comment}{/* stall */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00104}00104         \textcolor{keywordflow}{return} (\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945a83258c6183686c303988db96e7f5713a}{USB\_ERR\_STALLED}});}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00105}00105 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00106}00106 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00107}00107 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00108}\mbox{\hyperlink{usb__dynamic_8c_aef102769fdc9416c382b17c48ca8feff}{00108}} \mbox{\hyperlink{usb__dynamic_8c_aa63d1232fc8e531fc3fc4575d4b1c7b3}{usb\_temp\_unsetup\_w}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00109}00109 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00110}00110         \mbox{\hyperlink{usb__request_8c_a2bb340b05bdd0e0d97acca6cce349cd7}{usbd\_free\_config\_desc}}(udev, udev-\/>\mbox{\hyperlink{structusb__device_a9a74f8ecdca157a157ff5ddb6dc5eb17}{usb\_template\_ptr}});}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00111}00111         udev-\/>\mbox{\hyperlink{structusb__device_a9a74f8ecdca157a157ff5ddb6dc5eb17}{usb\_template\_ptr}} = NULL;}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00112}00112 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00113}00113 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00114}00114 \textcolor{preprocessor}{\#if USB\_HAVE\_COMPAT\_LINUX}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00115}00115 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00116}00116 usb\_linux\_free\_device\_w(\textcolor{keyword}{struct} \mbox{\hyperlink{structusb__device}{usb\_device}} *udev)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00117}00117 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00118}00118         \textcolor{comment}{/* NOP */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00119}00119 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00120}00120 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00122}00122 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00123}\mbox{\hyperlink{usb__dynamic_8c_a907d042b1f3878f308b5202923c5bd98}{00123}} \mbox{\hyperlink{usb__dynamic_8c_a907d042b1f3878f308b5202923c5bd98}{usb\_quirk\_unload}}(\textcolor{keywordtype}{void} *arg)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00124}00124 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00125}00125         \textcolor{comment}{/* reset function pointers */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00126}00126 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00127}00127         \mbox{\hyperlink{usb__dynamic_8c_ababdba29de6537d7a67d0e34523455b5}{usb\_test\_quirk\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a596abc5e17ed5eee90f80477f6666e15}{usb\_test\_quirk\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00128}00128         \mbox{\hyperlink{usb__dynamic_8c_a79ae38ee72fb32c93959a69c9c9984e4}{usb\_quirk\_ioctl\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a8ced6421c2b4bcc610ee8a04bd548bb0}{usb\_quirk\_ioctl\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00129}00129 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00130}00130         \textcolor{comment}{/* wait for CPU to exit the loaded functions, if any */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00131}00131 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00132}00132         \textcolor{comment}{/* XXX this is a tradeoff */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00133}00133 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00134}00134         pause(\textcolor{stringliteral}{"{}WAIT"{}}, hz);}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00135}00135 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00136}00136 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00137}00137 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00138}\mbox{\hyperlink{usb__dynamic_8c_a16bfa79c0ec6909d1d9ba29855b6b5e7}{00138}} \mbox{\hyperlink{usb__dynamic_8c_a16bfa79c0ec6909d1d9ba29855b6b5e7}{usb\_temp\_unload}}(\textcolor{keywordtype}{void} *arg)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00139}00139 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00140}00140         \textcolor{comment}{/* reset function pointers */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00141}00141 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00142}00142         \mbox{\hyperlink{usb__dynamic_8c_a9b2789c56cd4d59f46ae5dfe4b3f75e8}{usb\_temp\_get\_desc\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a16f3ede4d8085e1a97364aa3b49792c5}{usb\_temp\_get\_desc\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00143}00143         \mbox{\hyperlink{usb__dynamic_8c_a8c013a97e6e82b156336ba406d25eb7a}{usb\_temp\_setup\_by\_index\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_a8364d0ca0a47ba90b179a6cba643e797}{usb\_temp\_setup\_by\_index\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00144}00144         \mbox{\hyperlink{usb__dynamic_8c_a537286792fa0820aecdef36693670120}{usb\_temp\_unsetup\_p}} = \&\mbox{\hyperlink{usb__dynamic_8c_aa63d1232fc8e531fc3fc4575d4b1c7b3}{usb\_temp\_unsetup\_w}};}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00145}00145 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00146}00146         \textcolor{comment}{/* wait for CPU to exit the loaded functions, if any */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00147}00147 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00148}00148         \textcolor{comment}{/* XXX this is a tradeoff */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00150}00150         pause(\textcolor{stringliteral}{"{}WAIT"{}}, hz);}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00151}00151 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00152}00152 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00153}00153 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00154}\mbox{\hyperlink{usb__dynamic_8c_af51b69c6d80d007c39d2cb20a80507b5}{00154}} \mbox{\hyperlink{usb__dynamic_8c_af51b69c6d80d007c39d2cb20a80507b5}{usb\_bus\_unload}}(\textcolor{keywordtype}{void} *arg)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00155}00155 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00156}00156         \textcolor{comment}{/* reset function pointers */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00157}00157 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00158}00158         \mbox{\hyperlink{usb__dynamic_8c_adf556021e8988d1fc682eb59a02c197d}{usb\_devclass\_ptr}} = NULL;}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00159}00159 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00160}00160         \textcolor{comment}{/* wait for CPU to exit the loaded functions, if any */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00161}00161 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00162}00162         \textcolor{comment}{/* XXX this is a tradeoff */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00163}00163 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00164}00164         pause(\textcolor{stringliteral}{"{}WAIT"{}}, hz);}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00165}00165 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00166}00166 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00167}00167 \textcolor{preprocessor}{\#if USB\_HAVE\_COMPAT\_LINUX}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00168}00168 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00169}00169 \mbox{\hyperlink{usb__dynamic_8h_add9c64843f728ae548b45edbfa76d199}{usb\_linux\_unload}}(\textcolor{keywordtype}{void} *arg)}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00170}00170 \{}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00171}00171         \textcolor{comment}{/* reset function pointers */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00172}00172 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00173}00173         \mbox{\hyperlink{usb__dynamic_8h_ae9d5593d39bddc8d00399a83baebcd34}{usb\_linux\_free\_device\_p}} = \&usb\_linux\_free\_device\_w;}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00174}00174   }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00175}00175         \textcolor{comment}{/* wait for CPU to exit the loaded functions, if any */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00176}00176 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00177}00177         \textcolor{comment}{/* XXX this is a tradeoff */}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00178}00178 }
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00179}00179         pause(\textcolor{stringliteral}{"{}WAIT"{}}, hz);}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00180}00180 \}}
\DoxyCodeLine{\Hypertarget{usb__dynamic_8c_source_l00181}00181 \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
