\hypertarget{usb__mbuf_8h}{}\doxysection{dev/usb/usb\+\_\+mbuf.h File Reference}
\label{usb__mbuf_8h}\index{dev/usb/usb\_mbuf.h@{dev/usb/usb\_mbuf.h}}
This graph shows which files directly or indirectly include this file\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d9f/usb__mbuf_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structusb__mbuf}{usb\+\_\+mbuf}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{usb__mbuf_8h_a687851a62f15d69c340d6d93268c6686}{USB\+\_\+\+IF\+\_\+\+ENQUEUE}}(ifq,  m)
\item 
\#define \mbox{\hyperlink{usb__mbuf_8h_a05824e25e4f99a7aa338aac63b791228}{USB\+\_\+\+IF\+\_\+\+DEQUEUE}}(ifq,  m)
\item 
\#define \mbox{\hyperlink{usb__mbuf_8h_afe71f7a3e1cf0d6aa22cec95b87ee25a}{USB\+\_\+\+IF\+\_\+\+PREPEND}}(ifq,  m)
\item 
\#define \mbox{\hyperlink{usb__mbuf_8h_a862a37f19db20124bcf1cc53566415c5}{USB\+\_\+\+IF\+\_\+\+QFULL}}(ifq)~((ifq)-\/$>$ifq\+\_\+len $>$= (ifq)-\/$>$ifq\+\_\+maxlen)
\item 
\#define \mbox{\hyperlink{usb__mbuf_8h_a69f672f058b6f1ad869a2f17ddf52244}{USB\+\_\+\+IF\+\_\+\+QLEN}}(ifq)~((ifq)-\/$>$ifq\+\_\+len)
\item 
\#define \mbox{\hyperlink{usb__mbuf_8h_aecac921b8969038d1c59ae2e3f6f85de}{USB\+\_\+\+IF\+\_\+\+POLL}}(ifq,  m)~((m) = (ifq)-\/$>$ifq\+\_\+head)
\item 
\#define \mbox{\hyperlink{usb__mbuf_8h_aae21720dd72f4585350149ec7f0b8543}{USB\+\_\+\+MBUF\+\_\+\+RESET}}(m)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void $\ast$ \mbox{\hyperlink{usb__mbuf_8h_a956d7e2ac8bfec14073b3ffdceae89ec}{usb\+\_\+alloc\+\_\+mbufs}} (struct malloc\+\_\+type $\ast$\textbf{ type}, struct \mbox{\hyperlink{structusb__ifqueue}{usb\+\_\+ifqueue}} $\ast$ifq, \mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\+\_\+size\+\_\+t}} block\+\_\+size, uint16\+\_\+t nblocks)
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{usb__mbuf_8h_a05824e25e4f99a7aa338aac63b791228}\label{usb__mbuf_8h_a05824e25e4f99a7aa338aac63b791228}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!USB\_IF\_DEQUEUE@{USB\_IF\_DEQUEUE}}
\index{USB\_IF\_DEQUEUE@{USB\_IF\_DEQUEUE}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{USB\_IF\_DEQUEUE}{USB\_IF\_DEQUEUE}}
{\footnotesize\ttfamily \#define USB\+\_\+\+IF\+\_\+\+DEQUEUE(\begin{DoxyParamCaption}\item[{}]{ifq,  }\item[{}]{m }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \textcolor{keywordflow}{do} \{                                \(\backslash\)}
\DoxyCodeLine{    (m) = (ifq)-\/>ifq\_head;                                      \(\backslash\)}
\DoxyCodeLine{    if (m) \{                                                    \(\backslash\)}
\DoxyCodeLine{        if (((ifq)-\/>ifq\_head = (m)-\/>usb\_nextpkt) == NULL) \{     \(\backslash\)}
\DoxyCodeLine{             (ifq)-\/>ifq\_tail = NULL;                            \(\backslash\)}
\DoxyCodeLine{        \}                                                       \(\backslash\)}
\DoxyCodeLine{        (m)-\/>usb\_nextpkt = NULL;                                \(\backslash\)}
\DoxyCodeLine{        (ifq)-\/>ifq\_len-\/-\/;                                       \(\backslash\)}
\DoxyCodeLine{    \}                                                           \(\backslash\)}
\DoxyCodeLine{  \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{usb__mbuf_8h_source_l00058}{58}} of file \mbox{\hyperlink{usb__mbuf_8h_source}{usb\+\_\+mbuf.\+h}}.

\mbox{\Hypertarget{usb__mbuf_8h_a687851a62f15d69c340d6d93268c6686}\label{usb__mbuf_8h_a687851a62f15d69c340d6d93268c6686}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!USB\_IF\_ENQUEUE@{USB\_IF\_ENQUEUE}}
\index{USB\_IF\_ENQUEUE@{USB\_IF\_ENQUEUE}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{USB\_IF\_ENQUEUE}{USB\_IF\_ENQUEUE}}
{\footnotesize\ttfamily \#define USB\+\_\+\+IF\+\_\+\+ENQUEUE(\begin{DoxyParamCaption}\item[{}]{ifq,  }\item[{}]{m }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \textcolor{keywordflow}{do} \{                \(\backslash\)}
\DoxyCodeLine{    (m)-\/>usb\_nextpkt = NULL;                    \(\backslash\)}
\DoxyCodeLine{    if ((ifq)-\/>ifq\_tail == NULL)                \(\backslash\)}
\DoxyCodeLine{        (ifq)-\/>ifq\_head = (m);                  \(\backslash\)}
\DoxyCodeLine{    else                                        \(\backslash\)}
\DoxyCodeLine{        (ifq)-\/>ifq\_tail-\/>usb\_nextpkt = (m);     \(\backslash\)}
\DoxyCodeLine{    (ifq)-\/>ifq\_tail = (m);                      \(\backslash\)}
\DoxyCodeLine{    (ifq)-\/>ifq\_len++;                           \(\backslash\)}
\DoxyCodeLine{  \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{usb__mbuf_8h_source_l00048}{48}} of file \mbox{\hyperlink{usb__mbuf_8h_source}{usb\+\_\+mbuf.\+h}}.

\mbox{\Hypertarget{usb__mbuf_8h_aecac921b8969038d1c59ae2e3f6f85de}\label{usb__mbuf_8h_aecac921b8969038d1c59ae2e3f6f85de}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!USB\_IF\_POLL@{USB\_IF\_POLL}}
\index{USB\_IF\_POLL@{USB\_IF\_POLL}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{USB\_IF\_POLL}{USB\_IF\_POLL}}
{\footnotesize\ttfamily \#define USB\+\_\+\+IF\+\_\+\+POLL(\begin{DoxyParamCaption}\item[{}]{ifq,  }\item[{}]{m }\end{DoxyParamCaption})~((m) = (ifq)-\/$>$ifq\+\_\+head)}



Definition at line \mbox{\hyperlink{usb__mbuf_8h_source_l00080}{80}} of file \mbox{\hyperlink{usb__mbuf_8h_source}{usb\+\_\+mbuf.\+h}}.

\mbox{\Hypertarget{usb__mbuf_8h_afe71f7a3e1cf0d6aa22cec95b87ee25a}\label{usb__mbuf_8h_afe71f7a3e1cf0d6aa22cec95b87ee25a}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!USB\_IF\_PREPEND@{USB\_IF\_PREPEND}}
\index{USB\_IF\_PREPEND@{USB\_IF\_PREPEND}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{USB\_IF\_PREPEND}{USB\_IF\_PREPEND}}
{\footnotesize\ttfamily \#define USB\+\_\+\+IF\+\_\+\+PREPEND(\begin{DoxyParamCaption}\item[{}]{ifq,  }\item[{}]{m }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{      \textcolor{keywordflow}{do} \{              \(\backslash\)}
\DoxyCodeLine{      (m)-\/>usb\_nextpkt = (ifq)-\/>ifq\_head;       \(\backslash\)}
\DoxyCodeLine{      if ((ifq)-\/>ifq\_tail == NULL) \{            \(\backslash\)}
\DoxyCodeLine{          (ifq)-\/>ifq\_tail = (m);                \(\backslash\)}
\DoxyCodeLine{      \}                                         \(\backslash\)}
\DoxyCodeLine{      (ifq)-\/>ifq\_head = (m);                    \(\backslash\)}
\DoxyCodeLine{      (ifq)-\/>ifq\_len++;                         \(\backslash\)}
\DoxyCodeLine{  \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{usb__mbuf_8h_source_l00069}{69}} of file \mbox{\hyperlink{usb__mbuf_8h_source}{usb\+\_\+mbuf.\+h}}.

\mbox{\Hypertarget{usb__mbuf_8h_a862a37f19db20124bcf1cc53566415c5}\label{usb__mbuf_8h_a862a37f19db20124bcf1cc53566415c5}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!USB\_IF\_QFULL@{USB\_IF\_QFULL}}
\index{USB\_IF\_QFULL@{USB\_IF\_QFULL}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{USB\_IF\_QFULL}{USB\_IF\_QFULL}}
{\footnotesize\ttfamily \#define USB\+\_\+\+IF\+\_\+\+QFULL(\begin{DoxyParamCaption}\item[{}]{ifq }\end{DoxyParamCaption})~((ifq)-\/$>$ifq\+\_\+len $>$= (ifq)-\/$>$ifq\+\_\+maxlen)}



Definition at line \mbox{\hyperlink{usb__mbuf_8h_source_l00078}{78}} of file \mbox{\hyperlink{usb__mbuf_8h_source}{usb\+\_\+mbuf.\+h}}.

\mbox{\Hypertarget{usb__mbuf_8h_a69f672f058b6f1ad869a2f17ddf52244}\label{usb__mbuf_8h_a69f672f058b6f1ad869a2f17ddf52244}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!USB\_IF\_QLEN@{USB\_IF\_QLEN}}
\index{USB\_IF\_QLEN@{USB\_IF\_QLEN}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{USB\_IF\_QLEN}{USB\_IF\_QLEN}}
{\footnotesize\ttfamily \#define USB\+\_\+\+IF\+\_\+\+QLEN(\begin{DoxyParamCaption}\item[{}]{ifq }\end{DoxyParamCaption})~((ifq)-\/$>$ifq\+\_\+len)}



Definition at line \mbox{\hyperlink{usb__mbuf_8h_source_l00079}{79}} of file \mbox{\hyperlink{usb__mbuf_8h_source}{usb\+\_\+mbuf.\+h}}.

\mbox{\Hypertarget{usb__mbuf_8h_aae21720dd72f4585350149ec7f0b8543}\label{usb__mbuf_8h_aae21720dd72f4585350149ec7f0b8543}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!USB\_MBUF\_RESET@{USB\_MBUF\_RESET}}
\index{USB\_MBUF\_RESET@{USB\_MBUF\_RESET}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{USB\_MBUF\_RESET}{USB\_MBUF\_RESET}}
{\footnotesize\ttfamily \#define USB\+\_\+\+MBUF\+\_\+\+RESET(\begin{DoxyParamCaption}\item[{}]{m }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{    \textcolor{keywordflow}{do} \{                        \(\backslash\)}
\DoxyCodeLine{    (m)-\/>cur\_data\_ptr = (m)-\/>min\_data\_ptr;      \(\backslash\)}
\DoxyCodeLine{    (m)-\/>cur\_data\_len = (m)-\/>max\_data\_len;      \(\backslash\)}
\DoxyCodeLine{    (m)-\/>last\_packet = 0;                       \(\backslash\)}
\DoxyCodeLine{  \} \textcolor{keywordflow}{while} (0)}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{usb__mbuf_8h_source_l00082}{82}} of file \mbox{\hyperlink{usb__mbuf_8h_source}{usb\+\_\+mbuf.\+h}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{usb__mbuf_8h_a956d7e2ac8bfec14073b3ffdceae89ec}\label{usb__mbuf_8h_a956d7e2ac8bfec14073b3ffdceae89ec}} 
\index{usb\_mbuf.h@{usb\_mbuf.h}!usb\_alloc\_mbufs@{usb\_alloc\_mbufs}}
\index{usb\_alloc\_mbufs@{usb\_alloc\_mbufs}!usb\_mbuf.h@{usb\_mbuf.h}}
\doxysubsubsection{\texorpdfstring{usb\_alloc\_mbufs()}{usb\_alloc\_mbufs()}}
{\footnotesize\ttfamily void $\ast$ usb\+\_\+alloc\+\_\+mbufs (\begin{DoxyParamCaption}\item[{struct malloc\+\_\+type $\ast$}]{type,  }\item[{struct \mbox{\hyperlink{structusb__ifqueue}{usb\+\_\+ifqueue}} $\ast$}]{ifq,  }\item[{\mbox{\hyperlink{usb__freebsd_8h_aef76bd5158b84c44681a07bc5f22aff1}{usb\+\_\+size\+\_\+t}}}]{block\+\_\+size,  }\item[{uint16\+\_\+t}]{nblocks }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{usb__mbuf_8c_source_l00065}{65}} of file \mbox{\hyperlink{usb__mbuf_8c_source}{usb\+\_\+mbuf.\+c}}.



References \mbox{\hyperlink{usb__mbuf_8h_source_l00042}{usb\+\_\+mbuf\+::cur\+\_\+data\+\_\+len}}, \mbox{\hyperlink{usb__mbuf_8h_source_l00037}{usb\+\_\+mbuf\+::cur\+\_\+data\+\_\+ptr}}, \mbox{\hyperlink{usb__mbuf_8h_source_l00043}{usb\+\_\+mbuf\+::max\+\_\+data\+\_\+len}}, \mbox{\hyperlink{usb__mbuf_8h_source_l00038}{usb\+\_\+mbuf\+::min\+\_\+data\+\_\+ptr}}, \textbf{ type}, \mbox{\hyperlink{usb__freebsd_8h_source_l00070}{USB\+\_\+\+HOST\+\_\+\+ALIGN}}, and \mbox{\hyperlink{usb__mbuf_8h_source_l00048}{USB\+\_\+\+IF\+\_\+\+ENQUEUE}}.

