Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

router.h

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

Generated on Thu Jul 15 09:50:51 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5