\hypertarget{mmal__vc__api_8h}{}\section{/\+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/mmal\+\_\+vc\+\_\+api.h File Reference}
\label{mmal__vc__api_8h}\index{/\+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/mmal\+\_\+vc\+\_\+api.\+h@{/\+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/mmal\+\_\+vc\+\_\+api.\+h}}
{\ttfamily \#include \char`\"{}interface/mmal/mmal\+\_\+types.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}interface/mmal/mmal\+\_\+parameters.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}interface/mmal/mmal\+\_\+port.\+h\char`\"{}}\newline
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___v_c___c_o_m_p___s_t_a_t_s___t}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+S\+\_\+T}}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___v_c___s_t_a_t_s___t}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+S\+T\+A\+T\+S\+\_\+T}}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___v_c___s_t_a_t_s___t_1_1service}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+S\+T\+A\+T\+S\+\_\+\+T\+::service}}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___v_c___s_t_a_t_s___t_1_1commands}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+S\+T\+A\+T\+S\+\_\+\+T\+::commands}}
\item 
struct \mbox{\hyperlink{struct_m_m_a_l___v_c___h_o_s_t___l_o_g___t}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+H\+O\+S\+T\+\_\+\+L\+O\+G\+\_\+T}}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a28483d77dde246bff843828da2863db0}\label{mmal__vc__api_8h_a28483d77dde246bff843828da2863db0}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+D\+E\+V\+\_\+\+V\+C\+H\+I\+Q\+\_\+\+P\+A\+TH}~\char`\"{}/dev/vchiq\char`\"{}
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_ad6d6d3282a88e3c638acd84d7da335e1}\label{mmal__vc__api_8h_ad6d6d3282a88e3c638acd84d7da335e1}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+D\+E\+V\+\_\+\+V\+C\+H\+I\+Q\+\_\+\+M\+O\+DE}~O\+\_\+\+R\+D\+WR
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_aee56a523394bd20ab99ff3ddcc5afc25}\label{mmal__vc__api_8h_aee56a523394bd20ab99ff3ddcc5afc25}} 
\#define {\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+A\+P\+I\+\_\+\+H\+A\+V\+E\+\_\+\+H\+O\+S\+T\+\_\+\+L\+OG}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a5c76e6837935d4783ba7ff690305f9b4}\label{mmal__vc__api_8h_a5c76e6837935d4783ba7ff690305f9b4}} 
typedef struct \mbox{\hyperlink{struct_m_m_a_l___v_c___s_t_a_t_s___t}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+S\+T\+A\+T\+S\+\_\+T}} {\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+S\+T\+A\+T\+S\+\_\+T}
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a8a3a9933c74db996354d06ceb2988e5d}\label{mmal__vc__api_8h_a8a3a9933c74db996354d06ceb2988e5d}} 
typedef struct \mbox{\hyperlink{struct_m_m_a_l___v_c___h_o_s_t___l_o_g___t}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+H\+O\+S\+T\+\_\+\+L\+O\+G\+\_\+T}} {\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+H\+O\+S\+T\+\_\+\+L\+O\+G\+\_\+T}
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{mmal__vc__api_8h_a13e59b89fce3f22f200cc7a45846f429}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+E\+\_\+T}} \{ \newline
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+I\+D\+LE}, 
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+C\+R\+E\+A\+T\+ED}, 
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+D\+E\+S\+T\+R\+O\+Y\+I\+NG}, 
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+D\+E\+S\+T\+R\+O\+Y\+ED}, 
\newline
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+U\+N\+U\+S\+ED} = 0xffffffff
 \}
