GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LSF / V2-0-6

Constituent: document_lsf     Tag: linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

LSF.h File Reference

Maps out the LSF data structures. More...

#include "LSF/LSF_endianness.h"

Include dependency graph for LSF.h:

This graph shows which files directly or indirectly include this file:


Data Structures

struct  _LSF_record_hdr_bf
 Layout of a record header, bit field representation. More...
union  _LSF_record_hdr
 Union of the record header as an uninterpretted 32-bit integer with a bit field representation. More...
union  _LSF_record_bdy
 The general structure of the body of an LSF record. More...
struct  _LSF_record
 The general structure of an LSF record. More...
struct  _LSF_identity_bf
 The bit field representation of the LSF identity word. More...
union  _LSF_identity
 Union of the bit field representation of the LSF_identity word and an uninterpretted 32-bit integer. More...
struct  _LSF_contribution_hdr
 The layout of a contribution header structure. More...
union  _LSF_contribution_bdy
 Beginning of the body of the LSF contribution. More...
struct  _LSF_contribution
 The general structure of an LSF contribution. More...
struct  _LSF_datagram_hdr
 The LSF datagram header. More...
struct  _LSF_root_hdr_bf
 The LSF root header as bit fields. More...
union  _LSF_root_hdr
 The LSF root header as a union of 32-bit integer and the bit field representation. More...
union  _LSF_root_bdy
 Beginning of the body of the LSF datagram root contribution. More...
struct  _LSF_root
 Describes the body when the datagram has a root contribution. More...
union  _LSF_datagram_bdy
 Beginning of the body of the LSF datagram. More...
struct  _LSF_datagram
 The general structure of an LSF datagram. More...

Defines

#define LSF_RECORD_HDR_COMPOSE(_type_id, _bridge, _len32)
 Composes a LSF record header.
#define LSF_IDENTITY_COMPOSE(_type_id, _version, _dir)
 Composes the 32-bit identity word for either a datagram or a contribution from the specified pieces.
#define LSF_DATAGRAM_IDENTITY_COMPOSE(_type_id, _version, _opts)
 Composes the 32-bit identity word for a datagram using the specified values.
#define LSF_CONTRIBUTION_IDENTITY_COMPOSE(_type_id, _version, _opts)
 Composes the 32-bit identity word for a datagram using the specified values.
#define LSF_ROOT_HDR_COMPOSE
 Compose the root header word.

Typedefs

typedef enum _LSF_RECORD_HDR_S LSF_RECORD_HDR_S
 Typedef for enum _LSF_RECORD_HDR_S.
typedef enum _LSF_RECORD_HDR_V LSF_RECORD_HDR_V
 typedef for enum _LSF_RECORD_HDR_V
typedef enum _LSF_RECORD_HDR_M LSF_RECORD_HDR_M
 typedef for enum _LSF_RECORD_HDR_M
typedef _LSF_record_hdr_bf LSF_record_hdr_bf
 Typedef for struct _LSF_record_hdr_bf.
typedef _LSF_record_hdr LSF_record_hdr
 Typedef union _LSF_record_hdr.
typedef _LSF_record_bdy LSF_record_bdy
 Typedef for struct _LSF_record_bdy.
typedef _LSF_record LSF_record
 Typedef for struct _LSF_record.
typedef enum _LSF_IDENTITY_S LSF_IDENTITY_S
 Typedef for enum _LSF_IDENTITY_S.
typedef enum _LSF_IDENTITY_V LSF_IDENTITY_V
 Typedef for enum _LSF_IDENTITY_V.
typedef enum _LSF_IDENTITY_M LSF_IDENTITY_M
 Typedef for enum _LSF_IDENTITY_M.
typedef _LSF_identity_bf LSF_identity_bf
 Typedef for struct _LSF_identity_bf.
typedef _LSF_identity LSF_identity
 Typedef for union _LSF_identity.
