\hypertarget{uhid__snes_8c}{}\doxysection{dev/usb/input/uhid\+\_\+snes.c File Reference}
\label{uhid__snes_8c}\index{dev/usb/input/uhid\_snes.c@{dev/usb/input/uhid\_snes.c}}
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/module.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/conf.\+h$>$}\newline
{\ttfamily \#include $<$sys/bus.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/mutex.\+h$>$}\newline
{\ttfamily \#include $<$sys/syslog.\+h$>$}\newline
{\ttfamily \#include $<$sys/fcntl.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usb.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usbdi.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usbdi\+\_\+util.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usbhid.\+h$>$}\newline
{\ttfamily \#include $<$dev/usb/usb\+\_\+ioctl.\+h$>$}\newline
{\ttfamily \#include \char`\"{}usb\+\_\+rdesc.\+h\char`\"{}}\newline
Include dependency graph for uhid\+\_\+snes.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d2/d28/uhid__snes_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structuhid__snes__softc}{uhid\+\_\+snes\+\_\+softc}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_ad14216bcc8924974535ca9c0a904b297}{UHID\+\_\+\+SNES\+\_\+\+IFQ\+\_\+\+MAX\+\_\+\+LEN}}~8
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_aa319f866a1bd353a045b9ac4fe64c1c2}{UREQ\+\_\+\+GET\+\_\+\+PORT\+\_\+\+STATUS}}~0x01
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a754dcfd3280d5f8710292d6f84f6a331}{UREQ\+\_\+\+SOFT\+\_\+\+RESET}}~0x02
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a1965eaca47dbf3f87acdafc2208f04eb}{UP}}~0x7f00
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a4193cd1c8c2e6ebd0e056fa2364a663f}{DOWN}}~0x7fff
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a437ef08681e7210d6678427030446a54}{LEFT}}~0x00ff
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a80fb826a684cf3f0d306b22aa100ddac}{RIGHT}}~0xff7f
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a207fd5507206d307cd63f95374fcd00d}{X}}~0x1f
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a798e4073d613ca5ba9618e1b3253df14}{Y}}~0x8f
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a955f504eccf76b4eb2489c0adab03121}{A}}~0x2f
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a111da81ae5883147168bbb8366377b10}{B}}~0x4f
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a53dc4af00adc7b3b4d12eafb71596dfc}{SELECT}}~0x10
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a3018c7600b7bb9866400596a56a57af7}{START}}~0x20
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a92ff133ff34ec693bb1f95c570006d4d}{LEFT\+\_\+T}}~0x01
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a64bb95bb4559bc325bf32e4d076aff5c}{RIGHT\+\_\+T}}~0x02
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_aaaa2dbd7c55c8c5c62a360a0b46c1588}{SNES\+\_\+\+DEV}}(v,  p,  i)~\{ \mbox{\hyperlink{usbdi_8h_acdab3edd999014815e8baeb9b33e9071}{USB\+\_\+\+VPI}}(v,p,i) \}
\item 
\#define \mbox{\hyperlink{uhid__snes_8c_a1e6186d15148511ed79729a8e68bb324}{UHID\+\_\+\+FLAG\+\_\+\+IMMED}}~0x01 /$\ast$ set if read should be immediate $\ast$/
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \{ \mbox{\hyperlink{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7eae6b6a584ad81be77c22c3ef6b6fe6}{UHID\+\_\+\+SNES\+\_\+\+INTR\+\_\+\+DT\+\_\+\+RD}}
, \mbox{\hyperlink{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a85fd1b0c7df61ac10774470c1406bf3c}{UHID\+\_\+\+SNES\+\_\+\+STATUS\+\_\+\+DT\+\_\+\+RD}}
, \mbox{\hyperlink{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7e69955448044c8a03733776b1438915}{UHID\+\_\+\+SNES\+\_\+\+N\+\_\+\+TRANSFER}}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \mbox{\hyperlink{uhid__snes_8c_a94fd0c51404f665e0b916efa8a37ef47}{uhid\+\_\+snes\+\_\+reset}} (struct \mbox{\hyperlink{structuhid__snes__softc}{uhid\+\_\+snes\+\_\+softc}} $\ast$)
\item 
static void \mbox{\hyperlink{uhid__snes_8c_a672e20e49642cd382258896a3b988486}{uhid\+\_\+snes\+\_\+watchdog}} (void $\ast$)
\item 
static int \mbox{\hyperlink{uhid__snes_8c_a3a1de98f8993f46574b6d6863e747f66}{uhid\+\_\+get\+\_\+report}} (struct \mbox{\hyperlink{structuhid__snes__softc}{uhid\+\_\+snes\+\_\+softc}} $\ast$sc, uint8\+\_\+t \textbf{ type}, uint8\+\_\+t \mbox{\hyperlink{if__usievar_8h_a1e6927fa1486224044e568f9c370519b}{id}}, void $\ast$kern\+\_\+data, void $\ast$user\+\_\+data, uint16\+\_\+t \mbox{\hyperlink{if__usievar_8h_a8aed22e2c7b283705ec82e0120515618}{len}})
\item 
static int \mbox{\hyperlink{uhid__snes_8c_abac00ce667cb7096c4fa315160b62d7c}{uhid\+\_\+set\+\_\+report}} (struct \mbox{\hyperlink{structuhid__snes__softc}{uhid\+\_\+snes\+\_\+softc}} $\ast$sc, uint8\+\_\+t \textbf{ type}, uint8\+\_\+t \mbox{\hyperlink{if__usievar_8h_a1e6927fa1486224044e568f9c370519b}{id}}, void $\ast$kern\+\_\+data, void $\ast$user\+\_\+data, uint16\+\_\+t \mbox{\hyperlink{if__usievar_8h_a8aed22e2c7b283705ec82e0120515618}{len}})
\item 
static int \mbox{\hyperlink{uhid__snes_8c_a9223c84c661906a1177fc382caa83023}{uhid\+\_\+snes\+\_\+open}} (struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$fifo, int fflags)
\item 
static void \mbox{\hyperlink{uhid__snes_8c_aa067d0834c3c7a90b952dbef6891cc89}{uhid\+\_\+snes\+\_\+close}} (struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$fifo, int fflags)
\item 
static int \mbox{\hyperlink{uhid__snes_8c_a029a10be6eace81bf3dc6138d0a116cb}{uhid\+\_\+snes\+\_\+ioctl}} (struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$fifo, u\+\_\+long cmd, void $\ast$\textbf{ data}, int fflags)
\item 
static void \mbox{\hyperlink{uhid__snes_8c_ab823265ce2edab559e8f2e3e8bf5fe43}{uhid\+\_\+snes\+\_\+start\+\_\+read}} (struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$fifo)
\item 
static void \mbox{\hyperlink{uhid__snes_8c_a6c68f0a0c7f645feff270b11bee97c0e}{uhid\+\_\+snes\+\_\+stop\+\_\+read}} (struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$fifo)
\item 
static void \mbox{\hyperlink{uhid__snes_8c_aacd3c25ce080a5120639a3b77c380ef1}{uhid\+\_\+snes\+\_\+read\+\_\+callback}} (struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$transfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})
\item 
static void \mbox{\hyperlink{uhid__snes_8c_acc24bccb43dbae9d6d4f929ddb404118}{uhid\+\_\+snes\+\_\+status\+\_\+callback}} (struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$transfer, \mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}} \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}})
\item 
static int \mbox{\hyperlink{uhid__snes_8c_abbbf702abf6c1ce9cae35570e5bdc8e6}{uhid\+\_\+snes\+\_\+probe}} (device\+\_\+t \textbf{ dev})
\item 
static int \mbox{\hyperlink{uhid__snes_8c_a079d7049bb3e828b18cf4de2583e7ce9}{uhid\+\_\+snes\+\_\+attach}} (device\+\_\+t \textbf{ dev})
\item 
static int \mbox{\hyperlink{uhid__snes_8c_abae80ecb94a5d79bac4e59766a96205a}{uhid\+\_\+snes\+\_\+detach}} (device\+\_\+t \textbf{ dev})
\item 
\mbox{\hyperlink{uhid__snes_8c_a0631cc84e2cb4887604af9488df298c5}{DRIVER\+\_\+\+MODULE}} (uhid\+\_\+snes, uhub, \mbox{\hyperlink{uhid__snes_8c_a86bc67ee937ab34d1a62b53265ddaae1}{uhid\+\_\+snes\+\_\+driver}}, \mbox{\hyperlink{uhid__snes_8c_a4e9acdbd7549d2f94c87c9d3b6d35332}{uhid\+\_\+snes\+\_\+devclass}}, NULL, 0)
\item 
\mbox{\hyperlink{uhid__snes_8c_a17aa02b6c84b5a2edc45754de89d61ea}{MODULE\+\_\+\+DEPEND}} (uhid\+\_\+snes, \mbox{\hyperlink{usb__if_8m_adfa3f6da9c4881e494b180c4ebb06470}{usb}}, 1, 1, 1)
\item 
\mbox{\hyperlink{uhid__snes_8c_a33b20d7c3581c2d9c0e4178d81e90444}{USB\+\_\+\+PNP\+\_\+\+HOST\+\_\+\+INFO}} (\mbox{\hyperlink{uhid__snes_8c_af4f2ec6b5e4d36cf82b79e2be0d19a27}{snes\+\_\+devs}})
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const uint8\+\_\+t \mbox{\hyperlink{uhid__snes_8c_adbdca8f59336a9b5c77557041707e687}{uhid\+\_\+snes\+\_\+report\+\_\+descr}} \mbox{[}$\,$\mbox{]} = \{ \mbox{\hyperlink{usb__rdesc_8h_a0a62ac06d82aed7fc23302c4a02d605f}{UHID\+\_\+\+SNES\+\_\+\+REPORT\+\_\+\+DESCR}}() \}
\item 
static const \mbox{\hyperlink{usbdi_8h_acf836fd8d6349b66a31f45420728da8d}{STRUCT\+\_\+\+USB\+\_\+\+HOST\+\_\+\+ID}} \mbox{\hyperlink{uhid__snes_8c_af4f2ec6b5e4d36cf82b79e2be0d19a27}{snes\+\_\+devs}} \mbox{[}$\,$\mbox{]}
\item 
static device\+\_\+probe\+\_\+t \mbox{\hyperlink{uhid__snes_8c_a3a57892c0f2e3aabe9c98e1eb1719674}{uhid\+\_\+snes\+\_\+probe}}
\item 
static device\+\_\+attach\+\_\+t \mbox{\hyperlink{uhid__snes_8c_a47d5c764aee8480c3d6bc711440ad3db}{uhid\+\_\+snes\+\_\+attach}}
\item 
static device\+\_\+detach\+\_\+t \mbox{\hyperlink{uhid__snes_8c_a7571c539573c897ce5d7c18031c2f2b3}{uhid\+\_\+snes\+\_\+detach}}
\item 
static \mbox{\hyperlink{usbdi_8h_abf627b9df5961890963bce30a2cf9e1d}{usb\+\_\+fifo\+\_\+open\+\_\+t}} \mbox{\hyperlink{uhid__snes_8c_ae72b24c987b7acfc379f4ac746ac52b6}{uhid\+\_\+snes\+\_\+open}}
\item 
static \mbox{\hyperlink{usbdi_8h_a1f11bee0038616aab627d2eb67a544b5}{usb\+\_\+fifo\+\_\+close\+\_\+t}} \mbox{\hyperlink{uhid__snes_8c_a2c1cd5036db52f4b145863c77eb9961f}{uhid\+\_\+snes\+\_\+close}}
\item 
static \mbox{\hyperlink{usbdi_8h_a1216ed6c6a9a63cba57811e6fe1f7fea}{usb\+\_\+fifo\+\_\+ioctl\+\_\+t}} \mbox{\hyperlink{uhid__snes_8c_afa85e66703fe9ad3b173fa76d452f741}{uhid\+\_\+snes\+\_\+ioctl}}
\item 
static \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\+\_\+fifo\+\_\+cmd\+\_\+t}} \mbox{\hyperlink{uhid__snes_8c_afa160861f16bf600887172ea04c2d2a5}{uhid\+\_\+snes\+\_\+start\+\_\+read}}
\item 
static \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\+\_\+fifo\+\_\+cmd\+\_\+t}} \mbox{\hyperlink{uhid__snes_8c_ae04367f2c51787451ca6e789958482bb}{uhid\+\_\+snes\+\_\+stop\+\_\+read}}
\item 
static \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} \mbox{\hyperlink{uhid__snes_8c_a5afe580c77761ebfcf87e897fa315ce6}{uhid\+\_\+snes\+\_\+read\+\_\+callback}}
\item 
static \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} \mbox{\hyperlink{uhid__snes_8c_abf8c1947a26ab96f0c2499178820f0ee}{uhid\+\_\+snes\+\_\+status\+\_\+callback}}
\item 
static struct \mbox{\hyperlink{structusb__fifo__methods}{usb\+\_\+fifo\+\_\+methods}} \mbox{\hyperlink{uhid__snes_8c_a93443e095e01e2cfb8642fda23c402d3}{uhid\+\_\+snes\+\_\+fifo\+\_\+methods}}
\item 
static const struct \mbox{\hyperlink{structusb__config}{usb\+\_\+config}} \mbox{\hyperlink{uhid__snes_8c_a3ddee7f97f73ade7c9044eb847aa3e40}{uhid\+\_\+snes\+\_\+config}} \mbox{[}\mbox{\hyperlink{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7e69955448044c8a03733776b1438915}{UHID\+\_\+\+SNES\+\_\+\+N\+\_\+\+TRANSFER}}\mbox{]}
\item 
static device\+\_\+method\+\_\+t \mbox{\hyperlink{uhid__snes_8c_af718aa1f730ef29697f48a0afa457ad3}{uhid\+\_\+snes\+\_\+methods}} \mbox{[}$\,$\mbox{]}
\item 
static driver\+\_\+t \mbox{\hyperlink{uhid__snes_8c_a86bc67ee937ab34d1a62b53265ddaae1}{uhid\+\_\+snes\+\_\+driver}}
\item 
static devclass\+\_\+t \mbox{\hyperlink{uhid__snes_8c_a4e9acdbd7549d2f94c87c9d3b6d35332}{uhid\+\_\+snes\+\_\+devclass}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{uhid__snes_8c_a955f504eccf76b4eb2489c0adab03121}\label{uhid__snes_8c_a955f504eccf76b4eb2489c0adab03121}} 
\index{uhid\_snes.c@{uhid\_snes.c}!A@{A}}
\index{A@{A}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{A}{A}}
{\footnotesize\ttfamily \#define A~0x2f}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00064}{64}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a111da81ae5883147168bbb8366377b10}\label{uhid__snes_8c_a111da81ae5883147168bbb8366377b10}} 
\index{uhid\_snes.c@{uhid\_snes.c}!B@{B}}
\index{B@{B}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{B}{B}}
{\footnotesize\ttfamily \#define B~0x4f}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00065}{65}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a4193cd1c8c2e6ebd0e056fa2364a663f}\label{uhid__snes_8c_a4193cd1c8c2e6ebd0e056fa2364a663f}} 
\index{uhid\_snes.c@{uhid\_snes.c}!DOWN@{DOWN}}
\index{DOWN@{DOWN}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{DOWN}{DOWN}}
{\footnotesize\ttfamily \#define DOWN~0x7fff}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00059}{59}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a437ef08681e7210d6678427030446a54}\label{uhid__snes_8c_a437ef08681e7210d6678427030446a54}} 
\index{uhid\_snes.c@{uhid\_snes.c}!LEFT@{LEFT}}
\index{LEFT@{LEFT}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{LEFT}{LEFT}}
{\footnotesize\ttfamily \#define LEFT~0x00ff}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00060}{60}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a92ff133ff34ec693bb1f95c570006d4d}\label{uhid__snes_8c_a92ff133ff34ec693bb1f95c570006d4d}} 
\index{uhid\_snes.c@{uhid\_snes.c}!LEFT\_T@{LEFT\_T}}
\index{LEFT\_T@{LEFT\_T}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{LEFT\_T}{LEFT\_T}}
{\footnotesize\ttfamily \#define LEFT\+\_\+T~0x01}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00068}{68}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a80fb826a684cf3f0d306b22aa100ddac}\label{uhid__snes_8c_a80fb826a684cf3f0d306b22aa100ddac}} 
\index{uhid\_snes.c@{uhid\_snes.c}!RIGHT@{RIGHT}}
\index{RIGHT@{RIGHT}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{RIGHT}{RIGHT}}
{\footnotesize\ttfamily \#define RIGHT~0xff7f}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00061}{61}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a64bb95bb4559bc325bf32e4d076aff5c}\label{uhid__snes_8c_a64bb95bb4559bc325bf32e4d076aff5c}} 
\index{uhid\_snes.c@{uhid\_snes.c}!RIGHT\_T@{RIGHT\_T}}
\index{RIGHT\_T@{RIGHT\_T}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{RIGHT\_T}{RIGHT\_T}}
{\footnotesize\ttfamily \#define RIGHT\+\_\+T~0x02}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00069}{69}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a53dc4af00adc7b3b4d12eafb71596dfc}\label{uhid__snes_8c_a53dc4af00adc7b3b4d12eafb71596dfc}} 
\index{uhid\_snes.c@{uhid\_snes.c}!SELECT@{SELECT}}
\index{SELECT@{SELECT}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{SELECT}{SELECT}}
{\footnotesize\ttfamily \#define SELECT~0x10}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00066}{66}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_aaaa2dbd7c55c8c5c62a360a0b46c1588}\label{uhid__snes_8c_aaaa2dbd7c55c8c5c62a360a0b46c1588}} 
\index{uhid\_snes.c@{uhid\_snes.c}!SNES\_DEV@{SNES\_DEV}}
\index{SNES\_DEV@{SNES\_DEV}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{SNES\_DEV}{SNES\_DEV}}
{\footnotesize\ttfamily \#define SNES\+\_\+\+DEV(\begin{DoxyParamCaption}\item[{}]{v,  }\item[{}]{p,  }\item[{}]{i }\end{DoxyParamCaption})~\{ \mbox{\hyperlink{usbdi_8h_acdab3edd999014815e8baeb9b33e9071}{USB\+\_\+\+VPI}}(v,p,i) \}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00072}{72}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a3018c7600b7bb9866400596a56a57af7}\label{uhid__snes_8c_a3018c7600b7bb9866400596a56a57af7}} 
\index{uhid\_snes.c@{uhid\_snes.c}!START@{START}}
\index{START@{START}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{START}{START}}
{\footnotesize\ttfamily \#define START~0x20}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00067}{67}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a1e6186d15148511ed79729a8e68bb324}\label{uhid__snes_8c_a1e6186d15148511ed79729a8e68bb324}} 
\index{uhid\_snes.c@{uhid\_snes.c}!UHID\_FLAG\_IMMED@{UHID\_FLAG\_IMMED}}
\index{UHID\_FLAG\_IMMED@{UHID\_FLAG\_IMMED}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{UHID\_FLAG\_IMMED}{UHID\_FLAG\_IMMED}}
{\footnotesize\ttfamily \#define UHID\+\_\+\+FLAG\+\_\+\+IMMED~0x01 /$\ast$ set if read should be immediate $\ast$/}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00112}{112}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_ad14216bcc8924974535ca9c0a904b297}\label{uhid__snes_8c_ad14216bcc8924974535ca9c0a904b297}} 
\index{uhid\_snes.c@{uhid\_snes.c}!UHID\_SNES\_IFQ\_MAX\_LEN@{UHID\_SNES\_IFQ\_MAX\_LEN}}
\index{UHID\_SNES\_IFQ\_MAX\_LEN@{UHID\_SNES\_IFQ\_MAX\_LEN}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{UHID\_SNES\_IFQ\_MAX\_LEN}{UHID\_SNES\_IFQ\_MAX\_LEN}}
{\footnotesize\ttfamily \#define UHID\+\_\+\+SNES\+\_\+\+IFQ\+\_\+\+MAX\+\_\+\+LEN~8}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00053}{53}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a1965eaca47dbf3f87acdafc2208f04eb}\label{uhid__snes_8c_a1965eaca47dbf3f87acdafc2208f04eb}} 
\index{uhid\_snes.c@{uhid\_snes.c}!UP@{UP}}
\index{UP@{UP}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{UP}{UP}}
{\footnotesize\ttfamily \#define UP~0x7f00}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00058}{58}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_aa319f866a1bd353a045b9ac4fe64c1c2}\label{uhid__snes_8c_aa319f866a1bd353a045b9ac4fe64c1c2}} 
\index{uhid\_snes.c@{uhid\_snes.c}!UREQ\_GET\_PORT\_STATUS@{UREQ\_GET\_PORT\_STATUS}}
\index{UREQ\_GET\_PORT\_STATUS@{UREQ\_GET\_PORT\_STATUS}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{UREQ\_GET\_PORT\_STATUS}{UREQ\_GET\_PORT\_STATUS}}
{\footnotesize\ttfamily \#define UREQ\+\_\+\+GET\+\_\+\+PORT\+\_\+\+STATUS~0x01}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00055}{55}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a754dcfd3280d5f8710292d6f84f6a331}\label{uhid__snes_8c_a754dcfd3280d5f8710292d6f84f6a331}} 
\index{uhid\_snes.c@{uhid\_snes.c}!UREQ\_SOFT\_RESET@{UREQ\_SOFT\_RESET}}
\index{UREQ\_SOFT\_RESET@{UREQ\_SOFT\_RESET}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{UREQ\_SOFT\_RESET}{UREQ\_SOFT\_RESET}}
{\footnotesize\ttfamily \#define UREQ\+\_\+\+SOFT\+\_\+\+RESET~0x02}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00056}{56}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a207fd5507206d307cd63f95374fcd00d}\label{uhid__snes_8c_a207fd5507206d307cd63f95374fcd00d}} 
\index{uhid\_snes.c@{uhid\_snes.c}!X@{X}}
\index{X@{X}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{X}{X}}
{\footnotesize\ttfamily \#define X~0x1f}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00062}{62}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a798e4073d613ca5ba9618e1b3253df14}\label{uhid__snes_8c_a798e4073d613ca5ba9618e1b3253df14}} 
\index{uhid\_snes.c@{uhid\_snes.c}!Y@{Y}}
\index{Y@{Y}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{Y}{Y}}
{\footnotesize\ttfamily \#define Y~0x8f}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00063}{63}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388}\label{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388}} 
\doxysubsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily anonymous enum}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{UHID\_SNES\_INTR\_DT\_RD@{UHID\_SNES\_INTR\_DT\_RD}!uhid\_snes.c@{uhid\_snes.c}}\index{uhid\_snes.c@{uhid\_snes.c}!UHID\_SNES\_INTR\_DT\_RD@{UHID\_SNES\_INTR\_DT\_RD}}}\mbox{\Hypertarget{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7eae6b6a584ad81be77c22c3ef6b6fe6}\label{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7eae6b6a584ad81be77c22c3ef6b6fe6}} 
UHID\+\_\+\+SNES\+\_\+\+INTR\+\_\+\+DT\+\_\+\+RD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{UHID\_SNES\_STATUS\_DT\_RD@{UHID\_SNES\_STATUS\_DT\_RD}!uhid\_snes.c@{uhid\_snes.c}}\index{uhid\_snes.c@{uhid\_snes.c}!UHID\_SNES\_STATUS\_DT\_RD@{UHID\_SNES\_STATUS\_DT\_RD}}}\mbox{\Hypertarget{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a85fd1b0c7df61ac10774470c1406bf3c}\label{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a85fd1b0c7df61ac10774470c1406bf3c}} 
UHID\+\_\+\+SNES\+\_\+\+STATUS\+\_\+\+DT\+\_\+\+RD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{UHID\_SNES\_N\_TRANSFER@{UHID\_SNES\_N\_TRANSFER}!uhid\_snes.c@{uhid\_snes.c}}\index{uhid\_snes.c@{uhid\_snes.c}!UHID\_SNES\_N\_TRANSFER@{UHID\_SNES\_N\_TRANSFER}}}\mbox{\Hypertarget{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7e69955448044c8a03733776b1438915}\label{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7e69955448044c8a03733776b1438915}} 
UHID\+\_\+\+SNES\+\_\+\+N\+\_\+\+TRANSFER&\\
\hline

\end{DoxyEnumFields}


Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00079}{79}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{uhid__snes_8c_a0631cc84e2cb4887604af9488df298c5}\label{uhid__snes_8c_a0631cc84e2cb4887604af9488df298c5}} 
\index{uhid\_snes.c@{uhid\_snes.c}!DRIVER\_MODULE@{DRIVER\_MODULE}}
\index{DRIVER\_MODULE@{DRIVER\_MODULE}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{DRIVER\_MODULE()}{DRIVER\_MODULE()}}
{\footnotesize\ttfamily DRIVER\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{uhid\+\_\+snes}]{,  }\item[{uhub}]{,  }\item[{\mbox{\hyperlink{uhid__snes_8c_a86bc67ee937ab34d1a62b53265ddaae1}{uhid\+\_\+snes\+\_\+driver}}}]{,  }\item[{\mbox{\hyperlink{uhid__snes_8c_a4e9acdbd7549d2f94c87c9d3b6d35332}{uhid\+\_\+snes\+\_\+devclass}}}]{,  }\item[{NULL}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{uhid__snes_8c_a17aa02b6c84b5a2edc45754de89d61ea}\label{uhid__snes_8c_a17aa02b6c84b5a2edc45754de89d61ea}} 
\index{uhid\_snes.c@{uhid\_snes.c}!MODULE\_DEPEND@{MODULE\_DEPEND}}
\index{MODULE\_DEPEND@{MODULE\_DEPEND}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_DEPEND()}{MODULE\_DEPEND()}}
{\footnotesize\ttfamily MODULE\+\_\+\+DEPEND (\begin{DoxyParamCaption}\item[{uhid\+\_\+snes}]{,  }\item[{\mbox{\hyperlink{usb__if_8m_adfa3f6da9c4881e494b180c4ebb06470}{usb}}}]{,  }\item[{1}]{,  }\item[{1}]{,  }\item[{1}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{uhid__snes_8c_a3a1de98f8993f46574b6d6863e747f66}\label{uhid__snes_8c_a3a1de98f8993f46574b6d6863e747f66}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_get\_report@{uhid\_get\_report}}
\index{uhid\_get\_report@{uhid\_get\_report}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_get\_report()}{uhid\_get\_report()}}
{\footnotesize\ttfamily static int uhid\+\_\+get\+\_\+report (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structuhid__snes__softc}{uhid\+\_\+snes\+\_\+softc}} $\ast$}]{sc,  }\item[{uint8\+\_\+t}]{type,  }\item[{uint8\+\_\+t}]{id,  }\item[{void $\ast$}]{kern\+\_\+data,  }\item[{void $\ast$}]{user\+\_\+data,  }\item[{uint16\+\_\+t}]{len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00162}{162}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{ehci_8h_source_l00041}{len}}, \mbox{\hyperlink{uhid__snes_8c_source_l00101}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+iface\+\_\+index}}, \mbox{\hyperlink{uhid__snes_8c_source_l00111}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+udev}}, \textbf{ type}, and \mbox{\hyperlink{usb__request_8c_source_l01834}{usbd\+\_\+req\+\_\+get\+\_\+report()}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00280}{uhid\+\_\+snes\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_a3a1de98f8993f46574b6d6863e747f66_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=301pt]{db/d1e/uhid__snes_8c_a3a1de98f8993f46574b6d6863e747f66_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_abac00ce667cb7096c4fa315160b62d7c}\label{uhid__snes_8c_abac00ce667cb7096c4fa315160b62d7c}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_set\_report@{uhid\_set\_report}}
\index{uhid\_set\_report@{uhid\_set\_report}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_set\_report()}{uhid\_set\_report()}}
{\footnotesize\ttfamily static int uhid\+\_\+set\+\_\+report (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structuhid__snes__softc}{uhid\+\_\+snes\+\_\+softc}} $\ast$}]{sc,  }\item[{uint8\+\_\+t}]{type,  }\item[{uint8\+\_\+t}]{id,  }\item[{void $\ast$}]{kern\+\_\+data,  }\item[{void $\ast$}]{user\+\_\+data,  }\item[{uint16\+\_\+t}]{len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00193}{193}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{ehci_8h_source_l00041}{len}}, \mbox{\hyperlink{uhid__snes_8c_source_l00101}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+iface\+\_\+index}}, \mbox{\hyperlink{uhid__snes_8c_source_l00111}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+udev}}, \textbf{ type}, and \mbox{\hyperlink{usb__request_8c_source_l01806}{usbd\+\_\+req\+\_\+set\+\_\+report()}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00280}{uhid\+\_\+snes\+\_\+ioctl()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_abac00ce667cb7096c4fa315160b62d7c_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=300pt]{db/d1e/uhid__snes_8c_abac00ce667cb7096c4fa315160b62d7c_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_a079d7049bb3e828b18cf4de2583e7ce9}\label{uhid__snes_8c_a079d7049bb3e828b18cf4de2583e7ce9}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_attach@{uhid\_snes\_attach}}
\index{uhid\_snes\_attach@{uhid\_snes\_attach}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_attach()}{uhid\_snes\_attach()}}
{\footnotesize\ttfamily static int uhid\+\_\+snes\+\_\+attach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00545}{545}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{usb_8h_source_l00404}{usb\+\_\+interface\+\_\+descriptor\+::b\+Descriptor\+Type}}, \mbox{\hyperlink{usbdi_8h_source_l00417}{usbd\+\_\+lookup\+\_\+info\+::b\+Iface\+Index}}, \mbox{\hyperlink{usbdi_8h_source_l00418}{usbd\+\_\+lookup\+\_\+info\+::b\+Iface\+Num}}, \mbox{\hyperlink{usb_8h_source_l00408}{usb\+\_\+interface\+\_\+descriptor\+::b\+Interface\+Class}}, \mbox{\hyperlink{usb_8h_source_l00405}{usb\+\_\+interface\+\_\+descriptor\+::b\+Interface\+Number}}, \mbox{\hyperlink{usb_8h_source_l00403}{usb\+\_\+interface\+\_\+descriptor\+::b\+Length}}, \textbf{ dev}, \mbox{\hyperlink{usbdi_8h_source_l00430}{usb\+\_\+attach\+\_\+arg\+::device}}, \mbox{\hyperlink{usb__util_8c_source_l00073}{device\+\_\+set\+\_\+usb\+\_\+desc()}}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{usbdi_8h_source_l00431}{usb\+\_\+attach\+\_\+arg\+::iface}}, \mbox{\hyperlink{usbdi_8h_source_l00426}{usb\+\_\+attach\+\_\+arg\+::info}}, \mbox{\hyperlink{uhid__snes_8c_source_l00086}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+dev}}, \mbox{\hyperlink{uhid__snes_8c_source_l00092}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fifo}}, \mbox{\hyperlink{uhid__snes_8c_source_l00090}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+iface\+\_\+num}}, \mbox{\hyperlink{uhid__snes_8c_source_l00088}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+mutex}}, \mbox{\hyperlink{uhid__snes_8c_source_l00107}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+repdesc\+\_\+ptr}}, \mbox{\hyperlink{uhid__snes_8c_source_l00109}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+repdesc\+\_\+size}}, \mbox{\hyperlink{uhid__snes_8c_source_l00091}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+transfer}}, \mbox{\hyperlink{uhid__snes_8c_source_l00087}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+usb\+\_\+device}}, \mbox{\hyperlink{uhid__snes_8c_source_l00089}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+watchdog}}, \mbox{\hyperlink{usb_8h_source_l00199}{UDESC\+\_\+\+INTERFACE}}, \mbox{\hyperlink{uhid__snes_8c_source_l00141}{uhid\+\_\+snes\+\_\+config}}, \mbox{\hyperlink{uhid__snes_8c_source_l00118}{uhid\+\_\+snes\+\_\+detach}}, \mbox{\hyperlink{uhid__snes_8c_source_l00132}{uhid\+\_\+snes\+\_\+fifo\+\_\+methods}}, \mbox{\hyperlink{uhid__snes_8c_source_l00082}{UHID\+\_\+\+SNES\+\_\+\+N\+\_\+\+TRANSFER}}, \mbox{\hyperlink{uhid__snes_8c_source_l00071}{uhid\+\_\+snes\+\_\+report\+\_\+descr}}, \mbox{\hyperlink{uhid__snes_8c_source_l00415}{uhid\+\_\+snes\+\_\+watchdog()}}, \mbox{\hyperlink{usb_8h_source_l00453}{UICLASS\+\_\+\+HID}}, \mbox{\hyperlink{usbdi_8h_source_l00480}{usb\+\_\+callout\+\_\+init\+\_\+mtx}}, \mbox{\hyperlink{usb__parse_8c_source_l00074}{usb\+\_\+desc\+\_\+foreach()}}, \mbox{\hyperlink{usbdi_8h_a5371ea3e610eb1aab81d81494838ab3e}{usb\+\_\+fifo\+\_\+attach()}}, \mbox{\hyperlink{usb__device_8c_source_l02616}{usbd\+\_\+get\+\_\+config\+\_\+descriptor()}}, \mbox{\hyperlink{usb__device_8c_source_l02654}{usbd\+\_\+get\+\_\+interface\+\_\+descriptor()}}, \mbox{\hyperlink{usb__device_8c_source_l01034}{usbd\+\_\+set\+\_\+alt\+\_\+interface\+\_\+index()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l00987}{usbd\+\_\+transfer\+\_\+setup()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_a079d7049bb3e828b18cf4de2583e7ce9_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_aa067d0834c3c7a90b952dbef6891cc89}\label{uhid__snes_8c_aa067d0834c3c7a90b952dbef6891cc89}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_close@{uhid\_snes\_close}}
\index{uhid\_snes\_close@{uhid\_snes\_close}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_close()}{uhid\_snes\_close()}}
{\footnotesize\ttfamily static void uhid\+\_\+snes\+\_\+close (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$}]{fifo,  }\item[{int}]{fflags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00271}{271}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{uhid__snes_8c_source_l00094}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fflags}}, \mbox{\hyperlink{usbdi_8h_a6434b2c65d370a12bdd87cec8863f1ff}{usb\+\_\+fifo\+\_\+free\+\_\+buffer()}}, and \mbox{\hyperlink{usbdi_8h_a1686d97012d48512200abd8ad0d86d1e}{usb\+\_\+fifo\+\_\+softc()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=325pt]{db/d1e/uhid__snes_8c_aa067d0834c3c7a90b952dbef6891cc89_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_abae80ecb94a5d79bac4e59766a96205a}\label{uhid__snes_8c_abae80ecb94a5d79bac4e59766a96205a}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_detach@{uhid\_snes\_detach}}
\index{uhid\_snes\_detach@{uhid\_snes\_detach}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_detach()}{uhid\_snes\_detach()}}
{\footnotesize\ttfamily static int uhid\+\_\+snes\+\_\+detach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00619}{619}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \textbf{ dev}, \mbox{\hyperlink{uhid__snes_8c_source_l00092}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fifo}}, \mbox{\hyperlink{uhid__snes_8c_source_l00093}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fifo\+\_\+no\+\_\+reset}}, \mbox{\hyperlink{uhid__snes_8c_source_l00088}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+mutex}}, \mbox{\hyperlink{uhid__snes_8c_source_l00091}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+transfer}}, \mbox{\hyperlink{uhid__snes_8c_source_l00089}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+watchdog}}, \mbox{\hyperlink{uhid__snes_8c_source_l00082}{UHID\+\_\+\+SNES\+\_\+\+N\+\_\+\+TRANSFER}}, \mbox{\hyperlink{usbdi_8h_source_l00497}{usb\+\_\+callout\+\_\+drain}}, \mbox{\hyperlink{usbdi_8h_source_l00489}{usb\+\_\+callout\+\_\+stop}}, \mbox{\hyperlink{usbdi_8h_a383e94e216e88e5dd62e6cfe8888ccf9}{usb\+\_\+fifo\+\_\+detach()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l01431}{usbd\+\_\+transfer\+\_\+unsetup()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_abae80ecb94a5d79bac4e59766a96205a_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_a029a10be6eace81bf3dc6138d0a116cb}\label{uhid__snes_8c_a029a10be6eace81bf3dc6138d0a116cb}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_ioctl@{uhid\_snes\_ioctl}}
\index{uhid\_snes\_ioctl@{uhid\_snes\_ioctl}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_ioctl()}{uhid\_snes\_ioctl()}}
{\footnotesize\ttfamily static int uhid\+\_\+snes\+\_\+ioctl (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$}]{fifo,  }\item[{u\+\_\+long}]{cmd,  }\item[{void $\ast$}]{data,  }\item[{int}]{fflags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00280}{280}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \textbf{ data}, \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{if__usievar_8h_source_l00004}{id}}, \mbox{\hyperlink{uhid__snes_8c_source_l00094}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fflags}}, \mbox{\hyperlink{uhid__snes_8c_source_l00100}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fid}}, \mbox{\hyperlink{uhid__snes_8c_source_l00105}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fsize}}, \mbox{\hyperlink{uhid__snes_8c_source_l00098}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+iid}}, \mbox{\hyperlink{uhid__snes_8c_source_l00103}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+isize}}, \mbox{\hyperlink{uhid__snes_8c_source_l00088}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+mutex}}, \mbox{\hyperlink{uhid__snes_8c_source_l00099}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+oid}}, \mbox{\hyperlink{uhid__snes_8c_source_l00104}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+osize}}, \mbox{\hyperlink{uhid__snes_8c_source_l00107}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+repdesc\+\_\+ptr}}, \mbox{\hyperlink{uhid__snes_8c_source_l00109}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+repdesc\+\_\+size}}, \mbox{\hyperlink{if__axge_8c_source_l00089}{size}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00090}{usb\+\_\+gen\+\_\+descriptor\+::ugd\+\_\+actlen}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00087}{usb\+\_\+gen\+\_\+descriptor\+::ugd\+\_\+data}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00089}{usb\+\_\+gen\+\_\+descriptor\+::ugd\+\_\+maxlen}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00097}{usb\+\_\+gen\+\_\+descriptor\+::ugd\+\_\+report\+\_\+type}}, \mbox{\hyperlink{usbhid_8h_source_l00068}{UHID\+\_\+\+FEATURE\+\_\+\+REPORT}}, \mbox{\hyperlink{uhid__snes_8c_source_l00112}{UHID\+\_\+\+FLAG\+\_\+\+IMMED}}, \mbox{\hyperlink{uhid__snes_8c_source_l00162}{uhid\+\_\+get\+\_\+report()}}, \mbox{\hyperlink{usbhid_8h_source_l00066}{UHID\+\_\+\+INPUT\+\_\+\+REPORT}}, \mbox{\hyperlink{usbhid_8h_source_l00067}{UHID\+\_\+\+OUTPUT\+\_\+\+REPORT}}, \mbox{\hyperlink{uhid__snes_8c_source_l00193}{uhid\+\_\+set\+\_\+report()}}, \mbox{\hyperlink{usbdi_8h_a1686d97012d48512200abd8ad0d86d1e}{usb\+\_\+fifo\+\_\+softc()}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00245}{USB\+\_\+\+GET\+\_\+\+REPORT}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00243}{USB\+\_\+\+GET\+\_\+\+REPORT\+\_\+\+DESC}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00247}{USB\+\_\+\+GET\+\_\+\+REPORT\+\_\+\+ID}}, \mbox{\hyperlink{usb__ioctl_8h_source_l00244}{USB\+\_\+\+SET\+\_\+\+IMMED}}, and \mbox{\hyperlink{usb__ioctl_8h_source_l00246}{USB\+\_\+\+SET\+\_\+\+REPORT}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_a029a10be6eace81bf3dc6138d0a116cb_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_a9223c84c661906a1177fc382caa83023}\label{uhid__snes_8c_a9223c84c661906a1177fc382caa83023}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_open@{uhid\_snes\_open}}
\index{uhid\_snes\_open@{uhid\_snes\_open}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_open()}{uhid\_snes\_open()}}
{\footnotesize\ttfamily static int uhid\+\_\+snes\+\_\+open (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$}]{fifo,  }\item[{int}]{fflags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00221}{221}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{uhid__snes_8c_source_l00094}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fflags}}, \mbox{\hyperlink{uhid__snes_8c_source_l00095}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fifo\+\_\+open}}, \mbox{\hyperlink{uhid__snes_8c_source_l00088}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+mutex}}, \mbox{\hyperlink{uhid__snes_8c_source_l00091}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+transfer}}, \mbox{\hyperlink{uhid__snes_8c_source_l00053}{UHID\+\_\+\+SNES\+\_\+\+IFQ\+\_\+\+MAX\+\_\+\+LEN}}, \mbox{\hyperlink{uhid__snes_8c_source_l00080}{UHID\+\_\+\+SNES\+\_\+\+INTR\+\_\+\+DT\+\_\+\+RD}}, \mbox{\hyperlink{uhid__snes_8c_source_l00247}{uhid\+\_\+snes\+\_\+reset()}}, \mbox{\hyperlink{usbdi_8h_a05da54c8f6953ece429c6bb534ef9677}{usb\+\_\+fifo\+\_\+alloc\+\_\+buffer()}}, \mbox{\hyperlink{usbdi_8h_source_l00527}{USB\+\_\+\+FIFO\+\_\+\+RX}}, \mbox{\hyperlink{usbdi_8h_a1686d97012d48512200abd8ad0d86d1e}{usb\+\_\+fifo\+\_\+softc()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02304}{usbd\+\_\+xfer\+\_\+max\+\_\+len()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l02754}{usbd\+\_\+xfer\+\_\+set\+\_\+stall()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_a9223c84c661906a1177fc382caa83023_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_abbbf702abf6c1ce9cae35570e5bdc8e6}\label{uhid__snes_8c_abbbf702abf6c1ce9cae35570e5bdc8e6}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_probe@{uhid\_snes\_probe}}
\index{uhid\_snes\_probe@{uhid\_snes\_probe}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_probe()}{uhid\_snes\_probe()}}
{\footnotesize\ttfamily static int uhid\+\_\+snes\+\_\+probe (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00534}{534}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \textbf{ dev}, \mbox{\hyperlink{uhid__snes_8c_source_l00074}{snes\+\_\+devs}}, \mbox{\hyperlink{usbdi_8h_source_l00432}{usb\+\_\+attach\+\_\+arg\+::usb\+\_\+mode}}, \mbox{\hyperlink{usb_8h_source_l00778}{USB\+\_\+\+MODE\+\_\+\+HOST}}, and \mbox{\hyperlink{usb__lookup_8c_source_l00143}{usbd\+\_\+lookup\+\_\+id\+\_\+by\+\_\+uaa()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_abbbf702abf6c1ce9cae35570e5bdc8e6_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_aacd3c25ce080a5120639a3b77c380ef1}\label{uhid__snes_8c_aacd3c25ce080a5120639a3b77c380ef1}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_read\_callback@{uhid\_snes\_read\_callback}}
\index{uhid\_snes\_read\_callback@{uhid\_snes\_read\_callback}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_read\_callback()}{uhid\_snes\_read\_callback()}}
{\footnotesize\ttfamily static void uhid\+\_\+snes\+\_\+read\+\_\+callback (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$}]{transfer,  }\item[{\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}}}]{error }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00444}{444}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{uhid__snes_8c_source_l00095}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fifo\+\_\+open}}, \mbox{\hyperlink{uhid__snes_8c_source_l00096}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+zero\+\_\+length\+\_\+packets}}, \mbox{\hyperlink{usbdi_8h_source_l00051}{USB\+\_\+\+ERR\+\_\+\+CANCELLED}}, \mbox{\hyperlink{usbdi_8h_ae1674780bb74ed9a3bc64923b8515f1f}{usb\+\_\+fifo\+\_\+put\+\_\+bytes\+\_\+max()}}, \mbox{\hyperlink{usbdi_8h_a444304a04a6daab49a4d9ee6483f5415}{usb\+\_\+fifo\+\_\+put\+\_\+data()}}, \mbox{\hyperlink{usbdi_8h_source_l00527}{USB\+\_\+\+FIFO\+\_\+\+RX}}, \mbox{\hyperlink{usbdi_8h_source_l00515}{USB\+\_\+\+GET\+\_\+\+STATE}}, \mbox{\hyperlink{usbdi_8h_source_l00502}{USB\+\_\+\+ST\+\_\+\+SETUP}}, \mbox{\hyperlink{usbdi_8h_source_l00503}{USB\+\_\+\+ST\+\_\+\+TRANSFERRED}}, \mbox{\hyperlink{usb__transfer_8c_source_l01719}{usbd\+\_\+transfer\+\_\+submit()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02156}{usbd\+\_\+xfer\+\_\+get\+\_\+frame()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02304}{usbd\+\_\+xfer\+\_\+max\+\_\+len()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02316}{usbd\+\_\+xfer\+\_\+set\+\_\+frame\+\_\+len()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02280}{usbd\+\_\+xfer\+\_\+set\+\_\+interval()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02754}{usbd\+\_\+xfer\+\_\+set\+\_\+stall()}}, \mbox{\hyperlink{usb__transfer_8c_source_l03602}{usbd\+\_\+xfer\+\_\+softc()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l02247}{usbd\+\_\+xfer\+\_\+status()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_aacd3c25ce080a5120639a3b77c380ef1_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_a94fd0c51404f665e0b916efa8a37ef47}\label{uhid__snes_8c_a94fd0c51404f665e0b916efa8a37ef47}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_reset@{uhid\_snes\_reset}}
\index{uhid\_snes\_reset@{uhid\_snes\_reset}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_reset()}{uhid\_snes\_reset()}}
{\footnotesize\ttfamily static void uhid\+\_\+snes\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structuhid__snes__softc}{uhid\+\_\+snes\+\_\+softc}} $\ast$}]{sc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00247}{247}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{if__runreg_8h_a9f8f252ecb5b3fb46dafe827231faf70}{error}}, \mbox{\hyperlink{usb__if_8m_source_l00051}{req}}, \mbox{\hyperlink{uhid__snes_8c_source_l00090}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+iface\+\_\+num}}, \mbox{\hyperlink{uhid__snes_8c_source_l00088}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+mutex}}, \mbox{\hyperlink{uhid__snes_8c_source_l00087}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+usb\+\_\+device}}, \mbox{\hyperlink{uhid__snes_8c_source_l00056}{UREQ\+\_\+\+SOFT\+\_\+\+RESET}}, \mbox{\hyperlink{usbdi_8h_source_l00118}{USB\+\_\+\+MS\+\_\+\+HZ}}, \mbox{\hyperlink{usb__request_8c_source_l00405}{usbd\+\_\+do\+\_\+request\+\_\+flags()}}, and \mbox{\hyperlink{usb__endian_8h_source_l00077}{USETW}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00221}{uhid\+\_\+snes\+\_\+open()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_a94fd0c51404f665e0b916efa8a37ef47_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=306pt]{db/d1e/uhid__snes_8c_a94fd0c51404f665e0b916efa8a37ef47_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_ab823265ce2edab559e8f2e3e8bf5fe43}\label{uhid__snes_8c_ab823265ce2edab559e8f2e3e8bf5fe43}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_start\_read@{uhid\_snes\_start\_read}}
\index{uhid\_snes\_start\_read@{uhid\_snes\_start\_read}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_start\_read()}{uhid\_snes\_start\_read()}}
{\footnotesize\ttfamily static void uhid\+\_\+snes\+\_\+start\+\_\+read (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$}]{fifo }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00428}{428}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{uhid__snes_8c_source_l00091}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+transfer}}, \mbox{\hyperlink{uhid__snes_8c_source_l00080}{UHID\+\_\+\+SNES\+\_\+\+INTR\+\_\+\+DT\+\_\+\+RD}}, \mbox{\hyperlink{usbdi_8h_a1686d97012d48512200abd8ad0d86d1e}{usb\+\_\+fifo\+\_\+softc()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l01948}{usbd\+\_\+transfer\+\_\+start()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_ab823265ce2edab559e8f2e3e8bf5fe43_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_acc24bccb43dbae9d6d4f929ddb404118}\label{uhid__snes_8c_acc24bccb43dbae9d6d4f929ddb404118}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_status\_callback@{uhid\_snes\_status\_callback}}
\index{uhid\_snes\_status\_callback@{uhid\_snes\_status\_callback}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_status\_callback()}{uhid\_snes\_status\_callback()}}
{\footnotesize\ttfamily static void uhid\+\_\+snes\+\_\+status\+\_\+callback (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__xfer}{usb\+\_\+xfer}} $\ast$}]{transfer,  }\item[{\mbox{\hyperlink{usbdi_8h_a5daf16538c7ea36dad2de85182c72945}{usb\+\_\+error\+\_\+t}}}]{error }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00496}{496}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{usb__if_8m_source_l00051}{req}}, \mbox{\hyperlink{uhid__snes_8c_source_l00090}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+iface\+\_\+num}}, \mbox{\hyperlink{uhid__snes_8c_source_l00097}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+previous\+\_\+status}}, \mbox{\hyperlink{uhid__snes_8c_source_l00055}{UREQ\+\_\+\+GET\+\_\+\+PORT\+\_\+\+STATUS}}, \mbox{\hyperlink{usbdi_8h_source_l00515}{USB\+\_\+\+GET\+\_\+\+STATE}}, \mbox{\hyperlink{usbdi_8h_source_l00502}{USB\+\_\+\+ST\+\_\+\+SETUP}}, \mbox{\hyperlink{usbdi_8h_source_l00503}{USB\+\_\+\+ST\+\_\+\+TRANSFERRED}}, \mbox{\hyperlink{usb__busdma_8c_source_l00166}{usbd\+\_\+copy\+\_\+in()}}, \mbox{\hyperlink{usb__busdma_8c_source_l00283}{usbd\+\_\+copy\+\_\+out()}}, \mbox{\hyperlink{usb__transfer_8c_source_l01719}{usbd\+\_\+transfer\+\_\+submit()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02156}{usbd\+\_\+xfer\+\_\+get\+\_\+frame()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02316}{usbd\+\_\+xfer\+\_\+set\+\_\+frame\+\_\+len()}}, \mbox{\hyperlink{usb__transfer_8c_source_l02292}{usbd\+\_\+xfer\+\_\+set\+\_\+frames()}}, \mbox{\hyperlink{usb__transfer_8c_source_l03602}{usbd\+\_\+xfer\+\_\+softc()}}, \mbox{\hyperlink{usb__endian_8h_source_l00077}{USETW}}, and \mbox{\hyperlink{usb_8h_source_l00173}{UT\+\_\+\+READ\+\_\+\+CLASS\+\_\+\+INTERFACE}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_acc24bccb43dbae9d6d4f929ddb404118_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_a6c68f0a0c7f645feff270b11bee97c0e}\label{uhid__snes_8c_a6c68f0a0c7f645feff270b11bee97c0e}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_stop\_read@{uhid\_snes\_stop\_read}}
\index{uhid\_snes\_stop\_read@{uhid\_snes\_stop\_read}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_stop\_read()}{uhid\_snes\_stop\_read()}}
{\footnotesize\ttfamily static void uhid\+\_\+snes\+\_\+stop\+\_\+read (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structusb__fifo}{usb\+\_\+fifo}} $\ast$}]{fifo }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00436}{436}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{uhid__snes_8c_source_l00091}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+transfer}}, \mbox{\hyperlink{uhid__snes_8c_source_l00080}{UHID\+\_\+\+SNES\+\_\+\+INTR\+\_\+\+DT\+\_\+\+RD}}, \mbox{\hyperlink{usbdi_8h_a1686d97012d48512200abd8ad0d86d1e}{usb\+\_\+fifo\+\_\+softc()}}, and \mbox{\hyperlink{usb__transfer_8c_source_l01984}{usbd\+\_\+transfer\+\_\+stop()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_a6c68f0a0c7f645feff270b11bee97c0e_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_a672e20e49642cd382258896a3b988486}\label{uhid__snes_8c_a672e20e49642cd382258896a3b988486}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_watchdog@{uhid\_snes\_watchdog}}
\index{uhid\_snes\_watchdog@{uhid\_snes\_watchdog}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_watchdog()}{uhid\_snes\_watchdog()}}
{\footnotesize\ttfamily static void uhid\+\_\+snes\+\_\+watchdog (\begin{DoxyParamCaption}\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00415}{415}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



References \mbox{\hyperlink{uhid__snes_8c_source_l00094}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+fflags}}, \mbox{\hyperlink{uhid__snes_8c_source_l00088}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+mutex}}, \mbox{\hyperlink{uhid__snes_8c_source_l00091}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+transfer}}, \mbox{\hyperlink{uhid__snes_8c_source_l00089}{uhid\+\_\+snes\+\_\+softc\+::sc\+\_\+watchdog}}, \mbox{\hyperlink{uhid__snes_8c_source_l00081}{UHID\+\_\+\+SNES\+\_\+\+STATUS\+\_\+\+DT\+\_\+\+RD}}, \mbox{\hyperlink{uhid__snes_8c_source_l00415}{uhid\+\_\+snes\+\_\+watchdog()}}, \mbox{\hyperlink{usbdi_8h_source_l00481}{usb\+\_\+callout\+\_\+reset}}, and \mbox{\hyperlink{usb__transfer_8c_source_l01948}{usbd\+\_\+transfer\+\_\+start()}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00545}{uhid\+\_\+snes\+\_\+attach()}}, and \mbox{\hyperlink{uhid__snes_8c_source_l00415}{uhid\+\_\+snes\+\_\+watchdog()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{db/d1e/uhid__snes_8c_a672e20e49642cd382258896a3b988486_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=335pt]{db/d1e/uhid__snes_8c_a672e20e49642cd382258896a3b988486_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{uhid__snes_8c_a33b20d7c3581c2d9c0e4178d81e90444}\label{uhid__snes_8c_a33b20d7c3581c2d9c0e4178d81e90444}} 
\index{uhid\_snes.c@{uhid\_snes.c}!USB\_PNP\_HOST\_INFO@{USB\_PNP\_HOST\_INFO}}
\index{USB\_PNP\_HOST\_INFO@{USB\_PNP\_HOST\_INFO}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{USB\_PNP\_HOST\_INFO()}{USB\_PNP\_HOST\_INFO()}}
{\footnotesize\ttfamily USB\+\_\+\+PNP\+\_\+\+HOST\+\_\+\+INFO (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{uhid__snes_8c_af4f2ec6b5e4d36cf82b79e2be0d19a27}{snes\+\_\+devs}}}]{ }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{uhid__snes_8c_af4f2ec6b5e4d36cf82b79e2be0d19a27}\label{uhid__snes_8c_af4f2ec6b5e4d36cf82b79e2be0d19a27}} 
\index{uhid\_snes.c@{uhid\_snes.c}!snes\_devs@{snes\_devs}}
\index{snes\_devs@{snes\_devs}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{snes\_devs}{snes\_devs}}
{\footnotesize\ttfamily const \mbox{\hyperlink{usbdi_8h_acf836fd8d6349b66a31f45420728da8d}{STRUCT\+\_\+\+USB\+\_\+\+HOST\+\_\+\+ID}} snes\+\_\+devs\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \mbox{\hyperlink{uhid__snes_8c_aaaa2dbd7c55c8c5c62a360a0b46c1588}{SNES\_DEV}}(0x0810, 0xe501, 0), }
\DoxyCodeLine{        \mbox{\hyperlink{uhid__snes_8c_aaaa2dbd7c55c8c5c62a360a0b46c1588}{SNES\_DEV}}(0x0079, 0x0011, 0)  }
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00074}{74}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00534}{uhid\+\_\+snes\+\_\+probe()}}.

