\hypertarget{LSF_8h}{
\section{LSF.h File Reference}
\label{LSF_8h}\index{LSF.h@{LSF.h}}
}
Maps out the LSF data structures. 

{\tt \#include \char`\"{}LSF/LSF\_\-endianness.h\char`\"{}}\par


Include dependency graph for LSF.h:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=124pt]{LSF_8h__incl}
\end{center}
\end{figure}


This graph shows which files directly or indirectly include this file:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=96pt]{LSF_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Data Structures}
\begin{CompactItemize}
\item 
struct \hyperlink{struct__LSF__record__hdr__bf}{\_\-LSF\_\-record\_\-hdr\_\-bf}
\begin{CompactList}\small\item\em Layout of a record header, bit field representation. \item\end{CompactList}\item 
union \hyperlink{union__LSF__record__hdr}{\_\-LSF\_\-record\_\-hdr}
\begin{CompactList}\small\item\em Union of the record header as an uninterpretted 32-bit integer with a bit field representation. \item\end{CompactList}\item 
union \hyperlink{union__LSF__record__bdy}{\_\-LSF\_\-record\_\-bdy}
\begin{CompactList}\small\item\em The general structure of the body of an LSF record. \item\end{CompactList}\item 
struct \hyperlink{struct__LSF__record}{\_\-LSF\_\-record}
\begin{CompactList}\small\item\em The general structure of an LSF record. \item\end{CompactList}\item 
struct \hyperlink{struct__LSF__identity__bf}{\_\-LSF\_\-identity\_\-bf}
\begin{CompactList}\small\item\em The bit field representation of the LSF identity word. \item\end{CompactList}\item 
union \hyperlink{union__LSF__identity}{\_\-LSF\_\-identity}
\begin{CompactList}\small\item\em Union of the bit field representation of the LSF\_\-identity word and an uninterpretted 32-bit integer. \item\end{CompactList}\item 
struct \hyperlink{struct__LSF__contribution__hdr}{\_\-LSF\_\-contribution\_\-hdr}
\begin{CompactList}\small\item\em The layout of a contribution header structure. \item\end{CompactList}\item 
union \hyperlink{union__LSF__contribution__bdy}{\_\-LSF\_\-contribution\_\-bdy}
\begin{CompactList}\small\item\em Beginning of the body of the LSF contribution. \item\end{CompactList}\item 
struct \hyperlink{struct__LSF__contribution}{\_\-LSF\_\-contribution}
\begin{CompactList}\small\item\em The general structure of an LSF contribution. \item\end{CompactList}\item 
struct \hyperlink{struct__LSF__datagram__hdr}{\_\-LSF\_\-datagram\_\-hdr}
\begin{CompactList}\small\item\em The LSF datagram header. \item\end{CompactList}\item 
union \hyperlink{union__LSF__datagram__bdy}{\_\-LSF\_\-datagram\_\-bdy}
\begin{CompactList}\small\item\em Beginning of the body of the LSF datagram. \item\end{CompactList}\item 
struct \hyperlink{struct__LSF__datagram}{\_\-LSF\_\-datagram}
\begin{CompactList}\small\item\em The general structure of an LSF datagram. \item\end{CompactList}\end{CompactItemize}
\subsection*{Defines}
\begin{CompactItemize}
\item 
\#define \hyperlink{LSF_8h_a0}{LSF\_\-RECORD\_\-HDR\_\-COMPOSE}(\_\-type\_\-id, \_\-bridge, \_\-len32)
\begin{CompactList}\small\item\em Composes a LSF record header. \item\end{CompactList}\item 
\#define \hyperlink{LSF_8h_a1}{LSF\_\-IDENTITY\_\-COMPOSE}(\_\-type\_\-id, \_\-version, \_\-dir)
\begin{CompactList}\small\item\em Composes the 32-bit identity word for either a datagram or a contribution from the specified pieces. \item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{LSF_8h_a2}{
typedef enum \hyperlink{LSF_8h_a50}{\_\-LSF\_\-RECORD\_\-HDR\_\-S} \hyperlink{LSF_8h_a2}{LSF\_\-RECORD\_\-HDR\_\-S}}
\label{LSF_8h_a2}

\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-RECORD\_\-HDR\_\-S. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a3}{
typedef enum \hyperlink{LSF_8h_a51}{\_\-LSF\_\-RECORD\_\-HDR\_\-V} \hyperlink{LSF_8h_a3}{LSF\_\-RECORD\_\-HDR\_\-V}}
\label{LSF_8h_a3}

\begin{CompactList}\small\item\em typedef for enum \_\-LSF\_\-RECORD\_\-HDR\_\-V \item\end{CompactList}\item 
\hypertarget{LSF_8h_a4}{
typedef enum \hyperlink{LSF_8h_a52}{\_\-LSF\_\-RECORD\_\-HDR\_\-M} \hyperlink{LSF_8h_a4}{LSF\_\-RECORD\_\-HDR\_\-M}}
\label{LSF_8h_a4}

\begin{CompactList}\small\item\em typedef for enum \_\-LSF\_\-RECORD\_\-HDR\_\-M \item\end{CompactList}\item 
typedef \hyperlink{struct__LSF__record__hdr__bf}{\_\-LSF\_\-record\_\-hdr\_\-bf} \hyperlink{LSF_8h_a5}{LSF\_\-record\_\-hdr\_\-bf}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__record__hdr__bf}{\_\-LSF\_\-record\_\-hdr\_\-bf}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a6}{
typedef \hyperlink{union__LSF__record__hdr}{\_\-LSF\_\-record\_\-hdr} \hyperlink{LSF_8h_a6}{LSF\_\-record\_\-hdr}}
\label{LSF_8h_a6}

