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


{\tt \#include $<$PBI/Endianness.h$>$}\par
\subsection*{Classes}
\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 
struct \hyperlink{struct__LSF__root__hdr__bf}{\_\-LSF\_\-root\_\-hdr\_\-bf}
\begin{CompactList}\small\item\em The LSF root header as bit fields. \item\end{CompactList}\item 
union \hyperlink{union__LSF__root__hdr}{\_\-LSF\_\-root\_\-hdr}
\begin{CompactList}\small\item\em The LSF root header as a union of 32-bit integer and the bit field representation. \item\end{CompactList}\item 
union \hyperlink{union__LSF__root__bdy}{\_\-LSF\_\-root\_\-bdy}
\begin{CompactList}\small\item\em Beginning of the body of the LSF datagram root contribution. \item\end{CompactList}\item 
struct \hyperlink{struct__LSF__root}{\_\-LSF\_\-root}
\begin{CompactList}\small\item\em Describes the body when the datagram has a root contribution. \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_daf442efc57ceeacd25e0baf3f83fa5e}{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_75d907d6c6cafe7349b48bb16d52d51d}{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}\item 
\#define \hyperlink{LSF_8h_ccbe9a53f8b3a8ab71ed3903dc0f5eef}{LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE}(\_\-type\_\-id, \_\-version, \_\-opts)
\begin{CompactList}\small\item\em Composes the 32-bit identity word for a datagram using the specified values. \item\end{CompactList}\item 
\#define \hyperlink{LSF_8h_53b164239a044f0ad71c676fe8cef62c}{LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE}(\_\-type\_\-id, \_\-version, \_\-opts)
\begin{CompactList}\small\item\em Composes the 32-bit identity word for a datagram using the specified values. \item\end{CompactList}\item 
\#define \hyperlink{LSF_8h_1d5bce8feb4f34f801e801cb10a2a228}{LSF\_\-ROOT\_\-HDR\_\-COMPOSE}
\begin{CompactList}\small\item\em Compose the root header word. \item\end{CompactList}\end{CompactItemize}
\subsection*{Typedefs}
\begin{CompactItemize}
\item 
\hypertarget{LSF_8h_f37662932874dabb81bc6b75001f7d5c}{
typedef enum \hyperlink{LSF_8h_2c52b77b206c80bd0215d824f3a0530f}{\_\-LSF\_\-RECORD\_\-HDR\_\-S} \hyperlink{LSF_8h_f37662932874dabb81bc6b75001f7d5c}{LSF\_\-RECORD\_\-HDR\_\-S}}
\label{LSF_8h_f37662932874dabb81bc6b75001f7d5c}

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

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

\begin{CompactList}\small\item\em typedef for enum \_\-LSF\_\-RECORD\_\-HDR\_\-M \item\end{CompactList}\item 
typedef struct \hyperlink{struct__LSF__record__hdr__bf}{\_\-LSF\_\-record\_\-hdr\_\-bf} \hyperlink{LSF_8h_4a6c0697892f0b386ffe2da73576bd23}{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_14cf909eb51160b6f6944ad7e8b9c983}{
typedef union \hyperlink{union__LSF__record__hdr}{\_\-LSF\_\-record\_\-hdr} \hyperlink{LSF_8h_14cf909eb51160b6f6944ad7e8b9c983}{LSF\_\-record\_\-hdr}}
\label{LSF_8h_14cf909eb51160b6f6944ad7e8b9c983}

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

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

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__record}{\_\-LSF\_\-record}. \item\end{CompactList}\item 
typedef enum \hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b}{\_\-LSF\_\-IDENTITY\_\-S} \hyperlink{LSF_8h_e9c799f6be076ba30e72f99750326531}{LSF\_\-IDENTITY\_\-S}
\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-IDENTITY\_\-S. \item\end{CompactList}\item 
typedef enum \hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1}{\_\-LSF\_\-IDENTITY\_\-V} \hyperlink{LSF_8h_8bce08f21b5ed62f1278b48e738a96e0}{LSF\_\-IDENTITY\_\-V}
\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-IDENTITY\_\-V. \item\end{CompactList}\item 
typedef enum \hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbe}{\_\-LSF\_\-IDENTITY\_\-M} \hyperlink{LSF_8h_5d57ea66544aa742cd19f70526a554ba}{LSF\_\-IDENTITY\_\-M}
\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-IDENTITY\_\-M. \item\end{CompactList}\item 
typedef struct \hyperlink{struct__LSF__identity__bf}{\_\-LSF\_\-identity\_\-bf} \hyperlink{LSF_8h_3cc033540757b60b84eadc4ce91014e5}{LSF\_\-identity\_\-bf}
\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__identity__bf}{\_\-LSF\_\-identity\_\-bf}. \item\end{CompactList}\item 
typedef union \hyperlink{union__LSF__identity}{\_\-LSF\_\-identity} \hyperlink{LSF_8h_a4a0fb2b76a37a96d49495327271fd7e}{LSF\_\-identity}
\begin{CompactList}\small\item\em Typedef for union \hyperlink{union__LSF__identity}{\_\-LSF\_\-identity}. \item\end{CompactList}\item 
typedef struct \hyperlink{struct__LSF__contribution__hdr}{\_\-LSF\_\-contribution\_\-hdr} \hyperlink{LSF_8h_95c2963d746f05593549075470d0fca9}{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_4811ade6c1a8b2611cf7647c719dc0b8}{
typedef union \hyperlink{union__LSF__contribution__bdy}{\_\-LSF\_\-contribution\_\-bdy} \hyperlink{LSF_8h_4811ade6c1a8b2611cf7647c719dc0b8}{LSF\_\-contribution\_\-bdy}}
\label{LSF_8h_4811ade6c1a8b2611cf7647c719dc0b8}

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

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__contribution}{\_\-LSF\_\-contribution}. \item\end{CompactList}\item 
typedef struct \hyperlink{struct__LSF__datagram__hdr}{\_\-LSF\_\-datagram\_\-hdr} \hyperlink{LSF_8h_add2ebac3ee821a46073f195752f88ce}{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_1e504157cf0b37c38b9698f7533209e9}{
typedef enum \hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc25}{\_\-LSF\_\-ROOT\_\-HDR\_\-S} \hyperlink{LSF_8h_1e504157cf0b37c38b9698f7533209e9}{LSF\_\-ROOT\_\-HDR\_\-S}}
\label{LSF_8h_1e504157cf0b37c38b9698f7533209e9}

\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-ROOT\_\-HDR\_\-S. \item\end{CompactList}\item 
\hypertarget{LSF_8h_c769f75530dd212368836d0047e04b08}{
typedef enum \hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4}{\_\-LSF\_\-ROOT\_\-HDR\_\-V} \hyperlink{LSF_8h_c769f75530dd212368836d0047e04b08}{LSF\_\-ROOT\_\-HDR\_\-V}}
\label{LSF_8h_c769f75530dd212368836d0047e04b08}

\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-ROOT\_\-HDR\_\-V. \item\end{CompactList}\item 
\hypertarget{LSF_8h_9cfa31f9515f9e2688cc4adb5dd5da41}{
typedef enum \hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9}{\_\-LSF\_\-ROOT\_\-HDR\_\-M} \hyperlink{LSF_8h_9cfa31f9515f9e2688cc4adb5dd5da41}{LSF\_\-ROOT\_\-HDR\_\-M}}
\label{LSF_8h_9cfa31f9515f9e2688cc4adb5dd5da41}

\begin{CompactList}\small\item\em Typedef for enum \_\-LSF\_\-ROOT\_\-HDR\_\-M. \item\end{CompactList}\item 
\hypertarget{LSF_8h_97d0c8fdd253e5cf6c9d8acf076e0c4d}{
typedef struct \hyperlink{struct__LSF__root__hdr__bf}{\_\-LSF\_\-root\_\-hdr\_\-bf} \hyperlink{LSF_8h_97d0c8fdd253e5cf6c9d8acf076e0c4d}{LSF\_\-root\_\-hdr\_\-bf}}
\label{LSF_8h_97d0c8fdd253e5cf6c9d8acf076e0c4d}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{struct__LSF__root__hdr__bf}{\_\-LSF\_\-root\_\-hdr\_\-bf}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_3643081b5322bc31e111949f60eb037c}{
typedef union \hyperlink{union__LSF__root__hdr}{\_\-LSF\_\-root\_\-hdr} \hyperlink{LSF_8h_3643081b5322bc31e111949f60eb037c}{LSF\_\-root\_\-hdr}}
\label{LSF_8h_3643081b5322bc31e111949f60eb037c}

