\hypertarget{mpool__grdma_8h}{\section{ompi/mca/mpool/grdma/mpool\+\_\+grdma.h File Reference}
\label{mpool__grdma_8h}\index{ompi/mca/mpool/grdma/mpool\+\_\+grdma.\+h@{ompi/mca/mpool/grdma/mpool\+\_\+grdma.\+h}}
}
{\ttfamily \#include \char`\"{}ompi\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/class/opal\+\_\+list.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/class/ompi\+\_\+free\+\_\+list.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/event/event.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}ompi/mca/mpool/mpool.\+h\char`\"{}}\\*
{\ttfamily \#include $<$sys/mman.\+h$>$}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structmca__mpool__grdma__pool__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+pool\+\_\+t}
\item 
struct \hyperlink{structmca__mpool__grdma__component__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+component\+\_\+t}
\item 
struct \hyperlink{structmca__mpool__base__resources__t}{mca\+\_\+mpool\+\_\+base\+\_\+resources\+\_\+t}
\item 
struct \hyperlink{structmca__mpool__grdma__module__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+module\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mpool__grdma_8h_a977f014dbb37a2f5a8278c682fe2e7a4}{\#define {\bfseries M\+C\+A\+\_\+\+M\+P\+O\+O\+L\+\_\+\+G\+R\+D\+M\+A\+\_\+\+N\+A\+M\+E\+\_\+\+M\+A\+X}~256}\label{mpool__grdma_8h_a977f014dbb37a2f5a8278c682fe2e7a4}

\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mpool__grdma_8h_aee468eeb6d7fd2b9c3c20eb4be119062}{typedef struct \\*
\hyperlink{structmca__mpool__grdma__pool__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+pool\+\_\+t} {\bfseries mca\+\_\+mpool\+\_\+grdma\+\_\+pool\+\_\+t}}\label{mpool__grdma_8h_aee468eeb6d7fd2b9c3c20eb4be119062}

\item 
\hypertarget{mpool__grdma_8h_afb2adfb3cdc0944580b52d19b83ece77}{typedef struct \\*
\hyperlink{structmca__mpool__grdma__component__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+component\+\_\+t} {\bfseries mca\+\_\+mpool\+\_\+grdma\+\_\+component\+\_\+t}}\label{mpool__grdma_8h_afb2adfb3cdc0944580b52d19b83ece77}

\item 
\hypertarget{mpool__grdma_8h_ac6116af4c78b7e936612272bd2fbe91e}{typedef struct \\*
\hyperlink{structmca__mpool__base__resources__t}{mca\+\_\+mpool\+\_\+base\+\_\+resources\+\_\+t} {\bfseries mca\+\_\+mpool\+\_\+base\+\_\+resources\+\_\+t}}\label{mpool__grdma_8h_ac6116af4c78b7e936612272bd2fbe91e}

\item 
\hypertarget{mpool__grdma_8h_a573f93a245345dea37f6c25096507ddd}{typedef struct \\*
\hyperlink{structmca__mpool__grdma__module__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+module\+\_\+t} {\bfseries mca\+\_\+mpool\+\_\+grdma\+\_\+module\+\_\+t}}\label{mpool__grdma_8h_a573f93a245345dea37f6c25096507ddd}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mpool__grdma_8h_a2e4ead7dff0ab5933cfdf2b7b5264f58}{{\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structmca__mpool__grdma__pool__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+pool\+\_\+t})}\label{mpool__grdma_8h_a2e4ead7dff0ab5933cfdf2b7b5264f58}

\item 
\hypertarget{mpool__grdma_8h_ab94faf35729741ea15947d7bbd7cce8f}{void {\bfseries mca\+\_\+mpool\+\_\+grdma\+\_\+module\+\_\+init} (\hyperlink{structmca__mpool__grdma__module__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+module\+\_\+t} $\ast$mpool, \hyperlink{structmca__mpool__grdma__pool__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+pool\+\_\+t} $\ast$pool)}\label{mpool__grdma_8h_ab94faf35729741ea15947d7bbd7cce8f}