\begin{CompactList}\small\item\em Typedef union \hyperlink{union__LSF__record__hdr}{\_\-LSF\_\-record\_\-hdr}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a7}{
typedef \hyperlink{union__LSF__record__bdy}{\_\-LSF\_\-record\_\-bdy} \hyperlink{LSF_8h_a7}{LSF\_\-record\_\-bdy}}
\label{LSF_8h_a7}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{union__LSF__record__bdy}{\_\-LSF\_\-record\_\-bdy}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a8}{
typedef \hyperlink{struct__LSF__record}{\_\-LSF\_\-record} \hyperlink{LSF_8h_a8}{LSF\_\-record}}
\label{LSF_8h_a8}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__record}{\_\-LSF\_\-record}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a9}{
typedef enum \hyperlink{LSF_8h_a53}{\_\-LSF\_\-IDENTITY\_\-S} \hyperlink{LSF_8h_a9}{LSF\_\-IDENTITY\_\-S}}
\label{LSF_8h_a9}

\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-IDENTITY\_\-S. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a10}{
typedef enum \hyperlink{LSF_8h_a54}{\_\-LSF\_\-IDENTITY\_\-V} \hyperlink{LSF_8h_a10}{LSF\_\-IDENTITY\_\-V}}
\label{LSF_8h_a10}

\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-IDENTITY\_\-V. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a11}{
typedef enum \hyperlink{LSF_8h_a55}{\_\-LSF\_\-IDENTITY\_\-M} \hyperlink{LSF_8h_a11}{LSF\_\-IDENTITY\_\-M}}
\label{LSF_8h_a11}

\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-IDENTITY\_\-M. \item\end{CompactList}\item 
typedef \hyperlink{struct__LSF__identity__bf}{\_\-LSF\_\-identity\_\-bf} \hyperlink{LSF_8h_a12}{LSF\_\-identity\_\-bf}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__identity__bf}{\_\-LSF\_\-identity\_\-bf}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a13}{
typedef \hyperlink{union__LSF__identity}{\_\-LSF\_\-identity} \hyperlink{LSF_8h_a13}{LSF\_\-identity}}
\label{LSF_8h_a13}

\begin{CompactList}\small\item\em Typedef for union \hyperlink{union__LSF__identity}{\_\-LSF\_\-identity}. \item\end{CompactList}\item 
typedef \hyperlink{struct__LSF__contribution__hdr}{\_\-LSF\_\-contribution\_\-hdr} \hyperlink{LSF_8h_a14}{LSF\_\-contribution\_\-hdr}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__contribution__hdr}{\_\-LSF\_\-contribution\_\-hdr}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a15}{
typedef \hyperlink{union__LSF__contribution__bdy}{\_\-LSF\_\-contribution\_\-bdy} \hyperlink{LSF_8h_a15}{LSF\_\-contribution\_\-bdy}}
\label{LSF_8h_a15}

\begin{CompactList}\small\item\em Typedef for union \hyperlink{union__LSF__contribution__bdy}{\_\-LSF\_\-contribution\_\-bdy}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a16}{
typedef \hyperlink{struct__LSF__contribution}{\_\-LSF\_\-contribution} \hyperlink{LSF_8h_a16}{LSF\_\-contribution}}
\label{LSF_8h_a16}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__contribution}{\_\-LSF\_\-contribution}. \item\end{CompactList}\item 
typedef \hyperlink{struct__LSF__datagram__hdr}{\_\-LSF\_\-datagram\_\-hdr} \hyperlink{LSF_8h_a17}{LSF\_\-datagram\_\-hdr}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__datagram__hdr}{\_\-LSF\_\-datagram\_\-hdr}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a18}{
typedef \hyperlink{union__LSF__datagram__bdy}{\_\-LSF\_\-datagram\_\-bdy} \hyperlink{LSF_8h_a18}{LSF\_\-datagram\_\-bdy}}
\label{LSF_8h_a18}

\begin{CompactList}\small\item\em Typedef for union \hyperlink{union__LSF__datagram__bdy}{\_\-LSF\_\-datagram\_\-bdy}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a19}{
typedef \hyperlink{struct__LSF__datagram}{\_\-LSF\_\-datagram} \hyperlink{LSF_8h_a19}{LSF\_\-datagram}}
\label{LSF_8h_a19}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__datagram}{\_\-LSF\_\-datagram}. \item\end{CompactList}\end{CompactItemize}
\subsection*{Enumerations}
\begin{CompactItemize}
\item 
enum \hyperlink{LSF_8h_a50}{\_\-LSF\_\-RECORD\_\-HDR\_\-S} \{ \par
\hyperlink{LSF_8h_a50a20}{LSF\_\-RECORD\_\-HDR\_\-S\_\-BRIDGE} =  8, 
\par
\hyperlink{LSF_8h_a50a21}{LSF\_\-RECORD\_\-HDR\_\-S\_\-TYPEID} =  4, 
\par
\hyperlink{LSF_8h_a50a22}{LSF\_\-RECORD\_\-HDR\_\-S\_\-LEN32} =  20
 \}
\begin{CompactList}\small\item\em Record level header word, bit field sizes. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_a51}{\_\-LSF\_\-RECORD\_\-HDR\_\-V} \{ \par
\hyperlink{LSF_8h_a51a23}{LSF\_\-RECORD\_\-HDR\_\-V\_\-BRIDGE} =  24, 
\par
\hyperlink{LSF_8h_a51a24}{LSF\_\-RECORD\_\-HDR\_\-V\_\-TYPEID} =  20, 
\par
\hyperlink{LSF_8h_a51a25}{LSF\_\-RECORD\_\-HDR\_\-V\_\-LEN32} =  0
 \}
\begin{CompactList}\small\item\em Record Level header, bit field right justified offsets. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_a52}{\_\-LSF\_\-RECORD\_\-HDR\_\-M} \{ \par
\hyperlink{LSF_8h_a52a26}{LSF\_\-RECORD\_\-HDR\_\-M\_\-TYPEID}, 
\par
\hyperlink{LSF_8h_a52a27}{LSF\_\-RECORD\_\-HDR\_\-M\_\-BRIDGE}, 
\par
\hyperlink{LSF_8h_a52a28}{LSF\_\-RECORD\_\-HDR\_\-M\_\-LEN32}
 \}
