\hypertarget{LCBV_8h}{
\section{LCBV.h File Reference}
\label{LCBV_8h}\index{LCBV.h@{LCBV.h}}
}
LCB Virtual Device, interface. 

\subsection*{Typedefs}
\begin{CompactItemize}
\item 
typedef enum \hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23add}{\_\-LCBV\_\-PKT\_\-FATE\_\-M} \hyperlink{LCBV_8h_fb8bf227094a4492504c83df92437beb}{LCBV\_\-PKT\_\-FATE\_\-M}
\begin{CompactList}\small\item\em Typedef for enum \_\-LCBV\_\-PKT\_\-FATE\_\-M. \item\end{CompactList}\item 
typedef unsigned int($\ast$ \hyperlink{LCBV_8h_7d5a0b53ccda04babd6e3e41a9f8b6d6}{LCBV\_\-pktCb} )(void $\ast$prm, unsigned int dsc, \hyperlink{struct__EBF__pkt}{EBF\_\-pkt} $\ast$pkt)
\begin{CompactList}\small\item\em Typedef for LCBV packet handling callback routine. \item\end{CompactList}\item 
typedef unsigned int($\ast$ \hyperlink{LCBV_8h_6399bf114285b2fc9b1c2665de21cf9f}{LCBV\_\-pktsRngFreeCb} )(void $\ast$prm, \hyperlink{struct__EBF__pkt}{EBF\_\-pkt} $\ast$from, \hyperlink{struct__EBF__pkt}{EBF\_\-pkt} $\ast$to)
\begin{CompactList}\small\item\em Callback signature to free the exclusive range of EBF packets {\em from\/} to {\em to\/}. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23add}{\_\-LCBV\_\-PKT\_\-FATE\_\-M} \{ \par
\hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23add47f102623c6890650679541fc9c6b645}{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-MORE} =  (1 $<$$<$ 0), 
\par
\hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23adde8cf054f20dc02e6b23fe559889ee7f7}{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-FREE} =  (1 $<$$<$ 2), 
\par
\hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23add56f166c306af3f996efb1597e02ed5ad}{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-PROCESS} =  (1 $<$$<$ 3), 
\par
\hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23addcadb59fde5519475043c0ed0539392b6}{LCBV\_\-PKT\_\-FATE\_\-M\_\-PAUSE} =  (1 $<$$<$ 4), 
\par
\hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23add418cc9be87b21b988f122de2c040f4bc}{LCBV\_\-PKT\_\-FATE\_\-M\_\-IOERR} =  (1 $<$$<$ 5), 
\par
\hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23adda3a8347ae87a0392271bd7919ee8a927}{LCBV\_\-PKT\_\-FATE\_\-M\_\-ABORT}, 
\par
\hyperlink{LCBV_8h_16d3fd059306d43105ff8b22a2f23add0a725c33e10408418c3ddb97c87a7c4b}{LCBV\_\-PKT\_\-FATE\_\-M\_\-EOF} =  (1 $<$$<$ 31)
 \}
\begin{CompactList}\small\item\em Bit masks defining the options available on the return values of the packet callback routine. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
LCB Virtual Device, interface. 

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


\footnotesize\begin{verbatim}
   CVS $Id: LCBV.h,v 1.4 2007/02/14 01:01:53 russell Exp $
\end{verbatim}
\normalsize
 

\subsection{Typedef Documentation}
\hypertarget{LCBV_8h_fb8bf227094a4492504c83df92437beb}{
\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M@{LCBV\_\-PKT\_\-FATE\_\-M}}
\index{LCBV_PKT_FATE_M@{LCBV\_\-PKT\_\-FATE\_\-M}!LCBV.h@{LCBV.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf LCBV\_\-PKT\_\-FATE\_\-M}}}
\label{LCBV_8h_fb8bf227094a4492504c83df92437beb}


Typedef for enum \_\-LCBV\_\-PKT\_\-FATE\_\-M. 

\begin{Desc}
\item[Usage]The user can control the packets processing loop in packet handler by specifying the return value as a bit list of the options enumerated here. The most common values will be 0, just keep on keeping on or LCBD\_\-PKT\_\-FATE\_\-M\_\-NO\_\-MORE to stop the stream. \end{Desc}
\hypertarget{LCBV_8h_7d5a0b53ccda04babd6e3e41a9f8b6d6}{
\index{LCBV.h@{LCBV.h}!LCBV_pktCb@{LCBV\_\-pktCb}}
\index{LCBV_pktCb@{LCBV\_\-pktCb}!LCBV.h@{LCBV.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned int($\ast$ {\bf LCBV\_\-pktCb})(void $\ast$prm, unsigned int dsc, {\bf EBF\_\-pkt} $\ast$pkt)}}
\label{LCBV_8h_7d5a0b53ccda04babd6e3e41a9f8b6d6}


Typedef for LCBV packet handling callback routine. 

\begin{Desc}
\item[Returns:]A bit list of options enumerated by LCBV\_\-PKT\_\-FATE\_\-M\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em prm}]User provided parameter \item[{\em dsc}]The event descriptor as an uninterpreted unsigned int. Likely the only thing valuable in here is the status. \item[{\em pkt}]Pointer to the packet data. This contains the length of the packet as well as the data itself\end{description}
\end{Desc}
\begin{Desc}
\item[Usage]This is the user callback routine to handle packets.\end{Desc}
\begin{Desc}
\item[Return Options]Normally this routine should return 0, but for testing and debugging purposes, it may return a bit list of the options enumerated in LCBV\_\-PKT\_\-FATE\_\-M. The options currently include\end{Desc}
\begin{itemize}
\item LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-MORE, stop servicing the packets, whether it is empty or not \end{itemize}
\hypertarget{LCBV_8h_6399bf114285b2fc9b1c2665de21cf9f}{
\index{LCBV.h@{LCBV.h}!LCBV_pktsRngFreeCb@{LCBV\_\-pktsRngFreeCb}}
\index{LCBV_pktsRngFreeCb@{LCBV\_\-pktsRngFreeCb}!LCBV.h@{LCBV.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}unsigned int($\ast$ {\bf LCBV\_\-pktsRngFreeCb})(void $\ast$prm, {\bf EBF\_\-pkt} $\ast$from, {\bf EBF\_\-pkt} $\ast$to)}}
\label{LCBV_8h_6399bf114285b2fc9b1c2665de21cf9f}


