GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
sMbs.h
Go to the documentation of this file.
1// $Id$
2//-----------------------------------------------------------------------
3// The GSI Online Offline Object Oriented (Go4) Project
4// Experiment Data Processing at EE department, GSI
5//-----------------------------------------------------------------------
6// Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
7// Planckstr. 1, 64291 Darmstadt, Germany
8// Contact: http://go4.gsi.de
9//-----------------------------------------------------------------------
10// This software can be used under the license agreements as stated
11// in Go4License.txt file which is part of the distribution.
12//-----------------------------------------------------------------------
13
14#ifndef MbsStruct_H
15#define MbsStruct_H
16
17#define LMD__TYPE_FILE_HEADER_101_1 0x00010065
18#define LMD__TYPE_EVENT_HEADER_10_1 0x0001000a
19#define LMD__TYPE_FILE_INDEX_101_2 0x00020065
20#define LMD__TYPE_BUFFER_HEADER_10_1 0x0001000a
21#define LMD__TYPE_BUFFER_HEADER_100_1 0x00010064
22#define LMD__TYPE_TIME_STAMP_11_1 0x0001000b
23#define LMD__GET_EVENTS NULL
24#define LMD__STANDARD_HEADER NULL
25#define LMD__INTERNAL_HEADER NULL
26#define LMD__INDEX 1
27#define LMD__OVERWRITE 1
28#define LMD__LARGE_FILE 1
29#define LMD__MIN_BUFFER 0
30#define LMD__BUFFER 1
31#define LMD__VERBOSE 1
32#define LMD__NO_VERBOSE 0
33#define LMD__NO_BUFFER 0
34#define LMD__NO_INDEX 0
35#define LMD__NO_OVERWRITE 0
36#define LMD__NO_LARGE_FILE 0
37#define LMD__NO_VERBOSE 0
38#define LMD__VERBOSE 1
39#define LMD__ENDIAN_LITTLE 1
40#define LMD__ENDIAN_BIG 2
41#define LMD__ENDIAN_UNKNOWN 0
42
43#include "s_stdint.h"
44
45typedef uint64_t lmdoff_t;
46
47// must #include <stdint.h>
48// on Lynx, define int32_t, uint32_t, int16_t
49// structure used to talk between client and server
50// Client connects to server (MBS) and reads this structure first
51
52//--------------------------------------------------
53// Structure maps the MBS transport info buffer
54typedef struct{
55 uint32_t iEndian; // byte order. Set to 1 by sender
56 uint32_t iMaxBytes; // maximum buffer size
57 uint32_t iBuffers; // buffers per stream
58 uint32_t iStreams; // number of streams
60
61//--------------------------------------------------
62// Buffer header, maps s_bufhe, some fields used in different way
63typedef struct{
64 uint32_t iMaxWords; // compatible with s_bufhe (total buffer size - header)
65 uint32_t iType; // compatible with s_bufhe, low=type (=100), high=subtype
66 uint32_t iUsed; // not used for iMaxWords>MAX__DLEN (16360), low 16bits only
67 uint32_t iBuffer; // compatible with s_bufhe
68 uint32_t iElements; // compatible with s_bufhe
69 uint32_t iTemp; // Used volatile
70 uint32_t iTimeSpecSec; // compatible with s_bufhe (2*32bit)
71 uint32_t iTimeSpecNanoSec; // compatible with s_bufhe (2*32bit)
72 // struct timespec TimeSpec;
73 uint32_t iEndian; // compatible with s_bufhe free[0]
74 uint32_t iWrittenEndian;// one of LMD__ENDIAN_x
75 uint32_t iUsedWords; // total words without header to read for type=100, free[2]
76 uint32_t iFree3; // free[3]
78
79//--------------------------------------------------
80// Buffer header, maps s_bufhe
81typedef struct{
82 uint32_t iMaxWords; // compatible with s_bufhe (total buffer size - header)
83 uint32_t iType; // compatible with s_bufhe, low=type (=100), high=subtype
84 lmdoff_t iTableOffset; // optional offset to element offset table in file
85 uint32_t iElements; // compatible with s_bufhe
86 uint32_t iOffsetSize; // Offset size, 4 or 8 [bytes]
87 uint32_t iTimeSpecSec; // compatible with s_bufhe (2*32bit)
88 uint32_t iTimeSpecNanoSec; // compatible with s_bufhe (2*32bit)
89 // struct timespec TimeSpec;
90 uint32_t iEndian; // compatible with s_bufhe free[0]
91 uint32_t iWrittenEndian;// one of LMD__ENDIAN_x
92 uint32_t iUsedWords; // total words without header to read for type=100, free[2]
93 uint32_t iFree3; // free[3]
95
96//--------------------------------------------------
97typedef struct{
98 uint32_t iMaxWords;
99 uint32_t iType;
100 uint32_t iTimeSpecSec;
103
104//--------------------------------------------------
105// maps s_evhe
106typedef struct{
107 uint32_t iWords; // following data words
108 uint32_t iType; // compatible with s_ve10_1, low=type (=10), high=subtype
109} sMbsHeader;
110
111//--------------------------------------------------
112// maps s_ve10_1
113typedef struct{
114 uint32_t iWords; // data words + 4
115 uint32_t iType; // compatible with s_ve10_1, low=type (=10), high=subtype
116 uint32_t iTrigger;
117 uint32_t iEventNumber;
119
120//--------------------------------------------------
121// maps s_ves10_1
122typedef struct{
123 uint32_t iWords; // data words + 2
124 uint32_t iType; // compatible with s_ves10_1, low=type (=10), high=subtype
125 uint32_t iSubeventID; // 2 low bytes=procid, next byte=subcrate, high byte control
127
128#endif
uint64_t lmdoff_t
Definition sMbs.h:45
uint32_t iUsedWords
Definition sMbs.h:75
uint32_t iMaxWords
Definition sMbs.h:64
uint32_t iEndian
Definition sMbs.h:73
uint32_t iBuffer
Definition sMbs.h:67
uint32_t iTimeSpecNanoSec
Definition sMbs.h:71
uint32_t iTemp
Definition sMbs.h:69
uint32_t iFree3
Definition sMbs.h:76
uint32_t iType
Definition sMbs.h:65
uint32_t iTimeSpecSec
Definition sMbs.h:70
uint32_t iWrittenEndian
Definition sMbs.h:74
uint32_t iElements
Definition sMbs.h:68
uint32_t iUsed
Definition sMbs.h:66
uint32_t iWords
Definition sMbs.h:114
uint32_t iTrigger
Definition sMbs.h:116
uint32_t iEventNumber
Definition sMbs.h:117
uint32_t iType
Definition sMbs.h:115
uint32_t iElements
Definition sMbs.h:85
uint32_t iTimeSpecSec
Definition sMbs.h:87
uint32_t iWrittenEndian
Definition sMbs.h:91
uint32_t iFree3
Definition sMbs.h:93
uint32_t iTimeSpecNanoSec
Definition sMbs.h:88
uint32_t iUsedWords
Definition sMbs.h:92
uint32_t iMaxWords
Definition sMbs.h:82
uint32_t iOffsetSize
Definition sMbs.h:86
uint32_t iEndian
Definition sMbs.h:90
lmdoff_t iTableOffset
Definition sMbs.h:84
uint32_t iType
Definition sMbs.h:83
uint32_t iWords
Definition sMbs.h:107
uint32_t iType
Definition sMbs.h:108
uint32_t iSubeventID
Definition sMbs.h:125
uint32_t iType
Definition sMbs.h:124
uint32_t iWords
Definition sMbs.h:123
uint32_t iTimeSpecNanoSec
Definition sMbs.h:101
uint32_t iType
Definition sMbs.h:99
uint32_t iTimeSpecSec
Definition sMbs.h:100
uint32_t iMaxWords
Definition sMbs.h:98
uint32_t iMaxBytes
Definition sMbs.h:56
uint32_t iBuffers
Definition sMbs.h:57
uint32_t iEndian
Definition sMbs.h:55
uint32_t iStreams
Definition sMbs.h:58