GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > RIM / V0-0-2

Constituent: rim     Tag: linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

map.c File Reference

Provoides functionality concerned with creating and manipulating a LATC_map. More...

#include "map_p.h"
#include "error_p.h"
#include "addr.h"
#include "number.ic"
#include "AG_rimType_s.h"
#include <string.h>

Include dependency graph for map.c:


Functions

size_t RIM_sizeofMap (void)
 Calculate the total size of a RIM_map object.
RIM_mapRIM_constructMap (void *buf)
 Initialise the supplied memory as a RIM_map object.
unsigned RIM_setBit (RIM_map *map, RIM_type type, const RIM_addr *addr)
 Set a bit in the map.
unsigned RIM_clearBit (RIM_map *map, RIM_type type, const RIM_addr *addr)
 Clear a bit in the map.
int RIM_countBits (const RIM_map *map, RIM_type type)
 Clear a bit in the map.
int RIM_checkBit (const RIM_map *map, RIM_type type, const RIM_addr *addr)
 Check a bit in the map.
void RIM_setACD (RIM_map *map)
 Set all the bits in the ARC and AFE submaps.
void RIM_clearACD (RIM_map *map)
 Clear all the bits in the ARC and AFE submaps.
unsigned RIM_setTWR (RIM_map *map, unsigned twr)
 Set all the bits in TEM, TIC, CCC, CRC, CFE, TCC TRC and TFE submaps corresponding to a particular tower.
unsigned RIM_clearTWR (RIM_map *map, unsigned twr)
 Clear all the bits in TEM, TIC, CCC, CRC, CFE, TCC TRC and TFE submaps corresponding to a particular tower.
unsigned RIM_setByTWR (RIM_map *map, RIM_type type, unsigned twr)
unsigned RIM_clearByTWR (RIM_map *map, RIM_type type, unsigned twr)
void RIM_setMap (RIM_map *map)
 Set the map.
void RIM_clearMap (RIM_map *map)
 Clear the map.
void RIM_dumpMap (RIM_map *map, FILE *fp)
 Print out the map.
unsigned mapIndex (const RIM_map *map, RIM_type type, const RIM_addr *addr, unsigned *index)
 Convert the address into an index appropriate for this type of map as well as performing various checks on the input parameters.
unsigned mapRange (const RIM_map *map, RIM_type type, unsigned twr, unsigned *start, unsigned *end)
 Find start and end indicies to use in a loop over all the bits in one tower (ie the first bit of the tower and the bit one past the last bit of the same tower).

Detailed Description

Provoides functionality concerned with creating and manipulating a LATC_map.

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

Function Documentation

unsigned mapIndex const RIM_map map,
RIM_type  type,
const RIM_addr addr,
unsigned *  index
 

Convert the address into an index appropriate for this type of map as well as performing various checks on the input parameters.

Parameters:
map Pointer to a map structure
type Type of the map
addr Pointer to an address structure identifying the required bit
index Pointer to location to store the calculated index
Return values:
RIM_TYPE_UK if the type does not exist
RIM_MAP_NONE if there is no sub-map corresponding to this type
RIM_ADDR_BCAST if the address contains a mixture of broadcast and singlecast addresses
RIM_ADDR_RANGE if any component of the address is out of range
RIM_ADDR_INDEX if the final index exceeds the total number of bits in the map
RIM_SUCCESS if everything goes well

unsigned mapRange const RIM_map map,
RIM_type  type,
unsigned  twr,
unsigned *  start,
unsigned *  end
 

Find start and end indicies to use in a loop over all the bits in one tower (ie the first bit of the tower and the bit one past the last bit of the same tower).

Parameters:
map Pointer to a map structure
type Type of the map
twr Tower ID
start Pointer to location to store the index of the start bit
end Pointer to location to store the index of the end bit
Return values:
RIM_TYPE_UK if the type does not exist
RIM_MAP_NONE if there is no sub-map corresponding to this type
RIM_ADDR_BCAST if the address contains a mixture of broadcast and singlecast addresses
RIM_ADDR_RANGE if any component of the address is out of range
RIM_ADDR_INDEX if the final index exceeds the total number of bits in the map
RIM_SUCCESS if everything goes well

int RIM_checkBit const RIM_map map,
RIM_type  type,
const RIM_addr addr
 

Check a bit in the map.

Parameters:
map Structure being manipulated
type Identifies map to manipulate
addr bit to check
Return values:
0 if the bit is clear
1 if the bit is set

void RIM_clearACD RIM_map map  ) 
 

Clear all the bits in the ARC and AFE submaps.

Parameters:
map Pointer to a RIM_map structure