\begin{CompactList}\small\item\em Typedef for struct \hyperlink{union__LSF__root__hdr}{\_\-LSF\_\-root\_\-hdr}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_25669c2e3be1890c951832844081e76c}{
typedef union \hyperlink{union__LSF__root__bdy}{\_\-LSF\_\-root\_\-bdy} \hyperlink{LSF_8h_25669c2e3be1890c951832844081e76c}{LSF\_\-root\_\-bdy}}
\label{LSF_8h_25669c2e3be1890c951832844081e76c}

\begin{CompactList}\small\item\em Typedef for union \hyperlink{union__LSF__root__bdy}{\_\-LSF\_\-root\_\-bdy}. \item\end{CompactList}\item 
\hypertarget{LSF_8h_a50d369e415488808e1f4143f6352af0}{
typedef struct \hyperlink{struct__LSF__root}{\_\-LSF\_\-root} \hyperlink{LSF_8h_a50d369e415488808e1f4143f6352af0}{LSF\_\-root}}
\label{LSF_8h_a50d369e415488808e1f4143f6352af0}

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

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

\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_2c52b77b206c80bd0215d824f3a0530f}{\_\-LSF\_\-RECORD\_\-HDR\_\-S} \{ \par
\hyperlink{LSF_8h_2c52b77b206c80bd0215d824f3a0530fbef8b1cf836d8b7a44b75ac0774afec1}{LSF\_\-RECORD\_\-HDR\_\-S\_\-BRIDGE} =  8, 
\par
\hyperlink{LSF_8h_2c52b77b206c80bd0215d824f3a0530f892c7f60c259acb210a293b0cec4fc36}{LSF\_\-RECORD\_\-HDR\_\-S\_\-TYPEID} =  4, 
\par
\hyperlink{LSF_8h_2c52b77b206c80bd0215d824f3a0530fe609eb710c24997eaf5a6ce91f145278}{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_e3555d4bb42796ae2fa6490968811888}{\_\-LSF\_\-RECORD\_\-HDR\_\-V} \{ \par
\hyperlink{LSF_8h_e3555d4bb42796ae2fa6490968811888213908a239e94c8746a42d912750b789}{LSF\_\-RECORD\_\-HDR\_\-V\_\-BRIDGE} =  24, 
\par
\hyperlink{LSF_8h_e3555d4bb42796ae2fa64909688118887038d8717ddc4d65bdf741e18481b4cd}{LSF\_\-RECORD\_\-HDR\_\-V\_\-TYPEID} =  20, 
\par
\hyperlink{LSF_8h_e3555d4bb42796ae2fa6490968811888440ca6103faa049774b0f8004bc3221e}{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_66ece0eb16e0d911e68577dfdd867dd6}{\_\-LSF\_\-RECORD\_\-HDR\_\-M} \{ \par
\hyperlink{LSF_8h_66ece0eb16e0d911e68577dfdd867dd6f1917811bc74a7b45d644872ef6f13d8}{LSF\_\-RECORD\_\-HDR\_\-M\_\-TYPEID}, 
\par
\hyperlink{LSF_8h_66ece0eb16e0d911e68577dfdd867dd652ca73351d7050f727a3608f3998730c}{LSF\_\-RECORD\_\-HDR\_\-M\_\-BRIDGE}, 
\par
\hyperlink{LSF_8h_66ece0eb16e0d911e68577dfdd867dd6e271f33c2eaf14707b7b063021c9a17e}{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_67e5116656d69e1a9278150a4e1c4f1b}{\_\-LSF\_\-IDENTITY\_\-S} \{ \par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b1c5655087d581017ae42d8af7e4176de}{LSF\_\-IDENTITY\_\-S\_\-TYPEID} =  20, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b2d9e5fe04293a34337eaa7f6a2b8bacc}{LSF\_\-IDENTITY\_\-S\_\-VERSION} =  8, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1ba497a39f3950b99dfe01da1200dda58e}{LSF\_\-IDENTITY\_\-S\_\-OPTS} =  4, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1be1decefd74b1e166eedda59dba4a69c4}{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-0} =  1, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bb1a67fe934f3625691d0a42a953a09d1}{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-1} =  1, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b4b7f6d4d44604a322dee132e1446e139}{LSF\_\-IDENTITY\_\-S\_\-ROOT} =  1, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bf157eecae9a7fbaf758f89d9f71b2b15}{LSF\_\-IDENTITY\_\-S\_\-DIR} =  1, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bcda9a02dc8e0669e2d515f1180d421ad}{LSF\_\-IDENTITY\_\-S\_\-DGM\_\-CTB} =  1, 
\par
\hyperlink{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b84a0a537337be4d325dc2092361ccda3}{LSF\_\-IDENTITY\_\-S\_\-CTB\_\-REC} =  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_dfcb143d2ccd77e8fd3a043bd8b522b1}{\_\-LSF\_\-IDENTITY\_\-V} \{ \par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1f1dba5364a858e6107f413192f3df3c6}{LSF\_\-IDENTITY\_\-V\_\-TYPEID} =  0, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1c5a26d754e6657eb9b7565439dcffa71}{LSF\_\-IDENTITY\_\-V\_\-VERSION} =  20, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1f5bdc1efb3a4633c4ff41a688ee33307}{LSF\_\-IDENTITY\_\-V\_\-OPTS} =  28, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1d4d82f924f7f21b57cfc259c8de4c63d}{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-0} =  LSF\_\-IDENTITY\_\-V\_\-OPTS + 0, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b11f8b7152b2d302448ba46bb306a96021}{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-1} =  LSF\_\-IDENTITY\_\-V\_\-OPTS + 1, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b18ecd1d6690adc9fd9f93a27c8cb8e108}{LSF\_\-IDENTITY\_\-V\_\-ROOT} =  LSF\_\-IDENTITY\_\-V\_\-OPTS + 2, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b16166b7464420aeea07a580fd0a7a3e53}{LSF\_\-IDENTITY\_\-V\_\-DIR} =  LSF\_\-IDENTITY\_\-V\_\-OPTS + 3, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1a44e62631c2170afdc9d90dd24420c49}{LSF\_\-IDENTITY\_\-V\_\-DGM\_\-CTB} =  LSF\_\-IDENTITY\_\-V\_\-OPTS + 3, 
\par
\hyperlink{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1da0ac86bfa582270d4cdc5c2285f9d6c}{LSF\_\-IDENTITY\_\-V\_\-CTB\_\-REC} =  LSF\_\-IDENTITY\_\-V\_\-OPTS + 3
 \}
\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_6519e801e70e015782422195ec2dcfbe}{\_\-LSF\_\-IDENTITY\_\-M} \{ \par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbe4bafcaad9b8ab290c80c78f0429b0b93}{LSF\_\-IDENTITY\_\-M\_\-TYPEID}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbe18534cb210874a5f4682d91e3f61320c}{LSF\_\-IDENTITY\_\-M\_\-VERSION}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbe3c60824f1143b2adc05c1ba423b38fcd}{LSF\_\-IDENTITY\_\-M\_\-OPTS}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbe58c9bfaeef29c752c821a92d076320a5}{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-0}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbeabe14980212dd4da6da6902b3ab32e57}{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-1}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbef00578b28a3a8792d6b864ca888dc6db}{LSF\_\-IDENTITY\_\-M\_\-ROOT}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbe522c08108b88009be14e0d6d9046cc18}{LSF\_\-IDENTITY\_\-M\_\-DIR}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbeff43d29ad1a45a1772ee6e4cd4da7429}{LSF\_\-IDENTITY\_\-M\_\-DGM\_\-CTB}, 
\par
\hyperlink{LSF_8h_6519e801e70e015782422195ec2dcfbea92d754af5e9659cccf0e6ac30109922}{LSF\_\-IDENTITY\_\-M\_\-CTB\_\-REC}
 \}