typedef _LSF_contribution_hdr LSF_contribution_hdr
 Typedef for struct _LSF_contribution_hdr.
typedef _LSF_contribution_bdy LSF_contribution_bdy
 Typedef for union _LSF_contribution_bdy.
typedef _LSF_contribution LSF_contribution
 Typedef for struct _LSF_contribution.
typedef _LSF_datagram_hdr LSF_datagram_hdr
 Typedef for struct _LSF_datagram_hdr.
typedef enum _LSF_ROOT_HDR_S LSF_ROOT_HDR_S
 Typedef for enum _LSF_ROOT_HDR_S.
typedef enum _LSF_ROOT_HDR_V LSF_ROOT_HDR_V
 Typedef for enum _LSF_ROOT_HDR_V.
typedef enum _LSF_ROOT_HDR_M LSF_ROOT_HDR_M
 Typedef for enum _LSF_ROOT_HDR_M.
typedef _LSF_root_hdr_bf LSF_root_hdr_bf
 Typedef for struct _LSF_root_hdr_bf.
typedef _LSF_root_hdr LSF_root_hdr
 Typedef for struct _LSF_root_hdr.
typedef _LSF_root_bdy LSF_root_bdy
 Typedef for union _LSF_root_bdy.
typedef _LSF_root LSF_root
 Typedef for struct _LSF_datagram_root.
typedef _LSF_datagram_bdy LSF_datagram_bdy
 Typedef for union _LSF_datagram_bdy.
typedef _LSF_datagram LSF_datagram
 Typedef for struct _LSF_datagram.

Enumerations

enum  _LSF_RECORD_HDR_S {
  LSF_RECORD_HDR_S_BRIDGE = 8,
  LSF_RECORD_HDR_S_TYPEID = 4,
  LSF_RECORD_HDR_S_LEN32 = 20
}
 Record level header word, bit field sizes. More...
enum  _LSF_RECORD_HDR_V {
  LSF_RECORD_HDR_V_BRIDGE = 24,
  LSF_RECORD_HDR_V_TYPEID = 20,
  LSF_RECORD_HDR_V_LEN32 = 0
}
 Record Level header, bit field right justified offsets. More...
enum  _LSF_RECORD_HDR_M {
  LSF_RECORD_HDR_M_TYPEID,
  LSF_RECORD_HDR_M_BRIDGE,
  LSF_RECORD_HDR_M_LEN32
}
 Record Level header, bit field in place masks. More...
enum  _LSF_IDENTITY_S {
  LSF_IDENTITY_S_TYPEID = 20,
  LSF_IDENTITY_S_VERSION = 8,
  LSF_IDENTITY_S_OPTS = 4,
  LSF_IDENTITY_S_RSVD_0 = 1,
  LSF_IDENTITY_S_RSVD_1 = 1,
  LSF_IDENTITY_S_ROOT = 1,
  LSF_IDENTITY_S_DIR = 1,
  LSF_IDENTITY_S_DGM_CTB = 1,
  LSF_IDENTITY_S_CTB_REC = 1
}
 Enumeration giving the sizes of the bit fields in the LSF identity word. More...
enum  _LSF_IDENTITY_V {
  LSF_IDENTITY_V_TYPEID = 0,
  LSF_IDENTITY_V_VERSION = 20,
  LSF_IDENTITY_V_OPTS = 28,
  LSF_IDENTITY_V_RSVD_0 = LSF_IDENTITY_V_OPTS + 0,
  LSF_IDENTITY_V_RSVD_1 = LSF_IDENTITY_V_OPTS + 1,
  LSF_IDENTITY_V_ROOT = LSF_IDENTITY_V_OPTS + 2,
  LSF_IDENTITY_V_DIR = LSF_IDENTITY_V_OPTS + 3,
  LSF_IDENTITY_V_DGM_CTB = LSF_IDENTITY_V_OPTS + 3,
  LSF_IDENTITY_V_CTB_REC = LSF_IDENTITY_V_OPTS + 3
}
 Enumeration giving the right bit offsets of the bit fields in the LSF identity word. More...
