\hypertarget{osc_8h}{\section{ompi/mca/osc/osc.h File Reference}
\label{osc_8h}\index{ompi/mca/osc/osc.\+h@{ompi/mca/osc/osc.\+h}}
}


One-\/sided Communication interface.  


{\ttfamily \#include \char`\"{}opal\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structompi__osc__base__component__2__0__0__t}{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em O\+S\+C component interface. \end{DoxyCompactList}\item 
struct \hyperlink{structompi__osc__base__module__1__0__0__t}{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em O\+S\+C module instance. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{osc_8h_a412204c88724f57468385e5e4bfaa1ee}{O\+M\+P\+I\+\_\+\+O\+S\+C\+\_\+\+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 osc. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef int($\ast$ \hyperlink{osc_8h_ad87a40c56f0267c6d02ec24b008fc51d}{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+init\+\_\+fn\+\_\+t} )(bool enable\+\_\+progress\+\_\+threads, bool enable\+\_\+mpi\+\_\+threads)
\begin{DoxyCompactList}\small\item\em O\+S\+C component initialization. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{osc_8h_abb1b13de7b55faa6683ec8a02b7d4907}{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+finalize\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em O\+S\+C component finalization. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{osc_8h_ad7628e1653ea30b144f182a9c4a0df87}{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+query\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win, struct \hyperlink{structompi__info__t}{ompi\+\_\+info\+\_\+t} $\ast$info, struct \hyperlink{structompi__communicator__t}{ompi\+\_\+communicator\+\_\+t} $\ast$comm)
\begin{DoxyCompactList}\small\item\em O\+S\+C component query. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{osc_8h_a5a478127aaa40f07b724699c2c1ab64e}{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+select\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win, struct \hyperlink{structompi__info__t}{ompi\+\_\+info\+\_\+t} $\ast$info, struct \hyperlink{structompi__communicator__t}{ompi\+\_\+communicator\+\_\+t} $\ast$comm)
\begin{DoxyCompactList}\small\item\em O\+S\+C component select. \end{DoxyCompactList}\item 
\hypertarget{osc_8h_ac80e1537792277c786ec026f3efb5c3e}{typedef struct \\*
\hyperlink{structompi__osc__base__component__2__0__0__t}{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}}\label{osc_8h_ac80e1537792277c786ec026f3efb5c3e}

\item 
\hypertarget{osc_8h_a5149021b2e6926cb846f5ed6523dd2c3}{typedef \\*
\hyperlink{structompi__osc__base__component__2__0__0__t}{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+t}}\label{osc_8h_a5149021b2e6926cb846f5ed6523dd2c3}

\item 
typedef int($\ast$ \hyperlink{osc_8h_a2ba22495cdb76a9ff92240cd45145624}{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+free\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)
\begin{DoxyCompactList}\small\item\em Free resources associated with win. \end{DoxyCompactList}\item 
\hypertarget{osc_8h_a7a835c3af63c9b04d7cd9e95cecfb5d6}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+put\+\_\+fn\+\_\+t} )(void $\ast$origin\+\_\+addr, int origin\+\_\+count, struct \hyperlink{structompi__datatype__t}{ompi\+\_\+datatype\+\_\+t} $\ast$origin\+\_\+dt, int target, O\+P\+A\+L\+\_\+\+P\+T\+R\+D\+I\+F\+F\+\_\+\+T\+Y\+P\+E target\+\_\+disp, int target\+\_\+count, struct \hyperlink{structompi__datatype__t}{ompi\+\_\+datatype\+\_\+t} $\ast$target\+\_\+dt, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_a7a835c3af63c9b04d7cd9e95cecfb5d6}

\item 
\hypertarget{osc_8h_a4e9d114da4ecb7fa8ae8ce7288e4f7b0}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+get\+\_\+fn\+\_\+t} )(void $\ast$origin\+\_\+addr, int origin\+\_\+count, struct \hyperlink{structompi__datatype__t}{ompi\+\_\+datatype\+\_\+t} $\ast$origin\+\_\+dt, int target, O\+P\+A\+L\+\_\+\+P\+T\+R\+D\+I\+F\+F\+\_\+\+T\+Y\+P\+E target\+\_\+disp, int target\+\_\+count, struct \hyperlink{structompi__datatype__t}{ompi\+\_\+datatype\+\_\+t} $\ast$target\+\_\+dt, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_a4e9d114da4ecb7fa8ae8ce7288e4f7b0}

\item 
\hypertarget{osc_8h_ae885dcb5343dc30754851fd65971fb30}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+accumulate\+\_\+fn\+\_\+t} )(void $\ast$origin\+\_\+addr, int origin\+\_\+count, struct \hyperlink{structompi__datatype__t}{ompi\+\_\+datatype\+\_\+t} $\ast$origin\+\_\+dt, int target, O\+P\+A\+L\+\_\+\+P\+T\+R\+D\+I\+F\+F\+\_\+\+T\+Y\+P\+E target\+\_\+disp, int target\+\_\+count, struct \hyperlink{structompi__datatype__t}{ompi\+\_\+datatype\+\_\+t} $\ast$target\+\_\+dt, struct \hyperlink{structompi__op__t}{ompi\+\_\+op\+\_\+t} $\ast$op, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_ae885dcb5343dc30754851fd65971fb30}