\begin{CompactList}\small\item\em Enumeration giving the in place masks of the bit fields in the LSF identity word. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc25}{\_\-LSF\_\-ROOT\_\-HDR\_\-S} \{ \par
\hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc25d9a601e8ec275162852d67b55e1af0ae}{LSF\_\-ROOT\_\-HDR\_\-S\_\-LEN32} =  28, 
\par
\hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc250da5158c210db5e68a6dbfd855812df4}{LSF\_\-ROOT\_\-HDR\_\-S\_\-OPTS} =  4, 
\par
\hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc253ef3391463af5ad1ae65ee99757ff83f}{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-0} =  1, 
\par
\hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc2570d3d4c3559a8abd46b7401ba98c50a5}{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-1} =  1, 
\par
\hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc25669e5f0d8b6a69be861884fa5cee7e33}{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-2} =  1, 
\par
\hyperlink{LSF_8h_806137e68807b833ed915b1057a0fc2509965dbcc99874ad582d8fc86fb8595c}{LSF\_\-ROOT\_\-HDR\_\-S\_\-CTB} =  1
 \}
\begin{CompactList}\small\item\em The size, in bits, of the fields of the root header word. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4}{\_\-LSF\_\-ROOT\_\-HDR\_\-V} \{ \par
\hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4df8dcd335f077a7434337046d4b860d5}{LSF\_\-ROOT\_\-HDR\_\-V\_\-LEN32} =  0, 
\par
\hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d424850da0c54b2ea38ebc30d9ef2c9018}{LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS} =  28, 
\par
\hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d438033664d293edfdc6048a525ae95352}{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-0} =  LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS + 0, 
\par
\hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4bbee6c046ba1b994f244d0b8cb276df9}{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-1} =  LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS + 1, 
\par
\hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d49023d4c26bce3a74e0d6dd70756dd2fb}{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-2} =  LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS + 2, 
\par
\hyperlink{LSF_8h_236d2d7ced85f664d9f77fc56983e2d472319287e6a54413b3d9e504e3279a9d}{LSF\_\-ROOT\_\-HDR\_\-V\_\-CTB} =  LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS + 3
 \}
\begin{CompactList}\small\item\em The right justified bit offset of the fields of the root header word. \item\end{CompactList}\item 
enum \hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9}{\_\-LSF\_\-ROOT\_\-HDR\_\-M} \{ \par
\hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9ed95e706d7a114fb9ca5835e8fc1c911}{LSF\_\-ROOT\_\-HDR\_\-M\_\-LEN32}, 
\par
\hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9471a54166b8be73d8bd5a5b4ad8f3f48}{LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS}, 
\par
\hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9e5dbec037a6a43971548dd8b9048fed9}{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-0}, 
\par
\hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a94ccc4374c3085182b5e2da2f9f3f45dd}{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-1}, 
\par
\hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9df8a0fb193ecae805c97c4b643267c33}{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-2}, 
\par
\hyperlink{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a959380bab079db5d73b40892783e96dbd}{LSF\_\-ROOT\_\-HDR\_\-M\_\-CTB}
 \}
\begin{CompactList}\small\item\em The in place bit masks of the fields of the root header word. \item\end{CompactList}\end{CompactItemize}
\subsection*{Functions}
\begin{CompactItemize}
\item 
static \_\-\_\-inline unsigned int \hyperlink{LSF_8h_3c2ebbeab3515d5b9c10fbf39d58577f}{LSF\_\-identityCompose} (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_50ea1d61f6703d6b9671e4416a3b79db}{LSF\_\-datagramIdentityCompose} (unsigned int type\_\-id, unsigned int version, unsigned int opts)
\begin{CompactList}\small\item\em Composes the 32-bit identity word for a datagram from the specified pieces. \item\end{CompactList}\item 
static \_\-\_\-inline unsigned int \hyperlink{LSF_8h_902fe1c7ce7f2907300acbe4ff7d424d}{LSF\_\-contributionIdentityCompose} (unsigned int type\_\-id, unsigned int version, unsigned int opts)
\begin{CompactList}\small\item\em Composes the 32-bit identity word for a contribution from the specified pieces. \item\end{CompactList}\item 
static \_\-\_\-inline unsigned int \hyperlink{LSF_8h_13736d87985a74b0f32cd995f2772c93}{LSF\_\-rootHdrCompose} (unsigned int len32, unsigned int ctb)
\begin{CompactList}\small\item\em Compose the root header word. \item\end{CompactList}\item 
static \_\-\_\-inline unsigned int \hyperlink{LSF_8h_ef7d0a3949942ba5a9ac30c288db3fc2}{LSF\_\-recordHdrCompose} (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_a9b6aede9f304f4d55925a173ada61f5}{LSF\_\-datagramNext} (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_6ed6ae968523ee146b055d54ab7c109d}{LSF\_\-datagramAdvance} (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_cf098e6e77139aa7af634fc487f46629}{LSF\_\-contributionNext} (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_3a841a5fddec3ee0046a65e7aa4e0a23}{LSF\_\-contributionAdvance} (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_f19e310bea61da87c61e4553d6e4e4b4}{LSF\_\-recordNext} (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_629b7019780e2a840a7dba3c76b415ea}{LSF\_\-recordAdvance} (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_63b9716e96f727553c4c2d5fe9fb88c2}{LSF\_\-datAdvance} (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.8 2011/03/25 18:23:08 apw 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_53b164239a044f0ad71c676fe8cef62c}{
\index{LSF.h@{LSF.h}!LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE@{LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE}}
\index{LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE@{LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE}!LSF.h@{LSF.h}}
\subsubsection[{LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE}]{\setlength{\rightskip}{0pt plus 5cm}\#define LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE(\_\-type\_\-id, \/  \_\-version, \/  \_\-opts)}}
\label{LSF_8h_53b164239a044f0ad71c676fe8cef62c}


\textbf{Value:}

\begin{Code}\begin{verbatim}( (((_opts)                          )    & LSF_IDENTITY_M_OPTS   )    \
 |   (((_version) << LSF_IDENTITY_V_VERSION) & LSF_IDENTITY_M_VERSION)    \
 |   (((_type_id )<< LSF_IDENTITY_V_TYPEID)  & LSF_IDENTITY_M_TYPEID )  )
\end{verbatim}
\end{Code}
Composes the 32-bit identity word for a datagram using the specified values. 

\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 \_\-opts}]An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF\_\-IDENTITY\_\-M\_\-OPTS.\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_ccbe9a53f8b3a8ab71ed3903dc0f5eef}{
\index{LSF.h@{LSF.h}!LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE@{LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE}}
\index{LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE@{LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE}!LSF.h@{LSF.h}}
\subsubsection[{LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE}]{\setlength{\rightskip}{0pt plus 5cm}\#define LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE(\_\-type\_\-id, \/  \_\-version, \/  \_\-opts)}}
\label{LSF_8h_ccbe9a53f8b3a8ab71ed3903dc0f5eef}


\textbf{Value:}

\begin{Code}\begin{verbatim}( (((_opts)                          )    & LSF_IDENTITY_M_OPTS   )    \
 |   (((_version) << LSF_IDENTITY_V_VERSION) & LSF_IDENTITY_M_VERSION)    \
 |   (((_type_id )<< LSF_IDENTITY_V_TYPEID)  & LSF_IDENTITY_M_TYPEID )  )
\end{verbatim}
\end{Code}
Composes the 32-bit identity word for a datagram using the specified values. 

\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 \_\-opts}]An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF\_\-IDENTITY\_\-M.\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_75d907d6c6cafe7349b48bb16d52d51d}{
\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_75d907d6c6cafe7349b48bb16d52d51d}


\textbf{Value:}

\begin{Code}\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}
\end{Code}
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. This version supports both contributions and datagrams without root contributions.\end{Desc}
\begin{Desc}
\item[Warning:]This macro may be deprecated in a future release. New code should use the more directed LSF\_\-DATAGRAM\_\-IDENTITY\_\-COMPOSE or LSF\_\-CONTRIBUTION\_\-IDENTITY\_\-COMPOSE. \end{Desc}
\hypertarget{LSF_8h_daf442efc57ceeacd25e0baf3f83fa5e}{
\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_daf442efc57ceeacd25e0baf3f83fa5e}


\textbf{Value:}