enum  _LSF_IDENTITY_M {
  LSF_IDENTITY_M_TYPEID,
  LSF_IDENTITY_M_VERSION,
  LSF_IDENTITY_M_OPTS,
  LSF_IDENTITY_M_RSVD_0,
  LSF_IDENTITY_M_RSVD_1,
  LSF_IDENTITY_M_ROOT,
  LSF_IDENTITY_M_DIR,
  LSF_IDENTITY_M_DGM_CTB,
  LSF_IDENTITY_M_CTB_REC
}
 Enumeration giving the in place masks of the bit fields in the LSF identity word. More...
enum  _LSF_ROOT_HDR_S {
  LSF_ROOT_HDR_S_LEN32 = 28,
  LSF_ROOT_HDR_S_OPTS = 4,
  LSF_ROOT_HDR_S_RSVD_0 = 1,
  LSF_ROOT_HDR_S_RSVD_1 = 1,
  LSF_ROOT_HDR_S_RSVD_2 = 1,
  LSF_ROOT_HDR_S_CTB = 1
}
 The size, in bits, of the fields of the root header word. More...
enum  _LSF_ROOT_HDR_V {
  LSF_ROOT_HDR_V_LEN32 = 0,
  LSF_ROOT_HDR_V_OPTS = 28,
  LSF_ROOT_HDR_V_RSVD_0 = LSF_ROOT_HDR_V_OPTS + 0,
  LSF_ROOT_HDR_V_RSVD_1 = LSF_ROOT_HDR_V_OPTS + 1,
  LSF_ROOT_HDR_V_RSVD_2 = LSF_ROOT_HDR_V_OPTS + 2,
  LSF_ROOT_HDR_V_CTB = LSF_ROOT_HDR_V_OPTS + 3
}
 The right justified bit offset of the fields of the root header word. More...
enum  _LSF_ROOT_HDR_M {
  LSF_ROOT_HDR_M_LEN32,
  LSF_ROOT_HDR_M_OPTS,
  LSF_ROOT_HDR_M_RSVD_0,
  LSF_ROOT_HDR_M_RSVD_1,
  LSF_ROOT_HDR_M_RSVD_2,
  LSF_ROOT_HDR_M_CTB
}
 The in place bit masks of the fields of the root header word. More...

Functions

static __inline unsigned int LSF_identityCompose (unsigned int type_id, unsigned int version, unsigned int dir)
 Composes the 32-bit identity word for either a datagram or a contribution from the specified pieces.
static __inline unsigned int LSF_datagramIdentityCompose (unsigned int type_id, unsigned int version, unsigned int opts)
 Composes the 32-bit identity word for a datagram from the specified pieces.
static __inline unsigned int LSF_contributionIdentityCompose (unsigned int type_id, unsigned int version, unsigned int opts)
 Composes the 32-bit identity word for a contribution from the specified pieces.
static __inline unsigned int LSF_rootHdrCompose (unsigned int len32, unsigned int ctb)
 Compose the root header word.
static __inline unsigned int LSF_recordHdrCompose (unsigned int type_id, unsigned int bridge, unsigned int len32)
 Composes a LSF record header.
static __inline LSF_datagramLSF_datagramNext (const LSF_datagram *dgm)
 Advances the datagram pointer by the length field specified in the datagram.
static __inline LSF_datagramLSF_datagramAdvance (const LSF_datagram *dgm, unsigned int n32)
 Advances the datagram pointer by the specified number of 32-bit words.
static __inline LSF_contributionLSF_contributionNext (const LSF_contribution *ctb)
 Advances the contribution pointer by the length field specified in the contribution header.
static __inline LSF_contributionLSF_contributionAdvance (const LSF_contribution *ctb, unsigned int n32)
 Advances the contribution pointer by the specified number of 32-bit words.
