Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

TMidasBanks.h

Go to the documentation of this file.
00001 // TMidasBanks.h.
00002 // author  JEP.
00003 // brief   MIDAS bank definitions.
00004 // version 1.0.
00005 // date    November 2004.
00006 //
00007 #ifndef TMIDASBANKS_H
00008 #define TMIDASBANKS_H
00009 
00010 #include <Rtypes.h>
00011 
00012 // this is defined so we can be independent of MIDAS, but if we do
00013 // link against it, everything should still work
00014 #ifndef MIDAS_TYPE_DEFINED
00015 typedef UShort_t WORD;
00016 typedef ULong_t  DWORD;
00017 typedef UChar_t  BYTE;
00018 #endif
00019 
00027 struct EventHeader_t {
00030   Short_t fEventId;
00033   Short_t fTriggerMask;
00036   DWORD fSerialNumber;
00039   DWORD fTimeStamp;
00042   DWORD fDataSize;
00043 };
00044 
00052 struct BankHeader_t {
00055   DWORD fDataSize; 
00058   DWORD fFlags; 
00059 };
00060 
00068 struct Bank_t {
00071   Char_t fName[4];    
00074   WORD fType;
00077   WORD fDataSize;
00078 };
00079 
00087 struct Bank32_t {
00090   Char_t fName[4];  
00093   DWORD fType;    
00096   DWORD fDataSize;
00097 };
00098 
00101 #define QWORD_SWAP(x) { BYTE _tmp;       \
00102 _tmp= *((BYTE *)(x));                    \
00103 *((BYTE *)(x)) = *(((BYTE *)(x))+7);     \
00104 *(((BYTE *)(x))+7) = _tmp;               \
00105 _tmp= *(((BYTE *)(x))+1);                \
00106 *(((BYTE *)(x))+1) = *(((BYTE *)(x))+6); \
00107 *(((BYTE *)(x))+6) = _tmp;               \
00108 _tmp= *(((BYTE *)(x))+2);                \
00109 *(((BYTE *)(x))+2) = *(((BYTE *)(x))+5); \
00110 *(((BYTE *)(x))+5) = _tmp;               \
00111 _tmp= *(((BYTE *)(x))+3);                \
00112 *(((BYTE *)(x))+3) = *(((BYTE *)(x))+4); \
00113 *(((BYTE *)(x))+4) = _tmp; }
00114 
00117 #define DWORD_SWAP(x) { BYTE _tmp;       \
00118 _tmp= *((BYTE *)(x));                    \
00119 *((BYTE *)(x)) = *(((BYTE *)(x))+3);     \
00120 *(((BYTE *)(x))+3) = _tmp;               \
00121 _tmp= *(((BYTE *)(x))+1);                \
00122 *(((BYTE *)(x))+1) = *(((BYTE *)(x))+2); \
00123 *(((BYTE *)(x))+2) = _tmp; }
00124 
00127 #define WORD_SWAP(x) { BYTE _tmp;        \
00128 _tmp= *((BYTE *)(x));                    \
00129 *((BYTE *)(x)) = *(((BYTE *)(x))+1);     \
00130 *(((BYTE *)(x))+1) = _tmp; }
00131 
00132 #endif // TMidasBanks.h

Generated on Mon Jan 8 11:54:31 2007 for DragonRoot by  doxygen 1.3.9.1