\hypertarget{snp_8c}{}\doxysection{dev/snp/snp.c File Reference}
\label{snp_8c}\index{dev/snp/snp.c@{dev/snp/snp.c}}
{\ttfamily \#include $<$sys/cdefs.\+h$>$}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/conf.\+h$>$}\newline
{\ttfamily \#include $<$sys/fcntl.\+h$>$}\newline
{\ttfamily \#include $<$sys/filio.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/module.\+h$>$}\newline
{\ttfamily \#include $<$sys/poll.\+h$>$}\newline
{\ttfamily \#include $<$sys/proc.\+h$>$}\newline
{\ttfamily \#include $<$sys/snoop.\+h$>$}\newline
{\ttfamily \#include $<$sys/sx.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$sys/tty.\+h$>$}\newline
{\ttfamily \#include $<$sys/uio.\+h$>$}\newline
Include dependency graph for snp.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{dd/d94/snp_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structsnp__softc}{snp\+\_\+softc}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{snp_8c_a66d18b7ed0415bb0a283b5717d2093f0}{SNP\+\_\+\+LOCK}}()~sx\+\_\+xlock(\&\mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}})
\item 
\#define \mbox{\hyperlink{snp_8c_a6a0c599d6b61a46db913f3a5d8d9ee4b}{SNP\+\_\+\+UNLOCK}}()~sx\+\_\+xunlock(\&\mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}})
\item 
\#define \mbox{\hyperlink{snp_8c_ac33e655af6b8cda2a24541047cecdfa3}{SNPGTYY\+\_\+32\+DEV}}~\+\_\+\+IOR(\textquotesingle{}T\textquotesingle{}, 89, uint32\+\_\+t)
\item 
\#define \mbox{\hyperlink{snp_8c_a28337f2bdc9ac092dbb0e6da3599daba}{SNP\+\_\+\+INPUT\+\_\+\+BUFSIZE}}~16
\item 
\#define \mbox{\hyperlink{snp_8c_ac7296de6fbb2cc61f4ea7210bdfa4697}{SNP\+\_\+\+OUTPUT\+\_\+\+BUFSIZE}}~16384
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{snp_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\+\_\+\+\_\+\+FBSDID}} (\char`\"{}\$Free\+BSD\$\char`\"{})
\item 
static \mbox{\hyperlink{snp_8c_a5299a5f28a4b0bc49ef7935ecdda59a1}{MALLOC\+\_\+\+DEFINE}} (M\+\_\+\+SNP, \char`\"{}snp\char`\"{}, \char`\"{}tty snoop device\char`\"{})
\item 
\mbox{\hyperlink{snp_8c_ab9c66e5c0b7e8213847b861b669ab4b3}{SX\+\_\+\+SYSINIT}} (\mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}}, \&\mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}}, \char`\"{}tty snoop registration\char`\"{})
\item 
static void \mbox{\hyperlink{snp_8c_a4a1f7c56fde1c2a8fa7c4459b04737b7}{snp\+\_\+dtor}} (void $\ast$data)
\item 
static int \mbox{\hyperlink{snp_8c_a1b9de401df8b473e446e3f65fe425817}{snp\+\_\+open}} (struct cdev $\ast$dev, int flag, int mode, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{snp_8c_ad74551081050ad60d988fcd815c60a95}{snp\+\_\+read}} (struct cdev $\ast$dev, struct uio $\ast$uio, int flag)
\item 
static int \mbox{\hyperlink{snp_8c_a79e8402f5cd58f26d7d3e22242faa62b}{snp\+\_\+write}} (struct cdev $\ast$dev, struct uio $\ast$uio, int flag)
\item 
static int \mbox{\hyperlink{snp_8c_a2121320d2263217291650b076d19b4ff}{snp\+\_\+ioctl}} (struct cdev $\ast$dev, u\+\_\+long cmd, caddr\+\_\+t data, int flags, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{snp_8c_a18b3c7eff3182a211cb504cfd9deabb5}{snp\+\_\+poll}} (struct cdev $\ast$dev, int events, struct thread $\ast$td)
\item 
static int \mbox{\hyperlink{snp_8c_a0b54701d498c7c6c6c5b96b260c5574a}{snp\+\_\+modevent}} (module\+\_\+t mod, int type, void $\ast$data)
\item 
static void \mbox{\hyperlink{snp_8c_a168fdf5ec92de59b948f14dbc0819a7b}{snp\+\_\+getc\+\_\+capture}} (struct tty $\ast$tp, const void $\ast$buf, size\+\_\+t len)
\item 
\mbox{\hyperlink{snp_8c_a600e94de8842d012dc613c7af08cddb5}{DECLARE\+\_\+\+MODULE}} (snp, \mbox{\hyperlink{snp_8c_a152be0403161112f47de2d080744f6bc}{snp\+\_\+mod}}, SI\+\_\+\+SUB\+\_\+\+DRIVERS, SI\+\_\+\+ORDER\+\_\+\+MIDDLE)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static struct cdev $\ast$ \mbox{\hyperlink{snp_8c_a21e16f8416b309d568d87f8c6f2b46c9}{snp\+\_\+dev}}
\item 
static struct sx \mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}}
\item 
static d\+\_\+open\+\_\+t \mbox{\hyperlink{snp_8c_a44e0cf06b01819a5e6c2d10c0f0d6dc5}{snp\+\_\+open}}
\item 
static d\+\_\+read\+\_\+t \mbox{\hyperlink{snp_8c_a85effd15d23324918895d06f3ced4c33}{snp\+\_\+read}}
\item 
static d\+\_\+write\+\_\+t \mbox{\hyperlink{snp_8c_af87d2f9f1f9eb3de0e0f2cf9f8415f0d}{snp\+\_\+write}}
\item 
static d\+\_\+ioctl\+\_\+t \mbox{\hyperlink{snp_8c_a364187115e952bf11c7d77e090e97fa4}{snp\+\_\+ioctl}}
\item 
static d\+\_\+poll\+\_\+t \mbox{\hyperlink{snp_8c_adb66194f687454132f9164723b823fa4}{snp\+\_\+poll}}
\item 
static struct cdevsw \mbox{\hyperlink{snp_8c_a6a1acb3a9a42942706085aebaf79c23f}{snp\+\_\+cdevsw}}
\item 
static th\+\_\+getc\+\_\+capture\+\_\+t \mbox{\hyperlink{snp_8c_abe7f4c430b4e6d6b7e9c3707356a7ec4}{snp\+\_\+getc\+\_\+capture}}
\item 
static struct ttyhook \mbox{\hyperlink{snp_8c_a9ac559390b0cc07d7ed5c12d7a54b01a}{snp\+\_\+hook}}
\item 
static moduledata\+\_\+t \mbox{\hyperlink{snp_8c_a152be0403161112f47de2d080744f6bc}{snp\+\_\+mod}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{snp_8c_a28337f2bdc9ac092dbb0e6da3599daba}\label{snp_8c_a28337f2bdc9ac092dbb0e6da3599daba}} 
\index{snp.c@{snp.c}!SNP\_INPUT\_BUFSIZE@{SNP\_INPUT\_BUFSIZE}}
\index{SNP\_INPUT\_BUFSIZE@{SNP\_INPUT\_BUFSIZE}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{SNP\_INPUT\_BUFSIZE}{SNP\_INPUT\_BUFSIZE}}
{\footnotesize\ttfamily \#define SNP\+\_\+\+INPUT\+\_\+\+BUFSIZE~16}



Definition at line \mbox{\hyperlink{snp_8c_source_l00072}{72}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_a66d18b7ed0415bb0a283b5717d2093f0}\label{snp_8c_a66d18b7ed0415bb0a283b5717d2093f0}} 
\index{snp.c@{snp.c}!SNP\_LOCK@{SNP\_LOCK}}
\index{SNP\_LOCK@{SNP\_LOCK}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{SNP\_LOCK}{SNP\_LOCK}}
{\footnotesize\ttfamily \#define SNP\+\_\+\+LOCK(\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})~sx\+\_\+xlock(\&\mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}})}



Definition at line \mbox{\hyperlink{snp_8c_source_l00061}{61}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_ac7296de6fbb2cc61f4ea7210bdfa4697}\label{snp_8c_ac7296de6fbb2cc61f4ea7210bdfa4697}} 
\index{snp.c@{snp.c}!SNP\_OUTPUT\_BUFSIZE@{SNP\_OUTPUT\_BUFSIZE}}
\index{SNP\_OUTPUT\_BUFSIZE@{SNP\_OUTPUT\_BUFSIZE}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{SNP\_OUTPUT\_BUFSIZE}{SNP\_OUTPUT\_BUFSIZE}}
{\footnotesize\ttfamily \#define SNP\+\_\+\+OUTPUT\+\_\+\+BUFSIZE~16384}



Definition at line \mbox{\hyperlink{snp_8c_source_l00079}{79}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_a6a0c599d6b61a46db913f3a5d8d9ee4b}\label{snp_8c_a6a0c599d6b61a46db913f3a5d8d9ee4b}} 
\index{snp.c@{snp.c}!SNP\_UNLOCK@{SNP\_UNLOCK}}
\index{SNP\_UNLOCK@{SNP\_UNLOCK}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{SNP\_UNLOCK}{SNP\_UNLOCK}}
{\footnotesize\ttfamily \#define SNP\+\_\+\+UNLOCK(\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})~sx\+\_\+xunlock(\&\mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}})}



Definition at line \mbox{\hyperlink{snp_8c_source_l00062}{62}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_ac33e655af6b8cda2a24541047cecdfa3}\label{snp_8c_ac33e655af6b8cda2a24541047cecdfa3}} 
\index{snp.c@{snp.c}!SNPGTYY\_32DEV@{SNPGTYY\_32DEV}}
\index{SNPGTYY\_32DEV@{SNPGTYY\_32DEV}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{SNPGTYY\_32DEV}{SNPGTYY\_32DEV}}
{\footnotesize\ttfamily \#define SNPGTYY\+\_\+32\+DEV~\+\_\+\+IOR(\textquotesingle{}T\textquotesingle{}, 89, uint32\+\_\+t)}



Definition at line \mbox{\hyperlink{snp_8c_source_l00065}{65}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{snp_8c_a8c3ef283470a68cd30afe9b8a72cb60f}\label{snp_8c_a8c3ef283470a68cd30afe9b8a72cb60f}} 
\index{snp.c@{snp.c}!\_\_FBSDID@{\_\_FBSDID}}
\index{\_\_FBSDID@{\_\_FBSDID}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{\_\_FBSDID()}{\_\_FBSDID()}}
{\footnotesize\ttfamily \+\_\+\+\_\+\+FBSDID (\begin{DoxyParamCaption}\item[{\char`\"{}\$Free\+BSD\$\char`\"{}}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{snp_8c_a600e94de8842d012dc613c7af08cddb5}\label{snp_8c_a600e94de8842d012dc613c7af08cddb5}} 
\index{snp.c@{snp.c}!DECLARE\_MODULE@{DECLARE\_MODULE}}
\index{DECLARE\_MODULE@{DECLARE\_MODULE}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{DECLARE\_MODULE()}{DECLARE\_MODULE()}}
{\footnotesize\ttfamily DECLARE\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{snp}]{,  }\item[{\mbox{\hyperlink{snp_8c_a152be0403161112f47de2d080744f6bc}{snp\+\_\+mod}}}]{,  }\item[{SI\+\_\+\+SUB\+\_\+\+DRIVERS}]{,  }\item[{SI\+\_\+\+ORDER\+\_\+\+MIDDLE}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{snp_8c_a5299a5f28a4b0bc49ef7935ecdda59a1}\label{snp_8c_a5299a5f28a4b0bc49ef7935ecdda59a1}} 
\index{snp.c@{snp.c}!MALLOC\_DEFINE@{MALLOC\_DEFINE}}
\index{MALLOC\_DEFINE@{MALLOC\_DEFINE}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{MALLOC\_DEFINE()}{MALLOC\_DEFINE()}}
{\footnotesize\ttfamily static MALLOC\+\_\+\+DEFINE (\begin{DoxyParamCaption}\item[{M\+\_\+\+SNP}]{,  }\item[{\char`\"{}snp\char`\"{}}]{,  }\item[{\char`\"{}tty snoop device\char`\"{}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}

\mbox{\Hypertarget{snp_8c_a4a1f7c56fde1c2a8fa7c4459b04737b7}\label{snp_8c_a4a1f7c56fde1c2a8fa7c4459b04737b7}} 
\index{snp.c@{snp.c}!snp\_dtor@{snp\_dtor}}
\index{snp\_dtor@{snp\_dtor}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_dtor()}{snp\_dtor()}}
{\footnotesize\ttfamily static void snp\+\_\+dtor (\begin{DoxyParamCaption}\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00118}{118}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00112}{snp\+\_\+softc\+::snp\+\_\+outq}}, \mbox{\hyperlink{snp_8c_source_l00113}{snp\+\_\+softc\+::snp\+\_\+outwait}}, and \mbox{\hyperlink{snp_8c_source_l00111}{snp\+\_\+softc\+::snp\+\_\+tty}}.



Referenced by \mbox{\hyperlink{snp_8c_source_l00139}{snp\+\_\+open()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=238pt]{db/d4e/snp_8c_a4a1f7c56fde1c2a8fa7c4459b04737b7_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{snp_8c_a168fdf5ec92de59b948f14dbc0819a7b}\label{snp_8c_a168fdf5ec92de59b948f14dbc0819a7b}} 
\index{snp.c@{snp.c}!snp\_getc\_capture@{snp\_getc\_capture}}
\index{snp\_getc\_capture@{snp\_getc\_capture}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_getc\_capture()}{snp\_getc\_capture()}}
{\footnotesize\ttfamily static void snp\+\_\+getc\+\_\+capture (\begin{DoxyParamCaption}\item[{struct tty $\ast$}]{tp,  }\item[{const void $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00355}{355}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00114}{snp\+\_\+softc\+::snp\+\_\+outpoll}}, \mbox{\hyperlink{snp_8c_source_l00112}{snp\+\_\+softc\+::snp\+\_\+outq}}, and \mbox{\hyperlink{snp_8c_source_l00113}{snp\+\_\+softc\+::snp\+\_\+outwait}}.

\mbox{\Hypertarget{snp_8c_a2121320d2263217291650b076d19b4ff}\label{snp_8c_a2121320d2263217291650b076d19b4ff}} 
\index{snp.c@{snp.c}!snp\_ioctl@{snp\_ioctl}}
\index{snp\_ioctl@{snp\_ioctl}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_ioctl()}{snp\_ioctl()}}
{\footnotesize\ttfamily static int snp\+\_\+ioctl (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{u\+\_\+long}]{cmd,  }\item[{caddr\+\_\+t}]{data,  }\item[{int}]{flags,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00240}{240}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00099}{snp\+\_\+hook}}, \mbox{\hyperlink{snp_8c_source_l00061}{SNP\+\_\+\+LOCK}}, \mbox{\hyperlink{snp_8c_source_l00079}{SNP\+\_\+\+OUTPUT\+\_\+\+BUFSIZE}}, \mbox{\hyperlink{snp_8c_source_l00112}{snp\+\_\+softc\+::snp\+\_\+outq}}, \mbox{\hyperlink{snp_8c_source_l00111}{snp\+\_\+softc\+::snp\+\_\+tty}}, \mbox{\hyperlink{snp_8c_source_l00062}{SNP\+\_\+\+UNLOCK}}, and \mbox{\hyperlink{snp_8c_source_l00065}{SNPGTYY\+\_\+32\+DEV}}.

\mbox{\Hypertarget{snp_8c_a0b54701d498c7c6c6c5b96b260c5574a}\label{snp_8c_a0b54701d498c7c6c6c5b96b260c5574a}} 
\index{snp.c@{snp.c}!snp\_modevent@{snp\_modevent}}
\index{snp\_modevent@{snp\_modevent}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_modevent()}{snp\_modevent()}}
{\footnotesize\ttfamily static int snp\+\_\+modevent (\begin{DoxyParamCaption}\item[{module\+\_\+t}]{mod,  }\item[{int}]{type,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00337}{337}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00087}{snp\+\_\+cdevsw}}, and \mbox{\hyperlink{snp_8c_source_l00047}{snp\+\_\+dev}}.

\mbox{\Hypertarget{snp_8c_a1b9de401df8b473e446e3f65fe425817}\label{snp_8c_a1b9de401df8b473e446e3f65fe425817}} 
\index{snp.c@{snp.c}!snp\_open@{snp\_open}}
\index{snp\_open@{snp\_open}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_open()}{snp\_open()}}
{\footnotesize\ttfamily static int snp\+\_\+open (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{flag,  }\item[{int}]{mode,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00139}{139}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00118}{snp\+\_\+dtor()}}, and \mbox{\hyperlink{snp_8c_source_l00113}{snp\+\_\+softc\+::snp\+\_\+outwait}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=238pt]{db/d4e/snp_8c_a1b9de401df8b473e446e3f65fe425817_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{snp_8c_a18b3c7eff3182a211cb504cfd9deabb5}\label{snp_8c_a18b3c7eff3182a211cb504cfd9deabb5}} 
\index{snp.c@{snp.c}!snp\_poll@{snp\_poll}}
\index{snp\_poll@{snp\_poll}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_poll()}{snp\_poll()}}
{\footnotesize\ttfamily static int snp\+\_\+poll (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{int}]{events,  }\item[{struct thread $\ast$}]{td }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00304}{304}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00114}{snp\+\_\+softc\+::snp\+\_\+outpoll}}, \mbox{\hyperlink{snp_8c_source_l00112}{snp\+\_\+softc\+::snp\+\_\+outq}}, and \mbox{\hyperlink{snp_8c_source_l00111}{snp\+\_\+softc\+::snp\+\_\+tty}}.

\mbox{\Hypertarget{snp_8c_ad74551081050ad60d988fcd815c60a95}\label{snp_8c_ad74551081050ad60d988fcd815c60a95}} 
\index{snp.c@{snp.c}!snp\_read@{snp\_read}}
\index{snp\_read@{snp\_read}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_read()}{snp\_read()}}
{\footnotesize\ttfamily static int snp\+\_\+read (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{flag }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00153}{153}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00112}{snp\+\_\+softc\+::snp\+\_\+outq}}, \mbox{\hyperlink{snp_8c_source_l00113}{snp\+\_\+softc\+::snp\+\_\+outwait}}, and \mbox{\hyperlink{snp_8c_source_l00111}{snp\+\_\+softc\+::snp\+\_\+tty}}.