\item 
\hypertarget{mpool__grdma_8h_addf80c44755f97536454ec568ea2cea5}{void $\ast$ {\bfseries mca\+\_\+mpool\+\_\+grdma\+\_\+base} (\hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool)}\label{mpool__grdma_8h_addf80c44755f97536454ec568ea2cea5}

\item 
void $\ast$ \hyperlink{mpool__grdma_8h_ab97445ab64472efca9142012c09431c0}{mca\+\_\+mpool\+\_\+grdma\+\_\+alloc} (\hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool, size\+\_\+t size, size\+\_\+t align, uint32\+\_\+t flags, \hyperlink{structmca__mpool__base__registration__t}{mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$$\ast$registration)
\begin{DoxyCompactList}\small\item\em Allocate block of registered memory. \end{DoxyCompactList}\item 
void $\ast$ \hyperlink{mpool__grdma_8h_ab1441092514f747a2f3ffcd62e7ce99c}{mca\+\_\+mpool\+\_\+grdma\+\_\+realloc} (\hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool, void $\ast$addr, size\+\_\+t size, \hyperlink{structmca__mpool__base__registration__t}{mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$$\ast$registration)
\begin{DoxyCompactList}\small\item\em realloc block of registered memory \end{DoxyCompactList}\item 
\hypertarget{mpool__grdma_8h_a3c9a9eed3345bec9d2373d9a1362ae52}{int \hyperlink{mpool__grdma_8h_a3c9a9eed3345bec9d2373d9a1362ae52}{mca\+\_\+mpool\+\_\+grdma\+\_\+register} (\hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool, void $\ast$addr, size\+\_\+t size, uint32\+\_\+t flags, \hyperlink{structmca__mpool__base__registration__t}{mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$$\ast$reg)}\label{mpool__grdma_8h_a3c9a9eed3345bec9d2373d9a1362ae52}

\begin{DoxyCompactList}\small\item\em register block of memory \end{DoxyCompactList}\item 
\hypertarget{mpool__grdma_8h_aa51b3fc4dc6a8701f4c5caf76006f4bd}{int \hyperlink{mpool__grdma_8h_aa51b3fc4dc6a8701f4c5caf76006f4bd}{mca\+\_\+mpool\+\_\+grdma\+\_\+deregister} (\hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool, \hyperlink{structmca__mpool__base__registration__t}{mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$reg)}\label{mpool__grdma_8h_aa51b3fc4dc6a8701f4c5caf76006f4bd}

\begin{DoxyCompactList}\small\item\em deregister memory \end{DoxyCompactList}\item 
void \hyperlink{mpool__grdma_8h_a3a1abe19e26b9853bb1a7a3f53de7f08}{mca\+\_\+mpool\+\_\+grdma\+\_\+free} (\hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool, void $\ast$addr, \hyperlink{structmca__mpool__base__registration__t}{mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$reg)
\begin{DoxyCompactList}\small\item\em free memory allocated by alloc function \end{DoxyCompactList}\item 
\hypertarget{mpool__grdma_8h_aaeeaae8c472a14ba719550b5fc31c485}{int \hyperlink{mpool__grdma_8h_aaeeaae8c472a14ba719550b5fc31c485}{mca\+\_\+mpool\+\_\+grdma\+\_\+find} (struct \hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool, void $\ast$addr, size\+\_\+t size, \hyperlink{structmca__mpool__base__registration__t}{mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$$\ast$reg)}\label{mpool__grdma_8h_aaeeaae8c472a14ba719550b5fc31c485}

\begin{DoxyCompactList}\small\item\em find registration for a given block of memory \end{DoxyCompactList}\item 
\hypertarget{mpool__grdma_8h_a75bbd840cbe5956d4e2db8215cc8b363}{int \hyperlink{mpool__grdma_8h_a75bbd840cbe5956d4e2db8215cc8b363}{mca\+\_\+mpool\+\_\+grdma\+\_\+release\+\_\+memory} (\hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool, void $\ast$base, size\+\_\+t size)}\label{mpool__grdma_8h_a75bbd840cbe5956d4e2db8215cc8b363}

\begin{DoxyCompactList}\small\item\em unregister all registration covering the block of memory \end{DoxyCompactList}\item 
\hypertarget{mpool__grdma_8h_a0b42d21930bd5ccc07b2822d552c7016}{void \hyperlink{mpool__grdma_8h_a0b42d21930bd5ccc07b2822d552c7016}{mca\+\_\+mpool\+\_\+grdma\+\_\+finalize} (struct \hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool)}\label{mpool__grdma_8h_a0b42d21930bd5ccc07b2822d552c7016}

\begin{DoxyCompactList}\small\item\em finalize mpool \end{DoxyCompactList}\item 
int \hyperlink{mpool__grdma_8h_aac2856fd47888e7fbcf7bf4995baf825}{mca\+\_\+mpool\+\_\+grdma\+\_\+ft\+\_\+event} (int state)
\begin{DoxyCompactList}\small\item\em Fault Tolerance Event Notification \hyperlink{structFunction}{Function}. \end{DoxyCompactList}\item 
\hypertarget{mpool__grdma_8h_ad858d926d236bae951e542cde26b7de5}{int {\bfseries mca\+\_\+mpool\+\_\+grdma\+\_\+progress} (void)}\label{mpool__grdma_8h_ad858d926d236bae951e542cde26b7de5}

\item 
bool \hyperlink{mpool__grdma_8h_ab4ae2a0133388f1d72aa25cffafa838e}{mca\+\_\+mpool\+\_\+grdma\+\_\+evict} (struct \hyperlink{structmca__mpool__base__module__t}{mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$mpool)
\begin{DoxyCompactList}\small\item\em evict one unused registration from the mpool's lru. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{mpool__grdma_8h_afe1462a12865657358c8f1a5b409ce2f}{O\+M\+P\+I\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \\*
\hyperlink{structmca__mpool__grdma__component__t}{mca\+\_\+mpool\+\_\+grdma\+\_\+component\+\_\+t} {\bfseries mca\+\_\+mpool\+\_\+grdma\+\_\+component}}\label{mpool__grdma_8h_afe1462a12865657358c8f1a5b409ce2f}

\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{mpool__grdma_8h_ab97445ab64472efca9142012c09431c0}{\index{mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}!mca\+\_\+mpool\+\_\+grdma\+\_\+alloc@{mca\+\_\+mpool\+\_\+grdma\+\_\+alloc}}
\index{mca\+\_\+mpool\+\_\+grdma\+\_\+alloc@{mca\+\_\+mpool\+\_\+grdma\+\_\+alloc}!mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}}
\subsubsection[{mca\+\_\+mpool\+\_\+grdma\+\_\+alloc}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ mca\+\_\+mpool\+\_\+grdma\+\_\+alloc (
\begin{DoxyParamCaption}
\item[{{\bf mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$}]{mpool, }
\item[{size\+\_\+t}]{size, }
\item[{size\+\_\+t}]{align, }
\item[{uint32\+\_\+t}]{flags, }
\item[{{\bf mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$$\ast$}]{reg}
\end{DoxyParamCaption}
)}}\label{mpool__grdma_8h_ab97445ab64472efca9142012c09431c0}


Allocate block of registered memory. 

Allocate block of registered memory. 

References mca\+\_\+mpool\+\_\+grdma\+\_\+register().



Referenced by mca\+\_\+mpool\+\_\+grdma\+\_\+realloc().

\hypertarget{mpool__grdma_8h_ab4ae2a0133388f1d72aa25cffafa838e}{\index{mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}!mca\+\_\+mpool\+\_\+grdma\+\_\+evict@{mca\+\_\+mpool\+\_\+grdma\+\_\+evict}}
\index{mca\+\_\+mpool\+\_\+grdma\+\_\+evict@{mca\+\_\+mpool\+\_\+grdma\+\_\+evict}!mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}}
\subsubsection[{mca\+\_\+mpool\+\_\+grdma\+\_\+evict}]{\setlength{\rightskip}{0pt plus 5cm}bool mca\+\_\+mpool\+\_\+grdma\+\_\+evict (
\begin{DoxyParamCaption}
\item[{struct {\bf mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$}]{mpool}
\end{DoxyParamCaption}
)}}\label{mpool__grdma_8h_ab4ae2a0133388f1d72aa25cffafa838e}


evict one unused registration from the mpool's lru. 

\begin{DoxyReturn}{Returns}
true on success, false on failure 
\end{DoxyReturn}


References opal\+\_\+atomic\+\_\+rmb(), and opal\+\_\+atomic\+\_\+wmb().



Referenced by mca\+\_\+mpool\+\_\+grdma\+\_\+register().

\hypertarget{mpool__grdma_8h_a3a1abe19e26b9853bb1a7a3f53de7f08}{\index{mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}!mca\+\_\+mpool\+\_\+grdma\+\_\+free@{mca\+\_\+mpool\+\_\+grdma\+\_\+free}}
\index{mca\+\_\+mpool\+\_\+grdma\+\_\+free@{mca\+\_\+mpool\+\_\+grdma\+\_\+free}!mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}}
\subsubsection[{mca\+\_\+mpool\+\_\+grdma\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void mca\+\_\+mpool\+\_\+grdma\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$}]{mpool, }
\item[{void $\ast$}]{addr, }
\item[{{\bf mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$}]{registration}
\end{DoxyParamCaption}
)}}\label{mpool__grdma_8h_a3a1abe19e26b9853bb1a7a3f53de7f08}


free memory allocated by alloc function 

free memory allocated by alloc function 

References mca\+\_\+mpool\+\_\+grdma\+\_\+deregister().



Referenced by mca\+\_\+mpool\+\_\+grdma\+\_\+realloc().

\hypertarget{mpool__grdma_8h_aac2856fd47888e7fbcf7bf4995baf825}{\index{mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}!mca\+\_\+mpool\+\_\+grdma\+\_\+ft\+\_\+event@{mca\+\_\+mpool\+\_\+grdma\+\_\+ft\+\_\+event}}
\index{mca\+\_\+mpool\+\_\+grdma\+\_\+ft\+\_\+event@{mca\+\_\+mpool\+\_\+grdma\+\_\+ft\+\_\+event}!mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}}
\subsubsection[{mca\+\_\+mpool\+\_\+grdma\+\_\+ft\+\_\+event}]{\setlength{\rightskip}{0pt plus 5cm}int mca\+\_\+mpool\+\_\+grdma\+\_\+ft\+\_\+event (
\begin{DoxyParamCaption}
\item[{int}]{state}
\end{DoxyParamCaption}
)}}\label{mpool__grdma_8h_aac2856fd47888e7fbcf7bf4995baf825}


