\hypertarget{opal_2mca_2memchecker_2memchecker_8h}{\section{opal/mca/memchecker/memchecker.h File Reference}
\label{opal_2mca_2memchecker_2memchecker_8h}\index{opal/mca/memchecker/memchecker.\+h@{opal/mca/memchecker/memchecker.\+h}}
}


memchecker (memory checker) framework component interface.  


{\ttfamily \#include \char`\"{}opal\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/base/base.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structopal__memchecker__base__component__2__0__0__t}{opal\+\_\+memchecker\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em Structure for memchecker components. \end{DoxyCompactList}\item 
struct \hyperlink{structopal__memchecker__base__module__1__0__0__t}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em Structure for memchecker modules. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a1f61513007b95842400a9ea9c98d44fd}{O\+P\+A\+L\+\_\+\+M\+E\+M\+C\+H\+E\+C\+K\+E\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}
\begin{DoxyCompactList}\small\item\em Macro for use in components that are of type memchecker. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a5c8a7d864fff82d24fa7aaa89caeca92}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Module initialization function. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_ae0de014dac75c6b6fd67d4d990c94ae5}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_ae0de014dac75c6b6fd67d4d990c94ae5}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+runindebugger\+\_\+fn\+\_\+t} )(void)}\label{opal_2mca_2memchecker_2memchecker_8h_ae0de014dac75c6b6fd67d4d990c94ae5}

\begin{DoxyCompactList}\small\item\em Module function to query, whether we're under the memory checking program, like valgrind. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_acacfd106a52b3928485ae20bd61fc2b0}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_acacfd106a52b3928485ae20bd61fc2b0}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+isaddressable\+\_\+fn\+\_\+t} )(void $\ast$p, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_acacfd106a52b3928485ae20bd61fc2b0}

\begin{DoxyCompactList}\small\item\em Module function to check, whether memory region is addressable. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_af18c42e1b85996e6ee5640691955bc6d}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_af18c42e1b85996e6ee5640691955bc6d}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+isdefined\+\_\+fn\+\_\+t} )(void $\ast$p, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_af18c42e1b85996e6ee5640691955bc6d}

\begin{DoxyCompactList}\small\item\em Module function to check, whether memory region is defined. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a834abb59398e76a57d6d029a9f534a9f}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a834abb59398e76a57d6d029a9f534a9f}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+mem\+\_\+noaccess\+\_\+fn\+\_\+t} )(void $\ast$p, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_a834abb59398e76a57d6d029a9f534a9f}

\begin{DoxyCompactList}\small\item\em Module function to set memory region to not accessible. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a5a38f3b9d3c7072e78e1e8fda78ae5e4}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a5a38f3b9d3c7072e78e1e8fda78ae5e4}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+mem\+\_\+undefined\+\_\+fn\+\_\+t} )(void $\ast$p, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_a5a38f3b9d3c7072e78e1e8fda78ae5e4}

\begin{DoxyCompactList}\small\item\em Module function to set memory region to undefined. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_aa6fc9218f2105800ffe633d3b4b4eb50}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_aa6fc9218f2105800ffe633d3b4b4eb50}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+mem\+\_\+defined\+\_\+fn\+\_\+t} )(void $\ast$p, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_aa6fc9218f2105800ffe633d3b4b4eb50}

\begin{DoxyCompactList}\small\item\em Module function to set memory region to defined. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_adba939535d00cacedf83900e027d37fe}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_adba939535d00cacedf83900e027d37fe}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+mem\+\_\+defined\+\_\+if\+\_\+addressable\+\_\+fn\+\_\+t} )(void $\ast$p, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_adba939535d00cacedf83900e027d37fe}

\begin{DoxyCompactList}\small\item\em Module function to set memory region to defined, but only if addressable. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a9511b2c8dab33c6ef799ae9a91924bef}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a9511b2c8dab33c6ef799ae9a91924bef}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+create\+\_\+block\+\_\+fn\+\_\+t} )(void $\ast$p, size\+\_\+t len, char $\ast$description)}\label{opal_2mca_2memchecker_2memchecker_8h_a9511b2c8dab33c6ef799ae9a91924bef}

\begin{DoxyCompactList}\small\item\em Module function name a specific memory region. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_ade14cfb29b628eb0915054ae988952e0}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_ade14cfb29b628eb0915054ae988952e0}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+discard\+\_\+block\+\_\+fn\+\_\+t} )(void $\ast$p)}\label{opal_2mca_2memchecker_2memchecker_8h_ade14cfb29b628eb0915054ae988952e0}

\begin{DoxyCompactList}\small\item\em Module function to discard a named memory region. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_abff74df76c63fe584cd405eff597a16d}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_abff74df76c63fe584cd405eff597a16d}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+leakcheck\+\_\+fn\+\_\+t} )(void)}\label{opal_2mca_2memchecker_2memchecker_8h_abff74df76c63fe584cd405eff597a16d}

\begin{DoxyCompactList}\small\item\em Module function to check for any leaks. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a17f7d3391191768b30f97a8aff0fd388}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a17f7d3391191768b30f97a8aff0fd388}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+get\+\_\+vbits\+\_\+fn\+\_\+t} )(void $\ast$p, char $\ast$vbits, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_a17f7d3391191768b30f97a8aff0fd388}