\mbox{\Hypertarget{uhid__snes_8c_a47d5c764aee8480c3d6bc711440ad3db}\label{uhid__snes_8c_a47d5c764aee8480c3d6bc711440ad3db}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_attach@{uhid\_snes\_attach}}
\index{uhid\_snes\_attach@{uhid\_snes\_attach}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_attach}{uhid\_snes\_attach}}
{\footnotesize\ttfamily device\+\_\+attach\+\_\+t uhid\+\_\+snes\+\_\+attach\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00117}{117}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a2c1cd5036db52f4b145863c77eb9961f}\label{uhid__snes_8c_a2c1cd5036db52f4b145863c77eb9961f}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_close@{uhid\_snes\_close}}
\index{uhid\_snes\_close@{uhid\_snes\_close}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_close}{uhid\_snes\_close}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_a1f11bee0038616aab627d2eb67a544b5}{usb\+\_\+fifo\+\_\+close\+\_\+t}} uhid\+\_\+snes\+\_\+close\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00121}{121}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a3ddee7f97f73ade7c9044eb847aa3e40}\label{uhid__snes_8c_a3ddee7f97f73ade7c9044eb847aa3e40}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_config@{uhid\_snes\_config}}
\index{uhid\_snes\_config@{uhid\_snes\_config}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_config}{uhid\_snes\_config}}
{\footnotesize\ttfamily const struct \mbox{\hyperlink{structusb__config}{usb\+\_\+config}} uhid\+\_\+snes\+\_\+config\mbox{[}\mbox{\hyperlink{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7e69955448044c8a03733776b1438915}{UHID\+\_\+\+SNES\+\_\+\+N\+\_\+\+TRANSFER}}\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        [\mbox{\hyperlink{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a7eae6b6a584ad81be77c22c3ef6b6fe6}{UHID\_SNES\_INTR\_DT\_RD}}] = \{}
\DoxyCodeLine{                .callback = \&\mbox{\hyperlink{uhid__snes_8c_a5afe580c77761ebfcf87e897fa315ce6}{uhid\_snes\_read\_callback}},}
\DoxyCodeLine{                .bufsize = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__request}{usb\_device\_request}}) +1,}
\DoxyCodeLine{                .flags = \{.short\_xfer\_ok = 1, .short\_frames\_ok = 1,}
\DoxyCodeLine{                          .pipe\_bof =1, .proxy\_buffer =1\},}
\DoxyCodeLine{                .type = \mbox{\hyperlink{usb_8h_a01e28e87ad16f6dfffefc6ccab08baed}{UE\_INTERRUPT}},}
\DoxyCodeLine{                .endpoint = 0x81,}
\DoxyCodeLine{                .direction = \mbox{\hyperlink{usb_8h_a72bb077a860132c175c166f344c75893}{UE\_DIR\_IN}}}
\DoxyCodeLine{        \},}
\DoxyCodeLine{        [\mbox{\hyperlink{uhid__snes_8c_a385c44f6fb256e5716a2302a5b940388a85fd1b0c7df61ac10774470c1406bf3c}{UHID\_SNES\_STATUS\_DT\_RD}}] = \{}
\DoxyCodeLine{                .callback = \&\mbox{\hyperlink{uhid__snes_8c_abf8c1947a26ab96f0c2499178820f0ee}{uhid\_snes\_status\_callback}},}
\DoxyCodeLine{                .bufsize = \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structusb__device__request}{usb\_device\_request}}) + 1,}
\DoxyCodeLine{                .timeout = 1000,}
\DoxyCodeLine{                .type = \mbox{\hyperlink{usb_8h_ace49b7adb24ebcb0a0b17110c26aa63a}{UE\_CONTROL}},}
\DoxyCodeLine{                .endpoint = 0x00,}
\DoxyCodeLine{                .direction = \mbox{\hyperlink{usb_8h_a0b305068483ac39f5d34f848bcb95c11}{UE\_DIR\_ANY}}}
\DoxyCodeLine{        \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00141}{141}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00545}{uhid\+\_\+snes\+\_\+attach()}}.