Fault Tolerance Event Notification \hyperlink{structFunction}{Function}. 


\begin{DoxyParams}{Parameters}
{\em state} & Checkpoint Stae \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
O\+M\+P\+I\+\_\+\+S\+U\+C\+C\+E\+S\+S or failure status 
\end{DoxyReturn}
\hypertarget{mpool__grdma_8h_ab1441092514f747a2f3ffcd62e7ce99c}{\index{mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}!mca\+\_\+mpool\+\_\+grdma\+\_\+realloc@{mca\+\_\+mpool\+\_\+grdma\+\_\+realloc}}
\index{mca\+\_\+mpool\+\_\+grdma\+\_\+realloc@{mca\+\_\+mpool\+\_\+grdma\+\_\+realloc}!mpool\+\_\+grdma.\+h@{mpool\+\_\+grdma.\+h}}
\subsubsection[{mca\+\_\+mpool\+\_\+grdma\+\_\+realloc}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ mca\+\_\+mpool\+\_\+grdma\+\_\+realloc (
\begin{DoxyParamCaption}
\item[{{\bf mca\+\_\+mpool\+\_\+base\+\_\+module\+\_\+t} $\ast$}]{mpool, }
\item[{void $\ast$}]{addr, }
\item[{size\+\_\+t}]{size, }
\item[{{\bf mca\+\_\+mpool\+\_\+base\+\_\+registration\+\_\+t} $\ast$$\ast$}]{reg}
\end{DoxyParamCaption}
)}}\label{mpool__grdma_8h_ab1441092514f747a2f3ffcd62e7ce99c}


realloc block of registered memory 

realloc block of registered memory 

References mca\+\_\+mpool\+\_\+grdma\+\_\+alloc(), and mca\+\_\+mpool\+\_\+grdma\+\_\+free().