\begin{CompactList}\small\item\em Record Level header, bit field in place masks. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_a53}{\_\-LSF\_\-IDENTITY\_\-S} \{ \par
\hyperlink{LSF_8h_a53a29}{LSF\_\-IDENTITY\_\-S\_\-TYPEID} =  20, 
\par
\hyperlink{LSF_8h_a53a30}{LSF\_\-IDENTITY\_\-S\_\-VERSION} =  8, 
\par
\hyperlink{LSF_8h_a53a31}{LSF\_\-IDENTITY\_\-S\_\-RSVD} =  3, 
\par
\hyperlink{LSF_8h_a53a32}{LSF\_\-IDENTITY\_\-S\_\-DIR} =  1
 \}
\begin{CompactList}\small\item\em Enumeration giving the sizes of the bit fields in the LSF identity word. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_a54}{\_\-LSF\_\-IDENTITY\_\-V} \{ \par
\hyperlink{LSF_8h_a54a33}{LSF\_\-IDENTITY\_\-V\_\-TYPEID} =  0, 
\par
\hyperlink{LSF_8h_a54a34}{LSF\_\-IDENTITY\_\-V\_\-VERSION} =  20, 
\par
\hyperlink{LSF_8h_a54a35}{LSF\_\-IDENTITY\_\-V\_\-RSVD} =  28, 
\par
\hyperlink{LSF_8h_a54a36}{LSF\_\-IDENTITY\_\-V\_\-DIR} =  31
 \}
\begin{CompactList}\small\item\em Enumeration giving the right bit offsets of the bit fields in the LSF identity word. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_a55}{\_\-LSF\_\-IDENTITY\_\-M} \{ \par
\hyperlink{LSF_8h_a55a37}{LSF\_\-IDENTITY\_\-M\_\-TYPEID}, 
\par
\hyperlink{LSF_8h_a55a38}{LSF\_\-IDENTITY\_\-M\_\-VERSION}, 
\par
\hyperlink{LSF_8h_a55a39}{LSF\_\-IDENTITY\_\-M\_\-RSVD}, 
\par
\hyperlink{LSF_8h_a55a40}{LSF\_\-IDENTITY\_\-M\_\-DIR}
 \}
\begin{CompactList}\small\item\em Enumeration giving the in place masks of the bit fields in the LSF identity word. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
static \_\-\_\-inline unsigned int \hyperlink{LSF_8h_a41}{LSF\_\-identity\-Compose} (unsigned int type\_\-id, unsigned int version, unsigned int dir)
\begin{CompactList}\small\item\em Composes the 32-bit identity word for either a datagram or a contribution from the specified pieces. \item\end{CompactList}\item 
static \_\-\_\-inline unsigned int \hyperlink{LSF_8h_a42}{LSF\_\-record\-Hdr\-Compose} (unsigned int type\_\-id, unsigned int bridge, unsigned int len32)
\begin{CompactList}\small\item\em Composes a LSF record header. \item\end{CompactList}\item 
static \_\-\_\-inline \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$ \hyperlink{LSF_8h_a43}{LSF\_\-datagram\-Next} (const \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$dgm)
\begin{CompactList}\small\item\em Advances the datagram pointer by the length field specified in the datagram. \item\end{CompactList}\item 
static \_\-\_\-inline \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$ \hyperlink{LSF_8h_a44}{LSF\_\-datagram\-Advance} (const \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$dgm, unsigned int n32)
\begin{CompactList}\small\item\em Advances the datagram pointer by the specified number of 32-bit words. \item\end{CompactList}\item 
static \_\-\_\-inline \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ \hyperlink{LSF_8h_a45}{LSF\_\-contribution\-Next} (const \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ctb)
\begin{CompactList}\small\item\em Advances the contribution pointer by the length field specified in the contribution header. \item\end{CompactList}\item 
static \_\-\_\-inline \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ \hyperlink{LSF_8h_a46}{LSF\_\-contribution\-Advance} (const \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ctb, unsigned int n32)
\begin{CompactList}\small\item\em Advances the contribution pointer by the specified number of 32-bit words. \item\end{CompactList}\item 
static \_\-\_\-inline \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$ \hyperlink{LSF_8h_a47}{LSF\_\-record\-Next} (const \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$rec)
\begin{CompactList}\small\item\em Advances the record pointer by the length field specified in the record header. \item\end{CompactList}\item 
static \_\-\_\-inline \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$ \hyperlink{LSF_8h_a48}{LSF\_\-record\-Advance} (const \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$evt, unsigned int n32)
\begin{CompactList}\small\item\em Advances the record pointer by the specified number of 32-bit words. \item\end{CompactList}\item 
static \_\-\_\-inline unsigned int $\ast$ \hyperlink{LSF_8h_a49}{LSF\_\-dat\-Advance} (const unsigned int $\ast$dat, unsigned int n32)
\begin{CompactList}\small\item\em Advances the data pointer by the specified number of 32-bit wo. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Maps out the LSF data structures. 

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


\footnotesize\begin{verbatim}   CVS $Id: LSF.h,v 1.6 2005/10/13 18:36:43 russell Exp $
\end{verbatim}
\normalsize


\begin{Desc}
\item[Overview]This defines the generic aspects of the LAT Science Format (LSF) as implemented by the LAT Flight Software. It has its origins in LDF, but makes 2 significant departures\end{Desc}
\begin{enumerate}
\item All lengths are in 32-bit words, not bytes\item In addition to the datagram and contribution level objects, LSF adds a third level to this heirarchy, the record.\end{enumerate}


\begin{Desc}
\item[]LDF made no policy statement concerning the following two issues\end{Desc}
\begin{enumerate}
\item Alignment of contribution\item Scope of contribution level identifiers\end{enumerate}


LSF, however, does make a statement here