static __inline LSF_recordLSF_recordNext (const LSF_record *rec)
 Advances the record pointer by the length field specified in the record header.
static __inline LSF_recordLSF_recordAdvance (const LSF_record *evt, unsigned int n32)
 Advances the record pointer by the specified number of 32-bit words.
static __inline unsigned int * LSF_datAdvance (const unsigned int *dat, unsigned int n32)
 Advances the data pointer by the specified number of 32-bit wo.

Detailed Description

Maps out the LSF data structures.

Author:
JJRussell - russell@slac.stanford.edu
   CVS $Id: LSF.h,v 1.7 2005/11/02 17:18:19 russell Exp $

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
  1. All lengths are in 32-bit words, not bytes
  2. In addition to the datagram and contribution level objects, LSF adds a third level to this heirarchy, the record.

LDF made no policy statement concerning the following two issues
  1. Alignment of contribution
  2. Scope of contribution level identifiers

LSF, however, does make a statement here

  1. All contribution and record must be 32-bit aligned. This is semi-formalized by LSF specifying lengths in 32-bit words.
  2. 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.

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.
Heirarchy
Heirachicially, the order is

that is, datagram contain contribution and contribution contain records. Still ambivalent on whether

Define Documentation

#define LSF_CONTRIBUTION_IDENTITY_COMPOSE _type_id,
_version,
_opts   ) 
 

Value:

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

Returns:
The 32-bit identity word;
Parameters:
_type_id The type/identifier of the datagram or contribution Examples would be LSF_ID_K_LSEP, LSF_ID_K_LSEC
_version The version of the data being presented
_opts An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF_IDENTITY_M_OPTS.
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.

#define LSF_DATAGRAM_IDENTITY_COMPOSE _type_id,
_version,
_opts   ) 
 

Value:

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

Returns:
The 32-bit identity word;
Parameters:
_type_id The type/identifier of the datagram or contribution Examples would be LSF_ID_K_LSEP, LSF_ID_K_LSEC
_version The version of the data being presented
_opts An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF_IDENTITY_M.
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.

#define LSF_IDENTITY_COMPOSE _type_id,
_version,
_dir   ) 
 

Value:

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

Returns:
The 32-bit identity word;
Parameters:
_type_id The type/identifier of the datagram or contribution Examples would be LSF_ID_K_LSEP, LSF_ID_K_LSEC
_version The version of the data being presented
_dir A flag, if true indicating the datagram/contribution is composed of a series of contributions/records
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.
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.

#define LSF_RECORD_HDR_COMPOSE _type_id,
_bridge,
_len32   ) 
 

Value:

Composes a LSF record header.

Returns:
The LSF record header
Parameters:
_type_id The type/id (0-15)
_bridge The value of the 8-bit reserved field
_len32 The length, in longwords, of the record
Note, this functionality is also available as an inline routine. This macro should be used when initially data structures, i.e, where calling a function is prohibited.

#define LSF_ROOT_HDR_COMPOSE
 

Value:

(_len32, _ctb)                               \
   ( (((_ctb)   << LSF_ROOT_HDR_V_CTB  ) & LSF_ROOT_HDR_M_CTB  )          \
   | (((_len32) << LSF_ROOT_HDR_V_LEN32) & LSF_ROOT_HDR_M_LEN32))
Compose the root header word.

Returns:
The compose root header word
Parameters:
_len32 The length, in 32-bit words, of the root contribution
_ctb A flag indicating if the root contribution itself is composed of contributions (1) or is just a bag of bits.
Note, this functionality is also available as an inline routine. This macro should be used when initially data structures, i.e, where calling a function is prohibited.


Typedef Documentation

LSF_contribution_hdr
 

Typedef for struct _LSF_contribution_hdr.

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).
Not that because the length field is 24-bits, the maximum length of an LSF contribution is 2**24-1 32-bit words.

LSF_datagram_hdr
 

Typedef for struct _LSF_datagram_hdr.

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)