\item 
enum \mbox{\hyperlink{mmal__vc__api_8h_a0de83aa913d2940fa37535dc88cc72d0}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T}} \{ {\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+F\+O\+U\+ND}, 
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+O\+N\+E\+N\+T\+\_\+\+N\+O\+T\+\_\+\+F\+O\+U\+ND}, 
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+P\+O\+R\+T\+\_\+\+N\+O\+T\+\_\+\+F\+O\+U\+ND}, 
{\bfseries M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+I\+N\+V\+A\+L\+ID} = 0x7fffffff
 \}
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a50936881513ceb01df6a6496d5627da5}\label{mmal__vc__api_8h_a50936881513ceb01df6a6496d5627da5}} 
enum {\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+M\+O\+D\+E\+\_\+T} \{ \newline
{\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+N\+O\+NE} = 0, 
{\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+N\+O\+R\+M\+AL} = 1, 
{\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+D\+I\+S\+C\+A\+RD} = 2, 
{\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+A\+G\+G\+R\+E\+S\+S\+I\+VE} = 4, 
\newline
{\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+S\+H\+U\+F\+F\+LE} = 0x80, 
{\bfseries M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+A\+LL} = M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+N\+O\+R\+M\+AL $\vert$ M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+D\+I\+S\+C\+A\+RD $\vert$ M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+A\+G\+G\+R\+E\+S\+S\+I\+VE
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a4f2f74d90880856a69243e30f54d5361}\label{mmal__vc__api_8h_a4f2f74d90880856a69243e30f54d5361}} 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} {\bfseries mmal\+\_\+vc\+\_\+init} (void)
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_abe2e136698a0040ee8c155cf54d4eb09}\label{mmal__vc__api_8h_abe2e136698a0040ee8c155cf54d4eb09}} 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} {\bfseries mmal\+\_\+vc\+\_\+init\+\_\+fd} (int dev\+\_\+vchiq\+\_\+fd)
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a91989c32825290164965952913788735}\label{mmal__vc__api_8h_a91989c32825290164965952913788735}} 
void {\bfseries mmal\+\_\+vc\+\_\+deinit} (void)
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a73a56280af059634913c71f2b49c9066}\label{mmal__vc__api_8h_a73a56280af059634913c71f2b49c9066}} 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} {\bfseries mmal\+\_\+vc\+\_\+use} (void)
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_aa00a7d6498486d72ea4d4e8c23224543}\label{mmal__vc__api_8h_aa00a7d6498486d72ea4d4e8c23224543}} 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} {\bfseries mmal\+\_\+vc\+\_\+release} (void)
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_a7aaf3538913e98860a96befca9af4cb2}\label{mmal__vc__api_8h_a7aaf3538913e98860a96befca9af4cb2}} 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} {\bfseries mmal\+\_\+vc\+\_\+get\+\_\+version} (uint32\+\_\+t $\ast$major, uint32\+\_\+t $\ast$minor, uint32\+\_\+t $\ast$minimum)
\item 
\mbox{\Hypertarget{mmal__vc__api_8h_adfff8120a9d4f2687361a6a028b3c376}\label{mmal__vc__api_8h_adfff8120a9d4f2687361a6a028b3c376}} 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} {\bfseries mmal\+\_\+vc\+\_\+get\+\_\+stats} (\mbox{\hyperlink{struct_m_m_a_l___v_c___s_t_a_t_s___t}{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+S\+T\+A\+T\+S\+\_\+T}} $\ast$stats, int reset)
\item 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} \mbox{\hyperlink{mmal__vc__api_8h_a4eceeed22eacd33d2a8727a0be027c6d}{mmal\+\_\+vc\+\_\+get\+\_\+core\+\_\+stats}} (\mbox{\hyperlink{struct_m_m_a_l___c_o_r_e___s_t_a_t_i_s_t_i_c_s___t}{M\+M\+A\+L\+\_\+\+C\+O\+R\+E\+\_\+\+S\+T\+A\+T\+I\+S\+T\+I\+C\+S\+\_\+T}} $\ast$stats, \mbox{\hyperlink{mmal__vc__api_8h_a0de83aa913d2940fa37535dc88cc72d0}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T}} $\ast$result, char $\ast$name, size\+\_\+t namelen, \mbox{\hyperlink{group___mmal_port_gafcd53d504d5e497ee9932be2aee0154a}{M\+M\+A\+L\+\_\+\+P\+O\+R\+T\+\_\+\+T\+Y\+P\+E\+\_\+T}} type, unsigned component, unsigned port, M\+M\+A\+L\+\_\+\+C\+O\+R\+E\+\_\+\+S\+T\+A\+T\+S\+\_\+\+D\+IR dir, M\+M\+A\+L\+\_\+\+B\+O\+O\+L\+\_\+T reset)
\item 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} \mbox{\hyperlink{mmal__vc__api_8h_a93975f8c4f241ae2769c960bf3a4b36d}{mmal\+\_\+vc\+\_\+host\+\_\+log}} (const char $\ast$msg)
\item 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} \mbox{\hyperlink{mmal__vc__api_8h_a8c9b8689718585adbe1d2c974853612c}{mmal\+\_\+vc\+\_\+consume\+\_\+mem}} (size\+\_\+t size, uint32\+\_\+t $\ast$handle)
\item 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} \mbox{\hyperlink{mmal__vc__api_8h_a96a03b2500b34071db5190b08890c222}{mmal\+\_\+vc\+\_\+compact}} (M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+M\+O\+D\+E\+\_\+T mode, uint32\+\_\+t $\ast$duration)
\item 
\mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} \mbox{\hyperlink{mmal__vc__api_8h_ab9160a91def67a5bf9a50d09bf9ec5d4}{mmal\+\_\+vc\+\_\+lmk}} (uint32\+\_\+t alloc\+\_\+size)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Public A\+PI for M\+M\+AL VC client. Most functionality is exposed via M\+M\+AL itself. 