\begin{DoxyCompactList}\small\item\em Module function to get vbits. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a0330f53d220978d8c3b4ed0a3353c3e2}{typedef int($\ast$ \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a0330f53d220978d8c3b4ed0a3353c3e2}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+set\+\_\+vbits\+\_\+fn\+\_\+t} )(void $\ast$p, char $\ast$vbits, size\+\_\+t len)}\label{opal_2mca_2memchecker_2memchecker_8h_a0330f53d220978d8c3b4ed0a3353c3e2}

\begin{DoxyCompactList}\small\item\em Module function to set vbits. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_af3d29fdb1bbf8da4231f79c4af310626}{typedef struct \\*
\hyperlink{structopal__memchecker__base__component__2__0__0__t}{opal\+\_\+memchecker\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} \hyperlink{opal_2mca_2memchecker_2memchecker_8h_af3d29fdb1bbf8da4231f79c4af310626}{opal\+\_\+memchecker\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}}\label{opal_2mca_2memchecker_2memchecker_8h_af3d29fdb1bbf8da4231f79c4af310626}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a4842c417780d430bce6f1a6a4ebb759b}{typedef struct \\*
\hyperlink{structopal__memchecker__base__component__2__0__0__t}{opal\+\_\+memchecker\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} {\bfseries opal\+\_\+memchecker\+\_\+base\+\_\+component\+\_\+t}}\label{opal_2mca_2memchecker_2memchecker_8h_a4842c417780d430bce6f1a6a4ebb759b}

\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a8dcbdfb528f6eb713e74fa75cec7a8c9}{typedef struct \\*
\hyperlink{structopal__memchecker__base__module__1__0__0__t}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} \hyperlink{opal_2mca_2memchecker_2memchecker_8h_a8dcbdfb528f6eb713e74fa75cec7a8c9}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}}\label{opal_2mca_2memchecker_2memchecker_8h_a8dcbdfb528f6eb713e74fa75cec7a8c9}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\item 
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a9cfaec5fd8ccb3bfbde7bf37545f340c}{typedef struct \\*
\hyperlink{structopal__memchecker__base__module__1__0__0__t}{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+t}}\label{opal_2mca_2memchecker_2memchecker_8h_a9cfaec5fd8ccb3bfbde7bf37545f340c}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
memchecker (memory checker) framework component interface. 

Intent

This is a very thin framework to abstract memory checking tools, such as valgrind and possibly Sun rtc (memory checking available possibly only under Solaris/\+Sparc).

Currently, only functionality for hiding and unhiding of memory is added; further functions provided by the memory checker/api checker could be added, however, this comes (at least for valgrind) with considerable overhead. One possible option would be to have error\+\_\+print\+\_\+callbacks, that output different error messages, depending on the memory location being hit by certain error. 

\subsection{Macro Definition Documentation}
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a1f61513007b95842400a9ea9c98d44fd}{\index{opal/mca/memchecker/memchecker.\+h@{opal/mca/memchecker/memchecker.\+h}!O\+P\+A\+L\+\_\+\+M\+E\+M\+C\+H\+E\+C\+K\+E\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+P\+A\+L\+\_\+\+M\+E\+M\+C\+H\+E\+C\+K\+E\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}
\index{O\+P\+A\+L\+\_\+\+M\+E\+M\+C\+H\+E\+C\+K\+E\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+P\+A\+L\+\_\+\+M\+E\+M\+C\+H\+E\+C\+K\+E\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}!opal/mca/memchecker/memchecker.\+h@{opal/mca/memchecker/memchecker.\+h}}
\subsubsection[{O\+P\+A\+L\+\_\+\+M\+E\+M\+C\+H\+E\+C\+K\+E\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+P\+A\+L\+\_\+\+M\+E\+M\+C\+H\+E\+C\+K\+E\+R\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}\label{opal_2mca_2memchecker_2memchecker_8h_a1f61513007b95842400a9ea9c98d44fd}
{\bfseries Value\+:}
\begin{DoxyCode}
MCA\_BASE\_VERSION\_2\_0\_0, \(\backslash\)
    \textcolor{stringliteral}{"memchecker"}, 2, 0, 0
\end{DoxyCode}


Macro for use in components that are of type memchecker. 



\subsection{Typedef Documentation}
\hypertarget{opal_2mca_2memchecker_2memchecker_8h_a5c8a7d864fff82d24fa7aaa89caeca92}{\index{opal/mca/memchecker/memchecker.\+h@{opal/mca/memchecker/memchecker.\+h}!opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t@{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t}}
\index{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t@{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t}!opal/mca/memchecker/memchecker.\+h@{opal/mca/memchecker/memchecker.\+h}}
\subsubsection[{opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ opal\+\_\+memchecker\+\_\+base\+\_\+module\+\_\+init\+\_\+1\+\_\+0\+\_\+0\+\_\+fn\+\_\+t)(void)}}\label{opal_2mca_2memchecker_2memchecker_8h_a5c8a7d864fff82d24fa7aaa89caeca92}


Module initialization function. 

Should return O\+P\+A\+L\+\_\+\+S\+U\+C\+C\+E\+S\+S. 