\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`\"{}EDS/EDS\_\-endianness.h\char`\"{}}\par


Include dependency graph for LSF.h:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=81pt]{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=51pt]{LSF_8h__dep__incl}
\end{center}
\end{figure}
\subsection*{Data Structures}
\begin{CompactItemize}
\item 
struct \hyperlink{struct__LSF__contribution}{\_\-LSF\_\-contribution}
\begin{CompactList}\small\item\em The general structure of an LSF contribution. \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__hdr}{\_\-LSF\_\-contribution\_\-hdr}
\begin{CompactList}\small\item\em The layout of a contribution header structure. \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}\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__hdr}{\_\-LSF\_\-datagram\_\-hdr}
\begin{CompactList}\small\item\em The LSF datagram header. \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__identity__bf}{\_\-LSF\_\-identity\_\-bf}
\begin{CompactList}\small\item\em The bit field representation of the LSF identity word. \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 
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 
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 
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}\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 
\_\-\_\-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 
\_\-\_\-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 
\_\-\_\-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 
\_\-\_\-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 
\_\-\_\-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 
\_\-\_\-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 
\_\-\_\-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 
\_\-\_\-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 
\_\-\_\-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.3 2005/09/19 22:43:38 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}
\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[Enumeration values: ]\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}{
{\em 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}{
{\em 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}{
{\em 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}{
{\em 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[Enumeration values: ]\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}{
{\em 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}{
{\em 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}{
{\em 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}{
{\em 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[Enumeration values: ]\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}{
{\em 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}{
{\em 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}{
{\em 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}{
{\em 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[Enumeration values: ]\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}{
{\em 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}{
{\em 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}{
{\em 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[Enumeration values: ]\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}{
{\em 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}{
{\em 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}{
{\em 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[Enumeration values: ]\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}{
{\em 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}{
{\em 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}{
{\em 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}\_\-\_\-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}\_\-\_\-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}\_\-\_\-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}\_\-\_\-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}\_\-\_\-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}\_\-\_\-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}\_\-\_\-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}\_\-\_\-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}\_\-\_\-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}