unsigned RIM_clearBit RIM_map map,
RIM_type  type,
const RIM_addr addr
 

Clear a bit in the map.

Parameters:
map Structure being manipulated
type Identifies map to manipulate
addr bit to clear
Return values:
RIM_TYPE_UK if the type does not exist
RIM_MAP_NONE if there is no sub-map corresponding to this type
RIM_ADDR_BCAST if the address contains a mixture of broadcast and singlecast addresses
RIM_ADDR_RANGE if any component of the address is out of range
RIM_ADDR_INDEX if the final index exceeds the total number of bits in the map
RIM_SUCCESS if everything goes well

unsigned RIM_clearByTWR RIM_map map,
RIM_type  type,
unsigned  twr
 

Parameters:
map Pointer to a RIM_map structure
type Identifies the sub-map to manipulate
twr Index of a tower
Return values:
RIM_TYPE_UK if the type does not exist
RIM_MAP_NONE if there is no sub-map corresponding to this type
RIM_ADDR_BCAST if the address contains a mixture of broadcast and singlecast addresses
RIM_ADDR_RANGE if any component of the address is out of range
RIM_ADDR_INDEX if the final index exceeds the total number of bits in the map
RIM_SUCCESS if everything goes well

void RIM_clearMap RIM_map map  ) 
 

Clear the map.

Parameters:
map Structure being manipulated

unsigned RIM_clearTWR RIM_map map,
unsigned  twr
 

Clear all the bits in TEM, TIC, CCC, CRC, CFE, TCC TRC and TFE submaps corresponding to a particular tower.

Parameters:
map Pointer to a RIM_map structure
twr Index of a tower
Return values:
RIM_ADDR_RANGE if the twr ID is out of range
RIM_SUCCESS if everything goes well

RIM_map* RIM_constructMap void *  buf  ) 
 

Initialise the supplied memory as a RIM_map object.

Parameters:
buf Block of memory, at least as large as RIM_sizeofMap, to initalise as a RIM_map object
Returns:
Pointer to an initialise RIM_map object

int RIM_countBits const RIM_map map,
RIM_type  type
 

Clear a bit in the map.

Parameters:
map Structure being manipulated
type Identifies map to count
Returns:
Number of bits set in the map, or -1 for an illegal type

void RIM_dumpMap RIM_map map,
FILE *  fp
 

Print out the map.

Parameters:
fp Pointer to file to dump the map to
map Pointer to an initialised map structure

void RIM_setACD RIM_map map  ) 
 

Set all the bits in the ARC and AFE submaps.

Parameters:
map Pointer to a RIM_map structure

unsigned RIM_setBit RIM_map map,
RIM_type  type,
const RIM_addr addr
 

Set a bit in the map.

Parameters:
map Structure being manipulated
type Identifies map to manipulate
addr bit to set
Return values:
RIM_TYPE_UK if the type does not exist
RIM_MAP_NONE if there is no sub-map corresponding to this type
RIM_ADDR_BCAST if the address contains a mixture of broadcast and singlecast addresses
RIM_ADDR_RANGE if any component of the address is out of range
RIM_ADDR_INDEX if the final index exceeds the total number of bits in the map
RIM_SUCCESS if everything goes well

unsigned RIM_setByTWR RIM_map map,
RIM_type  type,
unsigned  twr
 

Parameters:
map Pointer to a RIM_map structure
type Identifies the sub-map to manipulate
twr Index of a tower
Return values:
RIM_TYPE_UK if the type does not exist
RIM_MAP_NONE if there is no sub-map corresponding to this type
RIM_ADDR_BCAST if the address contains a mixture of broadcast and singlecast addresses
RIM_ADDR_RANGE if any component of the address is out of range
RIM_ADDR_INDEX if the final index exceeds the total number of bits in the map
RIM_SUCCESS if everything goes well

void RIM_setMap RIM_map map  ) 
 

Set the map.

Parameters:
map Pointer to a RIM_map structure

unsigned RIM_setTWR RIM_map map,
unsigned  twr
 

Set all the bits in TEM, TIC, CCC, CRC, CFE, TCC TRC and TFE submaps corresponding to a particular tower.

Parameters:
map Pointer to a RIM_map structure
twr Index of a tower
Return values:
RIM_ADDR_RANGE if the twr ID is out of range
RIM_SUCCESS if everything goes well

size_t RIM_sizeofMap void   ) 
 

Calculate the total size of a RIM_map object.

Returns:
Amount of memory required to accomodate a RIM_map object


Generated on Thu Apr 13 23:40:05 2006 by  doxygen 1.4.4