\hypertarget{pml__ob1__recvfrag_8h}{\section{ompi/mca/pml/ob1/pml\+\_\+ob1\+\_\+recvfrag.h File Reference}
\label{pml__ob1__recvfrag_8h}\index{ompi/mca/pml/ob1/pml\+\_\+ob1\+\_\+recvfrag.\+h@{ompi/mca/pml/ob1/pml\+\_\+ob1\+\_\+recvfrag.\+h}}
}
{\ttfamily \#include \char`\"{}ompi/mca/btl/btl.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}pml\+\_\+ob1\+\_\+hdr.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structmca__pml__ob1__buffer__t}{mca\+\_\+pml\+\_\+ob1\+\_\+buffer\+\_\+t}
\item 
struct \hyperlink{structmca__pml__ob1__recv__frag__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define {\bfseries M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+A\+L\+L\+O\+C}(frag, rc)
\item 
\hypertarget{pml__ob1__recvfrag_8h_aab39938b7717b1d507cb93acb4bbe033}{\#define {\bfseries M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+I\+N\+I\+T}(frag, hdr, segs, cnt, btl)}\label{pml__ob1__recvfrag_8h_aab39938b7717b1d507cb93acb4bbe033}

\item 
\#define {\bfseries M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+R\+E\+T\+U\+R\+N}(frag)
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{pml__ob1__recvfrag_8h_a50f8ac7064f380bbe3899d9cff58d58b}{typedef struct \hyperlink{structmca__pml__ob1__buffer__t}{mca\+\_\+pml\+\_\+ob1\+\_\+buffer\+\_\+t} {\bfseries mca\+\_\+pml\+\_\+ob1\+\_\+buffer\+\_\+t}}\label{pml__ob1__recvfrag_8h_a50f8ac7064f380bbe3899d9cff58d58b}

\item 
\hypertarget{pml__ob1__recvfrag_8h_a4039fff431a581e1db2ed0f38b7fc018}{typedef struct \\*
\hyperlink{structmca__pml__ob1__recv__frag__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t} {\bfseries mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t}}\label{pml__ob1__recvfrag_8h_a4039fff431a581e1db2ed0f38b7fc018}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{pml__ob1__recvfrag_8h_abb7f11ea53c76ca088012399f3c80e01}{{\bfseries O\+B\+J\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+C\+L\+A\+R\+A\+T\+I\+O\+N} (\hyperlink{structmca__pml__ob1__recv__frag__t}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+t})}\label{pml__ob1__recvfrag_8h_abb7f11ea53c76ca088012399f3c80e01}

\item 
\hypertarget{pml__ob1__recvfrag_8h_a6d2d7081c2598fa3948a61c9f0f668e6}{void \hyperlink{pml__ob1__recvfrag_8h_a6d2d7081c2598fa3948a61c9f0f668e6}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+match} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$descriptor, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8h_a6d2d7081c2598fa3948a61c9f0f668e6}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (match). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8h_a2c4aefd8f5e5b1ebac390083e852b917}{void \hyperlink{pml__ob1__recvfrag_8h_a2c4aefd8f5e5b1ebac390083e852b917}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rndv} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$descriptor, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8h_a2c4aefd8f5e5b1ebac390083e852b917}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (rndv). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8h_a6d6831a185a2a4fb7668bf56db1b5dfc}{void \hyperlink{pml__ob1__recvfrag_8h_a6d6831a185a2a4fb7668bf56db1b5dfc}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+rget} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$descriptor, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8h_a6d6831a185a2a4fb7668bf56db1b5dfc}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (rget). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8h_a7a7f123fb472861d5fdbd90453098c8d}{void \hyperlink{pml__ob1__recvfrag_8h_a7a7f123fb472861d5fdbd90453098c8d}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+ack} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$descriptor, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8h_a7a7f123fb472861d5fdbd90453098c8d}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (ack). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8h_a604cb4b917ebc11705d459bc8b16f3bf}{void \hyperlink{pml__ob1__recvfrag_8h_a604cb4b917ebc11705d459bc8b16f3bf}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+frag} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$descriptor, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8h_a604cb4b917ebc11705d459bc8b16f3bf}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (frag). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8h_a0b96a90e8f76c2e7945e210ce9ac4c63}{void \hyperlink{pml__ob1__recvfrag_8h_a0b96a90e8f76c2e7945e210ce9ac4c63}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+put} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$descriptor, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8h_a0b96a90e8f76c2e7945e210ce9ac4c63}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (put). \end{DoxyCompactList}\item 
\hypertarget{pml__ob1__recvfrag_8h_a6465fd5c68d1afafa270586a291ade2d}{void \hyperlink{pml__ob1__recvfrag_8h_a6465fd5c68d1afafa270586a291ade2d}{mca\+\_\+pml\+\_\+ob1\+\_\+recv\+\_\+frag\+\_\+callback\+\_\+fin} (\hyperlink{structmca__btl__base__module__t}{mca\+\_\+btl\+\_\+base\+\_\+module\+\_\+t} $\ast$btl, mca\+\_\+btl\+\_\+base\+\_\+tag\+\_\+t tag, \hyperlink{structmca__btl__base__descriptor__t}{mca\+\_\+btl\+\_\+base\+\_\+descriptor\+\_\+t} $\ast$descriptor, void $\ast$cbdata)}\label{pml__ob1__recvfrag_8h_a6465fd5c68d1afafa270586a291ade2d}