\begin{Code}\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}
\end{Code}
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}
\hypertarget{LSF_8h_1d5bce8feb4f34f801e801cb10a2a228}{
\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-COMPOSE@{LSF\_\-ROOT\_\-HDR\_\-COMPOSE}}
\index{LSF\_\-ROOT\_\-HDR\_\-COMPOSE@{LSF\_\-ROOT\_\-HDR\_\-COMPOSE}!LSF.h@{LSF.h}}
\subsubsection[{LSF\_\-ROOT\_\-HDR\_\-COMPOSE}]{\setlength{\rightskip}{0pt plus 5cm}\#define LSF\_\-ROOT\_\-HDR\_\-COMPOSE}}
\label{LSF_8h_1d5bce8feb4f34f801e801cb10a2a228}


\textbf{Value:}

\begin{Code}\begin{verbatim}(_len32, _ctb)                               \
   ( (((_ctb)   << LSF_ROOT_HDR_V_CTB  ) & LSF_ROOT_HDR_M_CTB  )          \
   | (((_len32) << LSF_ROOT_HDR_V_LEN32) & LSF_ROOT_HDR_M_LEN32))
\end{verbatim}
\end{Code}
Compose the root header word. 

\begin{Desc}
\item[Returns:]The compose root header word\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em \_\-len32}]The length, in 32-bit words, of the root contribution \item[{\em \_\-ctb}]A flag indicating if the root contribution itself is composed of contributions (1) or is just a bag of bits.\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_95c2963d746f05593549075470d0fca9}{
\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}{\bf LSF\_\-contribution\_\-hdr}}}
\label{LSF_8h_95c2963d746f05593549075470d0fca9}


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_add2ebac3ee821a46073f195752f88ce}{
\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}{\bf LSF\_\-datagram\_\-hdr}}}
\label{LSF_8h_add2ebac3ee821a46073f195752f88ce}


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_a4a0fb2b76a37a96d49495327271fd7e}{
\index{LSF.h@{LSF.h}!LSF\_\-identity@{LSF\_\-identity}}
\index{LSF\_\-identity@{LSF\_\-identity}!LSF.h@{LSF.h}}
\subsubsection[{LSF\_\-identity}]{\setlength{\rightskip}{0pt plus 5cm}{\bf LSF\_\-identity}}}
\label{LSF_8h_a4a0fb2b76a37a96d49495327271fd7e}


Typedef for union \hyperlink{union__LSF__identity}{\_\-LSF\_\-identity}. 

\begin{Desc}
\item[Note:]This is being maintained as a common structure for both datagrams and contributions. However, as time goes on, differences are appearing. At some point, these two may have to be separated. \end{Desc}
\hypertarget{LSF_8h_3cc033540757b60b84eadc4ce91014e5}{
\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}{\bf LSF\_\-identity\_\-bf}}}
\label{LSF_8h_3cc033540757b60b84eadc4ce91014e5}


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

\begin{Desc}
\item[]Except for the {\em dir\/} and {\em root\/} fields, these fields are self-explanatory.\end{Desc}
\begin{Desc}
\item[Root Flag]The {\em root\/} field indicates whether a hidden root contribution immediately follows the datagram header. The length of all the root contributors immedidately follows the datagram header. A parser is free to consume the root contributions as an anonymous bag of bits or pass them to a call back routine.\end{Desc}
\begin{Desc}
\item[Dir Flag]The {\em dir\/} indicates whether the payload has structure or is just a bag of bytes. For datagrams, this flag indicates that the payload is/is not a series of contributions. It allows a generic LSF parsing tool to decide whether it can drill down into the payload of a datagram or a contribution. Once a 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[]If this flags applies to the structure of the data {\em after\/} any root contribution. Note that the root header itself contains a {\em dir\/} flag indicating to its consumers whether the data associated with the root contribution is structured or not.\end{Desc}
\begin{Desc}
\item[Rsvd Field]Currently this field is unused\end{Desc}
\begin{Desc}
\item[]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}
\begin{Desc}
\item[Note:]This is being maintained as a common structure for both datagrams and contributions. However, as time goes on, differences are appearing. At some point, these two may have to be separated. \end{Desc}
\hypertarget{LSF_8h_5d57ea66544aa742cd19f70526a554ba}{
\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}{\bf LSF\_\-IDENTITY\_\-M}}}
\label{LSF_8h_5d57ea66544aa742cd19f70526a554ba}


Typedef for enum \_\-LSF\_\-IDENTITY\_\-M. 

\begin{Desc}
\item[Note:]This is being maintained as a common structure for both datagrams and contributions. However, as time goes on, differences are appearing. At some point, these two may have to be separated. \end{Desc}
\hypertarget{LSF_8h_e9c799f6be076ba30e72f99750326531}{
\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}{\bf LSF\_\-IDENTITY\_\-S}}}
\label{LSF_8h_e9c799f6be076ba30e72f99750326531}


Typedef for enum \_\-LSF\_\-IDENTITY\_\-S. 

\begin{Desc}
\item[Note:]This is being maintained as a common structure for both datagrams and contributions. However, as time goes on, differences are appearing. At some point, these two may have to be separated. \end{Desc}
\hypertarget{LSF_8h_8bce08f21b5ed62f1278b48e738a96e0}{
\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}{\bf LSF\_\-IDENTITY\_\-V}}}
\label{LSF_8h_8bce08f21b5ed62f1278b48e738a96e0}


Typedef for enum \_\-LSF\_\-IDENTITY\_\-V. 

\begin{Desc}
\item[Note:]This is being maintained as a common structure for both datagrams and contributions. However, as time goes on, differences are appearing. At some point, these two may have to be separated. \end{Desc}
\hypertarget{LSF_8h_4a6c0697892f0b386ffe2da73576bd23}{
\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}{\bf LSF\_\-record\_\-hdr\_\-bf}}}
\label{LSF_8h_4a6c0697892f0b386ffe2da73576bd23}


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_6519e801e70e015782422195ec2dcfbe}{
\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 {\bf \_\-LSF\_\-IDENTITY\_\-M}}}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbe}


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_6519e801e70e015782422195ec2dcfbe4bafcaad9b8ab290c80c78f0429b0b93}{
LSF\_\-IDENTITY\_\-M\_\-TYPEID}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbe4bafcaad9b8ab290c80c78f0429b0b93}
}]In place mask of the typeId 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_6519e801e70e015782422195ec2dcfbe18534cb210874a5f4682d91e3f61320c}{
LSF\_\-IDENTITY\_\-M\_\-VERSION}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbe18534cb210874a5f4682d91e3f61320c}
}]In place mask of the version field \index{LSF\_\-IDENTITY\_\-M\_\-OPTS@{LSF\_\-IDENTITY\_\-M\_\-OPTS}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-M\_\-OPTS@{LSF\_\-IDENTITY\_\-M\_\-OPTS}}\item[{\em 
\hypertarget{LSF_8h_6519e801e70e015782422195ec2dcfbe3c60824f1143b2adc05c1ba423b38fcd}{
LSF\_\-IDENTITY\_\-M\_\-OPTS}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbe3c60824f1143b2adc05c1ba423b38fcd}
}]In place mask of the options field \index{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-0@{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-0}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-0@{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-0}}\item[{\em 
\hypertarget{LSF_8h_6519e801e70e015782422195ec2dcfbe58c9bfaeef29c752c821a92d076320a5}{
LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-0}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbe58c9bfaeef29c752c821a92d076320a5}
}]In place mask of the reserved flag 0, must be zero \index{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-1@{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-1}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-1@{LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-1}}\item[{\em 
\hypertarget{LSF_8h_6519e801e70e015782422195ec2dcfbeabe14980212dd4da6da6902b3ab32e57}{
LSF\_\-IDENTITY\_\-M\_\-RSVD\_\-1}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbeabe14980212dd4da6da6902b3ab32e57}
}]In place mask of the reserved flag 1, must be zero \index{LSF\_\-IDENTITY\_\-M\_\-ROOT@{LSF\_\-IDENTITY\_\-M\_\-ROOT}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-M\_\-ROOT@{LSF\_\-IDENTITY\_\-M\_\-ROOT}}\item[{\em 
\hypertarget{LSF_8h_6519e801e70e015782422195ec2dcfbef00578b28a3a8792d6b864ca888dc6db}{
LSF\_\-IDENTITY\_\-M\_\-ROOT}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbef00578b28a3a8792d6b864ca888dc6db}
}]In place mask indicating that a root contribution is present immediately after the datagram header. This option is only valid for datagrams, not contributions \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_6519e801e70e015782422195ec2dcfbe522c08108b88009be14e0d6d9046cc18}{
LSF\_\-IDENTITY\_\-M\_\-DIR}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbe522c08108b88009be14e0d6d9046cc18}
}]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}
\index{LSF\_\-IDENTITY\_\-M\_\-DGM\_\-CTB@{LSF\_\-IDENTITY\_\-M\_\-DGM\_\-CTB}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-M\_\-DGM\_\-CTB@{LSF\_\-IDENTITY\_\-M\_\-DGM\_\-CTB}}\item[{\em 
\hypertarget{LSF_8h_6519e801e70e015782422195ec2dcfbeff43d29ad1a45a1772ee6e4cd4da7429}{
LSF\_\-IDENTITY\_\-M\_\-DGM\_\-CTB}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbeff43d29ad1a45a1772ee6e4cd4da7429}
}]In place mask of the flag indicating that a datagram is composed of contibutions. \index{LSF\_\-IDENTITY\_\-M\_\-CTB\_\-REC@{LSF\_\-IDENTITY\_\-M\_\-CTB\_\-REC}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-M\_\-CTB\_\-REC@{LSF\_\-IDENTITY\_\-M\_\-CTB\_\-REC}}\item[{\em 
\hypertarget{LSF_8h_6519e801e70e015782422195ec2dcfbea92d754af5e9659cccf0e6ac30109922}{
LSF\_\-IDENTITY\_\-M\_\-CTB\_\-REC}
\label{LSF_8h_6519e801e70e015782422195ec2dcfbea92d754af5e9659cccf0e6ac30109922}
}]In place mask of the flag indicating that a contribution is composed of records \end{description}
\end{Desc}

