\hypertarget{structmmal__worker__buffer__from__host}{}\section{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host Struct Reference}
\label{structmmal__worker__buffer__from__host}\index{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}}


{\ttfamily \#include $<$mmal\+\_\+vc\+\_\+msgs.\+h$>$}

\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{structmmal__worker__buffer__from__host_a8f70c3aaec2e09b4860a208ad68a63dd}\label{structmmal__worker__buffer__from__host_a8f70c3aaec2e09b4860a208ad68a63dd}} 
\mbox{\hyperlink{structmmal__worker__msg__header}{mmal\+\_\+worker\+\_\+msg\+\_\+header}} {\bfseries header}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___d_r_i_v_e_r___b_u_f_f_e_r___t}{M\+M\+A\+L\+\_\+\+D\+R\+I\+V\+E\+R\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+T}} \mbox{\hyperlink{structmmal__worker__buffer__from__host_a422990dfd49bcf4933a3b6623e752d7b}{drvbuf}}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___d_r_i_v_e_r___b_u_f_f_e_r___t}{M\+M\+A\+L\+\_\+\+D\+R\+I\+V\+E\+R\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+T}} \mbox{\hyperlink{structmmal__worker__buffer__from__host_a7e5de3b3b1902709031eea0842537cff}{drvbuf\+\_\+ref}}
\item 
\mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} \mbox{\hyperlink{structmmal__worker__buffer__from__host_ac06eacf52fbb147b0750e4187fb32243}{buffer\+\_\+header}}
\item 
\mbox{\Hypertarget{structmmal__worker__buffer__from__host_a54b9a91009a3f03d9527590d527bf4f7}\label{structmmal__worker__buffer__from__host_a54b9a91009a3f03d9527590d527bf4f7}} 
\mbox{\hyperlink{union_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t_y_p_e___s_p_e_c_i_f_i_c___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+\+T\+Y\+P\+E\+\_\+\+S\+P\+E\+C\+I\+F\+I\+C\+\_\+T}} {\bfseries buffer\+\_\+header\+\_\+type\+\_\+specific}
\item 
\mbox{\Hypertarget{structmmal__worker__buffer__from__host_a7356a655c21ee277edf96a758dd8c0b3}\label{structmmal__worker__buffer__from__host_a7356a655c21ee277edf96a758dd8c0b3}} 
M\+M\+A\+L\+\_\+\+B\+O\+O\+L\+\_\+T {\bfseries is\+\_\+zero\+\_\+copy}
\item 
\mbox{\Hypertarget{structmmal__worker__buffer__from__host_afbf6b12dd218445d742cb63e73c64562}\label{structmmal__worker__buffer__from__host_afbf6b12dd218445d742cb63e73c64562}} 
M\+M\+A\+L\+\_\+\+B\+O\+O\+L\+\_\+T {\bfseries has\+\_\+reference}
\item 
uint32\+\_\+t \mbox{\hyperlink{structmmal__worker__buffer__from__host_a4e7a4c9caf095052b8a38eaf17227be6}{payload\+\_\+in\+\_\+message}}
\item 
\mbox{\Hypertarget{structmmal__worker__buffer__from__host_a72399ec6b95212cd170d263b9100f117}\label{structmmal__worker__buffer__from__host_a72399ec6b95212cd170d263b9100f117}} 
uint8\+\_\+t {\bfseries short\+\_\+data} \mbox{[}\mbox{\hyperlink{mmal__vc__msgs_8h_a1e04e1a8b067e59a7657d4bc0cecb456}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+S\+H\+O\+R\+T\+\_\+\+D\+A\+TA}}\mbox{]}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Receive a buffer from the host.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group___mmal_port_ga098a7b91bb6fc596aed0e5585aee3253}{mmal\+\_\+port\+\_\+send\+\_\+buffer()}} 
\end{DoxySeeAlso}


