GSI Object Oriented Online Offline (Go4)  GO4-6.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
s_set_ml.h
Go to the documentation of this file.
1 // $Id: s_set_ml.h 3340 2021-10-18 13:10:25Z linev $
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 S_SET_ML_H
15 #define S_SET_ML_H
16 
17 #include "typedefs.h"
18 
19 #include "ml_def.h"
20 
21 /*
22  * N. Kurz 10-Jan-1996
23  *
24  * within this structure the setup information for one host in the multi-branch
25  * multi-layer daq system is specified.
26  * for each host in the system which resides in the hierarchy above a
27  * branch master (meb) such a set of data must be provided through a
28  * parsed user input file.
29  */
30 
31 /* after allocating s_set_ml set in f_ut_set_ml_ini */
32 /* ps_set_ml->l_endian = 1; */
33 /* ps_set_ml->l_version = n; */
34 /* ps_set_ml->l_set_ml_lw = sizeof(s_set_ml)/4; */
35 /* ps_set_ml->l_fix_lw = ((int)&c_rd_hostname[0][0]-(int)ps_set_ml)/4; */
36 /* ps_set_ml->l_ml__n_rd_pipe = ML__N_RD_PIPE; */
37 /* ps_set_ml->l_short_len = 16; */
38 /* ps_set_ml->l_long_len = 128; */
39 typedef struct
40 {
41  INTU4 l_endian; /* set to 1 */
42  INTU4 l_version; /* increment in f_ut_status_ini after changes */
43  INTU4 l_set_ml_lw; /* sizeof(s_set_ml)/4 : total number of lw */
44  INTU4 l_fix_lw; /* (&c_rd_hostname-ps_set_ml)/4 : fixed number of longwords to read */
45  INTU4 l_ml__n_rd_pipe; /* set to ML__N_RD_PIPE */
46  INTU4 l_short_len; /* set to length of short strings (16) */
47  INTU4 l_long_len; /* set to length of long strings (128) */
48 
50  /* number of pipes to read. this variable must not be specified, */
51  /* instead it will be filled during loading the multi-layer setup */
52  /* for this host */
53 
55  /* 1: write data from all read pipes into next layer pipe */
56  /* 2: format events into event buffer streams */
57  /* 3: 1 + 2 */
58 
60  /* length of single event buffer. only needed if l_out_mode = 2,3 */
61 
63  /* number of event buffers in a stream. only if l_out_mode = 2,3 */
64 
66  /* number of streams. only needed if l_out_mode = 2,3 */
67 
69  /* base address of write pipe. only needed if l_out_mode = 1,3 */
70 
72  /* size of write pipe (in bytes). only needed if l_out_mode = 1,3 */
73 
75  /* number of fragments to reserve in the write pipe. only needed if */
76  /* l_out_mode = 1,3 */
77 
78  INTS4 l_rd_host_flg[ML__N_RD_PIPE];
79  /* 0: not to read from this host */
80  /* 1: pipe must be read from this node, node is branchmaster */
81  /* 2: pipe must be read from this node, node is NOT a branchmaster */
82 
83  INTS4 l_rd_pipe_base_addr[ML__N_RD_PIPE];
84  /* base address of the pipes to read, seen from this host */
85 
86  INTS4 l_rd_pipe_len[ML__N_RD_PIPE];
87  /* size of the pipes to read. this variable must not be specified, */
88  /* instead it will be filled from either a SBS setup file or from */
89  /* the write pipe specification (see below) of the coresponding */
90  /* host lying below the hierarchy of this host (in bytes) */
91 
92  INTS4 l_rd_pipe_n_frag[ML__N_RD_PIPE];
93  /* number of fragments to reserve in the read pipes. must also not */
94  /* be specified. see comment above for l_rd_pipe_len[] */
95  CHARS c_hostname[16];
96  /* net name of this host */
97 
98 /* ------------------ end of fixed block --------------------------*/
99  CHARS c_rd_hostname [ML__N_RD_PIPE][16];
100  /* netname of all hosts where this host have to read pipes */
101 
102  CHARS c_sbs_setup_path [ML__N_RD_PIPE][128];
103  /* paths/filenames of the SBS setup file of the hosts to read from. */
104  /* only needed if these hosts are SBS branch masters. in this case */
105  /* the read pipes are specified in the SBS setup file. the base */
106  /* address of the read pipes must always be specified nevertheless */
107 
108 
109 } s_set_ml;
110 
111 #endif
INTU4 l_fix_lw
Definition: s_set_ml.h:44
INTU4 l_version
Definition: s_set_ml.h:42
INTS4 l_wr_pipe_n_frag
Definition: s_set_ml.h:74
INTS4 l_n_ev_buf
Definition: s_set_ml.h:62
INTU4 l_set_ml_lw
Definition: s_set_ml.h:43
INTS4 l_ev_buf_len
Definition: s_set_ml.h:59
INTU4 l_long_len
Definition: s_set_ml.h:47
unsigned int INTU4
Definition: typedefs.h:29
#define ML__N_RD_PIPE
Definition: ml_def.h:22
int INTS4
Definition: typedefs.h:28
INTS4 l_n_rd_pipe
Definition: s_set_ml.h:49
INTS4 l_n_stream
Definition: s_set_ml.h:65
INTS4 l_out_mode
Definition: s_set_ml.h:54
INTS4 l_wr_pipe_len
Definition: s_set_ml.h:71
INTS4 l_wr_pipe_base_addr
Definition: s_set_ml.h:68
INTU4 l_short_len
Definition: s_set_ml.h:46
INTU4 l_endian
Definition: s_set_ml.h:41
INTU4 l_ml__n_rd_pipe
Definition: s_set_ml.h:45
char CHARS
Definition: typedefs.h:21