\hypertarget{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b}{
\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 {\bf \_\-LSF\_\-IDENTITY\_\-S}}}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b}


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_67e5116656d69e1a9278150a4e1c4f1b1c5655087d581017ae42d8af7e4176de}{
LSF\_\-IDENTITY\_\-S\_\-TYPEID}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b1c5655087d581017ae42d8af7e4176de}
}]Size, in bits, of the typeId 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_67e5116656d69e1a9278150a4e1c4f1b2d9e5fe04293a34337eaa7f6a2b8bacc}{
LSF\_\-IDENTITY\_\-S\_\-VERSION}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b2d9e5fe04293a34337eaa7f6a2b8bacc}
}]Size, in bits, of the version field \index{LSF\_\-IDENTITY\_\-S\_\-OPTS@{LSF\_\-IDENTITY\_\-S\_\-OPTS}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-S\_\-OPTS@{LSF\_\-IDENTITY\_\-S\_\-OPTS}}\item[{\em 
\hypertarget{LSF_8h_67e5116656d69e1a9278150a4e1c4f1ba497a39f3950b99dfe01da1200dda58e}{
LSF\_\-IDENTITY\_\-S\_\-OPTS}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1ba497a39f3950b99dfe01da1200dda58e}
}]Size, in bits, of the options field \index{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-0@{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-0}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-0@{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-0}}\item[{\em 
\hypertarget{LSF_8h_67e5116656d69e1a9278150a4e1c4f1be1decefd74b1e166eedda59dba4a69c4}{
LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-0}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1be1decefd74b1e166eedda59dba4a69c4}
}]Size, in bits, of the reserved flag 0, must be zero \index{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-1@{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-1}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-1@{LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-1}}\item[{\em 
\hypertarget{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bb1a67fe934f3625691d0a42a953a09d1}{
LSF\_\-IDENTITY\_\-S\_\-RSVD\_\-1}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bb1a67fe934f3625691d0a42a953a09d1}
}]Size, in bits, of the reserved flag 1, must be zero \index{LSF\_\-IDENTITY\_\-S\_\-ROOT@{LSF\_\-IDENTITY\_\-S\_\-ROOT}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-S\_\-ROOT@{LSF\_\-IDENTITY\_\-S\_\-ROOT}}\item[{\em 
\hypertarget{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b4b7f6d4d44604a322dee132e1446e139}{
LSF\_\-IDENTITY\_\-S\_\-ROOT}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b4b7f6d4d44604a322dee132e1446e139}
}]Size, in bits, of the flag indicating that a root contribution is present immediately after the datagram header. This option is only valid for datagrams, not contributions \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_67e5116656d69e1a9278150a4e1c4f1bf157eecae9a7fbaf758f89d9f71b2b15}{
LSF\_\-IDENTITY\_\-S\_\-DIR}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bf157eecae9a7fbaf758f89d9f71b2b15}
}]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 This is kept for backward compatibility, consider using LSF\_\-IDENTITY\_\-S\_\-DGM\_\-CTB or LSF\_\-IDENTITY\_\-S\_\-CTB\_\-REC \end{itemize}
\index{LSF\_\-IDENTITY\_\-S\_\-DGM\_\-CTB@{LSF\_\-IDENTITY\_\-S\_\-DGM\_\-CTB}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-S\_\-DGM\_\-CTB@{LSF\_\-IDENTITY\_\-S\_\-DGM\_\-CTB}}\item[{\em 
\hypertarget{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bcda9a02dc8e0669e2d515f1180d421ad}{
LSF\_\-IDENTITY\_\-S\_\-DGM\_\-CTB}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1bcda9a02dc8e0669e2d515f1180d421ad}
}]SIze, in bits, of the flag indicating that a datagram is composed of contributions \index{LSF\_\-IDENTITY\_\-S\_\-CTB\_\-REC@{LSF\_\-IDENTITY\_\-S\_\-CTB\_\-REC}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-S\_\-CTB\_\-REC@{LSF\_\-IDENTITY\_\-S\_\-CTB\_\-REC}}\item[{\em 
\hypertarget{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b84a0a537337be4d325dc2092361ccda3}{
LSF\_\-IDENTITY\_\-S\_\-CTB\_\-REC}
\label{LSF_8h_67e5116656d69e1a9278150a4e1c4f1b84a0a537337be4d325dc2092361ccda3}
}]SIze, in bits, of the flag indicating that a contribution is composed of records \end{description}
\end{Desc}

\hypertarget{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1}{
\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 {\bf \_\-LSF\_\-IDENTITY\_\-V}}}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1}


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_dfcb143d2ccd77e8fd3a043bd8b522b1f1dba5364a858e6107f413192f3df3c6}{
LSF\_\-IDENTITY\_\-V\_\-TYPEID}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1f1dba5364a858e6107f413192f3df3c6}
}]Right justified bit offset of the typeId 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_dfcb143d2ccd77e8fd3a043bd8b522b1c5a26d754e6657eb9b7565439dcffa71}{
LSF\_\-IDENTITY\_\-V\_\-VERSION}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1c5a26d754e6657eb9b7565439dcffa71}
}]Right justified bit offset of the version field \index{LSF\_\-IDENTITY\_\-V\_\-OPTS@{LSF\_\-IDENTITY\_\-V\_\-OPTS}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-V\_\-OPTS@{LSF\_\-IDENTITY\_\-V\_\-OPTS}}\item[{\em 
\hypertarget{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1f5bdc1efb3a4633c4ff41a688ee33307}{
LSF\_\-IDENTITY\_\-V\_\-OPTS}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1f5bdc1efb3a4633c4ff41a688ee33307}
}]Right justified bit offset of the options field \index{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-0@{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-0}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-0@{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-0}}\item[{\em 
\hypertarget{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1d4d82f924f7f21b57cfc259c8de4c63d}{
LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-0}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1d4d82f924f7f21b57cfc259c8de4c63d}
}]Right justified bit offset of the reserved field 0, must be zero \index{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-1@{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-1}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-1@{LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-1}}\item[{\em 
\hypertarget{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b11f8b7152b2d302448ba46bb306a96021}{
LSF\_\-IDENTITY\_\-V\_\-RSVD\_\-1}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b11f8b7152b2d302448ba46bb306a96021}
}]Right justified bit offset of the reserved field 1, must be zero \index{LSF\_\-IDENTITY\_\-V\_\-ROOT@{LSF\_\-IDENTITY\_\-V\_\-ROOT}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-V\_\-ROOT@{LSF\_\-IDENTITY\_\-V\_\-ROOT}}\item[{\em 
\hypertarget{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b18ecd1d6690adc9fd9f93a27c8cb8e108}{
LSF\_\-IDENTITY\_\-V\_\-ROOT}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b18ecd1d6690adc9fd9f93a27c8cb8e108}
}]Right justified bit offset of the flag indicating that a root contribution is present immediately after the datagram header. This option is only valid for datagrams, not contributions \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_dfcb143d2ccd77e8fd3a043bd8b522b16166b7464420aeea07a580fd0a7a3e53}{
LSF\_\-IDENTITY\_\-V\_\-DIR}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b16166b7464420aeea07a580fd0a7a3e53}
}]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 Kept for backward compatibility, consider using LSF\_\-IDENTITY\_\-V\_\-DGM\_\-CTB or LSF\_\-IDENTITY\_\-V\_\-CTB\_\-REC \end{itemize}
\index{LSF\_\-IDENTITY\_\-V\_\-DGM\_\-CTB@{LSF\_\-IDENTITY\_\-V\_\-DGM\_\-CTB}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-V\_\-DGM\_\-CTB@{LSF\_\-IDENTITY\_\-V\_\-DGM\_\-CTB}}\item[{\em 
\hypertarget{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1a44e62631c2170afdc9d90dd24420c49}{
LSF\_\-IDENTITY\_\-V\_\-DGM\_\-CTB}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1a44e62631c2170afdc9d90dd24420c49}
}]Right justified bit offset of the flag indicating that a datagram is composed of contributions \index{LSF\_\-IDENTITY\_\-V\_\-CTB\_\-REC@{LSF\_\-IDENTITY\_\-V\_\-CTB\_\-REC}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-IDENTITY\_\-V\_\-CTB\_\-REC@{LSF\_\-IDENTITY\_\-V\_\-CTB\_\-REC}}\item[{\em 
\hypertarget{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1da0ac86bfa582270d4cdc5c2285f9d6c}{
LSF\_\-IDENTITY\_\-V\_\-CTB\_\-REC}
\label{LSF_8h_dfcb143d2ccd77e8fd3a043bd8b522b1da0ac86bfa582270d4cdc5c2285f9d6c}
}]Right justified bit offset of the flag indicating that a contribution is composed of records \end{description}
\end{Desc}