LSF_identity
 

Typedef for union _LSF_identity.

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.

LSF_identity_bf
 

Typedef for struct _LSF_identity_bf.

Except for the dir and root fields, these fields are self-explanatory.
Root Flag
The 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.
Dir Flag
The 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 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.
If this flags applies to the structure of the data after any root contribution. Note that the root header itself contains a dir flag indicating to its consumers whether the data associated with the root contribution is structured or not.
Rsvd Field
Currently this field is unused
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.
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.

LSF_IDENTITY_M
 

Typedef for enum _LSF_IDENTITY_M.

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.

LSF_IDENTITY_S
 

Typedef for enum _LSF_IDENTITY_S.

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.

LSF_IDENTITY_V
 

Typedef for enum _LSF_IDENTITY_V.

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.

LSF_record_hdr_bf
 

Typedef for struct _LSF_record_hdr_bf.

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.


Enumeration Type Documentation

enum _LSF_IDENTITY_M
 

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

Enumerator:
LSF_IDENTITY_M_TYPEID  In place mask of the typeId field
LSF_IDENTITY_M_VERSION  In place mask of the version field
LSF_IDENTITY_M_OPTS  In place mask of the options field
LSF_IDENTITY_M_RSVD_0  In place mask of the reserved flag 0, must be zero
LSF_IDENTITY_M_RSVD_1  In place mask of the reserved flag 1, must be zero
LSF_IDENTITY_M_ROOT  In place mask indicating that a root contribution is present immediately after the datagram header. This option is only valid for datagrams, not contributions
LSF_IDENTITY_M_DIR  In place mask of the flag indicating the payload is a structured directory, i.e. it is not just a bag of bits but,
  • In the case of a datagram header,one or more contributions or
  • In the case of a contribution header, one or more records
LSF_IDENTITY_M_DGM_CTB  In place mask of the flag indicating that a datagram is composed of contibutions.
LSF_IDENTITY_M_CTB_REC  In place mask of the flag indicating that a contribution is composed of records

enum _LSF_IDENTITY_S
 

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

Enumerator:
LSF_IDENTITY_S_TYPEID  Size, in bits, of the typeId field
LSF_IDENTITY_S_VERSION  Size, in bits, of the version field
LSF_IDENTITY_S_OPTS  Size, in bits, of the options field
LSF_IDENTITY_S_RSVD_0  Size, in bits, of the reserved flag 0, must be zero
LSF_IDENTITY_S_RSVD_1  Size, in bits, of the reserved flag 1, must be zero
LSF_IDENTITY_S_ROOT  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
LSF_IDENTITY_S_DIR  Size, in bits, of the flag indicating the payload is a structured directory, i.e. it is not just a bag of bits but,
  • In the case of a datagram header,one or more contributions or
  • 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
LSF_IDENTITY_S_DGM_CTB  SIze, in bits, of the flag indicating that a datagram is composed of contributions
LSF_IDENTITY_S_CTB_REC  SIze, in bits, of the flag indicating that a contribution is composed of records

enum _LSF_IDENTITY_V
 

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

Enumerator:
LSF_IDENTITY_V_TYPEID  Right justified bit offset of the typeId field
LSF_IDENTITY_V_VERSION  Right justified bit offset of the version field
LSF_IDENTITY_V_OPTS  Right justified bit offset of the options field
LSF_IDENTITY_V_RSVD_0  Right justified bit offset of the reserved field 0, must be zero
LSF_IDENTITY_V_RSVD_1  Right justified bit offset of the reserved field 1, must be zero
LSF_IDENTITY_V_ROOT  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
LSF_IDENTITY_V_DIR  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,
  • In the case of a datagram header,one or more contributions or
  • 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
LSF_IDENTITY_V_DGM_CTB  Right justified bit offset of the flag indicating that a datagram is composed of contributions
LSF_IDENTITY_V_CTB_REC  Right justified bit offset of the flag indicating that a contribution is composed of records