\begin{enumerate}
\item All contribution and record must be 32-bit aligned. This is semi-formalized by LSF specifying lengths in 32-bit words.\item Contribution level and record level identifiers are scoped locally to a datagram. That is, these identifiers have meaning only within the context of a particular datagram and in no way are meant to universally identify a contribution/record in across all datagrams. This means there definition and management is purely a local affair, requiring no coordination to see if a particular number is available.\end{enumerate}


\begin{Desc}
\item[]LSF makes no references to the contents/data it will encapsulate. In particular, there are no references to anything specific to data that Flight Software may wrap in this protocol.\end{Desc}
\begin{Desc}
\item[Heirarchy]Heirachicially, the order is\end{Desc}
\begin{itemize}
\item Datagram\item Contribution\item Record\end{itemize}


\begin{Desc}
\item[]that is, datagram contain contribution and contribution contain records. Still ambivalent on whether\end{Desc}
\begin{itemize}
\item A datagram can carry data not contained in a contribution\item Whether to demand the heirachy is strictly enforced, that is contributions must appear under datagrams and records within contributions. For now, the recommendation is that this rule be followed.\end{itemize}


\subsection{Define Documentation}
\hypertarget{LSF_8h_a1}{
\index{LSF.h@{LSF.h}!LSF_IDENTITY_COMPOSE@{LSF\_\-IDENTITY\_\-COMPOSE}}
\index{LSF_IDENTITY_COMPOSE@{LSF\_\-IDENTITY\_\-COMPOSE}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-IDENTITY\_\-COMPOSE]{\setlength{\rightskip}{0pt plus 5cm}\#define LSF\_\-IDENTITY\_\-COMPOSE(\_\-type\_\-id, \_\-version, \_\-dir)}}
\label{LSF_8h_a1}


{\bf Value:}

\footnotesize\begin{verbatim}( (((_dir)     << LSF_IDENTITY_V_DIR)       & LSF_IDENTITY_M_DIR  )    \
 |   (((_version) << LSF_IDENTITY_V_VERSION) & LSF_IDENTITY_M_VERSION)    \
 |   (((_type_id )<< LSF_IDENTITY_V_TYPEID)  & LSF_IDENTITY_M_TYPEID )  )
\end{verbatim}\normalsize 
Composes the 32-bit identity word for either a datagram or a contribution from the specified pieces. 

\begin{Desc}
\item[Returns:]The 32-bit identity word;\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-type\_\-id}]The type/identifier of the datagram or contribution Examples would be LSF\_\-ID\_\-K\_\-LSEP, LSF\_\-ID\_\-K\_\-LSEC \item[{\em \_\-version}]The version of the data being presented \item[{\em \_\-dir}]A flag, if true indicating the datagram/contribution is composed of a series of contributions/records\end{description}
\end{Desc}
\begin{Desc}
\item[]This functionality is also available as an inline routine. The macro should be used only where calling a function is not allowed, as in a compile time data intialization statement.\end{Desc}
\hypertarget{LSF_8h_a0}{
\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_COMPOSE@{LSF\_\-RECORD\_\-HDR\_\-COMPOSE}}
\index{LSF_RECORD_HDR_COMPOSE@{LSF\_\-RECORD\_\-HDR\_\-COMPOSE}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-RECORD\_\-HDR\_\-COMPOSE]{\setlength{\rightskip}{0pt plus 5cm}\#define LSF\_\-RECORD\_\-HDR\_\-COMPOSE(\_\-type\_\-id, \_\-bridge, \_\-len32)}}
\label{LSF_8h_a0}


{\bf Value:}

\footnotesize\begin{verbatim}( (((_type_id) << LSF_RECORD_HDR_V_TYPEID) & LSF_RECORD_HDR_M_TYPEID)   \
   | ((( _bridge) << LSF_RECORD_HDR_V_BRIDGE) & LSF_RECORD_HDR_M_BRIDGE)   \
   | (((  _len32) << LSF_RECORD_HDR_V_LEN32)  & LSF_RECORD_HDR_M_LEN32) )
\end{verbatim}\normalsize 
Composes a LSF record header. 

\begin{Desc}
\item[Returns:]The LSF record header\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-type\_\-id}]The type/id (0-15) \item[{\em \_\-bridge}]The value of the 8-bit reserved field \item[{\em \_\-len32}]The length, in longwords, of the record\end{description}
\end{Desc}
\begin{Desc}
\item[]Note, this functionality is also available as an inline routine. This macro should be used when initially data structures, {\em i.e\/}, where calling a function is prohibited.\end{Desc}


\subsection{Typedef Documentation}
\hypertarget{LSF_8h_a14}{
\index{LSF.h@{LSF.h}!LSF_contribution_hdr@{LSF\_\-contribution\_\-hdr}}
\index{LSF_contribution_hdr@{LSF\_\-contribution\_\-hdr}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-contribution\_\-hdr]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LSF__contribution__hdr}{LSF\_\-contribution\_\-hdr}}}
\label{LSF_8h_a14}


Typedef for struct \hyperlink{struct__LSF__contribution__hdr}{\_\-LSF\_\-contribution\_\-hdr}. 

\begin{Desc}
\item[]An LSF datagram consists of an outer header (a LSF\_\-datagram\_\-hdr) encapsulating a group of LSF contributors. Each LSF contributor itself is jacketed with its own header (this structure).\end{Desc}
\begin{Desc}
\item[]Not that because the length field is 24-bits, the maximum length of an LSF contribution is 2$\ast$$\ast$24-1 32-bit words.\end{Desc}
\hypertarget{LSF_8h_a17}{
\index{LSF.h@{LSF.h}!LSF_datagram_hdr@{LSF\_\-datagram\_\-hdr}}
\index{LSF_datagram_hdr@{LSF\_\-datagram\_\-hdr}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-datagram\_\-hdr]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LSF__datagram__hdr}{LSF\_\-datagram\_\-hdr}}}
\label{LSF_8h_a17}


