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

Constituent: rim     Tag: mv2304


Interface   Data Structures   File List   Data Fields   Globals  

RIM_map.c File Reference

Provides functionality concerned with creating and manipulating a RIM map. More...

#include "RIM_p.h"
#include "RIM_number.ic"
#include "RIM_AG_types_s.h"
#include "RIM_AG_init_p.h"
#include <string.h>

Include dependency graph for RIM_map.c:


Functions

static 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.
static 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).
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)
 Count the number of set bits 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)
 Set all bits in a submap corresponding to a particular tower.
unsigned RIM_clearByTWR (RIM_map *map, RIM_type type, unsigned twr)
 Clear all bits in a submap corresponding to a particular tower.
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.

Detailed Description

Provides functionality concerned with creating and manipulating a RIM map.

Author:
James Swain & Owen Saxton
Id
RIM_map.c,v 1.1 2007/03/16 19:27:17 saxton Exp

Function Documentation

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

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_SUCCESS if everything goes well
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

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

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_SUCCESS if everything goes well
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

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_SUCCESS if everything goes well
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

unsigned RIM_clearByTWR RIM_map map,
RIM_type  type,
unsigned  twr
 

Clear all bits in a submap corresponding to a particular tower.

Parameters:
map Pointer to a RIM_map structure
type Identifies the sub-map to manipulate
twr Index of a tower
Return values:
RIM_SUCCESS if everything goes well
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

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_SUCCESS if everything goes well
RIM_ADDR_RANGE if the twr ID is out of range

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 initialised RIM_map object

int RIM_countBits const RIM_map map,
RIM_type  type
 

Count the number of set bits 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_SUCCESS if everything goes well
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

unsigned RIM_setByTWR RIM_map map,
RIM_type  type,
unsigned  twr
 

Set all bits in a submap corresponding to a particular tower.

Parameters:
map Pointer to a RIM_map structure
type Identifies the sub-map to manipulate
twr Index of a tower
Return values:
RIM_SUCCESS if everything goes well
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

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_SUCCESS if everything goes well
RIM_ADDR_RANGE if the twr ID is out of range

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 Fri Jun 15 02:03:34 2007 by  doxygen 1.4.4