GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> LCFG / V1-2-5 > lcfg / mv2304
#include <RIM/RIM.h>
Classes | |
| struct | _LCFG_hsk |
| Structure to hold LCFG housekeeping information. More... | |
Typedefs | |
| typedef enum _LCFG_source | LCFG_source |
| Identifiers for callers of configure and verify. | |
| typedef RIM_type | LCFG_type |
| Type used to identify components (TEM, TFE etc). | |
| typedef RIM_addr | LCFG_addr |
| Type used to define an address. | |
| typedef struct _LCFG_hsk | LCFG_hsk |
| Structure to hold LCFG housekeeping information. | |
Enumerations | |
| enum | _LCFG_source { LCFG_SRC_UNKNOWN = 0, LCFG_SRC_LPA = 1, LCFG_SRC_LCI = 2, LCFG_SRC_COMMAND = 3 } |
| Identifiers for callers of configure and verify. More... | |
| enum | { LCFG_BAD_TYPE = RIM_BAD_TYPE } |
| Value for an unrecognized type. | |
| enum | { LCFG_BCAST_ADDR = RIM_BCAST_ADDR, N_LCFG_ADDR_CPTS = N_RIM_ADDR_CPTS } |
| Constants associated with addressing LAT component instances. | |
Functions | |
| unsigned | LCFG_cache (unsigned fid) |
| Read a LAT configuration. | |
| unsigned | LCFG_capture (void) |
| Read the registers of the LAT. | |
| unsigned | LCFG_configure (LCFG_source source, unsigned runId) |
| Configure the LAT using the currently cached configuration. | |
| unsigned | LCFG_consign (unsigned dst) |
| Write out the captured data to the SSR. | |
| unsigned | LCFG_disableTriggers (int marker) |
| Disable triggers. | |
| unsigned | LCFG_enableTriggers (int marker) |
| Enable triggers. | |
| unsigned | LCFG_getCacheKey (void) |
| Return the file key identifying the last cached configuration. | |
| unsigned | LCFG_getConfigureKey (void) |
| Return the file key identifying the last configuration loaded. | |
| unsigned | LCFG_getHskInfo (LCFG_hsk *info) |
| Get LAT configuration housekeeping information. | |
| unsigned | LCFG_getIgnoreKey (void) |
| Return the file key identifying the ignore map. | |
| unsigned | LCFG_ignore (unsigned fid) |
| Read the ignore map from the file identified by fid. | |
| unsigned | LCFG_initialise (void) |
| Allocate the resources required for LCFG. | |
| unsigned | LCFG_loadAfeConfig (unsigned int mask, unsigned int value0, unsigned int value1, unsigned int rcMask, unsigned int feMask) |
| Load the AFE configuration register. | |
| unsigned | LCFG_loadCfeConfig0 (unsigned int mask, unsigned int value) |
| Load CFE configuration register 0. | |
| unsigned | LCFG_loadCfeConfig1 (unsigned int mask, unsigned int value0, unsigned int value1, unsigned int cMask) |
| Load CFE configuration register 1. | |
| unsigned | LCFG_loadTfeDac (unsigned int mask, unsigned int value, int nLow, int nHigh) |
| Load the TFE DAC register. | |
| unsigned | LCFG_loadTkrSplits (int nLow, int nHigh) |
| Load TKR split values. | |
| unsigned | LCFG_setDirty (void) |
| Set the LCFG "dirty" flag. | |
| unsigned | LCFG_sizeofHskInfo (void) |
| Get the size of the LAT configuration housekeeping information. | |
| unsigned | LCFG_teardown (void) |
| Release the resources acquired by LCFG_initialise. | |
| unsigned | LCFG_verify (LCFG_source source, unsigned runId) |
| Verify that the captured configuration of the LAT matches the in-memory cache. | |
| enum _LCFG_source |
| unsigned LCFG_cache | ( | unsigned | fid | ) |
Read a LAT configuration.
| fid | The file ID of the master file containing the file IDs of the LAT configuration files to be read |
| LCFG_SUCCESS | if all goes well | |
| LCFG_BADFOPEN | if the fid, or any of the names the configuration master file contains, does not match a valid file. | |
| LCFG_BADTYPE | if the file contains a bad type identifier | |
| LCFG_BADREAD | if an error occurs while the file is being read |
References LCFG_controller::cache, LCFG_controller::cacheFid, LCFG_controller::cacheKey, and LCFG_consume().
| unsigned LCFG_capture | ( | void | ) |
Read the registers of the LAT.
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there was an error arising from one of the read commands |
References LCFG_controller::cache, LCFG_controller::capture, LCFG_controller::cr, LCFG_decode::cr, LCFG_controller::decode, LCFG_decode::di, LCFG_finishRead(), LCFG_controller::read, and LCFG_controller::rqi.
| unsigned LCFG_configure | ( | LCFG_source | source, | |
| unsigned | runId | |||
| ) |
Configure the LAT using the currently cached configuration.
| source | The identity of the caller (LPA, LCI, command) | |
| runId | The ID of the run associated with an LPA or LCI source |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there are errors arising from the register load commands |
References _LCFG_hsk::appConfig, _LCFG_hsk::appRunId, _LCFG_hsk::appSource, _LCFG_hsk::appStatus, _LCFG_hsk::appTimeSec, _LCFG_hsk::appTimeSub, LCFG_controller::cache, LCFG_controller::cacheFid, LCFG_controller::cacheKey, LCFG_controller::configKey, LCFG_controller::cr, _LCFG_hsk::dirty, LCFG_controller::hsk, LCFG_finishLoad(), and LCFG_controller::load.
| unsigned LCFG_consign | ( | unsigned | dst | ) |
Write out the captured data to the SSR.
| dst | Ignored |
| LCFG_SUCCESS | if all goes well. | |
| LCFG_BADFOPEN | if the file cannot be created | |
| LCFG_BADWRITE | if the final write of the buffer failed | |
| LCFG_BADCLOSE | if the file close failed | |
| LCFG_BADWRITE | if either the map or the configuration data write has an error |
References LCFG_controller::capture, LCFG_controller::fpa, and LCFG_record().
| unsigned LCFG_disableTriggers | ( | int | marker | ) |
Disable triggers.
The window open mask is cleared. If the marker parameter is non-zero, the LAT is first configured to broadcast a trigger message to CPUs upon receipt of a solicited trigger, a solicited trigger is fired, and the configuration restored from the LCFG cache.
| marker | If non-zero, causes a solicited trigger with this value in the event data. |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there is an error arising from one of the register load commands |
References LCFG_controller::cache, LCFG_controller::cr, and LCFG_setTrigger().
| unsigned LCFG_enableTriggers | ( | int | marker | ) |
Enable triggers.
The window open mask is loaded with the value held in the cache. If the marker parameter is non-zero, the LAT is first configured to broadcast a trigger message to CPUs upon receipt of a solicited trigger, a solicited trigger is fired, and the configuration restored from the LCFG cache.
| marker | If non-zero, causes a solicited trigger with this value in the event data. |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there is an error arising from one of the register load commands |
References LCFG_controller::cache, LCFG_controller::cr, and LCFG_setTrigger().
| unsigned LCFG_getCacheKey | ( | void | ) |
Return the file key identifying the last cached configuration.
References LCFG_controller::cacheKey.
| unsigned LCFG_getConfigureKey | ( | void | ) |
Return the file key identifying the last configuration loaded.
References LCFG_controller::configKey.
| unsigned LCFG_getHskInfo | ( | LCFG_hsk * | info | ) |
Get LAT configuration housekeeping information.
LAT configuration housekeeping information is copied to the supplied area.
| info | The address of the area to receive the housekeeping information. |
| LCFG_SUCCESS | Always success |
References LCFG_controller::hsk.
| unsigned LCFG_getIgnoreKey | ( | void | ) |
Return the file key identifying the ignore map.
References LCFG_controller::ignoreKey.
| unsigned LCFG_ignore | ( | unsigned | fid | ) |
Read the ignore map from the file identified by fid.
| fid | ID of the file containing the map data to use as the ignore map |
| LCFG_SUCCESS | if all goes well |
References LCFG_controller::ignore, LCFG_controller::ignoreFid, LCFG_controller::ignoreKey, and LCFG_consumeMap().
| unsigned LCFG_initialise | ( | void | ) |
Allocate the resources required for LCFG.
| LCFG_SUCCESS | If the control structure was allocated and initialised successfully | |
| LCFG_BADALLOC | If there was an error allocating memory | |
| LCFG_FPAINIT | If fixed packet initialization failed |
References LCFG_controller::buf, LCFG_controller::cache, LCFG_controller::capture, LCFG_controller::cr, LCFG_controller::decode, LCFG_controller::fpa, LCFG_controller::hsk, LCFG_controller::ignore, LCFG_DATAGRAM_SIZE, LCFG_N_DATAGRAMS, LCFG_newDecode(), LCFG_newLoad(), LCFG_newRead(), LCFG_teardown(), LCFG_controller::load, LCFG_controller::read, and LCFG_controller::rqi.
| unsigned LCFG_loadAfeConfig | ( | unsigned int | mask, | |
| unsigned int | value0, | |||
| unsigned int | value1, | |||
| unsigned int | rcMask, | |||
| unsigned int | feMask | |||
| ) |
Load the AFE configuration register.
The AFE configuration register is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.
| mask | Mask of bits to be changed from the configuration. | |
| value0 | The value to be masked and merged with the configuration value for front-ends not selected by the RC and FE masks. | |
| value1 | The value to be masked and merged with the configuration value for front-ends selected by the RC and FE masks. | |
| rcMask | Mask of bits, one per RC, specifying which RCs are selected. | |
| feMask | Mask of bits, one per FE, specifying which FEs within selected RCs are selected. |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there is an error arising from one of the register load commands |
References LCFG_controller::cache, LCFG_controller::cr, LCFG_finishLoad(), and LCFG_controller::load.
| unsigned LCFG_loadCfeConfig0 | ( | unsigned int | mask, | |
| unsigned int | value | |||
| ) |
Load CFE configuration register 0.
CFE configuration register 0 is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.
| mask | Mask of bits to be changed from the configuration. | |
| value | The value to be masked and merged with the configuration value. |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there is an error arising from one of the register load commands |
References LCFG_controller::cache, LCFG_controller::cr, LCFG_finishLoad(), and LCFG_controller::load.
| unsigned LCFG_loadCfeConfig1 | ( | unsigned int | mask, | |
| unsigned int | value0, | |||
| unsigned int | value1, | |||
| unsigned int | cMask | |||
| ) |
Load CFE configuration register 1.
CFE configuration register 1 is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.
| mask | Mask of bits to be changed from the configuration. | |
| value0 | The value to be masked and merged with the configuration value for front-ends whose bit is clear in the column mask. | |
| value1 | The value to be masked and merged with the configuration value for front-ends whose bit is set in the column mask. | |
| cMask | Mask of bits, one per column, specifying which value is to be used for loading the config register. |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there is an error arising from one of the register load commands |
References LCFG_controller::cache, LCFG_controller::cr, LCFG_finishLoad(), and LCFG_controller::load.
| unsigned LCFG_loadTfeDac | ( | unsigned int | mask, | |
| unsigned int | value, | |||
| int | nLow, | |||
| int | nHigh | |||
| ) |
Load the TFE DAC register.
The TFE DAC register is loaded with a modified version of the value from the LAT configuration, with the specified bits replaced.
| mask | Mask of bits to be changed from the configuration. | |
| value | The value to be masked and merged with the configuration value. | |
| nLow | Number of TFEs talking on the low side, or -1 if the configured values are being used. | |
| nHigh | Number of TFEs talking on the high side, or -1 if the configured values are being used. |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there is an error arising from one of the register load commands |
References LCFG_controller::cache, LCFG_controller::cr, LCFG_finishLoad(), and LCFG_controller::load.
| unsigned LCFG_loadTkrSplits | ( | int | nLow, | |
| int | nHigh | |||
| ) |
Load TKR split values.
The tracker RC and FE registers are loaded to reflect the given split values.
| nLow | Number of TFEs to talk on the low side, or -1 if the configured values are to be used. | |
| nHigh | Number of TFEs to talk on the high side, or -1 if the configured values are to be used. |
| LCFG_SUCCESS | if all goes well | |
| LEM_* | if there is an error arising from one of the register load commands |
References LCFG_controller::cache, LCFG_controller::cr, LCFG_finishLoad(), and LCFG_controller::load.
| unsigned LCFG_setDirty | ( | void | ) |
Set the LCFG "dirty" flag.
This routine is used to indicate that a register whose value is normally managed by LCFG has had its value changed externally, e.g. by LRA.
| LCFG_SUCCESS | Always success. |
References _LCFG_hsk::dirty, and LCFG_controller::hsk.
| unsigned LCFG_sizeofHskInfo | ( | void | ) |
Get the size of the LAT configuration housekeeping information.
The size of the LAT configuration housekeeping information block is returned.
| unsigned LCFG_teardown | ( | void | ) |
Release the resources acquired by LCFG_initialise.
| LCFG_SUCCESS | This function cannot fail - the return code is for future expansion |
References LCFG_controller::buf, LCFG_controller::cache, LCFG_controller::capture, LCFG_controller::cr, LCFG_controller::decode, LCFG_controller::fpa, LCFG_controller::hsk, LCFG_controller::ignore, LCFG_deleteDecode(), LCFG_deleteLoad(), LCFG_deleteRead(), LCFG_controller::load, LCFG_controller::read, and LCFG_controller::rqi.
Referenced by LCFG_initialise().
| unsigned LCFG_verify | ( | LCFG_source | source, | |
| unsigned | runId | |||
| ) |
Verify that the captured configuration of the LAT matches the in-memory cache.
| source | The identity of the caller (LPA, LCI, command) | |
| runId | The ID of the run associated with an LPA or LCI source |
| LCFG_SUCCESS | If the current LAT state matches the cached LAT state | |
| LCFG_DIFFER | If the current LAT state differs from the cached LAT state |
References _LCFG_hsk::appConfig, LCFG_controller::cache, LCFG_controller::capture, LCFG_controller::hsk, LCFG_controller::ignore, LCFG_controller::ignoreFid, _LCFG_hsk::verConfig, _LCFG_hsk::verIgnore, _LCFG_hsk::verRunId, _LCFG_hsk::verSource, _LCFG_hsk::verStatus, _LCFG_hsk::verTimeSec, and _LCFG_hsk::verTimeSub.
1.5.8