Typedef for struct \hyperlink{struct__LSF__datagram__hdr}{\_\-LSF\_\-datagram\_\-hdr}. 

\begin{Desc}
\item[]An LSF datagram consists of an outer header (this structure) encapsulating a group of LSF contributors. Each LSF contributor itself is jacketed with its own header (an LSF\_\-contributor\_\-hdr)\end{Desc}
\hypertarget{LSF_8h_a12}{
\index{LSF.h@{LSF.h}!LSF_identity_bf@{LSF\_\-identity\_\-bf}}
\index{LSF_identity_bf@{LSF\_\-identity\_\-bf}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-identity\_\-bf]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LSF__identity__bf}{LSF\_\-identity\_\-bf}}}
\label{LSF_8h_a12}


Typedef for struct \hyperlink{struct__LSF__identity__bf}{\_\-LSF\_\-identity\_\-bf}. 

\begin{Desc}
\item[]Except for the {\em dir\/} field, these fields are self-explanatory. The {\em dir\/} indicates whether the payload is a structured directory or just a bag of bytes. For datagrams, this flag indicates that the payload is/is not a series of contributions. For contributions, this flag indicates that the payload is/is not a series of records.\end{Desc}
\begin{Desc}
\item[]This flag allows a generic LSF parsing tool to decide whether it can {\em drill\/} down into the payload of a datagram or a contribution. Once an datagram or a contribution has set this flag {\em all\/} data in it must be presented as wrapped in a contribution or record header. It is not permitted to set this flag in a contribution and have, for example, the first item in the payload presented as a record and the next piece presented as an unstructured bag-of-bytes.\end{Desc}
\begin{Desc}
\item[Rsvd Field]The likely use of this field when used in the datagram header will be indicate the revision level of LSF itself, and when used in the contribution header, will be to indicate the number of pad bytes to pad the data to a 32-bit boundary.\end{Desc}
\hypertarget{LSF_8h_a5}{
\index{LSF.h@{LSF.h}!LSF_record_hdr_bf@{LSF\_\-record\_\-hdr\_\-bf}}
\index{LSF_record_hdr_bf@{LSF\_\-record\_\-hdr\_\-bf}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-record\_\-hdr\_\-bf]{\setlength{\rightskip}{0pt plus 5cm}\hyperlink{struct__LSF__record__hdr__bf}{LSF\_\-record\_\-hdr\_\-bf}}}
\label{LSF_8h_a5}


Typedef for struct \hyperlink{struct__LSF__record__hdr__bf}{\_\-LSF\_\-record\_\-hdr\_\-bf}. 

\begin{Desc}
\item[]A record header consists of a 4 bit subformat field nibble and a 20 20 long-word count in the low 16 bits, The remaining 8 bits are meant to be used as a bridge word between the protocol handler and the data handler and is, in general, subformat dependent.\end{Desc}


\subsection{Enumeration Type Documentation}
\hypertarget{LSF_8h_a55}{
\index{LSF.h@{LSF.h}!_LSF_IDENTITY_M@{\_\-LSF\_\-IDENTITY\_\-M}}
\index{_LSF_IDENTITY_M@{\_\-LSF\_\-IDENTITY\_\-M}!LSF.h@{LSF.h}}
\subsubsection[\_\-LSF\_\-IDENTITY\_\-M]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LSF_8h_a55}{\_\-LSF\_\-IDENTITY\_\-M}}}
\label{LSF_8h_a55}


Enumeration giving the in place masks of the bit fields in the LSF identity word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF_IDENTITY_M_TYPEID@{LSF\_\-IDENTITY\_\-M\_\-TYPEID}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_M_TYPEID@{LSF\_\-IDENTITY\_\-M\_\-TYPEID}}\item[{\em 
\hypertarget{LSF_8h_a55a37}{
LSF\_\-IDENTITY\_\-M\_\-TYPEID}
\label{LSF_8h_a55a37}
}]In place mask of the type\-Id field \index{LSF_IDENTITY_M_VERSION@{LSF\_\-IDENTITY\_\-M\_\-VERSION}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_M_VERSION@{LSF\_\-IDENTITY\_\-M\_\-VERSION}}\item[{\em 
\hypertarget{LSF_8h_a55a38}{
LSF\_\-IDENTITY\_\-M\_\-VERSION}
\label{LSF_8h_a55a38}
}]In place mask of the version field \index{LSF_IDENTITY_M_RSVD@{LSF\_\-IDENTITY\_\-M\_\-RSVD}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_M_RSVD@{LSF\_\-IDENTITY\_\-M\_\-RSVD}}\item[{\em 
\hypertarget{LSF_8h_a55a39}{
LSF\_\-IDENTITY\_\-M\_\-RSVD}
\label{LSF_8h_a55a39}
}]In place mask of the reserved field, must be zero \index{LSF_IDENTITY_M_DIR@{LSF\_\-IDENTITY\_\-M\_\-DIR}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_M_DIR@{LSF\_\-IDENTITY\_\-M\_\-DIR}}\item[{\em 
\hypertarget{LSF_8h_a55a40}{
LSF\_\-IDENTITY\_\-M\_\-DIR}
\label{LSF_8h_a55a40}
}]In place mask of the flag indicating the payload is a structured directory, i.e. it is not just a bag of bits but,\begin{itemize}
\item In the case of a datagram header,one or more contributions or\item In the case of a contribution header, one or more records \end{itemize}
\end{description}
\end{Desc}

\hypertarget{LSF_8h_a53}{
\index{LSF.h@{LSF.h}!_LSF_IDENTITY_S@{\_\-LSF\_\-IDENTITY\_\-S}}
\index{_LSF_IDENTITY_S@{\_\-LSF\_\-IDENTITY\_\-S}!LSF.h@{LSF.h}}
\subsubsection[\_\-LSF\_\-IDENTITY\_\-S]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LSF_8h_a53}{\_\-LSF\_\-IDENTITY\_\-S}}}
\label{LSF_8h_a53}