\subsection{Member Data Documentation}
\mbox{\Hypertarget{structmmal__worker__buffer__from__host_ac06eacf52fbb147b0750e4187fb32243}\label{structmmal__worker__buffer__from__host_ac06eacf52fbb147b0750e4187fb32243}} 
\index{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}!buffer\+\_\+header@{buffer\+\_\+header}}
\index{buffer\+\_\+header@{buffer\+\_\+header}!mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}}
\subsubsection{\texorpdfstring{buffer\+\_\+header}{buffer\_header}}
{\footnotesize\ttfamily \mbox{\hyperlink{struct_m_m_a_l___b_u_f_f_e_r___h_e_a_d_e_r___t}{M\+M\+A\+L\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+H\+E\+A\+D\+E\+R\+\_\+T}} mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host\+::buffer\+\_\+header}

the buffer header itself \mbox{\Hypertarget{structmmal__worker__buffer__from__host_a422990dfd49bcf4933a3b6623e752d7b}\label{structmmal__worker__buffer__from__host_a422990dfd49bcf4933a3b6623e752d7b}} 
\index{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}!drvbuf@{drvbuf}}
\index{drvbuf@{drvbuf}!mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}}
\subsubsection{\texorpdfstring{drvbuf}{drvbuf}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{struct_m_m_a_l___d_r_i_v_e_r___b_u_f_f_e_r___t}{M\+M\+A\+L\+\_\+\+D\+R\+I\+V\+E\+R\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+T}} mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host\+::drvbuf}

Our control data, copied from the buffer header \char`\"{}driver area\char`\"{} \begin{DoxySeeAlso}{See also}
mmal\+\_\+buffer\+\_\+header\+\_\+driver\+\_\+data(). 
\end{DoxySeeAlso}
\mbox{\Hypertarget{structmmal__worker__buffer__from__host_a7e5de3b3b1902709031eea0842537cff}\label{structmmal__worker__buffer__from__host_a7e5de3b3b1902709031eea0842537cff}} 
\index{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}!drvbuf\+\_\+ref@{drvbuf\+\_\+ref}}
\index{drvbuf\+\_\+ref@{drvbuf\+\_\+ref}!mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}}
\subsubsection{\texorpdfstring{drvbuf\+\_\+ref}{drvbuf\_ref}}
{\footnotesize\ttfamily struct \mbox{\hyperlink{struct_m_m_a_l___d_r_i_v_e_r___b_u_f_f_e_r___t}{M\+M\+A\+L\+\_\+\+D\+R\+I\+V\+E\+R\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+T}} mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host\+::drvbuf\+\_\+ref}

Referenced buffer control data. This is set if the buffer is referencing another buffer as is the case with passthrough ports where buffers on the output port reference buffers on the input port. \mbox{\Hypertarget{structmmal__worker__buffer__from__host_a4e7a4c9caf095052b8a38eaf17227be6}\label{structmmal__worker__buffer__from__host_a4e7a4c9caf095052b8a38eaf17227be6}} 
\index{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}!payload\+\_\+in\+\_\+message@{payload\+\_\+in\+\_\+message}}
\index{payload\+\_\+in\+\_\+message@{payload\+\_\+in\+\_\+message}!mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host@{mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host}}
\subsubsection{\texorpdfstring{payload\+\_\+in\+\_\+message}{payload\_in\_message}}
{\footnotesize\ttfamily uint32\+\_\+t mmal\+\_\+worker\+\_\+buffer\+\_\+from\+\_\+host\+::payload\+\_\+in\+\_\+message}

If the data is short enough, then send it in the control message rather than using a separate V\+C\+H\+IQ bulk transfer. 

The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/\+Volumes/\+W\+O\+R\+K\+\_\+\+I\+N\+\_\+\+P\+R\+O\+G\+R\+E\+S\+S/\+R\+A\+S\+P\+B\+E\+R\+R\+Y\+\_\+\+P\+I/firmware-\/master/opt/vc/include/interface/mmal/vc/\mbox{\hyperlink{mmal__vc__msgs_8h}{mmal\+\_\+vc\+\_\+msgs.\+h}}\end{DoxyCompactItemize}
