00001
00002
00003
00004
00005
00006
00007 #ifndef TMIDASBANKS_H
00008 #define TMIDASBANKS_H
00009
00010 #include <Rtypes.h>
00011
00012
00013
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