\mbox{\Hypertarget{uhid__snes_8c_a7571c539573c897ce5d7c18031c2f2b3}\label{uhid__snes_8c_a7571c539573c897ce5d7c18031c2f2b3}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_detach@{uhid\_snes\_detach}}
\index{uhid\_snes\_detach@{uhid\_snes\_detach}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_detach}{uhid\_snes\_detach}}
{\footnotesize\ttfamily device\+\_\+detach\+\_\+t uhid\+\_\+snes\+\_\+detach\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00118}{118}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00545}{uhid\+\_\+snes\+\_\+attach()}}.

\mbox{\Hypertarget{uhid__snes_8c_a4e9acdbd7549d2f94c87c9d3b6d35332}\label{uhid__snes_8c_a4e9acdbd7549d2f94c87c9d3b6d35332}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_devclass@{uhid\_snes\_devclass}}
\index{uhid\_snes\_devclass@{uhid\_snes\_devclass}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_devclass}{uhid\_snes\_devclass}}
{\footnotesize\ttfamily devclass\+\_\+t uhid\+\_\+snes\+\_\+devclass\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00650}{650}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a86bc67ee937ab34d1a62b53265ddaae1}\label{uhid__snes_8c_a86bc67ee937ab34d1a62b53265ddaae1}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_driver@{uhid\_snes\_driver}}
\index{uhid\_snes\_driver@{uhid\_snes\_driver}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_driver}{uhid\_snes\_driver}}
{\footnotesize\ttfamily driver\+\_\+t uhid\+\_\+snes\+\_\+driver\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}uhid\_snes"{}},}
\DoxyCodeLine{        \mbox{\hyperlink{uhid__snes_8c_af718aa1f730ef29697f48a0afa457ad3}{uhid\_snes\_methods}},}
\DoxyCodeLine{        \textcolor{keyword}{sizeof}(\textcolor{keyword}{struct }\mbox{\hyperlink{structuhid__snes__softc}{uhid\_snes\_softc}})}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00644}{644}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a93443e095e01e2cfb8642fda23c402d3}\label{uhid__snes_8c_a93443e095e01e2cfb8642fda23c402d3}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_fifo\_methods@{uhid\_snes\_fifo\_methods}}
\index{uhid\_snes\_fifo\_methods@{uhid\_snes\_fifo\_methods}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_fifo\_methods}{uhid\_snes\_fifo\_methods}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{structusb__fifo__methods}{usb\+\_\+fifo\+\_\+methods}} uhid\+\_\+snes\+\_\+fifo\+\_\+methods\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .f\_open = \&\mbox{\hyperlink{uhid__snes_8c_ae72b24c987b7acfc379f4ac746ac52b6}{uhid\_snes\_open}},}
\DoxyCodeLine{        .f\_close = \&\mbox{\hyperlink{uhid__snes_8c_a2c1cd5036db52f4b145863c77eb9961f}{uhid\_snes\_close}},}
\DoxyCodeLine{        .f\_ioctl = \&\mbox{\hyperlink{uhid__snes_8c_afa85e66703fe9ad3b173fa76d452f741}{uhid\_snes\_ioctl}},}
\DoxyCodeLine{        .f\_start\_read = \&\mbox{\hyperlink{uhid__snes_8c_afa160861f16bf600887172ea04c2d2a5}{uhid\_snes\_start\_read}},}
\DoxyCodeLine{        .f\_stop\_read = \&\mbox{\hyperlink{uhid__snes_8c_ae04367f2c51787451ca6e789958482bb}{uhid\_snes\_stop\_read}},}
\DoxyCodeLine{        .basename[0] = \textcolor{stringliteral}{"{}uhid\_snes"{}}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00132}{132}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00545}{uhid\+\_\+snes\+\_\+attach()}}.