Enumeration giving the sizes of the bit fields in the LSF identity word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF_IDENTITY_S_TYPEID@{LSF\_\-IDENTITY\_\-S\_\-TYPEID}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_S_TYPEID@{LSF\_\-IDENTITY\_\-S\_\-TYPEID}}\item[{\em 
\hypertarget{LSF_8h_a53a29}{
LSF\_\-IDENTITY\_\-S\_\-TYPEID}
\label{LSF_8h_a53a29}
}]Size, in bits, of the type\-Id field \index{LSF_IDENTITY_S_VERSION@{LSF\_\-IDENTITY\_\-S\_\-VERSION}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_S_VERSION@{LSF\_\-IDENTITY\_\-S\_\-VERSION}}\item[{\em 
\hypertarget{LSF_8h_a53a30}{
LSF\_\-IDENTITY\_\-S\_\-VERSION}
\label{LSF_8h_a53a30}
}]Size, in bits, of the version field \index{LSF_IDENTITY_S_RSVD@{LSF\_\-IDENTITY\_\-S\_\-RSVD}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_S_RSVD@{LSF\_\-IDENTITY\_\-S\_\-RSVD}}\item[{\em 
\hypertarget{LSF_8h_a53a31}{
LSF\_\-IDENTITY\_\-S\_\-RSVD}
\label{LSF_8h_a53a31}
}]Size, in bits, of the reserved field, must be zero \index{LSF_IDENTITY_S_DIR@{LSF\_\-IDENTITY\_\-S\_\-DIR}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_S_DIR@{LSF\_\-IDENTITY\_\-S\_\-DIR}}\item[{\em 
\hypertarget{LSF_8h_a53a32}{
LSF\_\-IDENTITY\_\-S\_\-DIR}
\label{LSF_8h_a53a32}
}]Size, in bits, of the flag indicating the payload is a structured directory, i.e. it is not just a bag of bits but,\begin{itemize}
\item In the case of a datagram header,one or more contributions or\item In the case of a contribution header, one or more records \end{itemize}
\end{description}
\end{Desc}

\hypertarget{LSF_8h_a54}{
\index{LSF.h@{LSF.h}!_LSF_IDENTITY_V@{\_\-LSF\_\-IDENTITY\_\-V}}
\index{_LSF_IDENTITY_V@{\_\-LSF\_\-IDENTITY\_\-V}!LSF.h@{LSF.h}}
\subsubsection[\_\-LSF\_\-IDENTITY\_\-V]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LSF_8h_a54}{\_\-LSF\_\-IDENTITY\_\-V}}}
\label{LSF_8h_a54}


Enumeration giving the right bit offsets of the bit fields in the LSF identity word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF_IDENTITY_V_TYPEID@{LSF\_\-IDENTITY\_\-V\_\-TYPEID}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_V_TYPEID@{LSF\_\-IDENTITY\_\-V\_\-TYPEID}}\item[{\em 
\hypertarget{LSF_8h_a54a33}{
LSF\_\-IDENTITY\_\-V\_\-TYPEID}
\label{LSF_8h_a54a33}
}]Right justified bit offset of the type\-Id field \index{LSF_IDENTITY_V_VERSION@{LSF\_\-IDENTITY\_\-V\_\-VERSION}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_V_VERSION@{LSF\_\-IDENTITY\_\-V\_\-VERSION}}\item[{\em 
\hypertarget{LSF_8h_a54a34}{
LSF\_\-IDENTITY\_\-V\_\-VERSION}
\label{LSF_8h_a54a34}
}]Right justified bit offset of the version field \index{LSF_IDENTITY_V_RSVD@{LSF\_\-IDENTITY\_\-V\_\-RSVD}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_V_RSVD@{LSF\_\-IDENTITY\_\-V\_\-RSVD}}\item[{\em 
\hypertarget{LSF_8h_a54a35}{
LSF\_\-IDENTITY\_\-V\_\-RSVD}
\label{LSF_8h_a54a35}
}]Right justified bit offset of the reserved field, must be zero \index{LSF_IDENTITY_V_DIR@{LSF\_\-IDENTITY\_\-V\_\-DIR}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_IDENTITY_V_DIR@{LSF\_\-IDENTITY\_\-V\_\-DIR}}\item[{\em 
\hypertarget{LSF_8h_a54a36}{
LSF\_\-IDENTITY\_\-V\_\-DIR}
\label{LSF_8h_a54a36}
}]Right justified bit offset of the flag indicating the payload is a structured directory, i.e. it is not just a bag of bits but,\begin{itemize}
\item In the case of a datagram header,one or more contributions or\item In the case of a contribution header, one or more records \end{itemize}
\end{description}
\end{Desc}

\hypertarget{LSF_8h_a52}{
\index{LSF.h@{LSF.h}!_LSF_RECORD_HDR_M@{\_\-LSF\_\-RECORD\_\-HDR\_\-M}}
\index{_LSF_RECORD_HDR_M@{\_\-LSF\_\-RECORD\_\-HDR\_\-M}!LSF.h@{LSF.h}}
\subsubsection[\_\-LSF\_\-RECORD\_\-HDR\_\-M]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LSF_8h_a52}{\_\-LSF\_\-RECORD\_\-HDR\_\-M}}}
\label{LSF_8h_a52}


