\hypertarget{LI_8c}{
\section{LI.c File Reference}
\label{LI_8c}\index{LI.c@{LI.c}}
}
Implementation file for the interlocked singly linked list routines, LI.  


{\tt \#include $<$PBS/L\_\-protos.h$>$}\par
{\tt \#include $<$PBS/RW\_\-protos.h$>$}\par
{\tt \#include $<$PBS/LI.h$>$}\par
\subsection*{Functions}
\begin{CompactItemize}
\item 
int \hyperlink{LI_8c_69faf9e516c0173b09737eb5c3419220}{LI\_\-init} (\hyperlink{struct__LI__head}{LI\_\-head} $\ast$list, \hyperlink{LI__type_8h_9e8c2103252c30f429a8963ba20df2a4}{LI\_\-type} type)
\begin{CompactList}\small\item\em Initializes the list head of a singly linked list to an empty list. \item\end{CompactList}\item 
int \hyperlink{LI_8c_8cc99ae624605e77bc7ec21b7d1a95dd}{LI\_\-destroy} (\hyperlink{struct__LI__head}{LI\_\-head} $\ast$list)
\begin{CompactList}\small\item\em Destroys the data structures associate with a list. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Implementation file for the interlocked singly linked list routines, LI. 

\begin{Desc}
\item[Author:]JJRussell - \href{mailto:russell@slac.stanford.edu}{\tt russell@slac.stanford.edu}\end{Desc}


\footnotesize\begin{verbatim}
    CVS $Id: LI.c,v 1.4 2011/03/24 23:05:46 apw Exp $
    
\end{verbatim}
\normalsize


This file simple picks up the correct implementation for the various platforms, redefining the inline versions to be traditional callable routines. 

\subsection{Function Documentation}
\hypertarget{LI_8c_8cc99ae624605e77bc7ec21b7d1a95dd}{
\index{LI.c@{LI.c}!LI\_\-destroy@{LI\_\-destroy}}
\index{LI\_\-destroy@{LI\_\-destroy}!LI.c@{LI.c}}
\subsubsection[{LI\_\-destroy}]{\setlength{\rightskip}{0pt plus 5cm}int LI\_\-destroy ({\bf LI\_\-head} $\ast$ {\em list})}}
\label{LI_8c_8cc99ae624605e77bc7ec21b7d1a95dd}


Destroys the data structures associate with a list. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em list}]Pointer to the list to destroy.\end{description}
\end{Desc}
This routine releases the resources acquired when the list was initialized by LI\_\-init. 

References \_\-LI\_\-head::head, L\_\-destroy(), \_\-LI\_\-head::rw, and RW\_\-destroy().

Referenced by FORK\_\-destroy(), and FPA\_\-destroy().\hypertarget{LI_8c_69faf9e516c0173b09737eb5c3419220}{
\index{LI.c@{LI.c}!LI\_\-init@{LI\_\-init}}
\index{LI\_\-init@{LI\_\-init}!LI.c@{LI.c}}
\subsubsection[{LI\_\-init}]{\setlength{\rightskip}{0pt plus 5cm}int LI\_\-init ({\bf LI\_\-head} $\ast$ {\em list}, \/  {\bf LI\_\-type} {\em type})}}
\label{LI_8c_69faf9e516c0173b09737eb5c3419220}


Initializes the list head of a singly linked list to an empty list. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em list}]Pointer to the list to initialize. \item[{\em type}]The type of interlocking linked list\end{description}
\end{Desc}
The list is initialized to an empty list. This must be done before performing any other operations on the list. The {\em type\/} determines how the list behaves when one attempts to remove a node from an empty list. 

References \_\-LI\_\-head::head, L\_\-init(), \_\-LI\_\-head::rw, and RW\_\-init().

Referenced by FORK\_\-create(), and FPA\_\-init().