\hypertarget{LSF_8h_66ece0eb16e0d911e68577dfdd867dd6}{
\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 {\bf \_\-LSF\_\-RECORD\_\-HDR\_\-M}}}
\label{LSF_8h_66ece0eb16e0d911e68577dfdd867dd6}


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_66ece0eb16e0d911e68577dfdd867dd6f1917811bc74a7b45d644872ef6f13d8}{
LSF\_\-RECORD\_\-HDR\_\-M\_\-TYPEID}
\label{LSF_8h_66ece0eb16e0d911e68577dfdd867dd6f1917811bc74a7b45d644872ef6f13d8}
}]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_66ece0eb16e0d911e68577dfdd867dd652ca73351d7050f727a3608f3998730c}{
LSF\_\-RECORD\_\-HDR\_\-M\_\-BRIDGE}
\label{LSF_8h_66ece0eb16e0d911e68577dfdd867dd652ca73351d7050f727a3608f3998730c}
}]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_66ece0eb16e0d911e68577dfdd867dd6e271f33c2eaf14707b7b063021c9a17e}{
LSF\_\-RECORD\_\-HDR\_\-M\_\-LEN32}
\label{LSF_8h_66ece0eb16e0d911e68577dfdd867dd6e271f33c2eaf14707b7b063021c9a17e}
}]Data length, in place mask \end{description}
\end{Desc}

\hypertarget{LSF_8h_2c52b77b206c80bd0215d824f3a0530f}{
\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 {\bf \_\-LSF\_\-RECORD\_\-HDR\_\-S}}}
\label{LSF_8h_2c52b77b206c80bd0215d824f3a0530f}


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_2c52b77b206c80bd0215d824f3a0530fbef8b1cf836d8b7a44b75ac0774afec1}{
LSF\_\-RECORD\_\-HDR\_\-S\_\-BRIDGE}
\label{LSF_8h_2c52b77b206c80bd0215d824f3a0530fbef8b1cf836d8b7a44b75ac0774afec1}
}]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_2c52b77b206c80bd0215d824f3a0530f892c7f60c259acb210a293b0cec4fc36}{
LSF\_\-RECORD\_\-HDR\_\-S\_\-TYPEID}
\label{LSF_8h_2c52b77b206c80bd0215d824f3a0530f892c7f60c259acb210a293b0cec4fc36}
}]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_2c52b77b206c80bd0215d824f3a0530fe609eb710c24997eaf5a6ce91f145278}{
LSF\_\-RECORD\_\-HDR\_\-S\_\-LEN32}
\label{LSF_8h_2c52b77b206c80bd0215d824f3a0530fe609eb710c24997eaf5a6ce91f145278}
}]Data length, size in longwords \end{description}
\end{Desc}

\hypertarget{LSF_8h_e3555d4bb42796ae2fa6490968811888}{
\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 {\bf \_\-LSF\_\-RECORD\_\-HDR\_\-V}}}
\label{LSF_8h_e3555d4bb42796ae2fa6490968811888}


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_e3555d4bb42796ae2fa6490968811888213908a239e94c8746a42d912750b789}{
LSF\_\-RECORD\_\-HDR\_\-V\_\-BRIDGE}
\label{LSF_8h_e3555d4bb42796ae2fa6490968811888213908a239e94c8746a42d912750b789}
}]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_e3555d4bb42796ae2fa64909688118887038d8717ddc4d65bdf741e18481b4cd}{
LSF\_\-RECORD\_\-HDR\_\-V\_\-TYPEID}
\label{LSF_8h_e3555d4bb42796ae2fa64909688118887038d8717ddc4d65bdf741e18481b4cd}
}]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_e3555d4bb42796ae2fa6490968811888440ca6103faa049774b0f8004bc3221e}{
LSF\_\-RECORD\_\-HDR\_\-V\_\-LEN32}
\label{LSF_8h_e3555d4bb42796ae2fa6490968811888440ca6103faa049774b0f8004bc3221e}
}]Data length, size in longwords \end{description}
\end{Desc}

\hypertarget{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9}{
\index{LSF.h@{LSF.h}!\_\-LSF\_\-ROOT\_\-HDR\_\-M@{\_\-LSF\_\-ROOT\_\-HDR\_\-M}}
\index{\_\-LSF\_\-ROOT\_\-HDR\_\-M@{\_\-LSF\_\-ROOT\_\-HDR\_\-M}!LSF.h@{LSF.h}}
\subsubsection[{\_\-LSF\_\-ROOT\_\-HDR\_\-M}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \_\-LSF\_\-ROOT\_\-HDR\_\-M}}}
\label{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9}


The in place bit masks of the fields of the root header word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF\_\-ROOT\_\-HDR\_\-M\_\-LEN32@{LSF\_\-ROOT\_\-HDR\_\-M\_\-LEN32}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-M\_\-LEN32@{LSF\_\-ROOT\_\-HDR\_\-M\_\-LEN32}}\item[{\em 
\hypertarget{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9ed95e706d7a114fb9ca5835e8fc1c911}{
LSF\_\-ROOT\_\-HDR\_\-M\_\-LEN32}
\label{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9ed95e706d7a114fb9ca5835e8fc1c911}
}]In place bit mask of the length field (units = 32-bit words \index{LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS@{LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS@{LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS}}\item[{\em 
\hypertarget{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9471a54166b8be73d8bd5a5b4ad8f3f48}{
LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS}
\label{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9471a54166b8be73d8bd5a5b4ad8f3f48}
}]In place mask of the record options field \index{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-0@{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-0}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-0@{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-0}}\item[{\em 
\hypertarget{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9e5dbec037a6a43971548dd8b9048fed9}{
LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-0}
\label{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9e5dbec037a6a43971548dd8b9048fed9}
}]Right justified bit offset o the reserved flags field 0, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-1@{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-1}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-1@{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-1}}\item[{\em 
\hypertarget{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a94ccc4374c3085182b5e2da2f9f3f45dd}{
LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-1}
\label{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a94ccc4374c3085182b5e2da2f9f3f45dd}
}]Right justified bit offset o the reserved flags field 1, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-2@{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-2}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-2@{LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-2}}\item[{\em 
\hypertarget{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9df8a0fb193ecae805c97c4b643267c33}{
LSF\_\-ROOT\_\-HDR\_\-M\_\-RSVD\_\-2}
\label{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a9df8a0fb193ecae805c97c4b643267c33}
}]Right justified bit offset o the reserved flags field 2, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-M\_\-CTB@{LSF\_\-ROOT\_\-HDR\_\-M\_\-CTB}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-M\_\-CTB@{LSF\_\-ROOT\_\-HDR\_\-M\_\-CTB}}\item[{\em 
\hypertarget{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a959380bab079db5d73b40892783e96dbd}{
LSF\_\-ROOT\_\-HDR\_\-M\_\-CTB}
\label{LSF_8h_e9f0413c5017c36ba64b4faccc67a6a959380bab079db5d73b40892783e96dbd}
}]In place bit mask of the flag bit indicating the root is composed of contributions \end{description}
\end{Desc}