\begin{DoxyCompactList}\small\item\em Callback from B\+T\+L on receipt of a recv\+\_\+frag (fin). \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\hypertarget{pml__ob1__recvfrag_8h_a43603c403c645ca191076f1930f45534}{\index{pml\+\_\+ob1\+\_\+recvfrag.\+h@{pml\+\_\+ob1\+\_\+recvfrag.\+h}!M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+A\+L\+L\+O\+C@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+A\+L\+L\+O\+C}}
\index{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+A\+L\+L\+O\+C@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+A\+L\+L\+O\+C}!pml\+\_\+ob1\+\_\+recvfrag.\+h@{pml\+\_\+ob1\+\_\+recvfrag.\+h}}
\subsubsection[{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+A\+L\+L\+O\+C}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+A\+L\+L\+O\+C(
\begin{DoxyParamCaption}
\item[{}]{frag, }
\item[{}]{rc}
\end{DoxyParamCaption}
)}}\label{pml__ob1__recvfrag_8h_a43603c403c645ca191076f1930f45534}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                            \(\backslash\)
    ompi\_free\_list\_item\_t* item;                                \(\backslash\)
    OMPI\_FREE\_LIST\_WAIT(&mca\_pml\_ob1.recv\_frags, item, rc);     \(\backslash\)
    frag = (\hyperlink{structmca__pml__ob1__recv__frag__t}{mca\_pml\_ob1\_recv\_frag\_t}*)item;                      \(\backslash\)
\} \textcolor{keywordflow}{while}(0)
\end{DoxyCode}
\hypertarget{pml__ob1__recvfrag_8h_ab22aab8cd155a84016507e16869791fd}{\index{pml\+\_\+ob1\+\_\+recvfrag.\+h@{pml\+\_\+ob1\+\_\+recvfrag.\+h}!M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+R\+E\+T\+U\+R\+N@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+R\+E\+T\+U\+R\+N}}
\index{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+R\+E\+T\+U\+R\+N@{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+R\+E\+T\+U\+R\+N}!pml\+\_\+ob1\+\_\+recvfrag.\+h@{pml\+\_\+ob1\+\_\+recvfrag.\+h}}
\subsubsection[{M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+R\+E\+T\+U\+R\+N}]{\setlength{\rightskip}{0pt plus 5cm}\#define M\+C\+A\+\_\+\+P\+M\+L\+\_\+\+O\+B1\+\_\+\+R\+E\+C\+V\+\_\+\+F\+R\+A\+G\+\_\+\+R\+E\+T\+U\+R\+N(
\begin{DoxyParamCaption}
\item[{}]{frag}
\end{DoxyParamCaption}
)}}\label{pml__ob1__recvfrag_8h_ab22aab8cd155a84016507e16869791fd}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                                    \(\backslash\)
    if( frag->segments[0].seg\_len > mca\_pml\_ob1.unexpected\_limit ) \{    \(\backslash\)
        \textcolor{comment}{/* return buffers */}                                            \(\backslash\)
        mca\_pml\_ob1.allocator->alc\_free( mca\_pml\_ob1.allocator,         \(\backslash\)
                                         frag->buffers[0].addr );       \(\backslash\)
    \}                                                                   \(\backslash\)
    frag->num\_segments = 0;                                             \(\backslash\)
                                                                        \(\backslash\)
    \textcolor{comment}{/* return recv\_frag */}                                              \(\backslash\)
    OMPI\_FREE\_LIST\_RETURN(&mca\_pml\_ob1.recv\_frags,                      \(\backslash\)
                          (\hyperlink{structompi__free__list__item__t}{ompi\_free\_list\_item\_t}*)frag);                \(\backslash\)
 \} \textcolor{keywordflow}{while}(0)
\end{DoxyCode}