enum _LSF_RECORD_HDR_M
 

Record Level header, bit field in place masks.

Enumerator:
LSF_RECORD_HDR_M_TYPEID  Subformat type, in place mask
LSF_RECORD_HDR_M_BRIDGE  Subformat type reserved field, in place mask
LSF_RECORD_HDR_M_LEN32  Data length, in place mask

enum _LSF_RECORD_HDR_S
 

Record level header word, bit field sizes.

Enumerator:
LSF_RECORD_HDR_S_BRIDGE  Subformat type reserved field, size in bits
LSF_RECORD_HDR_S_TYPEID  Subformat identifier, size in bits
LSF_RECORD_HDR_S_LEN32  Data length, size in longwords

enum _LSF_RECORD_HDR_V
 

Record Level header, bit field right justified offsets.

Enumerator:
LSF_RECORD_HDR_V_BRIDGE  Subformat type reserved field, size in bits
LSF_RECORD_HDR_V_TYPEID  Subformat identifier, size in bits
LSF_RECORD_HDR_V_LEN32  Data length, size in longwords

enum _LSF_ROOT_HDR_M
 

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

Enumerator:
LSF_ROOT_HDR_M_LEN32  In place bit mask of the length field (units = 32-bit words
LSF_ROOT_HDR_M_OPTS  In place mask of the record options field
LSF_ROOT_HDR_M_RSVD_0  Right justified bit offset o the reserved flags field 0, must be zero
LSF_ROOT_HDR_M_RSVD_1  Right justified bit offset o the reserved flags field 1, must be zero
LSF_ROOT_HDR_M_RSVD_2  Right justified bit offset o the reserved flags field 2, must be zero
LSF_ROOT_HDR_M_CTB  In place bit mask of the flag bit indicating the root is composed of contributions

enum _LSF_ROOT_HDR_S
 

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

Enumerator:
LSF_ROOT_HDR_S_LEN32  Size, in bits, of the length field (units = 32-bit words
LSF_ROOT_HDR_S_OPTS  Size, in bits, of the record options field
LSF_ROOT_HDR_S_RSVD_0  Size, in bits, of the reserved flags field 0, must be zero
LSF_ROOT_HDR_S_RSVD_1  Size, in bits, of the reserved flags field 1, must be zero
LSF_ROOT_HDR_S_RSVD_2  Size, in bits, of the reserved flags field 2, must be zero
LSF_ROOT_HDR_S_CTB  Size, in bits, of the flag bit indicating the root is composed of contributions

enum _LSF_ROOT_HDR_V
 

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

Enumerator:
LSF_ROOT_HDR_V_LEN32  Right justified bit offset of the length field (units=32-bit words
LSF_ROOT_HDR_V_OPTS  Right justified bit offset of the record options field
LSF_ROOT_HDR_V_RSVD_0  Right justified bit offset o the reserved flags field 0, must be zero
LSF_ROOT_HDR_V_RSVD_1  Right justified bit offset o the reserved flags field 1, must be zero
LSF_ROOT_HDR_V_RSVD_2  Right justified bit offset o the reserved flags field 2, must be zero
LSF_ROOT_HDR_V_CTB  Right justified bit offset of the flag bit indicating the root is composed of contributions


Function Documentation

static __inline LSF_contribution * LSF_contributionAdvance const LSF_contribution ctb,
unsigned int  n32
[static]
 

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

Returns:
The new contribution pointer
Parameters:
ctb The contribution pointer to advance
n32 The number of 32-bit words to advance the pointer

static __inline unsigned int LSF_contributionIdentityCompose unsigned int  type_id,
unsigned int  version,
unsigned int  opts
[static]
 

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

Returns:
The 32-bit identity word;
Parameters:
version The version of the data being presented
type_id The type/identifier of the contribution Examples would be LSF_ID_K_LSEP, LSF_ID_K_LSEC
opts An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF_IDENTITY_M
Note, this functionality is also available as a macro. The macro should be used when initializing data structures, i.e, where calling a function is prohibited. The inline is useful when debugging calls for setting a breakpoint on a routine..

static __inline LSF_contribution * LSF_contributionNext const LSF_contribution ctb  )  [static]
 

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

Returns:
The new contribution pointer
Parameters:
ctb The contribution pointer to advance

static __inline unsigned int * LSF_datAdvance const unsigned int *  dat,
unsigned int  n32
[static]
 

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

Returns:
The new data pointer
Parameters:
dat The data pointer to advance
n32 The number of 32-bit words to advance the pointer

static __inline LSF_datagram * LSF_datagramAdvance const LSF_datagram dgm,
unsigned int  n32
[static]
 

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

Returns:
The new contribution pointer
Parameters:
dgm The datagram pointer to advance
n32 The number of 32-bit words to advance the pointer

static __inline unsigned int LSF_datagramIdentityCompose unsigned int  type_id,
unsigned int  version,
unsigned int  opts
[static]
 

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

Returns:
The 32-bit identity word;
Parameters:
version The version of the data being presented
type_id The type/identifier of the datagram Examples would be LSF_ID_K_LSEP, LSF_ID_K_LSEC
opts An options word, composed by selectively OR'ing the enumerations defined in the options field section of LSF_IDENTITY_M
Note, this functionality is also available as a macro. The macro should be used when initializing data structures, i.e, where calling a function is prohibited. The inline is useful when debugging calls for setting a breakpoint on a routine.

static __inline LSF_datagram * LSF_datagramNext const LSF_datagram dgm  )  [static]
 

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

Returns:
The new datagram pointer
Parameters:
dgm The datagram pointer to advance

static __inline unsigned int LSF_identityCompose unsigned int  type_id,
unsigned int  version,
unsigned int  dir
[static]
 

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

Returns:
The 32-bit identity word;
Parameters:
dir A flag, if true indicating the datagram/contribution is composed of a series of contributions/records
version The version of the data being presented
type_id The type/identifier of the datagram or contribution Examples would be LSF_ID_K_LSEP, LSF_ID_K_LSEC
Note, this functionality is also available as a macro. The macro should be used when initializing data structures, i.e, where calling a function is prohibited. The inline is useful when debugging calls for setting a breakpoint on a routine.
Warning:
This function may be deprecated in a future release. New code should use the more directed LSF_datagramIdentityCompose or LSF_contributionIdentityCompose.

static __inline LSF_record * LSF_recordAdvance const LSF_record rec,
unsigned int  n32
[static]
 

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

Returns:
The new record pointer
Parameters:
rec The record pointer to advance
n32 The number of 32-bit words to advance the pointer
Warning:
The advancement is in the natural units of an record, i.e. 32-bit words.

static __inline unsigned int LSF_recordHdrCompose unsigned int  type_id,
unsigned int  bridge,
unsigned int  len32
[static]
 

Composes a LSF record header.

Returns:
The LSF record header
Parameters:
type_id The record's type/id (0-15)
bridge The value of the 8-bit bridge field
len32 The length, in longwords, of the record
Note, this functionality is also available as a macro. The macro should be used when initializing data structures, i.e, where calling a function is prohibited. The inline is useful when debugging calls for setting a breakpoint on a routine.

static __inline LSF_record * LSF_recordNext const LSF_record rec  )  [static]
 

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

Returns:
The new record pointer
Parameters:
rec The record pointer to advance

static __inline unsigned int LSF_rootHdrCompose unsigned int  len32,
unsigned int  opts
[static]
 

Compose the root header word.

Returns:
The compose root header word
Parameters:
len32 The length, in 32-bit words, of the root contribution
opts An options word composed of relevant values from the enumeration LSF_ROOT_HDR_M_OPTS.


Generated on Wed Aug 27 01:54:27 2008 by  doxygen 1.4.4