\mbox{\Hypertarget{snp_8c_a79e8402f5cd58f26d7d3e22242faa62b}\label{snp_8c_a79e8402f5cd58f26d7d3e22242faa62b}} 
\index{snp.c@{snp.c}!snp\_write@{snp\_write}}
\index{snp\_write@{snp\_write}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_write()}{snp\_write()}}
{\footnotesize\ttfamily static int snp\+\_\+write (\begin{DoxyParamCaption}\item[{struct cdev $\ast$}]{dev,  }\item[{struct uio $\ast$}]{uio,  }\item[{int}]{flag }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00195}{195}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



References \mbox{\hyperlink{snp_8c_source_l00072}{SNP\+\_\+\+INPUT\+\_\+\+BUFSIZE}}, and \mbox{\hyperlink{snp_8c_source_l00111}{snp\+\_\+softc\+::snp\+\_\+tty}}.

\mbox{\Hypertarget{snp_8c_ab9c66e5c0b7e8213847b861b669ab4b3}\label{snp_8c_ab9c66e5c0b7e8213847b861b669ab4b3}} 
\index{snp.c@{snp.c}!SX\_SYSINIT@{SX\_SYSINIT}}
\index{SX\_SYSINIT@{SX\_SYSINIT}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{SX\_SYSINIT()}{SX\_SYSINIT()}}
{\footnotesize\ttfamily SX\+\_\+\+SYSINIT (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}{snp\+\_\+register\+\_\+lock}}}]{,  }\item[{\&}]{snp\+\_\+register\+\_\+lock,  }\item[{\char`\"{}tty snoop registration\char`\"{}}]{ }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{snp_8c_a6a1acb3a9a42942706085aebaf79c23f}\label{snp_8c_a6a1acb3a9a42942706085aebaf79c23f}} 
\index{snp.c@{snp.c}!snp\_cdevsw@{snp\_cdevsw}}
\index{snp\_cdevsw@{snp\_cdevsw}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_cdevsw}{snp\_cdevsw}}
{\footnotesize\ttfamily struct cdevsw snp\+\_\+cdevsw\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .d\_version      = D\_VERSION,}
\DoxyCodeLine{        .d\_open         = \mbox{\hyperlink{snp_8c_a44e0cf06b01819a5e6c2d10c0f0d6dc5}{snp\_open}},}
\DoxyCodeLine{        .d\_read         = \mbox{\hyperlink{snp_8c_a85effd15d23324918895d06f3ced4c33}{snp\_read}},}
\DoxyCodeLine{        .d\_write        = \mbox{\hyperlink{snp_8c_af87d2f9f1f9eb3de0e0f2cf9f8415f0d}{snp\_write}},}
\DoxyCodeLine{        .d\_ioctl        = \mbox{\hyperlink{snp_8c_a364187115e952bf11c7d77e090e97fa4}{snp\_ioctl}},}
\DoxyCodeLine{        .d\_poll         = \mbox{\hyperlink{snp_8c_adb66194f687454132f9164723b823fa4}{snp\_poll}},}
\DoxyCodeLine{        .d\_name         = \textcolor{stringliteral}{"{}snp"{}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{snp_8c_source_l00087}{87}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



Referenced by \mbox{\hyperlink{snp_8c_source_l00337}{snp\+\_\+modevent()}}.

\mbox{\Hypertarget{snp_8c_a21e16f8416b309d568d87f8c6f2b46c9}\label{snp_8c_a21e16f8416b309d568d87f8c6f2b46c9}} 
\index{snp.c@{snp.c}!snp\_dev@{snp\_dev}}
\index{snp\_dev@{snp\_dev}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_dev}{snp\_dev}}
{\footnotesize\ttfamily struct cdev$\ast$ snp\+\_\+dev\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00047}{47}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



Referenced by \mbox{\hyperlink{snp_8c_source_l00337}{snp\+\_\+modevent()}}.

\mbox{\Hypertarget{snp_8c_abe7f4c430b4e6d6b7e9c3707356a7ec4}\label{snp_8c_abe7f4c430b4e6d6b7e9c3707356a7ec4}} 
\index{snp.c@{snp.c}!snp\_getc\_capture@{snp\_getc\_capture}}
\index{snp\_getc\_capture@{snp\_getc\_capture}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_getc\_capture}{snp\_getc\_capture}}
{\footnotesize\ttfamily th\+\_\+getc\+\_\+capture\+\_\+t snp\+\_\+getc\+\_\+capture\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00097}{97}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_a9ac559390b0cc07d7ed5c12d7a54b01a}\label{snp_8c_a9ac559390b0cc07d7ed5c12d7a54b01a}} 
\index{snp.c@{snp.c}!snp\_hook@{snp\_hook}}
\index{snp\_hook@{snp\_hook}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_hook}{snp\_hook}}
{\footnotesize\ttfamily struct ttyhook snp\+\_\+hook\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .th\_getc\_capture        = \mbox{\hyperlink{snp_8c_abe7f4c430b4e6d6b7e9c3707356a7ec4}{snp\_getc\_capture}},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{snp_8c_source_l00099}{99}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.



Referenced by \mbox{\hyperlink{snp_8c_source_l00240}{snp\+\_\+ioctl()}}.

\mbox{\Hypertarget{snp_8c_a364187115e952bf11c7d77e090e97fa4}\label{snp_8c_a364187115e952bf11c7d77e090e97fa4}} 
\index{snp.c@{snp.c}!snp\_ioctl@{snp\_ioctl}}
\index{snp\_ioctl@{snp\_ioctl}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_ioctl}{snp\_ioctl}}
{\footnotesize\ttfamily d\+\_\+ioctl\+\_\+t snp\+\_\+ioctl\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00084}{84}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_a152be0403161112f47de2d080744f6bc}\label{snp_8c_a152be0403161112f47de2d080744f6bc}} 
\index{snp.c@{snp.c}!snp\_mod@{snp\_mod}}
\index{snp\_mod@{snp\_mod}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_mod}{snp\_mod}}
{\footnotesize\ttfamily moduledata\+\_\+t snp\+\_\+mod\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}snp"{}},}
\DoxyCodeLine{        \mbox{\hyperlink{snp_8c_a0b54701d498c7c6c6c5b96b260c5574a}{snp\_modevent}},}
\DoxyCodeLine{        NULL}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{snp_8c_source_l00365}{365}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_a44e0cf06b01819a5e6c2d10c0f0d6dc5}\label{snp_8c_a44e0cf06b01819a5e6c2d10c0f0d6dc5}} 
\index{snp.c@{snp.c}!snp\_open@{snp\_open}}
\index{snp\_open@{snp\_open}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_open}{snp\_open}}
{\footnotesize\ttfamily d\+\_\+open\+\_\+t snp\+\_\+open\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00081}{81}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_adb66194f687454132f9164723b823fa4}\label{snp_8c_adb66194f687454132f9164723b823fa4}} 
\index{snp.c@{snp.c}!snp\_poll@{snp\_poll}}
\index{snp\_poll@{snp\_poll}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_poll}{snp\_poll}}
{\footnotesize\ttfamily d\+\_\+poll\+\_\+t snp\+\_\+poll\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00085}{85}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_a85effd15d23324918895d06f3ced4c33}\label{snp_8c_a85effd15d23324918895d06f3ced4c33}} 
\index{snp.c@{snp.c}!snp\_read@{snp\_read}}
\index{snp\_read@{snp\_read}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_read}{snp\_read}}
{\footnotesize\ttfamily d\+\_\+read\+\_\+t snp\+\_\+read\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00082}{82}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}\label{snp_8c_aac19dc15df7d928a9bc94aafaf7e26f1}} 
\index{snp.c@{snp.c}!snp\_register\_lock@{snp\_register\_lock}}
\index{snp\_register\_lock@{snp\_register\_lock}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_register\_lock}{snp\_register\_lock}}
{\footnotesize\ttfamily struct sx snp\+\_\+register\+\_\+lock\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00058}{58}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

\mbox{\Hypertarget{snp_8c_af87d2f9f1f9eb3de0e0f2cf9f8415f0d}\label{snp_8c_af87d2f9f1f9eb3de0e0f2cf9f8415f0d}} 
\index{snp.c@{snp.c}!snp\_write@{snp\_write}}
\index{snp\_write@{snp\_write}!snp.c@{snp.c}}
\doxysubsubsection{\texorpdfstring{snp\_write}{snp\_write}}
{\footnotesize\ttfamily d\+\_\+write\+\_\+t snp\+\_\+write\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{snp_8c_source_l00083}{83}} of file \mbox{\hyperlink{snp_8c_source}{snp.\+c}}.

