00001 /************************************************************************************ 00002 * router.h : contains structures needed by the event-trapping setup routines on 00003 * both the MDSP & SDSPs; these fields are input in the eventTrapSetup 00004 * primitive. Some control registers on the router, while others inform the 00005 * SDSPs what tasks are going to handle the incoming data. 00006 * 00007 * Trap Parameters: 00008 * 00009 * config: Router register which configures the trap-- which type of events 00010 * will it trap? Can be any of: TRAP_CFG_ IDLE, ATLAS_EVT, TIM_EVT, 00011 * ROD_EVT or SLINK_EVT. If SLINK_EVT, the router will trap all 00012 * event types. 00013 * 00014 * match: Router register. The appropriate field in the event header is 00015 * compared against this to determine if the event will be trapped 00016 * or not. For example match= 21, config= ATLAS_EVT will catch only 00017 * events with ATLAS ID 21. 00018 * 00019 * exclusionFlag: Status to be determined. 00020 * 00021 * function: Indicates which tasks on the SDSP(s) will process events coming 00022 * from this trap. This is a bitfield and thus is additive. For 00023 * example, to set up both histogramming & event copying (trapping) 00024 * set function= TRAP_FXN_HISTOGRAM +TRAP_FXN_TRAP. 00025 * 00026 * modulus & remainder: Router registers which determine the frequency of 00027 * the trap. Events are trapped if the # of events 00028 * meeting the cfg & match criterion defined above modulo the 00029 * modulus register equals the remainder register. For example, 00030 * (mod., rem.)= (5,3) will trap the third event out of every 5 00031 * events. If the modulus = 1, the router will trap every matching 00032 * event, and if modulus = 0, it will trap a single event and then 00033 * the trap will reset itself. 00034 00035 ************************************************************************************/ 00036 #ifndef ROUTER_STRUCT 00037 #define ROUTER_STRUCT 00038 00039 typedef struct RouterTrapParams { 00040 UINT8 config, match, exclusionFlag, function; 00041 UINT8 modulus, remainder, unused[2]; 00042 } RouterTrapParams; 00043 00044 #define TRAP_CFG_IDLE 0 00045 #define TRAP_CFG_ATLAS_EVT 1 00046 #define TRAP_CFG_TIM_EVT 2 00047 #define TRAP_CFG_ROD_EVT 3 00048 #define TRAP_CFG_SLINK_EVT 4 00049 00050 #define TRAP_FXN_HISTOGRAM 1 00051 #define TRAP_FXN_TRAP 2 00052 #define TRAP_FXN_OCCUPANCY 4 00053 #define TRAP_FXN_ERRORCNT 8 00054 #define TRAP_FXN_RESYNCH 16 00055 00056 #endif