\hypertarget{usb__template__multi_8c_source}{}\doxysection{usb\+\_\+template\+\_\+multi.\+c}
\label{usb__template__multi_8c_source}\index{dev/usb/template/usb\_template\_multi.c@{dev/usb/template/usb\_template\_multi.c}}
\mbox{\hyperlink{usb__template__multi_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2015 Ruslan Bukin <br@bsdpad.com>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2018 The FreeBSD Foundation}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00006}00006 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00008}00008 \textcolor{comment}{ * This software was developed by SRI International and the University of}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00009}00009 \textcolor{comment}{ * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-\/10-\/C-\/0237)}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00010}00010 \textcolor{comment}{ * ("{}CTSRD"{}), as part of the DARPA CRASH research programme.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00011}00011 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00012}00012 \textcolor{comment}{ * Portions of this software were developed by Edward Tomasz Napierala}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00013}00013 \textcolor{comment}{ * under sponsorship from the FreeBSD Foundation.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00014}00014 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00015}00015 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00016}00016 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00017}00017 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00018}00018 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00019}00019 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00020}00020 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00021}00021 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00022}00022 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00023}00023 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00024}00024 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00025}00025 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00026}00026 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00027}00027 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00028}00028 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00029}00029 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00030}00030 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00031}00031 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00032}00032 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00033}00033 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00034}00034 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00035}00035 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00036}00036 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00037}00037 \textcolor{comment}{ * USB template for CDC ACM (serial), CDC ECM (network), and CDC MSC (storage).}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00038}00038 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00039}00039 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00041}\mbox{\hyperlink{usb__template__multi_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00041}} \mbox{\hyperlink{usb__template__multi_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00043}00043 \textcolor{preprocessor}{\#ifdef USB\_GLOBAL\_INCLUDE\_FILE}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00044}00044 \textcolor{preprocessor}{\#include USB\_GLOBAL\_INCLUDE\_FILE}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00045}00045 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/stdint.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <sys/stddef.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00050}00050 \textcolor{preprocessor}{\#include <sys/types.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00053}00053 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00054}00054 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00055}00055 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00056}00056 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00057}00057 \textcolor{preprocessor}{\#include <sys/condvar.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00058}00058 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00059}00059 \textcolor{preprocessor}{\#include <sys/sx.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00060}00060 \textcolor{preprocessor}{\#include <sys/unistd.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00061}00061 \textcolor{preprocessor}{\#include <sys/callout.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00062}00062 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00063}00063 \textcolor{preprocessor}{\#include <sys/priv.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00064}00064 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00065}00065 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb_8h}{dev/usb/usb.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00066}00066 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi_8h}{dev/usb/usbdi.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00067}00067 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__core_8h}{dev/usb/usb\_core.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00068}00068 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__cdc_8h}{dev/usb/usb\_cdc.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00069}00069 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__ioctl_8h}{dev/usb/usb\_ioctl.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00070}00070 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__util_8h}{dev/usb/usb\_util.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00072}00072 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__template_8h}{dev/usb/template/usb\_template.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00073}00073 \textcolor{preprocessor}{\#endif          }\textcolor{comment}{/* USB\_GLOBAL\_INCLUDE\_FILE */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00074}00074 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00075}\mbox{\hyperlink{usb__template__multi_8c_ad9dc13056cc3d556f30912a6f0cdbd9f}{00075}} \textcolor{preprocessor}{\#define MODEM\_IFACE\_0 0}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00076}\mbox{\hyperlink{usb__template__multi_8c_aa2fd913517ab2ca2a78b6c04aca65270}{00076}} \textcolor{preprocessor}{\#define MODEM\_IFACE\_1 1}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00077}00077 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00078}00078 \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00079}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda9910e417473ebab36f5716d531d3c4ea}{00079}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda9910e417473ebab36f5716d531d3c4ea}{MULTI\_LANG\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00080}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7f1a425ec1b323fee72d4f7eacb61b30}{00080}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7f1a425ec1b323fee72d4f7eacb61b30}{MULTI\_MODEM\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00081}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda0d7e7ca0a1413d05ab4df71343d5abc5}{00081}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda0d7e7ca0a1413d05ab4df71343d5abc5}{MULTI\_ETH\_MAC\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00082}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda67488f4cc41f5582fda0caa9aefaf399}{00082}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda67488f4cc41f5582fda0caa9aefaf399}{MULTI\_ETH\_CONTROL\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00083}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdab4f8629c08c25e3317f52be4e23602cd}{00083}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdab4f8629c08c25e3317f52be4e23602cd}{MULTI\_ETH\_DATA\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00084}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaa0f28109f24a724abd34734b78323382}{00084}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaa0f28109f24a724abd34734b78323382}{MULTI\_STORAGE\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00085}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaf86ecd049e7edde569907d005df9b4fc}{00085}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaf86ecd049e7edde569907d005df9b4fc}{MULTI\_CONFIGURATION\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00086}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7b7f4b277e7417f020d75149808babfb}{00086}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7b7f4b277e7417f020d75149808babfb}{MULTI\_MANUFACTURER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00087}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdafe2dfbe195b3a7249c8622ba8d012107}{00087}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdafe2dfbe195b3a7249c8622ba8d012107}{MULTI\_PRODUCT\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00088}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda4f916c18912afa116eb337378bcafa4a}{00088}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda4f916c18912afa116eb337378bcafa4a}{MULTI\_SERIAL\_NUMBER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00089}\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdabfc79c00b9fb8c1ed3f0614c1931b7b6}{00089}}         \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdabfc79c00b9fb8c1ed3f0614c1931b7b6}{MULTI\_MAX\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00090}00090 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00091}00091 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00092}\mbox{\hyperlink{usb__template__multi_8c_af620dc4c6b29d757d05b6f8da9fb0af9}{00092}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_VENDOR\_ID         USB\_TEMPLATE\_VENDOR}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00093}\mbox{\hyperlink{usb__template__multi_8c_a8c81c5d8645cbb47bdb26c82544ca57d}{00093}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_PRODUCT\_ID        0x05dc}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00094}\mbox{\hyperlink{usb__template__multi_8c_a848d48d6e646bc99ab89176c9996f259}{00094}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_MODEM             "{}Virtual serial port"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00095}\mbox{\hyperlink{usb__template__multi_8c_ad4194fc6fab5ddf28e47f2631dfdbb13}{00095}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_ETH\_MAC           "{}2A02030405060789AB"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00096}\mbox{\hyperlink{usb__template__multi_8c_aa20e5d3e9bc9b1002f7d79c7aa877b79}{00096}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_ETH\_CONTROL       "{}Ethernet Comm Interface"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00097}\mbox{\hyperlink{usb__template__multi_8c_a1ff22c46f81b8a7b81d7c01f5b432730}{00097}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_ETH\_DATA          "{}Ethernet Data Interface"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00098}\mbox{\hyperlink{usb__template__multi_8c_a7b722fa2c083c04e66266951dc604459}{00098}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_STORAGE           "{}Mass Storage Interface"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00099}\mbox{\hyperlink{usb__template__multi_8c_a531384295285ec990fa072fba65bfe5f}{00099}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_CONFIGURATION     "{}Default configuration"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00100}\mbox{\hyperlink{usb__template__multi_8c_a05815d7ab2979de6622d46ed2f2da06c}{00100}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_MANUFACTURER      USB\_TEMPLATE\_MANUFACTURER}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00101}\mbox{\hyperlink{usb__template__multi_8c_ab64203b612141fe614d989f0f0dbebdb}{00101}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_PRODUCT           "{}Multifunction Device"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00102}00102 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00103}00103 \textcolor{comment}{ * The reason for this being called like this is that OSX}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00104}00104 \textcolor{comment}{ * derives the device node name from it, resulting in a somewhat}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00105}00105 \textcolor{comment}{ * user-\/friendly "{}/dev/cu.usbmodemFreeBSD1"{}.  And yes, the "{}1"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00106}00106 \textcolor{comment}{ * needs to be there, otherwise OSX will mangle it.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00107}00107 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00108}\mbox{\hyperlink{usb__template__multi_8c_a2612c56258a918df486b2d0778712bf4}{00108}} \textcolor{preprocessor}{\#define MULTI\_DEFAULT\_SERIAL\_NUMBER     "{}FreeBSD1"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00109}00109 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00110}\mbox{\hyperlink{usb__template__multi_8c_ae13a8a42caa9985109d64e46011149ec}{00110}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_ae13a8a42caa9985109d64e46011149ec}{multi\_modem}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00111}\mbox{\hyperlink{usb__template__multi_8c_af1e7f8bfcb830f6b6e2e49ac100dcfa2}{00111}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_af1e7f8bfcb830f6b6e2e49ac100dcfa2}{multi\_eth\_mac}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00112}\mbox{\hyperlink{usb__template__multi_8c_a56455afe7d48939ade5874ae43e540d3}{00112}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_a56455afe7d48939ade5874ae43e540d3}{multi\_eth\_control}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00113}\mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{00113}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{multi\_eth\_data}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00114}\mbox{\hyperlink{usb__template__multi_8c_a0d78ef56bbad3f822e6cc830b21df595}{00114}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_a0d78ef56bbad3f822e6cc830b21df595}{multi\_storage}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00115}\mbox{\hyperlink{usb__template__multi_8c_a55ca323d297f6c8dafdf7b362e326a99}{00115}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_a55ca323d297f6c8dafdf7b362e326a99}{multi\_configuration}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00116}\mbox{\hyperlink{usb__template__multi_8c_a72f9a22834d6644058851a308fbbad2b}{00116}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_a72f9a22834d6644058851a308fbbad2b}{multi\_manufacturer}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00117}\mbox{\hyperlink{usb__template__multi_8c_ab7c43e3a274c5ea3abee28402bb1c2d4}{00117}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_ab7c43e3a274c5ea3abee28402bb1c2d4}{multi\_product}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00118}\mbox{\hyperlink{usb__template__multi_8c_acd5c0cd0a877d7f085b69a6a9508fb30}{00118}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__multi_8c_acd5c0cd0a877d7f085b69a6a9508fb30}{multi\_serial\_number}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00120}\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{00120}} \textcolor{keyword}{static} \textcolor{keyword}{struct }sysctl\_ctx\_list           \mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00122}00122 \textcolor{comment}{/* prototypes */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00124}\mbox{\hyperlink{usb__template__multi_8c_a424dc6a3c779658e0eaa1ee1b9a3b257}{00124}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__template_8h_ab56131b3dcadea9f2be25f942a4f2af7}{usb\_temp\_get\_string\_desc\_t}} \mbox{\hyperlink{usb__template__multi_8c_a424dc6a3c779658e0eaa1ee1b9a3b257}{multi\_get\_string\_desc}};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00125}00125 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00126}\mbox{\hyperlink{usb__template__multi_8c_a6e3794e65bd0fad9c39bceddab1c83b7}{00126}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__cdc__union__descriptor}{usb\_cdc\_union\_descriptor}} \mbox{\hyperlink{usb__template__multi_8c_a6e3794e65bd0fad9c39bceddab1c83b7}{eth\_union\_desc}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00127}00127         .\mbox{\hyperlink{structusb__cdc__union__descriptor_a1b8fe5e9cb1f74a38cbd35560c8b03dd}{bLength}} = \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a6e3794e65bd0fad9c39bceddab1c83b7}{eth\_union\_desc}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00128}00128         .\mbox{\hyperlink{structusb__cdc__union__descriptor_adc4b7a63f71b1eb72428c9447b0309a7}{bDescriptorType}} = \mbox{\hyperlink{usb_8h_af31cdb4e483ebff028f8286207123844}{UDESC\_CS\_INTERFACE}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00129}00129         .\mbox{\hyperlink{structusb__cdc__union__descriptor_a191612abd9c31e6b5ef81b11efbe1b47}{bDescriptorSubtype}} = \mbox{\hyperlink{usb__cdc_8h_a7d999c1e1c24a7ee610ecfd48b363cd4}{UDESCSUB\_CDC\_UNION}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00130}00130         .\mbox{\hyperlink{structusb__cdc__union__descriptor_a48c3937535c969122f0c523b1d9dd92c}{bMasterInterface}} = 0,          \textcolor{comment}{/* this is automatically updated */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00131}00131         .\mbox{\hyperlink{structusb__cdc__union__descriptor_a6fe2a5a9203976aa0e659adab2723f6c}{bSlaveInterface}}[0] = 1, \textcolor{comment}{/* this is automatically updated */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00132}00132 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00133}00133 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00134}\mbox{\hyperlink{usb__template__multi_8c_ae9d2e070cde2a1a435fa1eb36c55150f}{00134}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__cdc__header__descriptor}{usb\_cdc\_header\_descriptor}} \mbox{\hyperlink{usb__template__multi_8c_ae9d2e070cde2a1a435fa1eb36c55150f}{eth\_header\_desc}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00135}00135         .\mbox{\hyperlink{structusb__cdc__header__descriptor_a66382e59b40776daaf7eacd6c299d966}{bLength}} = \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_ae9d2e070cde2a1a435fa1eb36c55150f}{eth\_header\_desc}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00136}00136         .\mbox{\hyperlink{structusb__cdc__header__descriptor_a88c318e7b6c82c16ae2f3e0b8301bd0c}{bDescriptorType}} = \mbox{\hyperlink{usb_8h_af31cdb4e483ebff028f8286207123844}{UDESC\_CS\_INTERFACE}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00137}00137         .\mbox{\hyperlink{structusb__cdc__header__descriptor_af7a16a34488a8e569a6241a7db13216d}{bDescriptorSubtype}} = \mbox{\hyperlink{usb__cdc_8h_a8dd472c251a50b758f74f4374fd626ae}{UDESCSUB\_CDC\_HEADER}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00138}00138         .\mbox{\hyperlink{structusb__cdc__header__descriptor_ae7e8aaa2f0a0da3acb2206067ce588d8}{bcdCDC}}[0] = 0x10,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00139}00139         .\mbox{\hyperlink{structusb__cdc__header__descriptor_ae7e8aaa2f0a0da3acb2206067ce588d8}{bcdCDC}}[1] = 0x01,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00140}00140 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00141}00141 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00142}\mbox{\hyperlink{usb__template__multi_8c_a4713b61b5e3e7a168bfeb5d40b1f35b2}{00142}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__cdc__ethernet__descriptor}{usb\_cdc\_ethernet\_descriptor}} \mbox{\hyperlink{usb__template__multi_8c_a4713b61b5e3e7a168bfeb5d40b1f35b2}{eth\_enf\_desc}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00143}00143         .\mbox{\hyperlink{structusb__cdc__ethernet__descriptor_abe108f499f8fdb8bfbb9a07b2e9e450b}{bLength}} = \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a4713b61b5e3e7a168bfeb5d40b1f35b2}{eth\_enf\_desc}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00144}00144         .\mbox{\hyperlink{structusb__cdc__ethernet__descriptor_a42be310b17e4baf87791dfb40e188e22}{bDescriptorType}} = \mbox{\hyperlink{usb_8h_af31cdb4e483ebff028f8286207123844}{UDESC\_CS\_INTERFACE}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00145}00145         .\mbox{\hyperlink{structusb__cdc__ethernet__descriptor_a346f36a6e8ffd60bb8d4573b0f9f28fc}{bDescriptorSubtype}} = \mbox{\hyperlink{usb__cdc_8h_abf345c92bd4ec0aa5aa18ac3f2b6ad02}{UDESCSUB\_CDC\_ENF}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00146}00146         .\mbox{\hyperlink{structusb__cdc__ethernet__descriptor_a01b52d677544df697e3e9b671f5a2d28}{iMacAddress}} = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda0d7e7ca0a1413d05ab4df71343d5abc5}{MULTI\_ETH\_MAC\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00147}00147         .\mbox{\hyperlink{structusb__cdc__ethernet__descriptor_a7bf45af2e71783e767230ecb3922aaa5}{bmEthernetStatistics}} = \{0, 0, 0, 0\},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00148}00148         .wMaxSegmentSize = \{0xEA, 0x05\},\textcolor{comment}{/* 1514 bytes */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00149}00149         .wNumberMCFilters = \{0, 0\},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00150}00150         .bNumberPowerFilters = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00151}00151 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00152}00152 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00153}\mbox{\hyperlink{usb__template__multi_8c_a964fc6971ffb59d55bcd667ef78a038f}{00153}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{void} *\mbox{\hyperlink{usb__template__multi_8c_a964fc6971ffb59d55bcd667ef78a038f}{eth\_control\_if\_desc}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00154}00154         \&\mbox{\hyperlink{usb__template__multi_8c_a6e3794e65bd0fad9c39bceddab1c83b7}{eth\_union\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00155}00155         \&\mbox{\hyperlink{usb__template__multi_8c_ae9d2e070cde2a1a435fa1eb36c55150f}{eth\_header\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00156}00156         \&\mbox{\hyperlink{usb__template__multi_8c_a4713b61b5e3e7a168bfeb5d40b1f35b2}{eth\_enf\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00157}00157         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00158}00158 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00159}00159 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00160}\mbox{\hyperlink{usb__template__multi_8c_a51299a5ce4a0ea953f804633189e181c}{00160}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__packet__size}{usb\_temp\_packet\_size}} \mbox{\hyperlink{usb__template__multi_8c_a51299a5ce4a0ea953f804633189e181c}{bulk\_mps}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00161}00161         .\mbox{\hyperlink{structusb__temp__packet__size_a1e72dec91037be6b45fcb2a7b8a6034a}{mps}}[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0f17d0b9928086c6114fea73e08f1780}{USB\_SPEED\_FULL}}] = 64,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00162}00162         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa57eeede6d769b09c01ac9c9c62fef8c9}{USB\_SPEED\_HIGH}}] = 512,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00163}00163 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00165}\mbox{\hyperlink{usb__template__multi_8c_a9293bd96bf9db372f9e1778dd40c0c6d}{00165}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__packet__size}{usb\_temp\_packet\_size}} \mbox{\hyperlink{usb__template__multi_8c_a9293bd96bf9db372f9e1778dd40c0c6d}{intr\_mps}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00166}00166         .\mbox{\hyperlink{structusb__temp__packet__size_a1e72dec91037be6b45fcb2a7b8a6034a}{mps}}[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0f17d0b9928086c6114fea73e08f1780}{USB\_SPEED\_FULL}}] = 8,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00167}00167         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa57eeede6d769b09c01ac9c9c62fef8c9}{USB\_SPEED\_HIGH}}] = 8,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00168}00168 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00169}00169 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00170}\mbox{\hyperlink{usb__template__multi_8c_a87d44dd5841ee9dfecb83a292752acb8}{00170}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a87d44dd5841ee9dfecb83a292752acb8}{bulk\_in\_ep}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00171}00171         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a51299a5ce4a0ea953f804633189e181c}{bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00172}00172 \textcolor{preprocessor}{\#ifdef USB\_HIP\_IN\_EP\_0}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00173}00173         .bEndpointAddress = USB\_HIP\_IN\_EP\_0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00174}00174 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00175}00175         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00176}00176 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00177}00177         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00178}00178 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00179}00179 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00180}\mbox{\hyperlink{usb__template__multi_8c_a7875b7badc71c3105e10cb98eb1e2d38}{00180}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a7875b7badc71c3105e10cb98eb1e2d38}{bulk\_out\_ep}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00181}00181         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a51299a5ce4a0ea953f804633189e181c}{bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00182}00182 \textcolor{preprocessor}{\#ifdef USB\_HIP\_OUT\_EP\_0}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00183}00183         .bEndpointAddress = USB\_HIP\_OUT\_EP\_0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00184}00184 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00185}00185         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a9a98e1bc9388db2ab5213e9d6496e851}{UE\_DIR\_OUT}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00186}00186 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00187}00187         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00188}00188 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00189}00189 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00190}\mbox{\hyperlink{usb__template__multi_8c_aa2a3d6cfa99545b30545f4521bec9db0}{00190}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_aa2a3d6cfa99545b30545f4521bec9db0}{intr\_in\_ep}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00191}00191         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a9293bd96bf9db372f9e1778dd40c0c6d}{intr\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00192}00192         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00193}00193         .bmAttributes = \mbox{\hyperlink{usb_8h_a01e28e87ad16f6dfffefc6ccab08baed}{UE\_INTERRUPT}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00194}00194 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00195}00195 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00196}\mbox{\hyperlink{usb__template__multi_8c_a7487ff2635f2cd7936f8b19655dc2fea}{00196}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} *\mbox{\hyperlink{usb__template__multi_8c_a7487ff2635f2cd7936f8b19655dc2fea}{eth\_intr\_endpoints}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00197}00197         \&\mbox{\hyperlink{usb__template__multi_8c_aa2a3d6cfa99545b30545f4521bec9db0}{intr\_in\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00198}00198         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00199}00199 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00200}00200 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00201}\mbox{\hyperlink{usb__template__multi_8c_a06897e5da74af5d3384a9fdfc30451c7}{00201}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a06897e5da74af5d3384a9fdfc30451c7}{eth\_control\_interface}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00202}00202         .\mbox{\hyperlink{structusb__temp__interface__desc_a4644da9b53684d59fb37172855476f4e}{ppEndpoints}} = \mbox{\hyperlink{usb__template__multi_8c_a7487ff2635f2cd7936f8b19655dc2fea}{eth\_intr\_endpoints}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00203}00203         .\mbox{\hyperlink{structusb__temp__endpoint__desc_ac747053bd19d3c55d2d8fda43db33cf3}{ppRawDesc}} = \mbox{\hyperlink{usb__template__multi_8c_a964fc6971ffb59d55bcd667ef78a038f}{eth\_control\_if\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00204}00204         .bInterfaceClass = \mbox{\hyperlink{usb_8h_a7ee8a2a46bb5ed7942883b57b7d866a1}{UICLASS\_CDC}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00205}00205         .bInterfaceSubClass = \mbox{\hyperlink{usb_8h_af6b534e41789efaf78f5c6fbc8c98ab2}{UISUBCLASS\_ETHERNET\_NETWORKING\_CONTROL\_MODEL}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00206}00206         .bInterfaceProtocol = \mbox{\hyperlink{usb_8h_a0102f19193b60623a80c804c7d66c344}{UIPROTO\_CDC\_NONE}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00207}00207         .iInterface = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda67488f4cc41f5582fda0caa9aefaf399}{MULTI\_ETH\_CONTROL\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00208}00208 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00209}00209 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00210}\mbox{\hyperlink{usb__template__multi_8c_aad54b9358a59deedbb2ab9e99c1b5b72}{00210}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} *\mbox{\hyperlink{usb__template__multi_8c_aad54b9358a59deedbb2ab9e99c1b5b72}{eth\_data\_endpoints}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00211}00211         \&\mbox{\hyperlink{usb__template__multi_8c_a87d44dd5841ee9dfecb83a292752acb8}{bulk\_in\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00212}00212         \&\mbox{\hyperlink{usb__template__multi_8c_a7875b7badc71c3105e10cb98eb1e2d38}{bulk\_out\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00213}00213         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00214}00214 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00215}00215 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00216}\mbox{\hyperlink{usb__template__multi_8c_a274cceb10a5772fd713599282fa2f614}{00216}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a274cceb10a5772fd713599282fa2f614}{eth\_data\_null\_interface}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00217}00217         .\mbox{\hyperlink{structusb__temp__interface__desc_a4644da9b53684d59fb37172855476f4e}{ppEndpoints}} = NULL,         \textcolor{comment}{/* no endpoints */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00218}00218         .bInterfaceClass = \mbox{\hyperlink{usb_8h_a06d51016dbce12950832d57da2a79375}{UICLASS\_CDC\_DATA}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00219}00219         .bInterfaceSubClass = \mbox{\hyperlink{usb_8h_ae389623f5c5e2a076800637b1669c4a2}{UISUBCLASS\_DATA}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00220}00220         .bInterfaceProtocol = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00221}00221         .iInterface = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdab4f8629c08c25e3317f52be4e23602cd}{MULTI\_ETH\_DATA\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00222}00222 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00223}00223 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00224}\mbox{\hyperlink{usb__template__multi_8c_aeb7d4b6c51cebaf3c4cfb90dcb9827ff}{00224}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} \mbox{\hyperlink{usb__template__multi_8c_aeb7d4b6c51cebaf3c4cfb90dcb9827ff}{eth\_data\_interface}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00225}00225         .\mbox{\hyperlink{structusb__temp__interface__desc_a4644da9b53684d59fb37172855476f4e}{ppEndpoints}} = \mbox{\hyperlink{usb__template__multi_8c_aad54b9358a59deedbb2ab9e99c1b5b72}{eth\_data\_endpoints}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00226}00226         .bInterfaceClass = \mbox{\hyperlink{usb_8h_a06d51016dbce12950832d57da2a79375}{UICLASS\_CDC\_DATA}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00227}00227         .bInterfaceSubClass = \mbox{\hyperlink{usb_8h_ae389623f5c5e2a076800637b1669c4a2}{UISUBCLASS\_DATA}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00228}00228         .bInterfaceProtocol = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00229}00229         .iInterface = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdab4f8629c08c25e3317f52be4e23602cd}{MULTI\_ETH\_DATA\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00230}00230         .isAltInterface = 1,            \textcolor{comment}{/* this is an alternate setting */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00231}00231 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00232}00232 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00233}\mbox{\hyperlink{usb__template__multi_8c_a7a85c2ba2015b0494c082241d8e63086}{00233}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__packet__size}{usb\_temp\_packet\_size}} \mbox{\hyperlink{usb__template__multi_8c_a7a85c2ba2015b0494c082241d8e63086}{modem\_bulk\_mps}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00234}00234         .\mbox{\hyperlink{structusb__temp__packet__size_a1e72dec91037be6b45fcb2a7b8a6034a}{mps}}[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0ec4f8f66feaf7ee8f2ee618302e9470}{USB\_SPEED\_LOW}}] = 8,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00235}00235         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0f17d0b9928086c6114fea73e08f1780}{USB\_SPEED\_FULL}}] = 64,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00236}00236         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa57eeede6d769b09c01ac9c9c62fef8c9}{USB\_SPEED\_HIGH}}] = 512,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00237}00237 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00238}00238 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00239}\mbox{\hyperlink{usb__template__multi_8c_a7438dee1baac3689a105d527dac81fab}{00239}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__packet__size}{usb\_temp\_packet\_size}} \mbox{\hyperlink{usb__template__multi_8c_a7438dee1baac3689a105d527dac81fab}{modem\_intr\_mps}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00240}00240         .\mbox{\hyperlink{structusb__temp__packet__size_a1e72dec91037be6b45fcb2a7b8a6034a}{mps}}[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0ec4f8f66feaf7ee8f2ee618302e9470}{USB\_SPEED\_LOW}}] = 8,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00241}00241         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0f17d0b9928086c6114fea73e08f1780}{USB\_SPEED\_FULL}}] = 8,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00242}00242         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa57eeede6d769b09c01ac9c9c62fef8c9}{USB\_SPEED\_HIGH}}] = 8,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00243}00243 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00244}00244 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00245}\mbox{\hyperlink{usb__template__multi_8c_a57e6d13d4274f3af23456159d48b6a06}{00245}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interval}{usb\_temp\_interval}} \mbox{\hyperlink{usb__template__multi_8c_a57e6d13d4274f3af23456159d48b6a06}{modem\_intr\_interval}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00246}00246         .\mbox{\hyperlink{structusb__temp__interval_a5cd37cfd16db2cf6c5c87e30cbd678c1}{bInterval}}[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0ec4f8f66feaf7ee8f2ee618302e9470}{USB\_SPEED\_LOW}}] = 8,    \textcolor{comment}{/* 8ms */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00247}00247         .bInterval[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0f17d0b9928086c6114fea73e08f1780}{USB\_SPEED\_FULL}}] = 8,   \textcolor{comment}{/* 8ms */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00248}00248         .bInterval[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa57eeede6d769b09c01ac9c9c62fef8c9}{USB\_SPEED\_HIGH}}] = 7,   \textcolor{comment}{/* 8ms */}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00249}00249 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00250}00250 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00251}\mbox{\hyperlink{usb__template__multi_8c_a9931622493afe33da01e2575299f2540}{00251}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a9931622493afe33da01e2575299f2540}{modem\_ep\_0}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00252}00252         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a7438dee1baac3689a105d527dac81fab}{modem\_intr\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00253}00253         .pIntervals = \&\mbox{\hyperlink{usb__template__multi_8c_a57e6d13d4274f3af23456159d48b6a06}{modem\_intr\_interval}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00254}00254         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00255}00255         .bmAttributes = \mbox{\hyperlink{usb_8h_a01e28e87ad16f6dfffefc6ccab08baed}{UE\_INTERRUPT}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00256}00256 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00257}00257 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00258}\mbox{\hyperlink{usb__template__multi_8c_adf1aeda0e978c917d49743f3d78924e2}{00258}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_adf1aeda0e978c917d49743f3d78924e2}{modem\_ep\_1}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00259}00259         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a7a85c2ba2015b0494c082241d8e63086}{modem\_bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00260}00260         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a9a98e1bc9388db2ab5213e9d6496e851}{UE\_DIR\_OUT}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00261}00261         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00262}00262 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00263}00263 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00264}\mbox{\hyperlink{usb__template__multi_8c_af4f51e3ff090f9730f310175b21b985b}{00264}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_af4f51e3ff090f9730f310175b21b985b}{modem\_ep\_2}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00265}00265         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a7a85c2ba2015b0494c082241d8e63086}{modem\_bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00266}00266         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00267}00267         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00268}00268 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00269}00269 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00270}\mbox{\hyperlink{usb__template__multi_8c_aae8bdc81fef12a14ecca32de1ca65327}{00270}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} *\mbox{\hyperlink{usb__template__multi_8c_aae8bdc81fef12a14ecca32de1ca65327}{modem\_iface\_0\_ep}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00271}00271         \&\mbox{\hyperlink{usb__template__multi_8c_a9931622493afe33da01e2575299f2540}{modem\_ep\_0}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00272}00272         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00273}00273 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00274}00274 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00275}\mbox{\hyperlink{usb__template__multi_8c_abf1fb070a33281d01a876e1bbd4f6eae}{00275}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} *\mbox{\hyperlink{usb__template__multi_8c_abf1fb070a33281d01a876e1bbd4f6eae}{modem\_iface\_1\_ep}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00276}00276         \&\mbox{\hyperlink{usb__template__multi_8c_adf1aeda0e978c917d49743f3d78924e2}{modem\_ep\_1}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00277}00277         \&\mbox{\hyperlink{usb__template__multi_8c_af4f51e3ff090f9730f310175b21b985b}{modem\_ep\_2}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00278}00278         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00279}00279 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00280}00280 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00281}\mbox{\hyperlink{usb__template__multi_8c_a46fc217d621b7e2149b5198a6e268f45}{00281}} \textcolor{keyword}{static} \textcolor{keyword}{const} uint8\_t \mbox{\hyperlink{usb__template__multi_8c_a46fc217d621b7e2149b5198a6e268f45}{modem\_raw\_desc\_0}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00282}00282         0x05, 0x24, 0x00, 0x10, 0x01}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00283}00283 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00284}00284 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00285}\mbox{\hyperlink{usb__template__multi_8c_a96c399c1ce578c612ef76ffd9fa21687}{00285}} \textcolor{keyword}{static} \textcolor{keyword}{const} uint8\_t \mbox{\hyperlink{usb__template__multi_8c_a96c399c1ce578c612ef76ffd9fa21687}{modem\_raw\_desc\_1}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00286}00286         0x05, 0x24, 0x06, \mbox{\hyperlink{usb__template__multi_8c_ad9dc13056cc3d556f30912a6f0cdbd9f}{MODEM\_IFACE\_0}}, \mbox{\hyperlink{usb__template__multi_8c_aa2fd913517ab2ca2a78b6c04aca65270}{MODEM\_IFACE\_1}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00287}00287 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00288}00288 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00289}\mbox{\hyperlink{usb__template__multi_8c_aeb1e82ad7d0073879aa5aec3699328cb}{00289}} \textcolor{keyword}{static} \textcolor{keyword}{const} uint8\_t \mbox{\hyperlink{usb__template__multi_8c_aeb1e82ad7d0073879aa5aec3699328cb}{modem\_raw\_desc\_2}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00290}00290         0x05, 0x24, 0x01, 0x03, \mbox{\hyperlink{usb__template__multi_8c_aa2fd913517ab2ca2a78b6c04aca65270}{MODEM\_IFACE\_1}}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00291}00291 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00292}00292 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00293}\mbox{\hyperlink{usb__template__multi_8c_aa1278798858af38965036bb42d896fd8}{00293}} \textcolor{keyword}{static} \textcolor{keyword}{const} uint8\_t \mbox{\hyperlink{usb__template__multi_8c_aa1278798858af38965036bb42d896fd8}{modem\_raw\_desc\_3}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00294}00294         0x04, 0x24, 0x02, 0x07}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00295}00295 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00296}00296 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00297}\mbox{\hyperlink{usb__template__multi_8c_ad58f32099090bc362ecac159a51fbc67}{00297}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{void} *\mbox{\hyperlink{usb__template__multi_8c_ad58f32099090bc362ecac159a51fbc67}{modem\_iface\_0\_desc}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00298}00298         \&\mbox{\hyperlink{usb__template__multi_8c_a46fc217d621b7e2149b5198a6e268f45}{modem\_raw\_desc\_0}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00299}00299         \&\mbox{\hyperlink{usb__template__multi_8c_a96c399c1ce578c612ef76ffd9fa21687}{modem\_raw\_desc\_1}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00300}00300         \&\mbox{\hyperlink{usb__template__multi_8c_aeb1e82ad7d0073879aa5aec3699328cb}{modem\_raw\_desc\_2}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00301}00301         \&\mbox{\hyperlink{usb__template__multi_8c_aa1278798858af38965036bb42d896fd8}{modem\_raw\_desc\_3}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00302}00302         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00303}00303 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00304}00304 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00305}\mbox{\hyperlink{usb__template__multi_8c_ae8b1e16a59b26fbc9bcf5ff4622aaa15}{00305}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} \mbox{\hyperlink{usb__template__multi_8c_ae8b1e16a59b26fbc9bcf5ff4622aaa15}{modem\_iface\_0}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00306}00306         .\mbox{\hyperlink{structusb__temp__interface__desc_abe7e968425fd9c2f434a4b8cbd2fd1bf}{ppRawDesc}} = \mbox{\hyperlink{usb__template__multi_8c_ad58f32099090bc362ecac159a51fbc67}{modem\_iface\_0\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00307}00307         .ppEndpoints = \mbox{\hyperlink{usb__template__multi_8c_aae8bdc81fef12a14ecca32de1ca65327}{modem\_iface\_0\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00308}00308         .bInterfaceClass = \mbox{\hyperlink{usb_8h_a7ee8a2a46bb5ed7942883b57b7d866a1}{UICLASS\_CDC}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00309}00309         .bInterfaceSubClass = \mbox{\hyperlink{usb_8h_ace94ac5934fa50385aae1f446dd2ea69}{UISUBCLASS\_ABSTRACT\_CONTROL\_MODEL}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00310}00310         .bInterfaceProtocol = \mbox{\hyperlink{usb_8h_a0102f19193b60623a80c804c7d66c344}{UIPROTO\_CDC\_NONE}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00311}00311         .iInterface = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7f1a425ec1b323fee72d4f7eacb61b30}{MULTI\_MODEM\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00312}00312 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00313}00313 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00314}\mbox{\hyperlink{usb__template__multi_8c_a08762fe69d8d434517e02ba1d79780c6}{00314}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a08762fe69d8d434517e02ba1d79780c6}{modem\_iface\_1}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00315}00315         .\mbox{\hyperlink{structusb__temp__interface__desc_a4644da9b53684d59fb37172855476f4e}{ppEndpoints}} = \mbox{\hyperlink{usb__template__multi_8c_abf1fb070a33281d01a876e1bbd4f6eae}{modem\_iface\_1\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00316}00316         .bInterfaceClass = \mbox{\hyperlink{usb_8h_a06d51016dbce12950832d57da2a79375}{UICLASS\_CDC\_DATA}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00317}00317         .bInterfaceSubClass = \mbox{\hyperlink{usb_8h_ae389623f5c5e2a076800637b1669c4a2}{UISUBCLASS\_DATA}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00318}00318         .bInterfaceProtocol = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00319}00319         .iInterface = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7f1a425ec1b323fee72d4f7eacb61b30}{MULTI\_MODEM\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00320}00320 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00321}00321 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00322}\mbox{\hyperlink{usb__template__multi_8c_a9ad910838b92bcc8da648ff33b0a1138}{00322}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__packet__size}{usb\_temp\_packet\_size}} \mbox{\hyperlink{usb__template__multi_8c_a9ad910838b92bcc8da648ff33b0a1138}{msc\_bulk\_mps}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00323}00323         .\mbox{\hyperlink{structusb__temp__packet__size_a1e72dec91037be6b45fcb2a7b8a6034a}{mps}}[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0f17d0b9928086c6114fea73e08f1780}{USB\_SPEED\_FULL}}] = 64,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00324}00324         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa57eeede6d769b09c01ac9c9c62fef8c9}{USB\_SPEED\_HIGH}}] = 512,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00325}00325 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00326}00326 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00327}\mbox{\hyperlink{usb__template__multi_8c_a8e52dd5f8b85c3898c4c63bf21a50371}{00327}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a8e52dd5f8b85c3898c4c63bf21a50371}{msc\_bulk\_in\_ep}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00328}00328         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a9ad910838b92bcc8da648ff33b0a1138}{msc\_bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00329}00329 \textcolor{preprocessor}{\#ifdef USB\_HIP\_IN\_EP\_0}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00330}00330         .bEndpointAddress = USB\_HIP\_IN\_EP\_0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00331}00331 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00332}00332         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00333}00333 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00334}00334         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00335}00335 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00336}00336 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00337}\mbox{\hyperlink{usb__template__multi_8c_a8bff63093a9dbd3a8eca8ad9b58c07f0}{00337}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a8bff63093a9dbd3a8eca8ad9b58c07f0}{msc\_bulk\_out\_ep}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00338}00338         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__multi_8c_a9ad910838b92bcc8da648ff33b0a1138}{msc\_bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00339}00339 \textcolor{preprocessor}{\#ifdef USB\_HIP\_OUT\_EP\_0}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00340}00340         .bEndpointAddress = USB\_HIP\_OUT\_EP\_0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00341}00341 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00342}00342         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a9a98e1bc9388db2ab5213e9d6496e851}{UE\_DIR\_OUT}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00343}00343 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00344}00344         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00345}00345 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00346}00346 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00347}\mbox{\hyperlink{usb__template__multi_8c_a4dc788f56d6338034693c50f3c5f235a}{00347}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} *\mbox{\hyperlink{usb__template__multi_8c_a4dc788f56d6338034693c50f3c5f235a}{msc\_data\_endpoints}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00348}00348         \&\mbox{\hyperlink{usb__template__multi_8c_a8e52dd5f8b85c3898c4c63bf21a50371}{msc\_bulk\_in\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00349}00349         \&\mbox{\hyperlink{usb__template__multi_8c_a8bff63093a9dbd3a8eca8ad9b58c07f0}{msc\_bulk\_out\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00350}00350         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00351}00351 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00352}00352 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00353}\mbox{\hyperlink{usb__template__multi_8c_af0964be70f8300d555b4c8e6142ff6d4}{00353}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} \mbox{\hyperlink{usb__template__multi_8c_af0964be70f8300d555b4c8e6142ff6d4}{msc\_data\_interface}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00354}00354         .\mbox{\hyperlink{structusb__temp__interface__desc_a4644da9b53684d59fb37172855476f4e}{ppEndpoints}} = \mbox{\hyperlink{usb__template__multi_8c_a4dc788f56d6338034693c50f3c5f235a}{msc\_data\_endpoints}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00355}00355         .bInterfaceClass = \mbox{\hyperlink{usb_8h_ae81b41321fc379102099b7f2e5c9739e}{UICLASS\_MASS}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00356}00356         .bInterfaceSubClass = \mbox{\hyperlink{usb_8h_a46b53cbd6c85c0370cb95f6c794f3cb6}{UISUBCLASS\_SCSI}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00357}00357         .bInterfaceProtocol = \mbox{\hyperlink{usb_8h_a1dd4ef2dd3103277eab1c96c2a8ccae3}{UIPROTO\_MASS\_BBB}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00358}00358         .iInterface = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaa0f28109f24a724abd34734b78323382}{MULTI\_STORAGE\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00359}00359 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00360}00360 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00361}\mbox{\hyperlink{usb__template__multi_8c_a41851ca813fb0cb06768f4057e1e7576}{00361}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} *\mbox{\hyperlink{usb__template__multi_8c_a41851ca813fb0cb06768f4057e1e7576}{multi\_interfaces}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00362}00362         \&\mbox{\hyperlink{usb__template__multi_8c_ae8b1e16a59b26fbc9bcf5ff4622aaa15}{modem\_iface\_0}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00363}00363         \&\mbox{\hyperlink{usb__template__multi_8c_a08762fe69d8d434517e02ba1d79780c6}{modem\_iface\_1}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00364}00364         \&\mbox{\hyperlink{usb__template__multi_8c_a06897e5da74af5d3384a9fdfc30451c7}{eth\_control\_interface}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00365}00365         \&\mbox{\hyperlink{usb__template__multi_8c_a274cceb10a5772fd713599282fa2f614}{eth\_data\_null\_interface}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00366}00366         \&\mbox{\hyperlink{usb__template__multi_8c_aeb7d4b6c51cebaf3c4cfb90dcb9827ff}{eth\_data\_interface}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00367}00367         \&\mbox{\hyperlink{usb__template__multi_8c_af0964be70f8300d555b4c8e6142ff6d4}{msc\_data\_interface}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00368}00368         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00369}00369 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00370}00370 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00371}\mbox{\hyperlink{usb__template__multi_8c_a8ada366acaae2f5afa7900bed6b2eb9b}{00371}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__config__desc}{usb\_temp\_config\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a8ada366acaae2f5afa7900bed6b2eb9b}{multi\_config\_desc}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00372}00372         .\mbox{\hyperlink{structusb__temp__config__desc_a2b5fac2213f207fc7ab491eadd3e1c04}{ppIfaceDesc}} = \mbox{\hyperlink{usb__template__multi_8c_a41851ca813fb0cb06768f4057e1e7576}{multi\_interfaces}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00373}00373         .bmAttributes = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00374}00374         .bMaxPower = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00375}00375         .iConfiguration = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaf86ecd049e7edde569907d005df9b4fc}{MULTI\_CONFIGURATION\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00376}00376 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00377}\mbox{\hyperlink{usb__template__multi_8c_a2d5ec60613d69954de1fdbd1e542e660}{00377}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__config__desc}{usb\_temp\_config\_desc}} *\mbox{\hyperlink{usb__template__multi_8c_a2d5ec60613d69954de1fdbd1e542e660}{multi\_configs}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00378}00378         \&\mbox{\hyperlink{usb__template__multi_8c_a8ada366acaae2f5afa7900bed6b2eb9b}{multi\_config\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00379}00379         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00380}00380 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00381}00381 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00382}\mbox{\hyperlink{usb__template_8h_a4dcf841fe7e2ceb0b4052bd671ed709c}{00382}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__device__desc}{usb\_temp\_device\_desc}} \mbox{\hyperlink{usb__template__multi_8c_a4dcf841fe7e2ceb0b4052bd671ed709c}{usb\_template\_multi}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00383}00383         .\mbox{\hyperlink{structusb__temp__device__desc_a38087eafc51aa5ee939e61f10bf87fb2}{getStringDesc}} = \&\mbox{\hyperlink{usb__template__multi_8c_a424dc6a3c779658e0eaa1ee1b9a3b257}{multi\_get\_string\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00384}00384         .ppConfigDesc = \mbox{\hyperlink{usb__template__multi_8c_a2d5ec60613d69954de1fdbd1e542e660}{multi\_configs}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00385}00385         .idVendor = \mbox{\hyperlink{usb__template__multi_8c_af620dc4c6b29d757d05b6f8da9fb0af9}{MULTI\_DEFAULT\_VENDOR\_ID}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00386}00386         .idProduct = \mbox{\hyperlink{usb__template__multi_8c_a8c81c5d8645cbb47bdb26c82544ca57d}{MULTI\_DEFAULT\_PRODUCT\_ID}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00387}00387         .bcdDevice = 0x0100,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00388}00388         .bDeviceClass = \mbox{\hyperlink{usb_8h_af82d3db794cb0557a04f646acdd6920d}{UDCLASS\_IN\_INTERFACE}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00389}00389         .bDeviceSubClass = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00390}00390         .bDeviceProtocol = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00391}00391         .iManufacturer = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7b7f4b277e7417f020d75149808babfb}{MULTI\_MANUFACTURER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00392}00392         .iProduct = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdafe2dfbe195b3a7249c8622ba8d012107}{MULTI\_PRODUCT\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00393}00393         .iSerialNumber = \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda4f916c18912afa116eb337378bcafa4a}{MULTI\_SERIAL\_NUMBER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00394}00394 \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00395}00395 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00396}00396 \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/*}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00397}00397 \textcolor{comment}{ *      multi\_get\_string\_desc}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00398}00398 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00399}00399 \textcolor{comment}{ * Return values:}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00400}00400 \textcolor{comment}{ * NULL: Failure. No such string.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00401}00401 \textcolor{comment}{ * Else: Success. Pointer to string descriptor is returned.}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00402}00402 \textcolor{comment}{ *-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/*/}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00403}00403 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00404}\mbox{\hyperlink{usb__template__multi_8c_a9973abc2112976e5ba28d046156f901c}{00404}} \mbox{\hyperlink{usb__template__multi_8c_a424dc6a3c779658e0eaa1ee1b9a3b257}{multi\_get\_string\_desc}}(uint16\_t lang\_id, uint8\_t string\_index)}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00405}00405 \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00406}00406         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{void} *ptr[\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdabfc79c00b9fb8c1ed3f0614c1931b7b6}{MULTI\_MAX\_INDEX}}] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00407}00407                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda9910e417473ebab36f5716d531d3c4ea}{MULTI\_LANG\_INDEX}}] = \&\mbox{\hyperlink{usb__core_8c_ae7a7499adfcbdfc7011bb2f90217b482}{usb\_string\_lang\_en}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00408}00408                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7f1a425ec1b323fee72d4f7eacb61b30}{MULTI\_MODEM\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_ae13a8a42caa9985109d64e46011149ec}{multi\_modem}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00409}00409                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda0d7e7ca0a1413d05ab4df71343d5abc5}{MULTI\_ETH\_MAC\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_af1e7f8bfcb830f6b6e2e49ac100dcfa2}{multi\_eth\_mac}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00410}00410                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda67488f4cc41f5582fda0caa9aefaf399}{MULTI\_ETH\_CONTROL\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_a56455afe7d48939ade5874ae43e540d3}{multi\_eth\_control}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00411}00411                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdab4f8629c08c25e3317f52be4e23602cd}{MULTI\_ETH\_DATA\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{multi\_eth\_data}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00412}00412                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaa0f28109f24a724abd34734b78323382}{MULTI\_STORAGE\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_a0d78ef56bbad3f822e6cc830b21df595}{multi\_storage}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00413}00413                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdaf86ecd049e7edde569907d005df9b4fc}{MULTI\_CONFIGURATION\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_a55ca323d297f6c8dafdf7b362e326a99}{multi\_configuration}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00414}00414                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda7b7f4b277e7417f020d75149808babfb}{MULTI\_MANUFACTURER\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_a72f9a22834d6644058851a308fbbad2b}{multi\_manufacturer}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00415}00415                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdafe2dfbe195b3a7249c8622ba8d012107}{MULTI\_PRODUCT\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_ab7c43e3a274c5ea3abee28402bb1c2d4}{multi\_product}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00416}00416                 [\mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbda4f916c18912afa116eb337378bcafa4a}{MULTI\_SERIAL\_NUMBER\_INDEX}}] = \&\mbox{\hyperlink{usb__template__multi_8c_acd5c0cd0a877d7f085b69a6a9508fb30}{multi\_serial\_number}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00417}00417         \};}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00418}00418 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00419}00419         \textcolor{keywordflow}{if} (string\_index == 0) \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00420}00420                 \textcolor{keywordflow}{return} (\&\mbox{\hyperlink{usb__core_8c_ae7a7499adfcbdfc7011bb2f90217b482}{usb\_string\_lang\_en}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00421}00421         \}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00422}00422         \textcolor{keywordflow}{if} (lang\_id != 0x0409) \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00423}00423                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00424}00424         \}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00425}00425         \textcolor{keywordflow}{if} (string\_index < \mbox{\hyperlink{usb__template__multi_8c_a3babbf89cae9b856a12864a41506efbdabfc79c00b9fb8c1ed3f0614c1931b7b6}{MULTI\_MAX\_INDEX}}) \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00426}00426                 \textcolor{keywordflow}{return} (ptr[string\_index]);}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00427}00427         \}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00428}00428         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00429}00429 \}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00430}00430 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00431}00431 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00432}\mbox{\hyperlink{usb__template__multi_8c_adde7615f5a8e53d55579925d66213c18}{00432}} \mbox{\hyperlink{usb__template__multi_8c_adde7615f5a8e53d55579925d66213c18}{multi\_init}}(\textcolor{keywordtype}{void} *arg \_\_unused)}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00433}00433 \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00434}00434         \textcolor{keyword}{struct }sysctl\_oid *parent;}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00435}00435         \textcolor{keywordtype}{char} parent\_name[3];}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00436}00436 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00437}00437         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_ae13a8a42caa9985109d64e46011149ec}{multi\_modem}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_ae13a8a42caa9985109d64e46011149ec}{multi\_modem}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00438}00438             \mbox{\hyperlink{usb__template__multi_8c_a848d48d6e646bc99ab89176c9996f259}{MULTI\_DEFAULT\_MODEM}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00439}00439         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_af1e7f8bfcb830f6b6e2e49ac100dcfa2}{multi\_eth\_mac}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_af1e7f8bfcb830f6b6e2e49ac100dcfa2}{multi\_eth\_mac}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00440}00440             \mbox{\hyperlink{usb__template__multi_8c_ad4194fc6fab5ddf28e47f2631dfdbb13}{MULTI\_DEFAULT\_ETH\_MAC}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00441}00441         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_a56455afe7d48939ade5874ae43e540d3}{multi\_eth\_control}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a56455afe7d48939ade5874ae43e540d3}{multi\_eth\_control}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00442}00442             \mbox{\hyperlink{usb__template__multi_8c_aa20e5d3e9bc9b1002f7d79c7aa877b79}{MULTI\_DEFAULT\_ETH\_CONTROL}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00443}00443         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{multi\_eth\_data}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{multi\_eth\_data}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00444}00444             \mbox{\hyperlink{usb__template__multi_8c_a1ff22c46f81b8a7b81d7c01f5b432730}{MULTI\_DEFAULT\_ETH\_DATA}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00445}00445         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_a0d78ef56bbad3f822e6cc830b21df595}{multi\_storage}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a0d78ef56bbad3f822e6cc830b21df595}{multi\_storage}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00446}00446             \mbox{\hyperlink{usb__template__multi_8c_a7b722fa2c083c04e66266951dc604459}{MULTI\_DEFAULT\_STORAGE}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00447}00447         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_a55ca323d297f6c8dafdf7b362e326a99}{multi\_configuration}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a55ca323d297f6c8dafdf7b362e326a99}{multi\_configuration}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00448}00448             \mbox{\hyperlink{usb__template__multi_8c_a531384295285ec990fa072fba65bfe5f}{MULTI\_DEFAULT\_CONFIGURATION}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00449}00449         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_a72f9a22834d6644058851a308fbbad2b}{multi\_manufacturer}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a72f9a22834d6644058851a308fbbad2b}{multi\_manufacturer}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00450}00450             \mbox{\hyperlink{usb__template__multi_8c_a05815d7ab2979de6622d46ed2f2da06c}{MULTI\_DEFAULT\_MANUFACTURER}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00451}00451         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_ab7c43e3a274c5ea3abee28402bb1c2d4}{multi\_product}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_ab7c43e3a274c5ea3abee28402bb1c2d4}{multi\_product}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00452}00452             \mbox{\hyperlink{usb__template__multi_8c_ab64203b612141fe614d989f0f0dbebdb}{MULTI\_DEFAULT\_PRODUCT}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00453}00453         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__multi_8c_acd5c0cd0a877d7f085b69a6a9508fb30}{multi\_serial\_number}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_acd5c0cd0a877d7f085b69a6a9508fb30}{multi\_serial\_number}}),}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00454}00454             \mbox{\hyperlink{usb__template__multi_8c_a2612c56258a918df486b2d0778712bf4}{MULTI\_DEFAULT\_SERIAL\_NUMBER}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00455}00455 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00456}00456         snprintf(parent\_name, \textcolor{keyword}{sizeof}(parent\_name), \textcolor{stringliteral}{"{}\%d"{}}, \mbox{\hyperlink{usb__ioctl_8h_a950bf8e3371138ceb9649d45e9a96340ac5b487da5cba036d641cc60fff4f1b58}{USB\_TEMP\_MULTI}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00457}00457         sysctl\_ctx\_init(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00458}00458 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00459}00459         parent = SYSCTL\_ADD\_NODE(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00460}00460             SYSCTL\_STATIC\_CHILDREN(\_hw\_usb\_templates), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00461}00461             parent\_name, CTLFLAG\_RW | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00462}00462             0, \textcolor{stringliteral}{"{}USB Multifunction device side template"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00463}00463         SYSCTL\_ADD\_U16(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00464}00464             \textcolor{stringliteral}{"{}vendor\_id"{}}, CTLFLAG\_RWTUN,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00465}00465             \&\mbox{\hyperlink{usb__template__multi_8c_a4dcf841fe7e2ceb0b4052bd671ed709c}{usb\_template\_multi}}.\mbox{\hyperlink{structusb__temp__device__desc_a857be9aeaae625cebc6e227bf7a5cf39}{idVendor}}, 1, \textcolor{stringliteral}{"{}Vendor identifier"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00466}00466         SYSCTL\_ADD\_U16(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00467}00467             \textcolor{stringliteral}{"{}product\_id"{}}, CTLFLAG\_RWTUN,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00468}00468             \&\mbox{\hyperlink{usb__template__multi_8c_a4dcf841fe7e2ceb0b4052bd671ed709c}{usb\_template\_multi}}.\mbox{\hyperlink{structusb__temp__device__desc_a494cea07a085ef1e5e5a884246403c5f}{idProduct}}, 1, \textcolor{stringliteral}{"{}Product identifier"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00469}00469         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00470}00470             \textcolor{stringliteral}{"{}eth\_mac"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00471}00471             \&\mbox{\hyperlink{usb__template__multi_8c_af1e7f8bfcb830f6b6e2e49ac100dcfa2}{multi\_eth\_mac}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_af1e7f8bfcb830f6b6e2e49ac100dcfa2}{multi\_eth\_mac}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00472}00472             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Ethernet MAC address string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00473}00473 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00474}00474         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00475}00475             \textcolor{stringliteral}{"{}modem"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00476}00476             \&\mbox{\hyperlink{usb__template__multi_8c_ae13a8a42caa9985109d64e46011149ec}{multi\_modem}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_ae13a8a42caa9985109d64e46011149ec}{multi\_modem}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00477}00477             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Modem interface string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00478}00478         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00479}00479             \textcolor{stringliteral}{"{}eth\_control"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00480}00480             \&\mbox{\hyperlink{usb__template__multi_8c_a56455afe7d48939ade5874ae43e540d3}{multi\_eth\_control}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{multi\_eth\_data}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00481}00481             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Ethernet control interface string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00482}00482         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00483}00483             \textcolor{stringliteral}{"{}eth\_data"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00484}00484             \&\mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{multi\_eth\_data}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a1eee84c684330d003f7c99fa0c7be9a9}{multi\_eth\_data}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00485}00485             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Ethernet data interface string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00486}00486         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00487}00487             \textcolor{stringliteral}{"{}interface"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00488}00488             \&\mbox{\hyperlink{usb__template__multi_8c_a0d78ef56bbad3f822e6cc830b21df595}{multi\_storage}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a0d78ef56bbad3f822e6cc830b21df595}{multi\_storage}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00489}00489             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Storage interface string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00490}00490         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00491}00491             \textcolor{stringliteral}{"{}configuration"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00492}00492             \&\mbox{\hyperlink{usb__template__multi_8c_a55ca323d297f6c8dafdf7b362e326a99}{multi\_configuration}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a55ca323d297f6c8dafdf7b362e326a99}{multi\_configuration}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00493}00493             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Configuration string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00494}00494 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00495}00495         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00496}00496             \textcolor{stringliteral}{"{}manufacturer"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00497}00497             \&\mbox{\hyperlink{usb__template__multi_8c_a72f9a22834d6644058851a308fbbad2b}{multi\_manufacturer}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_a72f9a22834d6644058851a308fbbad2b}{multi\_manufacturer}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00498}00498             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Manufacturer string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00499}00499         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00500}00500             \textcolor{stringliteral}{"{}product"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00501}00501             \&\mbox{\hyperlink{usb__template__multi_8c_ab7c43e3a274c5ea3abee28402bb1c2d4}{multi\_product}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_ab7c43e3a274c5ea3abee28402bb1c2d4}{multi\_product}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00502}00502             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Product string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00503}00503         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00504}00504             \textcolor{stringliteral}{"{}serial\_number"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00505}00505             \&\mbox{\hyperlink{usb__template__multi_8c_acd5c0cd0a877d7f085b69a6a9508fb30}{multi\_serial\_number}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__multi_8c_acd5c0cd0a877d7f085b69a6a9508fb30}{multi\_serial\_number}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00506}00506             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Serial number string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00507}00507 \}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00508}00508 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00509}00509 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00510}\mbox{\hyperlink{usb__template__multi_8c_a01a519acf46a1da5adbaaab5e4686add}{00510}} \mbox{\hyperlink{usb__template__multi_8c_a01a519acf46a1da5adbaaab5e4686add}{multi\_uninit}}(\textcolor{keywordtype}{void} *arg \_\_unused)}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00511}00511 \{}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00512}00512 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00513}00513         sysctl\_ctx\_free(\&\mbox{\hyperlink{usb__template__multi_8c_a920e32626ebedd2700dd19b9810a66e1}{multi\_ctx\_list}});}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00514}00514 \}}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00515}00515 }
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00516}\mbox{\hyperlink{usb__template__multi_8c_a203746d7c731f6db85194b45b0ce30bd}{00516}} \mbox{\hyperlink{usb__template__multi_8c_a203746d7c731f6db85194b45b0ce30bd}{SYSINIT}}(\mbox{\hyperlink{usb__template__multi_8c_adde7615f5a8e53d55579925d66213c18}{multi\_init}}, SI\_SUB\_LOCK, SI\_ORDER\_FIRST, \mbox{\hyperlink{usb__template__multi_8c_adde7615f5a8e53d55579925d66213c18}{multi\_init}}, NULL);}
\DoxyCodeLine{\Hypertarget{usb__template__multi_8c_source_l00517}\mbox{\hyperlink{usb__template__multi_8c_a5bea82b9a1c7f8e460ad1f6cfd213e1e}{00517}} \mbox{\hyperlink{usb__template__multi_8c_a5bea82b9a1c7f8e460ad1f6cfd213e1e}{SYSUNINIT}}(\mbox{\hyperlink{usb__template__multi_8c_a01a519acf46a1da5adbaaab5e4686add}{multi\_uninit}}, SI\_SUB\_LOCK, SI\_ORDER\_FIRST, \mbox{\hyperlink{usb__template__multi_8c_a01a519acf46a1da5adbaaab5e4686add}{multi\_uninit}}, NULL);}

\end{DoxyCode}