Record Level header, bit field in place masks. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF_RECORD_HDR_M_TYPEID@{LSF\_\-RECORD\_\-HDR\_\-M\_\-TYPEID}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_M_TYPEID@{LSF\_\-RECORD\_\-HDR\_\-M\_\-TYPEID}}\item[{\em 
\hypertarget{LSF_8h_a52a26}{
LSF\_\-RECORD\_\-HDR\_\-M\_\-TYPEID}
\label{LSF_8h_a52a26}
}]Subformat type, in place mask \index{LSF_RECORD_HDR_M_BRIDGE@{LSF\_\-RECORD\_\-HDR\_\-M\_\-BRIDGE}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_M_BRIDGE@{LSF\_\-RECORD\_\-HDR\_\-M\_\-BRIDGE}}\item[{\em 
\hypertarget{LSF_8h_a52a27}{
LSF\_\-RECORD\_\-HDR\_\-M\_\-BRIDGE}
\label{LSF_8h_a52a27}
}]Subformat type reserved field, in place mask \index{LSF_RECORD_HDR_M_LEN32@{LSF\_\-RECORD\_\-HDR\_\-M\_\-LEN32}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_M_LEN32@{LSF\_\-RECORD\_\-HDR\_\-M\_\-LEN32}}\item[{\em 
\hypertarget{LSF_8h_a52a28}{
LSF\_\-RECORD\_\-HDR\_\-M\_\-LEN32}
\label{LSF_8h_a52a28}
}]Data length, in place mask \end{description}
\end{Desc}

\hypertarget{LSF_8h_a50}{
\index{LSF.h@{LSF.h}!_LSF_RECORD_HDR_S@{\_\-LSF\_\-RECORD\_\-HDR\_\-S}}
\index{_LSF_RECORD_HDR_S@{\_\-LSF\_\-RECORD\_\-HDR\_\-S}!LSF.h@{LSF.h}}
\subsubsection[\_\-LSF\_\-RECORD\_\-HDR\_\-S]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LSF_8h_a50}{\_\-LSF\_\-RECORD\_\-HDR\_\-S}}}
\label{LSF_8h_a50}


Record level header word, bit field sizes. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF_RECORD_HDR_S_BRIDGE@{LSF\_\-RECORD\_\-HDR\_\-S\_\-BRIDGE}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_S_BRIDGE@{LSF\_\-RECORD\_\-HDR\_\-S\_\-BRIDGE}}\item[{\em 
\hypertarget{LSF_8h_a50a20}{
LSF\_\-RECORD\_\-HDR\_\-S\_\-BRIDGE}
\label{LSF_8h_a50a20}
}]Subformat type reserved field, size in bits \index{LSF_RECORD_HDR_S_TYPEID@{LSF\_\-RECORD\_\-HDR\_\-S\_\-TYPEID}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_S_TYPEID@{LSF\_\-RECORD\_\-HDR\_\-S\_\-TYPEID}}\item[{\em 
\hypertarget{LSF_8h_a50a21}{
LSF\_\-RECORD\_\-HDR\_\-S\_\-TYPEID}
\label{LSF_8h_a50a21}
}]Subformat identifier, size in bits \index{LSF_RECORD_HDR_S_LEN32@{LSF\_\-RECORD\_\-HDR\_\-S\_\-LEN32}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_S_LEN32@{LSF\_\-RECORD\_\-HDR\_\-S\_\-LEN32}}\item[{\em 
\hypertarget{LSF_8h_a50a22}{
LSF\_\-RECORD\_\-HDR\_\-S\_\-LEN32}
\label{LSF_8h_a50a22}
}]Data length, size in longwords \end{description}
\end{Desc}

\hypertarget{LSF_8h_a51}{
\index{LSF.h@{LSF.h}!_LSF_RECORD_HDR_V@{\_\-LSF\_\-RECORD\_\-HDR\_\-V}}
\index{_LSF_RECORD_HDR_V@{\_\-LSF\_\-RECORD\_\-HDR\_\-V}!LSF.h@{LSF.h}}
\subsubsection[\_\-LSF\_\-RECORD\_\-HDR\_\-V]{\setlength{\rightskip}{0pt plus 5cm}enum \hyperlink{LSF_8h_a51}{\_\-LSF\_\-RECORD\_\-HDR\_\-V}}}
\label{LSF_8h_a51}


Record Level header, bit field right justified offsets. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF_RECORD_HDR_V_BRIDGE@{LSF\_\-RECORD\_\-HDR\_\-V\_\-BRIDGE}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_V_BRIDGE@{LSF\_\-RECORD\_\-HDR\_\-V\_\-BRIDGE}}\item[{\em 
\hypertarget{LSF_8h_a51a23}{
LSF\_\-RECORD\_\-HDR\_\-V\_\-BRIDGE}
\label{LSF_8h_a51a23}
}]Subformat type reserved field, size in bits \index{LSF_RECORD_HDR_V_TYPEID@{LSF\_\-RECORD\_\-HDR\_\-V\_\-TYPEID}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_V_TYPEID@{LSF\_\-RECORD\_\-HDR\_\-V\_\-TYPEID}}\item[{\em 
\hypertarget{LSF_8h_a51a24}{
LSF\_\-RECORD\_\-HDR\_\-V\_\-TYPEID}
\label{LSF_8h_a51a24}
}]Subformat identifier, size in bits \index{LSF_RECORD_HDR_V_LEN32@{LSF\_\-RECORD\_\-HDR\_\-V\_\-LEN32}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF_RECORD_HDR_V_LEN32@{LSF\_\-RECORD\_\-HDR\_\-V\_\-LEN32}}\item[{\em 
\hypertarget{LSF_8h_a51a25}{
LSF\_\-RECORD\_\-HDR\_\-V\_\-LEN32}
\label{LSF_8h_a51a25}
}]Data length, size in longwords \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{LSF_8h_a46}{
\index{LSF.h@{LSF.h}!LSF_contributionAdvance@{LSF\_\-contributionAdvance}}
\index{LSF_contributionAdvance@{LSF\_\-contributionAdvance}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-contributionAdvance]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ LSF\_\-contribution\-Advance (const \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ {\em ctb}, unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a46}


Advances the contribution pointer by the specified number of 32-bit words. 

\begin{Desc}
\item[Returns:]The new contribution pointer\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em ctb}]The contribution pointer to advance \item[{\em n32}]The number of 32-bit words to advance the pointer\end{description}
\end{Desc}
\hypertarget{LSF_8h_a45}{
\index{LSF.h@{LSF.h}!LSF_contributionNext@{LSF\_\-contributionNext}}
\index{LSF_contributionNext@{LSF\_\-contributionNext}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-contributionNext]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ LSF\_\-contribution\-Next (const \hyperlink{struct__LSF__contribution}{LSF\_\-contribution} $\ast$ {\em ctb})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a45}


