GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> LATC / dev > latc_cmn / rhel4-32


Interface   Data Structures   File List   Data Fields   Globals  

data.c File Reference

Functions manipulating the data attached to a configuration tree. More...

#include <LATC/LATC_msgs.h>
#include <data.h>
#include <addr.h>
#include <imm.h>
#include <number.ic>
#include <AG_latcType_s.h>
#include <data.ic>
#include <MSG/MSG_pubdefs.h>
#include <LEM/msg_macros.h>

Functions

int LATC_compare (const LATC_imm *this, const LATC_imm *that, LATC_map *map)
 Compares all the nodes of this and that, marking differences in the map.
unsigned LATC_contrast (const LATC_imm *this, const LATC_imm *that, const LATC_map *ign)
 Compares all the nodes of this and that, that are not marked to be ignored.
unsigned LATC_get (const LATC_imm *imm, LATC_type type, const LATC_addr *addr, int regId, int fldId, void *value)
 Puts the contents of the requested register and field into value.
unsigned LATC_set (LATC_imm *imm, LATC_type type, const LATC_addr *addr, int regId, int fldId, const void *value)
 Set the value of a register field.
unsigned LATC_deleteData (LATC_imm *imm, LATC_type type, const LATC_addr *addr)
 Delete all the register field settings for the targetted compoent and clear the corresponding bit in the map.
void LATC_setReg (void *cpt, LATC_type type, int regId, const void *value)
 Sets the regIdister of cpt structure to value.
unsigned LATC_setFld (void *cpt, LATC_type type, int regId, int fldId, const void *value)
 Sets the tgtFiels of the register of cpt structure to value.
void LATC_getReg (const void *cpt, LATC_type type, int regId, void *value)
 Puts the contents of the target register regId into value.
void LATC_getFld (const void *cpt, LATC_type type, int regId, int fldId, void *value)
 Puts the contents of the target register regId into value.


Detailed Description

Functions manipulating the data attached to a configuration tree.

Author:
James Swain -- jswain@slac.stanford.edu

Function Documentation

int LATC_compare ( const LATC_imm *  this,
const LATC_imm *  that,
LATC_map map 
)

Compares all the nodes of this and that, marking differences in the map.

Parameters:
this First in-memory configuration structure
that Second in-memory configuration structure
map Indicates which nodes are different
Returns:
Number of different nodes If a node is NULL, then the default node is used.

References checkBit(), compareCpt(), LATC_map_::ptr, and setBit().

unsigned LATC_contrast ( const LATC_imm *  this,
const LATC_imm *  that,
const LATC_map ign 
)

Compares all the nodes of this and that, that are not marked to be ignored.

Parameters:
this First in memory configuration model
that Second in memory configuration model
ign Pointer to a bit-map of sections of the LAT to ignore
Return values:
LATC_SUCCESS If the two in-memory models are functionally identical
LATC_DIFFER If the two in-memory models are different If a node is NULL then the default node is used.

References checkBit(), compareCpt(), LATC_addr::cpt, Layer_addr::fe, Layer_addr::la, LATC_getAddress(), LATC_getLayerName(), LATC_addr::layer, LATC_map_::ptr, and Layer_addr::to.

unsigned LATC_deleteData ( LATC_imm *  imm,
LATC_type  type,
const LATC_addr addr 
)

Delete all the register field settings for the targetted compoent and clear the corresponding bit in the map.

Parameters:
imm In memory configuration structure to be manipulated
type Type of data sought
addr Address of the leaf to delete
Returns:
LATC_BADTYPE (if the type and address do not produce a good index), LATC_NOCPT (if there is no component decription matching this type) or LATC_SUCCESS.

References CHECK_TYPE, clearBit(), LATC_getIndex(), and sizeofCpt().

unsigned LATC_get ( const LATC_imm *  imm,
LATC_type  type,
const LATC_addr addr,
int  regId,
int  fldId,
void *  value 
)

Puts the contents of the requested register and field into value.

Parameters:
imm In memory configuration structure to be interogated
type Type of data sought
addr Address of the leaf requested
regId Register to get
fldId Field to get (the whole register is always field = 0)
value Location to put the contents of the target field
Return values:
LATC_SUCCESS if all the parameters are in bounds and the data is successfully retrieved.
LATC_BADTYPE if type is not a valid LATC_type
LATC_NOCPT if the requested type has no real data
LATC_BADBCAST if the address contains a mixture of broadcast and unicast components
LATC_BADADDR if any component of the address is outside the allowable range for this type
LATC_BADREG if regId is outside the acceptable range of register IDs for this type
LATC_BADFIELD if fldId is outside the acceptable range of field IDs
LATC_NOTSET if the requested node has not been previously set

References CHECK_IDS, CHECK_TYPE, checkBit(), LATC_getFld(), and LATC_getIndex().

void LATC_getFld ( const void *  cpt,
LATC_type  type,
int  regId,
int  fldId,
void *  value 
)

Puts the contents of the target register regId into value.

Parameters:
type Type of data sought
cpt Pointer to start of the component data.
regId Target tgt
fldId Target field
value Location to put the contents of the target field

References RegDescription::fd, getLngLngFld(), getLongFld(), getShortFld(), CptDescription::rd, and CptDescription::width.

Referenced by LATC_get().

void LATC_getReg ( const void *  cpt,
LATC_type  type,
int  regId,
void *  value 
)

Puts the contents of the target register regId into value.

Parameters:
cpt Pointer to start of the component data.
type Type of data sought
regId Target tgt
value Location to put the contents of the target reg

References getLngLngReg(), getLongReg(), getShortReg(), and CptDescription::width.

unsigned LATC_set ( LATC_imm *  imm,
LATC_type  type,
const LATC_addr addr,
int  regId,
int  fldId,
const void *  value 
)

Set the value of a register field.

Parameters:
imm In memory configuration structure to manipulated
type Type of data sought
addr Address of the leaf requested
regId Register to set
fldId Field to set (the whole register is always field = 0)
value Ptr to value to set the register field to
Return values:
LATC_SUCCESS if all the parameters are in bounds and the data is successfully retrieved.
LATC_BADTYPE if type is not a valid LATC_type
LATC_NOCPT if the requested type has no real data
LATC_BADBCAST if the address contains a mixture of broadcast and unicast components
LATC_BADADDR if any component of the address is outside the allowable range for this type
LATC_BADREG if regId is outside the acceptable range of register IDs for this type
LATC_BADFIELD if fldId is outside the acceptable range of field IDs

References CHECK_IDS, CHECK_TYPE, LATC_getIndex(), LATC_setFld(), and setBit().

unsigned LATC_setFld ( void *  cpt,
LATC_type  type,
int  regId,
int  fldId,
const void *  value 
)

Sets the tgtFiels of the register of cpt structure to value.

Parameters:
type Type of data sought
cpt Pointer to start of the component data.
regId Enum specifying register to write to
fldId Enum specifying field to write to
value Value to set the field to.

References RegDescription::fd, CptDescription::rd, setLngLngFld(), setLongFld(), setShortFld(), and CptDescription::width.

Referenced by LATC_set().

void LATC_setReg ( void *  cpt,
LATC_type  type,
int  regId,
const void *  value 
)

Sets the regIdister of cpt structure to value.

Parameters:
cpt Pointer to start of the component data.
type Type of data sought
regId Enum specifing register to write to
value Value to set register to

References setLngLngReg(), setLongReg(), setShortReg(), and CptDescription::width.

Referenced by LATC_clearIMM(), and LATC_newIMM().


Generated on Thu Apr 7 17:31:28 2011 by  doxygen 1.5.8