\item 
\hypertarget{osc_8h_a80903477cee24aa32456a3c15714bc4b}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+fence\+\_\+fn\+\_\+t} )(int assert, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_a80903477cee24aa32456a3c15714bc4b}

\item 
\hypertarget{osc_8h_ace2fe0322966a8f88de5b585b6481c94}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+start\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int assert, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_ace2fe0322966a8f88de5b585b6481c94}

\item 
\hypertarget{osc_8h_ac003b203706087a39fd4268f8dde1917}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+complete\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_ac003b203706087a39fd4268f8dde1917}

\item 
\hypertarget{osc_8h_a0657c0fa697797be079347ee8ff00812}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+post\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__group__t}{ompi\+\_\+group\+\_\+t} $\ast$group, int assert, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_a0657c0fa697797be079347ee8ff00812}

\item 
\hypertarget{osc_8h_a528f940f4b2c58ab941a6dac060ed3b8}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+wait\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_a528f940f4b2c58ab941a6dac060ed3b8}

\item 
\hypertarget{osc_8h_a9026614362a522afe48d498056ebf174}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+test\+\_\+fn\+\_\+t} )(struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win, int $\ast$flag)}\label{osc_8h_a9026614362a522afe48d498056ebf174}

\item 
\hypertarget{osc_8h_a1b84df1029e04829be0fab4276d20951}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+lock\+\_\+fn\+\_\+t} )(int lock\+\_\+type, int target, int assert, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_a1b84df1029e04829be0fab4276d20951}

\item 
\hypertarget{osc_8h_a509130b71249badd4da1af5da3e07b7e}{typedef int($\ast$ {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+unlock\+\_\+fn\+\_\+t} )(int target, struct \hyperlink{structompi__win__t}{ompi\+\_\+win\+\_\+t} $\ast$win)}\label{osc_8h_a509130b71249badd4da1af5da3e07b7e}

\item 
\hypertarget{osc_8h_a44fdd66637df4a8c986feeb84f21fc10}{typedef struct \\*
\hyperlink{structompi__osc__base__module__1__0__0__t}{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t}}\label{osc_8h_a44fdd66637df4a8c986feeb84f21fc10}

\item 
\hypertarget{osc_8h_a5783594e16180580b88ca0a01d274006}{typedef \\*
\hyperlink{structompi__osc__base__module__1__0__0__t}{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+1\+\_\+0\+\_\+0\+\_\+t} {\bfseries ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+t}}\label{osc_8h_a5783594e16180580b88ca0a01d274006}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
One-\/sided Communication interface. 

Interface for implementing the one-\/sided communication chapter of the M\+P\+I-\/2 standard. Similar in scope to the P\+M\+L for point-\/to-\/point communication from M\+P\+I-\/1. 

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


Macro for use in components that are of type osc. 



\subsection{Typedef Documentation}
\hypertarget{osc_8h_abb1b13de7b55faa6683ec8a02b7d4907}{\index{osc.\+h@{osc.\+h}!ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+finalize\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+finalize\+\_\+fn\+\_\+t}}
\index{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+finalize\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+finalize\+\_\+fn\+\_\+t}!osc.\+h@{osc.\+h}}
\subsubsection[{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+finalize\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+finalize\+\_\+fn\+\_\+t)(void)}}\label{osc_8h_abb1b13de7b55faa6683ec8a02b7d4907}


O\+S\+C component finalization. 

Finalize the given one-\/sided component. This function should clean up any component-\/level data allocated during component\+\_\+init(). It should also clean up any data created during the lifetime of the component, including any modules that are outstanding.


\begin{DoxyRetVals}{Return values}
{\em O\+M\+P\+I\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Component successfully finalized \\
\hline
{\em O\+M\+P\+I\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{osc_8h_ad87a40c56f0267c6d02ec24b008fc51d}{\index{osc.\+h@{osc.\+h}!ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+init\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+init\+\_\+fn\+\_\+t}}
\index{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+init\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+init\+\_\+fn\+\_\+t}!osc.\+h@{osc.\+h}}
\subsubsection[{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+init\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+init\+\_\+fn\+\_\+t)(bool enable\+\_\+progress\+\_\+threads, bool enable\+\_\+mpi\+\_\+threads)}}\label{osc_8h_ad87a40c56f0267c6d02ec24b008fc51d}


O\+S\+C component initialization. 

Initialize the given one-\/sided component. This function should initialize any component-\/level data.