Advances the contribution pointer by the length field specified in the contribution header. 

\begin{Desc}
\item[Returns:]The new contribution pointer\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em ctb}]The contribution pointer to advance\end{description}
\end{Desc}
\hypertarget{LSF_8h_a49}{
\index{LSF.h@{LSF.h}!LSF_datAdvance@{LSF\_\-datAdvance}}
\index{LSF_datAdvance@{LSF\_\-datAdvance}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-datAdvance]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline unsigned int $\ast$ LSF\_\-dat\-Advance (const unsigned int $\ast$ {\em dat}, unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a49}


Advances the data pointer by the specified number of 32-bit wo. 

\begin{Desc}
\item[Returns:]The new data pointer\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em dat}]The data pointer to advance \item[{\em n32}]The number of 32-bit words to advance the pointer\end{description}
\end{Desc}
\hypertarget{LSF_8h_a44}{
\index{LSF.h@{LSF.h}!LSF_datagramAdvance@{LSF\_\-datagramAdvance}}
\index{LSF_datagramAdvance@{LSF\_\-datagramAdvance}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-datagramAdvance]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$ LSF\_\-datagram\-Advance (const \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$ {\em dgm}, unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a44}


Advances the datagram pointer by the specified number of 32-bit words. 

\begin{Desc}
\item[Returns:]The new contribution pointer\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em dgm}]The datagram pointer to advance \item[{\em n32}]The number of 32-bit words to advance the pointer\end{description}
\end{Desc}
\hypertarget{LSF_8h_a43}{
\index{LSF.h@{LSF.h}!LSF_datagramNext@{LSF\_\-datagramNext}}
\index{LSF_datagramNext@{LSF\_\-datagramNext}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-datagramNext]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$ LSF\_\-datagram\-Next (const \hyperlink{struct__LSF__datagram}{LSF\_\-datagram} $\ast$ {\em dgm})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a43}


Advances the datagram pointer by the length field specified in the datagram. 

\begin{Desc}
\item[Returns:]The new datagram pointer\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em dgm}]The datagram pointer to advance\end{description}
\end{Desc}
\hypertarget{LSF_8h_a41}{
\index{LSF.h@{LSF.h}!LSF_identityCompose@{LSF\_\-identityCompose}}
\index{LSF_identityCompose@{LSF\_\-identityCompose}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-identityCompose]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline unsigned int LSF\_\-identity\-Compose (unsigned int {\em type\_\-id}, unsigned int {\em version}, unsigned int {\em dir})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a41}


Composes the 32-bit identity word for either a datagram or a contribution from the specified pieces. 

\begin{Desc}
\item[Returns:]The 32-bit identity word;\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em dir}]A flag, if true indicating the datagram/contribution is composed of a series of contributions/records \item[{\em version}]The version of the data being presented \item[{\em type\_\-id}]The type/identifier of the datagram or contribution Examples would be LSF\_\-ID\_\-K\_\-LSEP, LSF\_\-ID\_\-K\_\-LSEC\end{description}
\end{Desc}
\begin{Desc}
\item[]Note, this functionality is also available as a macro. The macro should be used when initializing data structures, {\em i.e\/}, where calling a function is prohibited. The inline is useful when debugging calls for setting a breakpoint on a routine.\end{Desc}
\hypertarget{LSF_8h_a48}{
\index{LSF.h@{LSF.h}!LSF_recordAdvance@{LSF\_\-recordAdvance}}
\index{LSF_recordAdvance@{LSF\_\-recordAdvance}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-recordAdvance]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$ LSF\_\-record\-Advance (const \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$ {\em rec}, unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a48}


Advances the record pointer by the specified number of 32-bit words. 

\begin{Desc}
\item[Returns:]The new record pointer\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em rec}]The record pointer to advance \item[{\em n32}]The number of 32-bit words to advance the pointer\end{description}
\end{Desc}
\begin{Desc}
\item[Warning:]The advancement is in the natural units of an record, i.e. 32-bit words.\end{Desc}
\hypertarget{LSF_8h_a42}{
\index{LSF.h@{LSF.h}!LSF_recordHdrCompose@{LSF\_\-recordHdrCompose}}
\index{LSF_recordHdrCompose@{LSF\_\-recordHdrCompose}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-recordHdrCompose]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline unsigned int LSF\_\-record\-Hdr\-Compose (unsigned int {\em type\_\-id}, unsigned int {\em bridge}, unsigned int {\em len32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a42}


Composes a LSF record header. 

\begin{Desc}
\item[Returns:]The LSF record header\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em type\_\-id}]The record's type/id (0-15) \item[{\em bridge}]The value of the 8-bit bridge field \item[{\em len32}]The length, in longwords, of the record\end{description}
\end{Desc}
\begin{Desc}
\item[]Note, this functionality is also available as a macro. The macro should be used when initializing data structures, {\em i.e\/}, where calling a function is prohibited. The inline is useful when debugging calls for setting a breakpoint on a routine.\end{Desc}
\hypertarget{LSF_8h_a47}{
\index{LSF.h@{LSF.h}!LSF_recordNext@{LSF\_\-recordNext}}
\index{LSF_recordNext@{LSF\_\-recordNext}!LSF.h@{LSF.h}}
\subsubsection[LSF\_\-recordNext]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$ LSF\_\-record\-Next (const \hyperlink{struct__LSF__record}{LSF\_\-record} $\ast$ {\em rec})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a47}


Advances the record pointer by the length field specified in the record header. 

\begin{Desc}
\item[Returns:]The new record pointer\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em rec}]The record pointer to advance\end{description}
\end{Desc}