Callback signature to free the exclusive range of EBF packets {\em from\/} to {\em to\/}. 

\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em prm}]Arbitrary user parameter, but likely the LCB device handle \item[{\em from}]The address to start the free at. \item[{\em to}]The address of the last event to free\end{description}
\end{Desc}
\begin{Desc}
\item[What's freed]The memory from {\em from\/} to {\em to\/} is freed. \end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23add}{
\index{LCBV.h@{LCBV.h}!_LCBV_PKT_FATE_M@{\_\-LCBV\_\-PKT\_\-FATE\_\-M}}
\index{_LCBV_PKT_FATE_M@{\_\-LCBV\_\-PKT\_\-FATE\_\-M}!LCBV.h@{LCBV.h}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \_\-LCBV\_\-PKT\_\-FATE\_\-M}}}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23add}


Bit masks defining the options available on the return values of the packet callback routine. 

\begin{Desc}
\item[See also:]EBF\_\-pkt\_\-cb \end{Desc}
\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LCBV_PKT_FATE_M_NO_MORE@{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-MORE}!LCBV.h@{LCBV.h}}\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M_NO_MORE@{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-MORE}}\item[{\em 
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23add47f102623c6890650679541fc9c6b645}{
LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-MORE}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23add47f102623c6890650679541fc9c6b645}
}]Stop processing transactions \index{LCBV_PKT_FATE_M_NO_FREE@{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-FREE}!LCBV.h@{LCBV.h}}\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M_NO_FREE@{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-FREE}}\item[{\em 
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23adde8cf054f20dc02e6b23fe559889ee7f7}{
LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-FREE}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23adde8cf054f20dc02e6b23fe559889ee7f7}
}]Don't free the event \index{LCBV_PKT_FATE_M_NO_PROCESS@{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-PROCESS}!LCBV.h@{LCBV.h}}\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M_NO_PROCESS@{LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-PROCESS}}\item[{\em 
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23add56f166c306af3f996efb1597e02ed5ad}{
LCBV\_\-PKT\_\-FATE\_\-M\_\-NO\_\-PROCESS}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23add56f166c306af3f996efb1597e02ed5ad}
}]Don't process the event, applicable only for error handler \index{LCBV_PKT_FATE_M_PAUSE@{LCBV\_\-PKT\_\-FATE\_\-M\_\-PAUSE}!LCBV.h@{LCBV.h}}\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M_PAUSE@{LCBV\_\-PKT\_\-FATE\_\-M\_\-PAUSE}}\item[{\em 
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23addcadb59fde5519475043c0ed0539392b6}{
LCBV\_\-PKT\_\-FATE\_\-M\_\-PAUSE}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23addcadb59fde5519475043c0ed0539392b6}
}]Pause the processing \index{LCBV_PKT_FATE_M_IOERR@{LCBV\_\-PKT\_\-FATE\_\-M\_\-IOERR}!LCBV.h@{LCBV.h}}\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M_IOERR@{LCBV\_\-PKT\_\-FATE\_\-M\_\-IOERR}}\item[{\em 
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23add418cc9be87b21b988f122de2c040f4bc}{
LCBV\_\-PKT\_\-FATE\_\-M\_\-IOERR}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23add418cc9be87b21b988f122de2c040f4bc}
}]IO error \index{LCBV_PKT_FATE_M_ABORT@{LCBV\_\-PKT\_\-FATE\_\-M\_\-ABORT}!LCBV.h@{LCBV.h}}\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M_ABORT@{LCBV\_\-PKT\_\-FATE\_\-M\_\-ABORT}}\item[{\em 
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23adda3a8347ae87a0392271bd7919ee8a927}{
LCBV\_\-PKT\_\-FATE\_\-M\_\-ABORT}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23adda3a8347ae87a0392271bd7919ee8a927}
}]Convenience symbol, since this is the most common return value from the error routine \index{LCBV_PKT_FATE_M_EOF@{LCBV\_\-PKT\_\-FATE\_\-M\_\-EOF}!LCBV.h@{LCBV.h}}\index{LCBV.h@{LCBV.h}!LCBV_PKT_FATE_M_EOF@{LCBV\_\-PKT\_\-FATE\_\-M\_\-EOF}}\item[{\em 
\hypertarget{LCBV_8h_16d3fd059306d43105ff8b22a2f23add0a725c33e10408418c3ddb97c87a7c4b}{
LCBV\_\-PKT\_\-FATE\_\-M\_\-EOF}
\label{LCBV_8h_16d3fd059306d43105ff8b22a2f23add0a725c33e10408418c3ddb97c87a7c4b}
}]No more packets \end{description}
\end{Desc}

