\hypertarget{usb__template__msc_8c_source}{}\doxysection{usb\+\_\+template\+\_\+msc.\+c}
\label{usb__template__msc_8c_source}\index{dev/usb/template/usb\_template\_msc.c@{dev/usb/template/usb\_template\_msc.c}}
\mbox{\hyperlink{usb__template__msc_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00001}00001 \textcolor{comment}{/* \$FreeBSD\$ */}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00002}00002 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00003}00003 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00004}00004 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2008 Hans Petter Selasky <hselasky@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00006}00006 \textcolor{comment}{ * Copyright (c) 2018 The FreeBSD Foundation}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00007}00007 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00008}00008 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00009}00009 \textcolor{comment}{ * Portions of this software were developed by Edward Tomasz Napierala}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00010}00010 \textcolor{comment}{ * under sponsorship from the FreeBSD Foundation.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00011}00011 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00012}00012 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00013}00013 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00014}00014 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00015}00015 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00016}00016 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00017}00017 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00018}00018 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00019}00019 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00020}00020 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00021}00021 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00022}00022 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00023}00023 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00024}00024 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00025}00025 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00026}00026 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00027}00027 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00028}00028 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00029}00029 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00030}00030 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00031}00031 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00032}00032 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00034}00034 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00035}00035 \textcolor{comment}{ * This file contains the USB templates for an USB Mass Storage Device.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00036}00036 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00037}00037 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00038}00038 \textcolor{preprocessor}{\#ifdef USB\_GLOBAL\_INCLUDE\_FILE}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00039}00039 \textcolor{preprocessor}{\#include USB\_GLOBAL\_INCLUDE\_FILE}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00040}00040 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/stdint.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/stddef.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/types.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <sys/bus.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00050}00050 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <sys/condvar.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00053}00053 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00054}00054 \textcolor{preprocessor}{\#include <sys/sx.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00055}00055 \textcolor{preprocessor}{\#include <sys/unistd.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00056}00056 \textcolor{preprocessor}{\#include <sys/callout.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00057}00057 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00058}00058 \textcolor{preprocessor}{\#include <sys/priv.h>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00060}00060 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb_8h}{dev/usb/usb.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00061}00061 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usbdi_8h}{dev/usb/usbdi.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00062}00062 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__core_8h}{dev/usb/usb\_core.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00063}00063 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__ioctl_8h}{dev/usb/usb\_ioctl.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00064}00064 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__util_8h}{dev/usb/usb\_util.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00065}00065 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00066}00066 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{usb__template_8h}{dev/usb/template/usb\_template.h}}>}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00067}00067 \textcolor{preprocessor}{\#endif                  }\textcolor{comment}{/* USB\_GLOBAL\_INCLUDE\_FILE */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00068}00068 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00069}00069 \textcolor{keyword}{enum} \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00070}\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80afcca893a397170063bc4db040a3a0c86}{00070}}         \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80afcca893a397170063bc4db040a3a0c86}{MSC\_LANG\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00071}\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a15b09f618f9cd860daddedd191b505eb}{00071}}         \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a15b09f618f9cd860daddedd191b505eb}{MSC\_INTERFACE\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00072}\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aa0861bc33e9a197433617f24b9a58130}{00072}}         \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aa0861bc33e9a197433617f24b9a58130}{MSC\_CONFIGURATION\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00073}\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a51f5d3360ec3a5c66f782b6fb6a396e8}{00073}}         \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a51f5d3360ec3a5c66f782b6fb6a396e8}{MSC\_MANUFACTURER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00074}\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aefd7cfce2ec2a16e9c26dd2c908ba5b6}{00074}}         \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aefd7cfce2ec2a16e9c26dd2c908ba5b6}{MSC\_PRODUCT\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00075}\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a105184749ff5247c0af58ce3f313b208}{00075}}         \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a105184749ff5247c0af58ce3f313b208}{MSC\_SERIAL\_NUMBER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00076}\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a2eb171fe6e820814567011618e141a80}{00076}}         \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a2eb171fe6e820814567011618e141a80}{MSC\_MAX\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00077}00077 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00078}00078 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00079}\mbox{\hyperlink{usb__template__msc_8c_a2df79219dea5461456a039e2fb3935b7}{00079}} \textcolor{preprocessor}{\#define MSC\_DEFAULT\_VENDOR\_ID           USB\_TEMPLATE\_VENDOR}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00080}\mbox{\hyperlink{usb__template__msc_8c_a5f4783ff535ba124a432c7cede3dcf03}{00080}} \textcolor{preprocessor}{\#define MSC\_DEFAULT\_PRODUCT\_ID          0x27df}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00081}\mbox{\hyperlink{usb__template__msc_8c_ae9a63282a2e4e2aa326d5f845283c827}{00081}} \textcolor{preprocessor}{\#define MSC\_DEFAULT\_INTERFACE           "{}USB Mass Storage Interface"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00082}\mbox{\hyperlink{usb__template__msc_8c_a71e6768b019d79fb5a0053761f5a5281}{00082}} \textcolor{preprocessor}{\#define MSC\_DEFAULT\_CONFIGURATION       "{}Default Config"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00083}\mbox{\hyperlink{usb__template__msc_8c_ae463e7bd6b2d54c9f34ef001e013d705}{00083}} \textcolor{preprocessor}{\#define MSC\_DEFAULT\_MANUFACTURER        USB\_TEMPLATE\_MANUFACTURER}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00084}\mbox{\hyperlink{usb__template__msc_8c_a773ba3938a374725484fb92099192c0f}{00084}} \textcolor{preprocessor}{\#define MSC\_DEFAULT\_PRODUCT             "{}USB Memory Stick"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00085}\mbox{\hyperlink{usb__template__msc_8c_a7ef222a4c039eb5b2f8ddf8eed78b774}{00085}} \textcolor{preprocessor}{\#define MSC\_DEFAULT\_SERIAL\_NUMBER       "{}March 2008"{}}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00087}\mbox{\hyperlink{usb__template__msc_8c_aecb966d9f1ba8d8dd9b29b42097265f5}{00087}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__msc_8c_aecb966d9f1ba8d8dd9b29b42097265f5}{msc\_interface}};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00088}\mbox{\hyperlink{usb__template__msc_8c_aed8fd8983dcbce9751b179a2b55a4f3f}{00088}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__msc_8c_aed8fd8983dcbce9751b179a2b55a4f3f}{msc\_configuration}};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00089}\mbox{\hyperlink{usb__template__msc_8c_a43bff8493302c8909909a2077062515a}{00089}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__msc_8c_a43bff8493302c8909909a2077062515a}{msc\_manufacturer}};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00090}\mbox{\hyperlink{usb__template__msc_8c_a45499e62d7b5a4d5ebb493c6978fd689}{00090}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__msc_8c_a45499e62d7b5a4d5ebb493c6978fd689}{msc\_product}};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00091}\mbox{\hyperlink{usb__template__msc_8c_a7a5bd376973244989d36290d673771e5}{00091}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__string__descriptor}{usb\_string\_descriptor}}        \mbox{\hyperlink{usb__template__msc_8c_a7a5bd376973244989d36290d673771e5}{msc\_serial\_number}};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00092}00092 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00093}\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{00093}} \textcolor{keyword}{static} \textcolor{keyword}{struct }sysctl\_ctx\_list           \mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00095}00095 \textcolor{comment}{/* prototypes */}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00096}00096 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00097}\mbox{\hyperlink{usb__template__msc_8c_ac5cb0d5691ca0886f5b8b5b932f2c616}{00097}} \textcolor{keyword}{static} \mbox{\hyperlink{usb__template_8h_ab56131b3dcadea9f2be25f942a4f2af7}{usb\_temp\_get\_string\_desc\_t}} \mbox{\hyperlink{usb__template__msc_8c_ac5cb0d5691ca0886f5b8b5b932f2c616}{msc\_get\_string\_desc}};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00098}00098 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00099}\mbox{\hyperlink{usb__template__msc_8c_a51299a5ce4a0ea953f804633189e181c}{00099}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__packet__size}{usb\_temp\_packet\_size}} \mbox{\hyperlink{usb__template__msc_8c_a51299a5ce4a0ea953f804633189e181c}{bulk\_mps}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00100}00100         .\mbox{\hyperlink{structusb__temp__packet__size_a1e72dec91037be6b45fcb2a7b8a6034a}{mps}}[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa0f17d0b9928086c6114fea73e08f1780}{USB\_SPEED\_FULL}}] = 64,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00101}00101         .mps[\mbox{\hyperlink{usb_8h_a97e7c882fa8cd21898173a29471616ffa57eeede6d769b09c01ac9c9c62fef8c9}{USB\_SPEED\_HIGH}}] = 512,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00102}00102 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00103}00103 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00104}\mbox{\hyperlink{usb__template__msc_8c_a87d44dd5841ee9dfecb83a292752acb8}{00104}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__msc_8c_a87d44dd5841ee9dfecb83a292752acb8}{bulk\_in\_ep}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00105}00105         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__msc_8c_a51299a5ce4a0ea953f804633189e181c}{bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00106}00106 \textcolor{preprocessor}{\#ifdef USB\_HIP\_IN\_EP\_0}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00107}00107         .bEndpointAddress = USB\_HIP\_IN\_EP\_0,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00108}00108 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00109}00109         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00110}00110 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00111}00111         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00112}00112 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00113}00113 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00114}\mbox{\hyperlink{usb__template__msc_8c_a7875b7badc71c3105e10cb98eb1e2d38}{00114}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} \mbox{\hyperlink{usb__template__msc_8c_a7875b7badc71c3105e10cb98eb1e2d38}{bulk\_out\_ep}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00115}00115         .\mbox{\hyperlink{structusb__temp__endpoint__desc_a81880a9d278c78c45b0012c1c8a65067}{pPacketSize}} = \&\mbox{\hyperlink{usb__template__msc_8c_a51299a5ce4a0ea953f804633189e181c}{bulk\_mps}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00116}00116 \textcolor{preprocessor}{\#ifdef USB\_HIP\_OUT\_EP\_0}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00117}00117         .bEndpointAddress = USB\_HIP\_OUT\_EP\_0,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00118}00118 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00119}00119         .bEndpointAddress = \mbox{\hyperlink{usb_8h_a9a98e1bc9388db2ab5213e9d6496e851}{UE\_DIR\_OUT}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00120}00120 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00121}00121         .bmAttributes = \mbox{\hyperlink{usb_8h_a25240fc009aa67bb7a2b635d2e9401e4}{UE\_BULK}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00122}00122 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00123}00123 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00124}\mbox{\hyperlink{usb__template__msc_8c_a4dc788f56d6338034693c50f3c5f235a}{00124}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__endpoint__desc}{usb\_temp\_endpoint\_desc}} *\mbox{\hyperlink{usb__template__msc_8c_a4dc788f56d6338034693c50f3c5f235a}{msc\_data\_endpoints}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00125}00125         \&\mbox{\hyperlink{usb__template__msc_8c_a87d44dd5841ee9dfecb83a292752acb8}{bulk\_in\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00126}00126         \&\mbox{\hyperlink{usb__template__msc_8c_a7875b7badc71c3105e10cb98eb1e2d38}{bulk\_out\_ep}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00127}00127         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00128}00128 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00129}00129 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00130}\mbox{\hyperlink{usb__template__msc_8c_af0964be70f8300d555b4c8e6142ff6d4}{00130}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} \mbox{\hyperlink{usb__template__msc_8c_af0964be70f8300d555b4c8e6142ff6d4}{msc\_data\_interface}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00131}00131         .\mbox{\hyperlink{structusb__temp__interface__desc_a4644da9b53684d59fb37172855476f4e}{ppEndpoints}} = \mbox{\hyperlink{usb__template__msc_8c_a4dc788f56d6338034693c50f3c5f235a}{msc\_data\_endpoints}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00132}00132         .bInterfaceClass = \mbox{\hyperlink{usb_8h_ae81b41321fc379102099b7f2e5c9739e}{UICLASS\_MASS}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00133}00133         .bInterfaceSubClass = \mbox{\hyperlink{usb_8h_a46b53cbd6c85c0370cb95f6c794f3cb6}{UISUBCLASS\_SCSI}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00134}00134         .bInterfaceProtocol = \mbox{\hyperlink{usb_8h_a1dd4ef2dd3103277eab1c96c2a8ccae3}{UIPROTO\_MASS\_BBB}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00135}00135         .iInterface = \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a15b09f618f9cd860daddedd191b505eb}{MSC\_INTERFACE\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00136}00136 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00138}\mbox{\hyperlink{usb__template__msc_8c_a064748be8274848c73a35796e8c4c615}{00138}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__interface__desc}{usb\_temp\_interface\_desc}} *\mbox{\hyperlink{usb__template__msc_8c_a064748be8274848c73a35796e8c4c615}{msc\_interfaces}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00139}00139         \&\mbox{\hyperlink{usb__template__msc_8c_af0964be70f8300d555b4c8e6142ff6d4}{msc\_data\_interface}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00140}00140         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00141}00141 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00142}00142 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00143}\mbox{\hyperlink{usb__template__msc_8c_ab8610931c5ecf151c1194559f3607e61}{00143}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__config__desc}{usb\_temp\_config\_desc}} \mbox{\hyperlink{usb__template__msc_8c_ab8610931c5ecf151c1194559f3607e61}{msc\_config\_desc}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00144}00144         .\mbox{\hyperlink{structusb__temp__config__desc_a2b5fac2213f207fc7ab491eadd3e1c04}{ppIfaceDesc}} = \mbox{\hyperlink{usb__template__msc_8c_a064748be8274848c73a35796e8c4c615}{msc\_interfaces}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00145}00145         .bmAttributes = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00146}00146         .bMaxPower = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00147}00147         .iConfiguration = \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aa0861bc33e9a197433617f24b9a58130}{MSC\_CONFIGURATION\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00148}00148 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00149}00149 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00150}\mbox{\hyperlink{usb__template__msc_8c_a3b251cc144749498a912da9840067ff4}{00150}} \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__config__desc}{usb\_temp\_config\_desc}} *\mbox{\hyperlink{usb__template__msc_8c_a3b251cc144749498a912da9840067ff4}{msc\_configs}}[] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00151}00151         \&\mbox{\hyperlink{usb__template__msc_8c_ab8610931c5ecf151c1194559f3607e61}{msc\_config\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00152}00152         NULL,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00153}00153 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00154}00154 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00155}\mbox{\hyperlink{usb__template_8h_aaa15875bc0e9412eaa4140407bf3afa3}{00155}} \textcolor{keyword}{struct }\mbox{\hyperlink{structusb__temp__device__desc}{usb\_temp\_device\_desc}} \mbox{\hyperlink{usb__template__msc_8c_aaa15875bc0e9412eaa4140407bf3afa3}{usb\_template\_msc}} = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00156}00156         .\mbox{\hyperlink{structusb__temp__device__desc_a38087eafc51aa5ee939e61f10bf87fb2}{getStringDesc}} = \&\mbox{\hyperlink{usb__template__msc_8c_ac5cb0d5691ca0886f5b8b5b932f2c616}{msc\_get\_string\_desc}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00157}00157         .ppConfigDesc = \mbox{\hyperlink{usb__template__msc_8c_a3b251cc144749498a912da9840067ff4}{msc\_configs}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00158}00158         .idVendor = \mbox{\hyperlink{usb__template__msc_8c_a2df79219dea5461456a039e2fb3935b7}{MSC\_DEFAULT\_VENDOR\_ID}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00159}00159         .idProduct = \mbox{\hyperlink{usb__template__msc_8c_a5f4783ff535ba124a432c7cede3dcf03}{MSC\_DEFAULT\_PRODUCT\_ID}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00160}00160         .bcdDevice = 0x0100,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00161}00161         .bDeviceClass = \mbox{\hyperlink{usb_8h_afb401cd4f795d145dcfb80ab08f383bb}{UDCLASS\_COMM}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00162}00162         .bDeviceSubClass = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00163}00163         .bDeviceProtocol = 0,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00164}00164         .iManufacturer = \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a51f5d3360ec3a5c66f782b6fb6a396e8}{MSC\_MANUFACTURER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00165}00165         .iProduct = \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aefd7cfce2ec2a16e9c26dd2c908ba5b6}{MSC\_PRODUCT\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00166}00166         .iSerialNumber = \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a105184749ff5247c0af58ce3f313b208}{MSC\_SERIAL\_NUMBER\_INDEX}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00167}00167 \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00168}00168 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00169}00169 \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/*}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00170}00170 \textcolor{comment}{ *      msc\_get\_string\_desc}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00171}00171 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00172}00172 \textcolor{comment}{ * Return values:}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00173}00173 \textcolor{comment}{ * NULL: Failure. No such string.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00174}00174 \textcolor{comment}{ * Else: Success. Pointer to string descriptor is returned.}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00175}00175 \textcolor{comment}{ *-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/*/}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00176}00176 \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{void} *}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00177}\mbox{\hyperlink{usb__template__msc_8c_a6a714a552ef3eb04a7b41bbc05323fed}{00177}} \mbox{\hyperlink{usb__template__msc_8c_ac5cb0d5691ca0886f5b8b5b932f2c616}{msc\_get\_string\_desc}}(uint16\_t lang\_id, uint8\_t string\_index)}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00178}00178 \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00179}00179         \textcolor{keyword}{static} \textcolor{keyword}{const} \textcolor{keywordtype}{void} *ptr[\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a2eb171fe6e820814567011618e141a80}{MSC\_MAX\_INDEX}}] = \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00180}00180                 [\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80afcca893a397170063bc4db040a3a0c86}{MSC\_LANG\_INDEX}}] = \&\mbox{\hyperlink{usb__core_8c_ae7a7499adfcbdfc7011bb2f90217b482}{usb\_string\_lang\_en}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00181}00181                 [\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a15b09f618f9cd860daddedd191b505eb}{MSC\_INTERFACE\_INDEX}}] = \&\mbox{\hyperlink{usb__template__msc_8c_aecb966d9f1ba8d8dd9b29b42097265f5}{msc\_interface}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00182}00182                 [\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aa0861bc33e9a197433617f24b9a58130}{MSC\_CONFIGURATION\_INDEX}}] = \&\mbox{\hyperlink{usb__template__msc_8c_aed8fd8983dcbce9751b179a2b55a4f3f}{msc\_configuration}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00183}00183                 [\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a51f5d3360ec3a5c66f782b6fb6a396e8}{MSC\_MANUFACTURER\_INDEX}}] = \&\mbox{\hyperlink{usb__template__msc_8c_a43bff8493302c8909909a2077062515a}{msc\_manufacturer}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00184}00184                 [\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80aefd7cfce2ec2a16e9c26dd2c908ba5b6}{MSC\_PRODUCT\_INDEX}}] = \&\mbox{\hyperlink{usb__template__msc_8c_a45499e62d7b5a4d5ebb493c6978fd689}{msc\_product}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00185}00185                 [\mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a105184749ff5247c0af58ce3f313b208}{MSC\_SERIAL\_NUMBER\_INDEX}}] = \&\mbox{\hyperlink{usb__template__msc_8c_a7a5bd376973244989d36290d673771e5}{msc\_serial\_number}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00186}00186         \};}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00187}00187 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00188}00188         \textcolor{keywordflow}{if} (string\_index == 0) \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00189}00189                 \textcolor{keywordflow}{return} (\&\mbox{\hyperlink{usb__core_8c_ae7a7499adfcbdfc7011bb2f90217b482}{usb\_string\_lang\_en}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00190}00190         \}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00191}00191         \textcolor{keywordflow}{if} (lang\_id != 0x0409) \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00192}00192                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00193}00193         \}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00194}00194         \textcolor{keywordflow}{if} (string\_index < \mbox{\hyperlink{usb__template__msc_8c_a4b4213b1f9d54da7c7e36bde32fc7c80a2eb171fe6e820814567011618e141a80}{MSC\_MAX\_INDEX}}) \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00195}00195                 \textcolor{keywordflow}{return} (ptr[string\_index]);}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00196}00196         \}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00197}00197         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00198}00198 \}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00199}00199 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00200}00200 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00201}\mbox{\hyperlink{usb__template__msc_8c_a8a17b9833b0e51e06a0c603e9a8c6f00}{00201}} \mbox{\hyperlink{usb__template__msc_8c_a8a17b9833b0e51e06a0c603e9a8c6f00}{msc\_init}}(\textcolor{keywordtype}{void} *arg \_\_unused)}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00202}00202 \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00203}00203         \textcolor{keyword}{struct }sysctl\_oid *parent;}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00204}00204         \textcolor{keywordtype}{char} parent\_name[3];}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00205}00205 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00206}00206         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__msc_8c_aecb966d9f1ba8d8dd9b29b42097265f5}{msc\_interface}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_aecb966d9f1ba8d8dd9b29b42097265f5}{msc\_interface}}),}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00207}00207             \mbox{\hyperlink{usb__template__msc_8c_ae9a63282a2e4e2aa326d5f845283c827}{MSC\_DEFAULT\_INTERFACE}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00208}00208         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__msc_8c_aed8fd8983dcbce9751b179a2b55a4f3f}{msc\_configuration}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_aed8fd8983dcbce9751b179a2b55a4f3f}{msc\_configuration}}),}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00209}00209             \mbox{\hyperlink{usb__template__msc_8c_a71e6768b019d79fb5a0053761f5a5281}{MSC\_DEFAULT\_CONFIGURATION}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00210}00210         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__msc_8c_a43bff8493302c8909909a2077062515a}{msc\_manufacturer}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_a43bff8493302c8909909a2077062515a}{msc\_manufacturer}}),}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00211}00211             \mbox{\hyperlink{usb__template__msc_8c_ae463e7bd6b2d54c9f34ef001e013d705}{MSC\_DEFAULT\_MANUFACTURER}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00212}00212         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__msc_8c_a45499e62d7b5a4d5ebb493c6978fd689}{msc\_product}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_a45499e62d7b5a4d5ebb493c6978fd689}{msc\_product}}),}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00213}00213             \mbox{\hyperlink{usb__template__msc_8c_a773ba3938a374725484fb92099192c0f}{MSC\_DEFAULT\_PRODUCT}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00214}00214         \mbox{\hyperlink{usb__util_8c_a7e0b76fa91e891e0439d03afad4fc889}{usb\_make\_str\_desc}}(\&\mbox{\hyperlink{usb__template__msc_8c_a7a5bd376973244989d36290d673771e5}{msc\_serial\_number}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_a7a5bd376973244989d36290d673771e5}{msc\_serial\_number}}),}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00215}00215             \mbox{\hyperlink{usb__template__msc_8c_a7ef222a4c039eb5b2f8ddf8eed78b774}{MSC\_DEFAULT\_SERIAL\_NUMBER}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00216}00216 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00217}00217         snprintf(parent\_name, \textcolor{keyword}{sizeof}(parent\_name), \textcolor{stringliteral}{"{}\%d"{}}, \mbox{\hyperlink{usb__ioctl_8h_a950bf8e3371138ceb9649d45e9a96340aae4a81f276e856f6a7438fd15671680b}{USB\_TEMP\_MSC}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00218}00218         sysctl\_ctx\_init(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00219}00219 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00220}00220         parent = SYSCTL\_ADD\_NODE(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00221}00221             SYSCTL\_STATIC\_CHILDREN(\_hw\_usb\_templates), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00222}00222             parent\_name, CTLFLAG\_RW | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00223}00223             0, \textcolor{stringliteral}{"{}USB Mass Storage device side template"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00224}00224         SYSCTL\_ADD\_U16(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00225}00225             \textcolor{stringliteral}{"{}vendor\_id"{}}, CTLFLAG\_RWTUN,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00226}00226             \&\mbox{\hyperlink{usb__template__msc_8c_aaa15875bc0e9412eaa4140407bf3afa3}{usb\_template\_msc}}.\mbox{\hyperlink{structusb__temp__device__desc_a857be9aeaae625cebc6e227bf7a5cf39}{idVendor}}, 1, \textcolor{stringliteral}{"{}Vendor identifier"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00227}00227         SYSCTL\_ADD\_U16(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00228}00228             \textcolor{stringliteral}{"{}product\_id"{}}, CTLFLAG\_RWTUN,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00229}00229             \&\mbox{\hyperlink{usb__template__msc_8c_aaa15875bc0e9412eaa4140407bf3afa3}{usb\_template\_msc}}.\mbox{\hyperlink{structusb__temp__device__desc_a494cea07a085ef1e5e5a884246403c5f}{idProduct}}, 1, \textcolor{stringliteral}{"{}Product identifier"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00230}00230 \textcolor{preprocessor}{\#if 0}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00231}00231         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00232}00232             \textcolor{stringliteral}{"{}interface"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00233}00233             \&\mbox{\hyperlink{usb__template__msc_8c_aecb966d9f1ba8d8dd9b29b42097265f5}{msc\_interface}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_aecb966d9f1ba8d8dd9b29b42097265f5}{msc\_interface}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00234}00234             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Interface string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00235}00235         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00236}00236             \textcolor{stringliteral}{"{}configuration"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00237}00237             \&\mbox{\hyperlink{usb__template__msc_8c_aed8fd8983dcbce9751b179a2b55a4f3f}{msc\_configuration}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_aed8fd8983dcbce9751b179a2b55a4f3f}{msc\_configuration}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00238}00238             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Configuration string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00239}00239 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00240}00240         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00241}00241             \textcolor{stringliteral}{"{}manufacturer"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00242}00242             \&\mbox{\hyperlink{usb__template__msc_8c_a43bff8493302c8909909a2077062515a}{msc\_manufacturer}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_a43bff8493302c8909909a2077062515a}{msc\_manufacturer}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00243}00243             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Manufacturer string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00244}00244         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00245}00245             \textcolor{stringliteral}{"{}product"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00246}00246             \&\mbox{\hyperlink{usb__template__msc_8c_a45499e62d7b5a4d5ebb493c6978fd689}{msc\_product}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_a45499e62d7b5a4d5ebb493c6978fd689}{msc\_product}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00247}00247             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Product string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00248}00248         SYSCTL\_ADD\_PROC(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}}, SYSCTL\_CHILDREN(parent), OID\_AUTO,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00249}00249             \textcolor{stringliteral}{"{}serial\_number"{}}, CTLTYPE\_STRING | CTLFLAG\_RWTUN | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00250}00250             \&\mbox{\hyperlink{usb__template__msc_8c_a7a5bd376973244989d36290d673771e5}{msc\_serial\_number}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{usb__template__msc_8c_a7a5bd376973244989d36290d673771e5}{msc\_serial\_number}}), \mbox{\hyperlink{usb__template_8c_ac1536ea79836e5972f25ba49ab7d0b40}{usb\_temp\_sysctl}},}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00251}00251             \textcolor{stringliteral}{"{}A"{}}, \textcolor{stringliteral}{"{}Serial number string"{}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00252}00252 \}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00253}00253 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00254}00254 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00255}\mbox{\hyperlink{usb__template__msc_8c_a91c41e89ecfaa8da7a9b4d01b3576485}{00255}} \mbox{\hyperlink{usb__template__msc_8c_a91c41e89ecfaa8da7a9b4d01b3576485}{msc\_uninit}}(\textcolor{keywordtype}{void} *arg \_\_unused)}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00256}00256 \{}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00257}00257 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00258}00258         sysctl\_ctx\_free(\&\mbox{\hyperlink{usb__template__msc_8c_ac3f480a4c20f571df655b9f96690cdc0}{msc\_ctx\_list}});}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00259}00259 \}}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00260}00260 }
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00261}\mbox{\hyperlink{usb__template__msc_8c_a717ab8049580348e07ece110ddbc249c}{00261}} \mbox{\hyperlink{usb__template__msc_8c_a717ab8049580348e07ece110ddbc249c}{SYSINIT}}(\mbox{\hyperlink{usb__template__msc_8c_a8a17b9833b0e51e06a0c603e9a8c6f00}{msc\_init}}, SI\_SUB\_LOCK, SI\_ORDER\_FIRST, \mbox{\hyperlink{usb__template__msc_8c_a8a17b9833b0e51e06a0c603e9a8c6f00}{msc\_init}}, NULL);}
\DoxyCodeLine{\Hypertarget{usb__template__msc_8c_source_l00262}\mbox{\hyperlink{usb__template__msc_8c_af7cc5cfe93b861a0fa45c5603ec24612}{00262}} \mbox{\hyperlink{usb__template__msc_8c_af7cc5cfe93b861a0fa45c5603ec24612}{SYSUNINIT}}(\mbox{\hyperlink{usb__template__msc_8c_a91c41e89ecfaa8da7a9b4d01b3576485}{msc\_uninit}}, SI\_SUB\_LOCK, SI\_ORDER\_FIRST, \mbox{\hyperlink{usb__template__msc_8c_a91c41e89ecfaa8da7a9b4d01b3576485}{msc\_uninit}}, NULL);}

\end{DoxyCode}