\begin{DoxyNote}{Note}
The component framework is not lazily opened, so attempts should be made to minimize the amount of memory allocated during this function.
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em enable\+\_\+progress\+\_\+threads} & True if the component needs to support progress threads \\
\hline
\mbox{\tt in}  & {\em enable\+\_\+mpi\+\_\+threads} & True if the component needs to support M\+P\+I\+\_\+\+T\+H\+R\+E\+A\+D\+\_\+\+M\+U\+L\+T\+I\+P\+L\+E\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+M\+P\+I\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Component successfully initialized \\
\hline
{\em O\+M\+P\+I\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{osc_8h_ad7628e1653ea30b144f182a9c4a0df87}{\index{osc.\+h@{osc.\+h}!ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+query\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+query\+\_\+fn\+\_\+t}}
\index{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+query\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+query\+\_\+fn\+\_\+t}!osc.\+h@{osc.\+h}}
\subsubsection[{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+query\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+query\+\_\+fn\+\_\+t)(struct {\bf ompi\+\_\+win\+\_\+t} $\ast$win, struct {\bf ompi\+\_\+info\+\_\+t} $\ast$info, struct {\bf ompi\+\_\+communicator\+\_\+t} $\ast$comm)}}\label{osc_8h_ad7628e1653ea30b144f182a9c4a0df87}


O\+S\+C component query. 

Query whether, given the info and comm, the component can be used for one-\/sided support. The ability to use the component for the window does not mean that the component will be selected. The win argument should not be modified during this call and no memory should be allocated that is associated with this window.

\begin{DoxyReturn}{Returns}
The selection priority of the component
\end{DoxyReturn}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win} & The window handle, already filled in by M\+P\+I\+\_\+\+W\+I\+N\+\_\+\+C\+R\+E\+A\+T\+E() \\
\hline
\mbox{\tt in}  & {\em info} & An info structure with hints from the user regarding the usage of the component \\
\hline
\mbox{\tt in}  & {\em comm} & The communicator specified by the user for the basis of the group membership for the Window.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em -\/1} & The component can not be used for this window \\
\hline
{\em $>$=} & 0 The priority of the component for this window \\
\hline
\end{DoxyRetVals}
\hypertarget{osc_8h_a5a478127aaa40f07b724699c2c1ab64e}{\index{osc.\+h@{osc.\+h}!ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+select\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+select\+\_\+fn\+\_\+t}}
\index{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+select\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+select\+\_\+fn\+\_\+t}!osc.\+h@{osc.\+h}}
\subsubsection[{ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+select\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ ompi\+\_\+osc\+\_\+base\+\_\+component\+\_\+select\+\_\+fn\+\_\+t)(struct {\bf ompi\+\_\+win\+\_\+t} $\ast$win, struct {\bf ompi\+\_\+info\+\_\+t} $\ast$info, struct {\bf ompi\+\_\+communicator\+\_\+t} $\ast$comm)}}\label{osc_8h_a5a478127aaa40f07b724699c2c1ab64e}


O\+S\+C component select. 

This component has been selected to provide one-\/sided services for the given window. The win-\/$>$w\+\_\+osc\+\_\+module field can be updated and memory can be associated with this window. The module should be ready for use immediately upon return of this function, and the module is responsible for providing any required collective synchronization before the end of the call.

\begin{DoxyNote}{Note}
The comm is the communicator specified from the user, so normal internal usage rules apply. In other words, if you need communication for the life of the window, you should call comm\+\_\+dup() during this function.
\end{DoxyNote}

\begin{DoxyParams}[1]{Parameters}
 & {\em in/out\mbox{]}} & win The window handle, already filled in by M\+P\+I\+\_\+\+W\+I\+N\+\_\+\+C\+R\+E\+A\+T\+E() \\
\hline
\mbox{\tt in}  & {\em info} & An info structure with hints from the user regarding the usage of the component \\
\hline
\mbox{\tt in}  & {\em comm} & The communicator specified by the user for the basis of the group membership for the Window.\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+M\+P\+I\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Component successfully selected \\
\hline
{\em O\+M\+P\+I\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{osc_8h_a2ba22495cdb76a9ff92240cd45145624}{\index{osc.\+h@{osc.\+h}!ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+free\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+free\+\_\+fn\+\_\+t}}
\index{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+free\+\_\+fn\+\_\+t@{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+free\+\_\+fn\+\_\+t}!osc.\+h@{osc.\+h}}
\subsubsection[{ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+free\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ ompi\+\_\+osc\+\_\+base\+\_\+module\+\_\+free\+\_\+fn\+\_\+t)(struct {\bf ompi\+\_\+win\+\_\+t} $\ast$win)}}\label{osc_8h_a2ba22495cdb76a9ff92240cd45145624}


Free resources associated with win. 

Free all resources associated with {\ttfamily win}. The component must provide the barrier semantics required by M\+P\+I-\/2 6.\+2.\+1. The caller will guarantee that no new calls into the module are made after the start of this call. It is possible that the window is locked by remote processes. win-\/$>$w\+\_\+flags will have O\+M\+P\+I\+\_\+\+W\+I\+N\+\_\+\+F\+R\+E\+E\+D set before this function is called.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em win} & Window to free\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+M\+P\+I\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Component successfully selected \\
\hline
{\em O\+M\+P\+I\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occurred \\
\hline
\end{DoxyRetVals}