\subsection{Enumeration Type Documentation}
\mbox{\Hypertarget{mmal__vc__api_8h_a13e59b89fce3f22f200cc7a45846f429}\label{mmal__vc__api_8h_a13e59b89fce3f22f200cc7a45846f429}} 
\index{mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}!M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+E\+\_\+T@{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+E\+\_\+T}}
\index{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+E\+\_\+T@{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+E\+\_\+T}!mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+E\+\_\+T}{MMAL\_STATS\_COMP\_STATE\_T}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mmal__vc__api_8h_a13e59b89fce3f22f200cc7a45846f429}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+C\+O\+M\+P\+\_\+\+S\+T\+A\+T\+E\+\_\+T}}}

State of components created by the VC adaptation layer, used for statistics reporting. \mbox{\Hypertarget{mmal__vc__api_8h_a0de83aa913d2940fa37535dc88cc72d0}\label{mmal__vc__api_8h_a0de83aa913d2940fa37535dc88cc72d0}} 
\index{mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}!M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T@{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T}}
\index{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T@{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T}!mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}}
\subsubsection{\texorpdfstring{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T}{MMAL\_STATS\_RESULT\_T}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{mmal__vc__api_8h_a0de83aa913d2940fa37535dc88cc72d0}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T}}}

Status from querying M\+M\+AL core statistics. 

\subsection{Function Documentation}
\mbox{\Hypertarget{mmal__vc__api_8h_a96a03b2500b34071db5190b08890c222}\label{mmal__vc__api_8h_a96a03b2500b34071db5190b08890c222}} 
\index{mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}!mmal\+\_\+vc\+\_\+compact@{mmal\+\_\+vc\+\_\+compact}}
\index{mmal\+\_\+vc\+\_\+compact@{mmal\+\_\+vc\+\_\+compact}!mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}}
\subsubsection{\texorpdfstring{mmal\+\_\+vc\+\_\+compact()}{mmal\_vc\_compact()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} mmal\+\_\+vc\+\_\+compact (\begin{DoxyParamCaption}\item[{M\+M\+A\+L\+\_\+\+V\+C\+\_\+\+C\+O\+M\+P\+A\+C\+T\+\_\+\+M\+O\+D\+E\+\_\+T}]{mode,  }\item[{uint32\+\_\+t $\ast$}]{duration }\end{DoxyParamCaption})}

Trigger relocatable heap compaction. \mbox{\Hypertarget{mmal__vc__api_8h_a8c9b8689718585adbe1d2c974853612c}\label{mmal__vc__api_8h_a8c9b8689718585adbe1d2c974853612c}} 
\index{mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}!mmal\+\_\+vc\+\_\+consume\+\_\+mem@{mmal\+\_\+vc\+\_\+consume\+\_\+mem}}
\index{mmal\+\_\+vc\+\_\+consume\+\_\+mem@{mmal\+\_\+vc\+\_\+consume\+\_\+mem}!mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}}
\subsubsection{\texorpdfstring{mmal\+\_\+vc\+\_\+consume\+\_\+mem()}{mmal\_vc\_consume\_mem()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} mmal\+\_\+vc\+\_\+consume\+\_\+mem (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{size,  }\item[{uint32\+\_\+t $\ast$}]{handle }\end{DoxyParamCaption})}

Consumes memory in the relocatable heap.

The existing reserved memory is freed first then the new chunk is allocated. If zero is specified for the size then the previously reserved memory is freed and no allocation occurs.

At startup no memory is reserved.