\hypertarget{LSF_8h_806137e68807b833ed915b1057a0fc25}{
\index{LSF.h@{LSF.h}!\_\-LSF\_\-ROOT\_\-HDR\_\-S@{\_\-LSF\_\-ROOT\_\-HDR\_\-S}}
\index{\_\-LSF\_\-ROOT\_\-HDR\_\-S@{\_\-LSF\_\-ROOT\_\-HDR\_\-S}!LSF.h@{LSF.h}}
\subsubsection[{\_\-LSF\_\-ROOT\_\-HDR\_\-S}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \_\-LSF\_\-ROOT\_\-HDR\_\-S}}}
\label{LSF_8h_806137e68807b833ed915b1057a0fc25}


The size, in bits, of the fields of the root header word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF\_\-ROOT\_\-HDR\_\-S\_\-LEN32@{LSF\_\-ROOT\_\-HDR\_\-S\_\-LEN32}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-S\_\-LEN32@{LSF\_\-ROOT\_\-HDR\_\-S\_\-LEN32}}\item[{\em 
\hypertarget{LSF_8h_806137e68807b833ed915b1057a0fc25d9a601e8ec275162852d67b55e1af0ae}{
LSF\_\-ROOT\_\-HDR\_\-S\_\-LEN32}
\label{LSF_8h_806137e68807b833ed915b1057a0fc25d9a601e8ec275162852d67b55e1af0ae}
}]Size, in bits, of the length field (units = 32-bit words \index{LSF\_\-ROOT\_\-HDR\_\-S\_\-OPTS@{LSF\_\-ROOT\_\-HDR\_\-S\_\-OPTS}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-S\_\-OPTS@{LSF\_\-ROOT\_\-HDR\_\-S\_\-OPTS}}\item[{\em 
\hypertarget{LSF_8h_806137e68807b833ed915b1057a0fc250da5158c210db5e68a6dbfd855812df4}{
LSF\_\-ROOT\_\-HDR\_\-S\_\-OPTS}
\label{LSF_8h_806137e68807b833ed915b1057a0fc250da5158c210db5e68a6dbfd855812df4}
}]Size, in bits, of the record options field \index{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-0@{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-0}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-0@{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-0}}\item[{\em 
\hypertarget{LSF_8h_806137e68807b833ed915b1057a0fc253ef3391463af5ad1ae65ee99757ff83f}{
LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-0}
\label{LSF_8h_806137e68807b833ed915b1057a0fc253ef3391463af5ad1ae65ee99757ff83f}
}]Size, in bits, of the reserved flags field 0, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-1@{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-1}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-1@{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-1}}\item[{\em 
\hypertarget{LSF_8h_806137e68807b833ed915b1057a0fc2570d3d4c3559a8abd46b7401ba98c50a5}{
LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-1}
\label{LSF_8h_806137e68807b833ed915b1057a0fc2570d3d4c3559a8abd46b7401ba98c50a5}
}]Size, in bits, of the reserved flags field 1, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-2@{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-2}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-2@{LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-2}}\item[{\em 
\hypertarget{LSF_8h_806137e68807b833ed915b1057a0fc25669e5f0d8b6a69be861884fa5cee7e33}{
LSF\_\-ROOT\_\-HDR\_\-S\_\-RSVD\_\-2}
\label{LSF_8h_806137e68807b833ed915b1057a0fc25669e5f0d8b6a69be861884fa5cee7e33}
}]Size, in bits, of the reserved flags field 2, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-S\_\-CTB@{LSF\_\-ROOT\_\-HDR\_\-S\_\-CTB}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-S\_\-CTB@{LSF\_\-ROOT\_\-HDR\_\-S\_\-CTB}}\item[{\em 
\hypertarget{LSF_8h_806137e68807b833ed915b1057a0fc2509965dbcc99874ad582d8fc86fb8595c}{
LSF\_\-ROOT\_\-HDR\_\-S\_\-CTB}
\label{LSF_8h_806137e68807b833ed915b1057a0fc2509965dbcc99874ad582d8fc86fb8595c}
}]Size, in bits, of the flag bit indicating the root is composed of contributions \end{description}
\end{Desc}

\hypertarget{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4}{
\index{LSF.h@{LSF.h}!\_\-LSF\_\-ROOT\_\-HDR\_\-V@{\_\-LSF\_\-ROOT\_\-HDR\_\-V}}
\index{\_\-LSF\_\-ROOT\_\-HDR\_\-V@{\_\-LSF\_\-ROOT\_\-HDR\_\-V}!LSF.h@{LSF.h}}
\subsubsection[{\_\-LSF\_\-ROOT\_\-HDR\_\-V}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \_\-LSF\_\-ROOT\_\-HDR\_\-V}}}
\label{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4}


The right justified bit offset of the fields of the root header word. 

\begin{Desc}
\item[Enumerator: ]\par
\begin{description}
\index{LSF\_\-ROOT\_\-HDR\_\-V\_\-LEN32@{LSF\_\-ROOT\_\-HDR\_\-V\_\-LEN32}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-V\_\-LEN32@{LSF\_\-ROOT\_\-HDR\_\-V\_\-LEN32}}\item[{\em 
\hypertarget{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4df8dcd335f077a7434337046d4b860d5}{
LSF\_\-ROOT\_\-HDR\_\-V\_\-LEN32}
\label{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4df8dcd335f077a7434337046d4b860d5}
}]Right justified bit offset of the length field (units=32-bit words \index{LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS@{LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS@{LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS}}\item[{\em 
\hypertarget{LSF_8h_236d2d7ced85f664d9f77fc56983e2d424850da0c54b2ea38ebc30d9ef2c9018}{
LSF\_\-ROOT\_\-HDR\_\-V\_\-OPTS}
\label{LSF_8h_236d2d7ced85f664d9f77fc56983e2d424850da0c54b2ea38ebc30d9ef2c9018}
}]Right justified bit offset of the record options field \index{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-0@{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-0}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-0@{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-0}}\item[{\em 
\hypertarget{LSF_8h_236d2d7ced85f664d9f77fc56983e2d438033664d293edfdc6048a525ae95352}{
LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-0}
\label{LSF_8h_236d2d7ced85f664d9f77fc56983e2d438033664d293edfdc6048a525ae95352}
}]Right justified bit offset o the reserved flags field 0, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-1@{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-1}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-1@{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-1}}\item[{\em 
\hypertarget{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4bbee6c046ba1b994f244d0b8cb276df9}{
LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-1}
\label{LSF_8h_236d2d7ced85f664d9f77fc56983e2d4bbee6c046ba1b994f244d0b8cb276df9}
}]Right justified bit offset o the reserved flags field 1, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-2@{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-2}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-2@{LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-2}}\item[{\em 
\hypertarget{LSF_8h_236d2d7ced85f664d9f77fc56983e2d49023d4c26bce3a74e0d6dd70756dd2fb}{
LSF\_\-ROOT\_\-HDR\_\-V\_\-RSVD\_\-2}
\label{LSF_8h_236d2d7ced85f664d9f77fc56983e2d49023d4c26bce3a74e0d6dd70756dd2fb}
}]Right justified bit offset o the reserved flags field 2, must be zero \index{LSF\_\-ROOT\_\-HDR\_\-V\_\-CTB@{LSF\_\-ROOT\_\-HDR\_\-V\_\-CTB}!LSF.h@{LSF.h}}\index{LSF.h@{LSF.h}!LSF\_\-ROOT\_\-HDR\_\-V\_\-CTB@{LSF\_\-ROOT\_\-HDR\_\-V\_\-CTB}}\item[{\em 
\hypertarget{LSF_8h_236d2d7ced85f664d9f77fc56983e2d472319287e6a54413b3d9e504e3279a9d}{
LSF\_\-ROOT\_\-HDR\_\-V\_\-CTB}
\label{LSF_8h_236d2d7ced85f664d9f77fc56983e2d472319287e6a54413b3d9e504e3279a9d}
}]Right justified bit offset of the flag bit indicating the root is composed of contributions \end{description}
\end{Desc}



\subsection{Function Documentation}
\hypertarget{LSF_8h_3a841a5fddec3ee0046a65e7aa4e0a23}{
\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 {\bf LSF\_\-contribution} $\ast$ LSF\_\-contributionAdvance (const {\bf LSF\_\-contribution} $\ast$ {\em ctb}, \/  unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_3a841a5fddec3ee0046a65e7aa4e0a23}


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}