\mbox{\Hypertarget{uhid__snes_8c_afa85e66703fe9ad3b173fa76d452f741}\label{uhid__snes_8c_afa85e66703fe9ad3b173fa76d452f741}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_ioctl@{uhid\_snes\_ioctl}}
\index{uhid\_snes\_ioctl@{uhid\_snes\_ioctl}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_ioctl}{uhid\_snes\_ioctl}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_a1216ed6c6a9a63cba57811e6fe1f7fea}{usb\+\_\+fifo\+\_\+ioctl\+\_\+t}} uhid\+\_\+snes\+\_\+ioctl\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00122}{122}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_af718aa1f730ef29697f48a0afa457ad3}\label{uhid__snes_8c_af718aa1f730ef29697f48a0afa457ad3}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_methods@{uhid\_snes\_methods}}
\index{uhid\_snes\_methods@{uhid\_snes\_methods}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_methods}{uhid\_snes\_methods}}
{\footnotesize\ttfamily device\+\_\+method\+\_\+t uhid\+\_\+snes\+\_\+methods\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        DEVMETHOD(device\_probe, \mbox{\hyperlink{uhid__snes_8c_a3a57892c0f2e3aabe9c98e1eb1719674}{uhid\_snes\_probe}}),}
\DoxyCodeLine{        DEVMETHOD(device\_attach, \mbox{\hyperlink{uhid__snes_8c_a47d5c764aee8480c3d6bc711440ad3db}{uhid\_snes\_attach}}),}
\DoxyCodeLine{        DEVMETHOD(device\_detach, \mbox{\hyperlink{uhid__snes_8c_a7571c539573c897ce5d7c18031c2f2b3}{uhid\_snes\_detach}}),}
\DoxyCodeLine{        DEVMETHOD\_END}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00637}{637}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_ae72b24c987b7acfc379f4ac746ac52b6}\label{uhid__snes_8c_ae72b24c987b7acfc379f4ac746ac52b6}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_open@{uhid\_snes\_open}}
\index{uhid\_snes\_open@{uhid\_snes\_open}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_open}{uhid\_snes\_open}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_abf627b9df5961890963bce30a2cf9e1d}{usb\+\_\+fifo\+\_\+open\+\_\+t}} uhid\+\_\+snes\+\_\+open\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00120}{120}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a3a57892c0f2e3aabe9c98e1eb1719674}\label{uhid__snes_8c_a3a57892c0f2e3aabe9c98e1eb1719674}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_probe@{uhid\_snes\_probe}}
\index{uhid\_snes\_probe@{uhid\_snes\_probe}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_probe}{uhid\_snes\_probe}}
{\footnotesize\ttfamily device\+\_\+probe\+\_\+t uhid\+\_\+snes\+\_\+probe\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00116}{116}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_a5afe580c77761ebfcf87e897fa315ce6}\label{uhid__snes_8c_a5afe580c77761ebfcf87e897fa315ce6}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_read\_callback@{uhid\_snes\_read\_callback}}
\index{uhid\_snes\_read\_callback@{uhid\_snes\_read\_callback}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_read\_callback}{uhid\_snes\_read\_callback}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} uhid\+\_\+snes\+\_\+read\+\_\+callback\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00129}{129}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_adbdca8f59336a9b5c77557041707e687}\label{uhid__snes_8c_adbdca8f59336a9b5c77557041707e687}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_report\_descr@{uhid\_snes\_report\_descr}}
\index{uhid\_snes\_report\_descr@{uhid\_snes\_report\_descr}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_report\_descr}{uhid\_snes\_report\_descr}}
{\footnotesize\ttfamily const uint8\+\_\+t uhid\+\_\+snes\+\_\+report\+\_\+descr\mbox{[}$\,$\mbox{]} = \{ \mbox{\hyperlink{usb__rdesc_8h_a0a62ac06d82aed7fc23302c4a02d605f}{UHID\+\_\+\+SNES\+\_\+\+REPORT\+\_\+\+DESCR}}() \}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00071}{71}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.