\begin{DoxyParams}{Parameters}
{\em size} & Size of memory to consume in bytes. \\
\hline
{\em handle} & Set to the mem handle for the reserved memory or zero if no memory was allocated. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
M\+M\+A\+L\+\_\+\+S\+U\+C\+C\+E\+SS if memory was reserved (or size zero requested), M\+M\+A\+L\+\_\+\+E\+N\+O\+S\+PC if the allocation failed or M\+M\+A\+L\+\_\+\+E\+N\+O\+S\+YS if the A\+PI is not supported e.\+g in release mode VC images. 
\end{DoxyReturn}
\mbox{\Hypertarget{mmal__vc__api_8h_a4eceeed22eacd33d2a8727a0be027c6d}\label{mmal__vc__api_8h_a4eceeed22eacd33d2a8727a0be027c6d}} 
\index{mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}!mmal\+\_\+vc\+\_\+get\+\_\+core\+\_\+stats@{mmal\+\_\+vc\+\_\+get\+\_\+core\+\_\+stats}}
\index{mmal\+\_\+vc\+\_\+get\+\_\+core\+\_\+stats@{mmal\+\_\+vc\+\_\+get\+\_\+core\+\_\+stats}!mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}}
\subsubsection{\texorpdfstring{mmal\+\_\+vc\+\_\+get\+\_\+core\+\_\+stats()}{mmal\_vc\_get\_core\_stats()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} mmal\+\_\+vc\+\_\+get\+\_\+core\+\_\+stats (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{struct_m_m_a_l___c_o_r_e___s_t_a_t_i_s_t_i_c_s___t}{M\+M\+A\+L\+\_\+\+C\+O\+R\+E\+\_\+\+S\+T\+A\+T\+I\+S\+T\+I\+C\+S\+\_\+T}} $\ast$}]{stats,  }\item[{\mbox{\hyperlink{mmal__vc__api_8h_a0de83aa913d2940fa37535dc88cc72d0}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+S\+\_\+\+R\+E\+S\+U\+L\+T\+\_\+T}} $\ast$}]{result,  }\item[{char $\ast$}]{name,  }\item[{size\+\_\+t}]{namelen,  }\item[{\mbox{\hyperlink{group___mmal_port_gafcd53d504d5e497ee9932be2aee0154a}{M\+M\+A\+L\+\_\+\+P\+O\+R\+T\+\_\+\+T\+Y\+P\+E\+\_\+T}}}]{type,  }\item[{unsigned}]{component,  }\item[{unsigned}]{port,  }\item[{M\+M\+A\+L\+\_\+\+C\+O\+R\+E\+\_\+\+S\+T\+A\+T\+S\+\_\+\+D\+IR}]{dir,  }\item[{M\+M\+A\+L\+\_\+\+B\+O\+O\+L\+\_\+T}]{reset }\end{DoxyParamCaption})}

Return the M\+M\+AL core statistics for a given component/port.


\begin{DoxyParams}{Parameters}
{\em stats} & Updated with given port statistics \\
\hline
{\em result} & Whether the port/component was found \\
\hline
{\em name} & Filled in with the name of the port \\
\hline
{\em namelen} & Length of name \\
\hline
{\em component} & Which component (indexed from zero) \\
\hline
{\em port\+\_\+type} & Which type of port \\
\hline
{\em port} & Which port (index from zero) \\
\hline
{\em reset} & Reset the stats. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{mmal__vc__api_8h_a93975f8c4f241ae2769c960bf3a4b36d}\label{mmal__vc__api_8h_a93975f8c4f241ae2769c960bf3a4b36d}} 
\index{mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}!mmal\+\_\+vc\+\_\+host\+\_\+log@{mmal\+\_\+vc\+\_\+host\+\_\+log}}
\index{mmal\+\_\+vc\+\_\+host\+\_\+log@{mmal\+\_\+vc\+\_\+host\+\_\+log}!mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}}
\subsubsection{\texorpdfstring{mmal\+\_\+vc\+\_\+host\+\_\+log()}{mmal\_vc\_host\_log()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} mmal\+\_\+vc\+\_\+host\+\_\+log (\begin{DoxyParamCaption}\item[{const char $\ast$}]{msg }\end{DoxyParamCaption})}

Stores an arbitrary text message in a circular buffer inside the M\+M\+AL VC server. The purpose of this message is to log high level events from the host in order to diagnose problems that require multiple actions to reproduce. e.\+g. taking multiple pictures with different settings.


\begin{DoxyParams}{Parameters}
{\em msg} & The message text. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
M\+M\+A\+L\+\_\+\+S\+U\+C\+C\+E\+SS if the message was logged or M\+M\+A\+L\+\_\+\+E\+N\+O\+S\+YS if the A\+PI if not supported. 
\end{DoxyReturn}
\mbox{\Hypertarget{mmal__vc__api_8h_ab9160a91def67a5bf9a50d09bf9ec5d4}\label{mmal__vc__api_8h_ab9160a91def67a5bf9a50d09bf9ec5d4}} 
\index{mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}!mmal\+\_\+vc\+\_\+lmk@{mmal\+\_\+vc\+\_\+lmk}}
\index{mmal\+\_\+vc\+\_\+lmk@{mmal\+\_\+vc\+\_\+lmk}!mmal\+\_\+vc\+\_\+api.\+h@{mmal\+\_\+vc\+\_\+api.\+h}}
\subsubsection{\texorpdfstring{mmal\+\_\+vc\+\_\+lmk()}{mmal\_vc\_lmk()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group___mmal_types_ga5ac87230bd615d2b154a9d5899bc37fd}{M\+M\+A\+L\+\_\+\+S\+T\+A\+T\+U\+S\+\_\+T}} mmal\+\_\+vc\+\_\+lmk (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{alloc\+\_\+size }\end{DoxyParamCaption})}

Trigger L\+MK action from VC, for diagnostics. 