Referenced by LSF\_\-scanContributions(), and LSF\_\-scanDatagrams().\hypertarget{LSF_8h_902fe1c7ce7f2907300acbe4ff7d424d}{
\index{LSF.h@{LSF.h}!LSF\_\-contributionIdentityCompose@{LSF\_\-contributionIdentityCompose}}
\index{LSF\_\-contributionIdentityCompose@{LSF\_\-contributionIdentityCompose}!LSF.h@{LSF.h}}
\subsubsection[{LSF\_\-contributionIdentityCompose}]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline unsigned int LSF\_\-contributionIdentityCompose (unsigned int {\em type\_\-id}, \/  unsigned int {\em version}, \/  unsigned int {\em opts})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_902fe1c7ce7f2907300acbe4ff7d424d}


Composes the 32-bit identity word for 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 version}]The version of the data being presented \item[{\em type\_\-id}]The type/identifier of the contribution Examples would be LSF\_\-ID\_\-K\_\-LSEP, LSF\_\-ID\_\-K\_\-LSEC \item[{\em opts}]An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF\_\-IDENTITY\_\-M\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}


References LSF\_\-IDENTITY\_\-M\_\-OPTS, LSF\_\-IDENTITY\_\-M\_\-TYPEID, LSF\_\-IDENTITY\_\-M\_\-VERSION, LSF\_\-IDENTITY\_\-V\_\-TYPEID, and LSF\_\-IDENTITY\_\-V\_\-VERSION.\hypertarget{LSF_8h_cf098e6e77139aa7af634fc487f46629}{
\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 {\bf LSF\_\-contribution} $\ast$ LSF\_\-contributionNext (const {\bf LSF\_\-contribution} $\ast$ {\em ctb})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_cf098e6e77139aa7af634fc487f46629}


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}


References \_\-LSF\_\-contribution::hdr, and \_\-LSF\_\-contribution\_\-hdr::len32.\hypertarget{LSF_8h_63b9716e96f727553c4c2d5fe9fb88c2}{
\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\_\-datAdvance (const unsigned int $\ast$ {\em dat}, \/  unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_63b9716e96f727553c4c2d5fe9fb88c2}


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_6ed6ae968523ee146b055d54ab7c109d}{
\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 {\bf LSF\_\-datagram} $\ast$ LSF\_\-datagramAdvance (const {\bf LSF\_\-datagram} $\ast$ {\em dgm}, \/  unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_6ed6ae968523ee146b055d54ab7c109d}


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}


Referenced by LSF\_\-scanDatagrams().\hypertarget{LSF_8h_50ea1d61f6703d6b9671e4416a3b79db}{
\index{LSF.h@{LSF.h}!LSF\_\-datagramIdentityCompose@{LSF\_\-datagramIdentityCompose}}
\index{LSF\_\-datagramIdentityCompose@{LSF\_\-datagramIdentityCompose}!LSF.h@{LSF.h}}
\subsubsection[{LSF\_\-datagramIdentityCompose}]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline unsigned int LSF\_\-datagramIdentityCompose (unsigned int {\em type\_\-id}, \/  unsigned int {\em version}, \/  unsigned int {\em opts})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_50ea1d61f6703d6b9671e4416a3b79db}


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

\begin{Desc}
\item[Returns:]The 32-bit identity word;\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em version}]The version of the data being presented \item[{\em type\_\-id}]The type/identifier of the datagram Examples would be LSF\_\-ID\_\-K\_\-LSEP, LSF\_\-ID\_\-K\_\-LSEC \item[{\em opts}]An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF\_\-IDENTITY\_\-M\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}


References LSF\_\-IDENTITY\_\-M\_\-OPTS, LSF\_\-IDENTITY\_\-M\_\-TYPEID, LSF\_\-IDENTITY\_\-M\_\-VERSION, LSF\_\-IDENTITY\_\-V\_\-TYPEID, and LSF\_\-IDENTITY\_\-V\_\-VERSION.\hypertarget{LSF_8h_a9b6aede9f304f4d55925a173ada61f5}{
\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 {\bf LSF\_\-datagram} $\ast$ LSF\_\-datagramNext (const {\bf LSF\_\-datagram} $\ast$ {\em dgm})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_a9b6aede9f304f4d55925a173ada61f5}


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}


References \_\-LSF\_\-datagram::hdr, and \_\-LSF\_\-datagram\_\-hdr::len32.\hypertarget{LSF_8h_3c2ebbeab3515d5b9c10fbf39d58577f}{
\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\_\-identityCompose (unsigned int {\em type\_\-id}, \/  unsigned int {\em version}, \/  unsigned int {\em dir})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_3c2ebbeab3515d5b9c10fbf39d58577f}


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}
\begin{Desc}
\item[Warning:]This function may be deprecated in a future release. New code should use the more directed LSF\_\-datagramIdentityCompose or LSF\_\-contributionIdentityCompose. \end{Desc}


References LSF\_\-IDENTITY\_\-M\_\-DIR, LSF\_\-IDENTITY\_\-M\_\-TYPEID, LSF\_\-IDENTITY\_\-M\_\-VERSION, LSF\_\-IDENTITY\_\-V\_\-DIR, LSF\_\-IDENTITY\_\-V\_\-TYPEID, and LSF\_\-IDENTITY\_\-V\_\-VERSION.\hypertarget{LSF_8h_629b7019780e2a840a7dba3c76b415ea}{
\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 {\bf LSF\_\-record} $\ast$ LSF\_\-recordAdvance (const {\bf LSF\_\-record} $\ast$ {\em rec}, \/  unsigned int {\em n32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_629b7019780e2a840a7dba3c76b415ea}


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}


Referenced by LSF\_\-scanRecords().\hypertarget{LSF_8h_ef7d0a3949942ba5a9ac30c288db3fc2}{
\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\_\-recordHdrCompose (unsigned int {\em type\_\-id}, \/  unsigned int {\em bridge}, \/  unsigned int {\em len32})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_ef7d0a3949942ba5a9ac30c288db3fc2}


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}


References \_\-LSF\_\-datagram::hdr, LSF\_\-RECORD\_\-HDR\_\-M\_\-BRIDGE, LSF\_\-RECORD\_\-HDR\_\-M\_\-LEN32, LSF\_\-RECORD\_\-HDR\_\-M\_\-TYPEID, LSF\_\-RECORD\_\-HDR\_\-V\_\-BRIDGE, LSF\_\-RECORD\_\-HDR\_\-V\_\-LEN32, and LSF\_\-RECORD\_\-HDR\_\-V\_\-TYPEID.\hypertarget{LSF_8h_f19e310bea61da87c61e4553d6e4e4b4}{
\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 {\bf LSF\_\-record} $\ast$ LSF\_\-recordNext (const {\bf LSF\_\-record} $\ast$ {\em rec})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_f19e310bea61da87c61e4553d6e4e4b4}


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}


References \_\-LSF\_\-record\_\-hdr::bf, \_\-LSF\_\-record::hdr, and \_\-LSF\_\-record\_\-hdr\_\-bf::len32.\hypertarget{LSF_8h_13736d87985a74b0f32cd995f2772c93}{
\index{LSF.h@{LSF.h}!LSF\_\-rootHdrCompose@{LSF\_\-rootHdrCompose}}
\index{LSF\_\-rootHdrCompose@{LSF\_\-rootHdrCompose}!LSF.h@{LSF.h}}
\subsubsection[{LSF\_\-rootHdrCompose}]{\setlength{\rightskip}{0pt plus 5cm}static \_\-\_\-inline unsigned int LSF\_\-rootHdrCompose (unsigned int {\em len32}, \/  unsigned int {\em opts})\hspace{0.3cm}{\tt  \mbox{[}static\mbox{]}}}}
\label{LSF_8h_13736d87985a74b0f32cd995f2772c93}


Compose the root header word. 

\begin{Desc}
\item[Returns:]The compose root header word\end{Desc}
\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em len32}]The length, in 32-bit words, of the root contribution \item[{\em opts}]An options word composed of relevant values from the enumeration LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS. \end{description}
\end{Desc}


References LSF\_\-ROOT\_\-HDR\_\-M\_\-LEN32, LSF\_\-ROOT\_\-HDR\_\-M\_\-OPTS, and LSF\_\-ROOT\_\-HDR\_\-V\_\-LEN32.