Referenced by \mbox{\hyperlink{uhid__snes_8c_source_l00545}{uhid\+\_\+snes\+\_\+attach()}}.

\mbox{\Hypertarget{uhid__snes_8c_afa160861f16bf600887172ea04c2d2a5}\label{uhid__snes_8c_afa160861f16bf600887172ea04c2d2a5}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_start\_read@{uhid\_snes\_start\_read}}
\index{uhid\_snes\_start\_read@{uhid\_snes\_start\_read}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_start\_read}{uhid\_snes\_start\_read}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\+\_\+fifo\+\_\+cmd\+\_\+t}} uhid\+\_\+snes\+\_\+start\+\_\+read\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00123}{123}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_abf8c1947a26ab96f0c2499178820f0ee}\label{uhid__snes_8c_abf8c1947a26ab96f0c2499178820f0ee}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_status\_callback@{uhid\_snes\_status\_callback}}
\index{uhid\_snes\_status\_callback@{uhid\_snes\_status\_callback}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_status\_callback}{uhid\_snes\_status\_callback}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_aad1085e1e87347ed71e554c4b0209239}{usb\+\_\+callback\+\_\+t}} uhid\+\_\+snes\+\_\+status\+\_\+callback\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00130}{130}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

\mbox{\Hypertarget{uhid__snes_8c_ae04367f2c51787451ca6e789958482bb}\label{uhid__snes_8c_ae04367f2c51787451ca6e789958482bb}} 
\index{uhid\_snes.c@{uhid\_snes.c}!uhid\_snes\_stop\_read@{uhid\_snes\_stop\_read}}
\index{uhid\_snes\_stop\_read@{uhid\_snes\_stop\_read}!uhid\_snes.c@{uhid\_snes.c}}
\doxysubsubsection{\texorpdfstring{uhid\_snes\_stop\_read}{uhid\_snes\_stop\_read}}
{\footnotesize\ttfamily \mbox{\hyperlink{usbdi_8h_a615dd3e847b9bb98800455c172df26a7}{usb\+\_\+fifo\+\_\+cmd\+\_\+t}} uhid\+\_\+snes\+\_\+stop\+\_\+read\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{uhid__snes_8c_source_l00124}{124}} of file \mbox{\hyperlink{uhid__snes_8c_source}{uhid\+\_\+snes.\+c}}.

