GSI Object Oriented Online Offline (Go4)  GO4-6.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
f_ut_status.c
Go to the documentation of this file.
1 // $Id: f_ut_status.c 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 // NOTE !!!!!!!
15 // To avoid hanging sockets on Lynx, we read one byte less than MBS sends.
16 // This byte is the last of process name table, so never used.
17 // In MBS the problem can be fixed. Then this workaround can be rolled back.
18 // Reason is that client must close socket before server.
19 
20 #include "typedefs.h"
21 #include <stdlib.h>
22 #include <stdio.h>
23 #include <errno.h>
24 #include <string.h>
25 #include <memory.h>
26 #include <sys/types.h>
27 #include <ctype.h>
28 
29 #include "s_daqst.h"
30 #include "s_setup.h"
31 #include "s_set_ml.h"
32 #include "s_set_mo.h"
33 #include "f_stccomm.h"
34 #include "f_swaplw.h"
35 
36 #define VERSION__DAQST 63
37 #define VERSION__SETUP 63
38 #define VERSION__SET_ML 63
39 #define VERSION__SET_MO 63
40 /*****************+***********+****************************************/
41 /* */
42 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
43 /* Postfach 11 05 52 */
44 /* D-64220 Darmstadt */
45 /* */
46 /*1+ C Procedure *************+****************************************/
47 /* */
48 /*+ Module : f_ut_status_ini */
49 /* */
50 /*--------------------------------------------------------------------*/
51 /*+ CALLING : l_status=f_ut_status_ini(s_daqst) */
52 /*--------------------------------------------------------------------*/
53 /* */
54 /*+ PURPOSE : Initialize s_daqst. */
55 /* */
56 /*+ ARGUMENTS : */
57 /*+ s_daqst : pointer to s_daqst */
58 /*2+Implementation************+****************************************/
59 /*+ File name : f_ut_status.c */
60 /*+ Home direct.: /mbs/prod/src */
61 /*+ Version : 2.01 */
62 /*+ Author : H.G.Essel */
63 /*+ Created : 14-Nov-1998 */
64 /*+ Object libr.: mbslib.a */
65 /*+ Updates : Date Purpose */
66 /*1- C Procedure *************+****************************************/
68 {
69  if(ps_daqst == NULL) return -1;
70 
71  ps_daqst->l_endian = 1;
72  ps_daqst->l_version = VERSION__DAQST;
73  ps_daqst->l_daqst_lw = sizeof(s_daqst)/4;
74  ps_daqst->l_fix_lw = ((long)&ps_daqst->c_pname[0][0]-(long)ps_daqst)/4;
77  ps_daqst->l_sbs__n_trg_typ = SBS__N_TRG_TYP;
78  ps_daqst->bh_daqst_initalized = 1;
79 
80  return 0;
81 }
82 
83 
84 /*****************+***********+****************************************/
85 /* */
86 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
87 /* Postfach 11 05 52 */
88 /* D-64220 Darmstadt */
89 /* */
90 /*1+ C Procedure *************+****************************************/
91 /* */
92 /*+ Module : f_ut_status */
93 /* */
94 /*--------------------------------------------------------------------*/
95 /*+ CALLING : l_status=f_ut_status(s_daqst, socket) */
96 /*--------------------------------------------------------------------*/
97 /* */
98 /*+ PURPOSE : Send s_daqst to socket. */
99 /* */
100 /*+ ARGUMENTS : */
101 /*+ s_daqst : pointer to s_daqst */
102 /*+ socket : Tcp socket from accept */
103 /*2+Implementation************+****************************************/
104 /*+ File name : f_ut_status.c */
105 /*+ Home direct.: /mbs/prod/src */
106 /*+ Version : 2.01 */
107 /*+ Author : H.G.Essel */
108 /*+ Created : 14-Nov-1998 */
109 /*+ Object libr.: mbslib.a */
110 /*+ Updates : Date Purpose */
111 /*1- C Procedure *************+****************************************/
112 INTS4 f_ut_status(s_daqst *ps_daqst, INTS4 l_tcp)
113 {
115 
116 l = ps_daqst->l_fix_lw * 4 + ps_daqst->l_procs_run * ps_daqst->l_sbs__str_len_64;
117 /*printf("daqst Send %d LW + %d LW",ps_daqst->l_fix_lw,ps_daqst->l_procs_run * ps_daqst->l_sbs__str_len_64/4);*/
118 l_status = f_stc_write (ps_daqst, l, l_tcp);
119 return l_status;
120 }
121 
122 /*****************+***********+****************************************/
123 /* */
124 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
125 /* Postfach 11 05 52 */
126 /* D-64220 Darmstadt */
127 /* */
128 /*1+ C Procedure *************+****************************************/
129 /* */
130 /*+ Module : f_ut_status_r */
131 /* */
132 /*--------------------------------------------------------------------*/
133 /*+ CALLING : l_status=f_ut_status_r(s_daqst, socket) */
134 /*--------------------------------------------------------------------*/
135 /* */
136 /*+ PURPOSE : Read s_daqst from socket. */
137 /* */
138 /*+ ARGUMENTS : */
139 /*+ s_daqst : pointer to s_daqst */
140 /*+ socket : Tcp socket from connect */
141 /*2+Implementation************+****************************************/
142 /*+ File name : f_ut_status.c */
143 /*+ Home direct.: /mbs/prod/src */
144 /*+ Version : 2.01 */
145 /*+ Author : H.G.Essel */
146 /*+ Created : 14-Nov-1998 */
147 /*+ Object libr.: mbslib.a */
148 /*+ Updates : Date Purpose */
149 /*1- C Procedure *************+****************************************/
150 INTS4 f_ut_status_r(s_daqst *ps_daqst, INTS4 l_tcp)
151 {
152  INTS4 l_swap=0, len_64, n_trg, max_proc;
153  INTS4 l_cmd;
154  INTS4 k;
155  INTS4 l_status;
156 
157  memset((void *)ps_daqst,0,sizeof(s_daqst));
158  l_cmd=1;
159  l_status = f_stc_write (&l_cmd,4,l_tcp); if (l_status != STC__SUCCESS) return(-1);
160  l_status = f_stc_read (&ps_daqst->l_endian,28,l_tcp,-1); if (l_status != STC__SUCCESS) return(-1);
161  if(ps_daqst->l_endian != 1) l_swap = 1;
162  if(l_swap == 1) l_status = f_swaplw((INTS4 *)&ps_daqst->l_endian,7,NULL);
163  len_64=ps_daqst->l_sbs__str_len_64;
164  n_trg=ps_daqst->l_sbs__n_trg_typ;
165  max_proc=ps_daqst->l_sys__n_max_procs;
166  if(ps_daqst->l_version == 1)
167  {
168  // MBS v44 and previous no longer supported
169  return(-1);
170  }
171  // MBS v50
172  if(ps_daqst->l_version == 2)
173  {
174  k=(48+n_trg*3)*4; // up to bl_n_evt inclusive
175  l_status = f_stc_read (&ps_daqst->bh_daqst_initalized, k , l_tcp,-1);
176  k=(24+max_proc*5)*4; // bh_running up to bl_event_build_on inclusive
177  l_status = f_stc_read (&ps_daqst->bh_running[0], k , l_tcp,-1);
178  k=len_64*15; // strings up to c_file_name inclusive
179  l_status = f_stc_read (&ps_daqst->c_user[0], k , l_tcp,-1);
180  l_status = f_stc_read (&ps_daqst->c_out_chan[0], len_64 , l_tcp,-1);
181  ps_daqst->l_fix_lw += n_trg*3 + 212 + len_64/4*3;
182  if(l_swap == 1)
183  l_status = f_swaplw((INTS4 *)&ps_daqst->bh_daqst_initalized, (ps_daqst->l_fix_lw-7) - (19 * len_64/4),NULL);
184  }
185  // MBS v51 and v62/v63
186  if((ps_daqst->l_version == 51) || (ps_daqst->l_version == 62) || (ps_daqst->l_version == 63))
187  {
188  l_status = f_stc_read (&ps_daqst->bh_daqst_initalized, (ps_daqst->l_fix_lw-7)*4 , l_tcp,-1);
189  if(l_swap == 1)
190  l_status = f_swaplw((INTS4 *)&ps_daqst->bh_daqst_initalized, (ps_daqst->l_fix_lw-7) - (19 * len_64/4),NULL);
191  }
192 
193  //l_status = f_stc_read (&ps_daqst->c_pname[0], ps_daqst->l_procs_run * len_64, l_tcp,-1);
194  // workaround:
195  l_status = f_stc_read (&ps_daqst->c_pname[0], ps_daqst->l_procs_run * len_64 -1, l_tcp,-1);
196  return l_status;
197 }
198 
199 /*****************+***********+****************************************/
200 /* */
201 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
202 /* Postfach 11 05 52 */
203 /* D-64220 Darmstadt */
204 /* */
205 /*1+ C Procedure *************+****************************************/
206 /* */
207 /*+ Module : f_ut_setup_ini */
208 /* */
209 /*--------------------------------------------------------------------*/
210 /*+ CALLING : l_status=f_ut_setup_ini(s_setup) */
211 /*--------------------------------------------------------------------*/
212 /* */
213 /*+ PURPOSE : Initialize s_setup. */
214 /* */
215 /*+ ARGUMENTS : */
216 /*+ s_setup : pointer to s_setup */
217 /*2+Implementation************+****************************************/
218 /*+ File name : f_ut_status.c */
219 /*+ Home direct.: /mbs/prod/src */
220 /*+ Version : 2.01 */
221 /*+ Author : H.G.Essel */
222 /*+ Created : 14-Nov-1998 */
223 /*+ Object libr.: mbslib.a */
224 /*+ Updates : Date Purpose */
225 /*1- C Procedure *************+****************************************/
227 {
228 if(ps_setup == NULL) return -1;
229 ps_setup->l_endian = 1;
230 ps_setup->l_version = VERSION__SETUP;
231 ps_setup->bl_struc_len = sizeof(s_setup)/4;
232 ps_setup->l_fix_lw = ((long)&ps_setup->lp_rem_mem_base[0]-(long)ps_setup)/4;
233 ps_setup->bl_sbs__n_cr = SBS__N_CR;
235 return 0;
236 }
237 
238 
239 
240 /*****************+***********+****************************************/
241 /* */
242 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
243 /* Postfach 11 05 52 */
244 /* D-64220 Darmstadt */
245 /* */
246 /*1+ C Procedure *************+****************************************/
247 /* */
248 /*+ Module : f_ut_setup_copy64 */
249 /* */
250 /*--------------------------------------------------------------------*/
251 /*+ CALLING : l_status=f_ut_setup_copy64(s_setup, s_setup_64_receiver) */
252 /*--------------------------------------------------------------------*/
253 /* */
254 /*+ PURPOSE : copy 64 bit setup structure to local setup */
255 /* */
256 /*+ ARGUMENTS : */
257 /*+ s_setup : pointer to s_setup
258  * s_setup_64_receiver : pointer to helper structure
259  * */
260 /*2+Implementation************+****************************************/
261 /*+ File name : f_ut_setup_copy64 */
262 /*+ Home direct.: /mbs/prod/src */
263 /*+ Version : 1.00 */
264 /*+ Author : J.Adamczewski-Musch */
265 /*+ Created : 6-Feb-2015 */
266 /*+ Object libr.: mbslib.a */
267 /*+ Updates : Date Purpose */
268 /*1- C Procedure *************+****************************************/
270 {
271  if(ps_setup == NULL || src == NULL) return -1;
272  ps_setup->bl_sbs__n_cr = src->bl_sbs__n_cr;
273  ps_setup->bl_sbs__n_trg_typ = src->bl_sbs__n_trg_typ;
274  ps_setup->bi_master=src->bi_master;
275  ps_setup->bl_no_crates=src->bl_no_crates;
276  ps_setup->bh_crate_nr=src->bh_crate_nr;
277  ps_setup->bl_ev_buf_len=src->bl_ev_buf_len;
278  ps_setup->bl_n_ev_buf=src->bl_n_ev_buf;
279  ps_setup->bl_n_stream=src->bl_n_stream;
280  ps_setup->bi_evt_typ_sy= src->bi_evt_typ_sy;
281  ps_setup->bi_evt_typ_asy=src->bi_evt_typ_asy;
282  ps_setup->bi_evt_subtyp_sy=src->bi_evt_subtyp_sy;
283  ps_setup->bi_evt_subtyp_asy=src->bi_evt_subtyp_asy;
284  ps_setup->h_se_control=src->h_se_control;
285  ps_setup->bh_rd_typ=src->bh_rd_typ;
286  ps_setup->bh_col_mode=src->bh_col_mode;
287  ps_setup->bl_loc_esone_base=src->bl_loc_esone_base;
288  ps_setup->bl_rem_esone_base=src->bl_rem_esone_base;
289  ps_setup->bl_esone_off=src->bl_esone_off;
290  ps_setup->bl_cvc_crr_off=src->bl_cvc_crr_off;
291  ps_setup->bl_cvc_csr_off=src->bl_cvc_csr_off;
292  ps_setup->bl_cvc_clb_off=src->bl_cvc_clb_off;
293  ps_setup->bl_se_meb_asy_len=src->bl_se_meb_asy_len;
294  ps_setup->bh_meb_asy_flg=src->bh_meb_asy_flg;
296  ps_setup->bl_ml_pipe_seg_len=src->bl_ml_pipe_seg_len;
297  ps_setup->bl_ml_pipe_len=src->bl_ml_pipe_len;
298  ps_setup->bl_n_col_retry=src->bl_n_col_retry;
299  ps_setup->bh_meb_trig_mode=src->bh_meb_trig_mode;
302  ps_setup->lp_cvc_irq=src->lp_cvc_irq;
303  ps_setup->bl_cvc_irq_len=src->bl_cvc_irq_len;
306  ps_setup->h_rd_tab_flg=src->h_rd_tab_flg;
307  ps_setup->bl_init_read_len=src->bl_init_read_len;
308  return 0;
309 }
310 
311 
312 
313 /*****************+***********+****************************************/
314 /* */
315 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
316 /* Postfach 11 05 52 */
317 /* D-64220 Darmstadt */
318 /* */
319 /*1+ C Procedure *************+****************************************/
320 /* */
321 /*+ Module : f_ut_setup_copy32 */
322 /* */
323 /*--------------------------------------------------------------------*/
324 /*+ CALLING : l_status=f_ut_setup_copy32(s_setup, s_setup_32_receiver) */
325 /*--------------------------------------------------------------------*/
326 /* */
327 /*+ PURPOSE : copy 32 bit setup structure to local setup */
328 /* */
329 /*+ ARGUMENTS : */
330 /*+ s_setup : pointer to s_setup
331  * s_setup_64_receiver : pointer to helper structure
332  * */
333 /*2+Implementation************+****************************************/
334 /*+ File name : f_ut_setup_copy64 */
335 /*+ Home direct.: /mbs/prod/src */
336 /*+ Version : 1.00 */
337 /*+ Author : J.Adamczewski-Musch */
338 /*+ Created : 6-Feb-2015 */
339 /*+ Object libr.: mbslib.a */
340 /*+ Updates : Date Purpose */
341 /*1- C Procedure *************+****************************************/
343 {
344  if(ps_setup == NULL || src == NULL) return -1;
345  ps_setup->bl_sbs__n_cr = src->bl_sbs__n_cr;
346  ps_setup->bl_sbs__n_trg_typ = src->bl_sbs__n_trg_typ;
347  ps_setup->bi_master=src->bi_master;
348  ps_setup->bl_no_crates=src->bl_no_crates;
349  ps_setup->bh_crate_nr=src->bh_crate_nr;
350  ps_setup->bl_ev_buf_len=src->bl_ev_buf_len;
351  ps_setup->bl_n_ev_buf=src->bl_n_ev_buf;
352  ps_setup->bl_n_stream=src->bl_n_stream;
353  ps_setup->bi_evt_typ_sy= src->bi_evt_typ_sy;
354  ps_setup->bi_evt_typ_asy=src->bi_evt_typ_asy;
355  ps_setup->bi_evt_subtyp_sy=src->bi_evt_subtyp_sy;
356  ps_setup->bi_evt_subtyp_asy=src->bi_evt_subtyp_asy;
357  ps_setup->h_se_control=src->h_se_control;
358  ps_setup->bh_rd_typ=src->bh_rd_typ;
359  ps_setup->bh_col_mode=src->bh_col_mode;
360  ps_setup->bl_loc_esone_base=src->bl_loc_esone_base;
361  ps_setup->bl_rem_esone_base=src->bl_rem_esone_base;
362  ps_setup->bl_esone_off=src->bl_esone_off;
363  ps_setup->bl_cvc_crr_off=src->bl_cvc_crr_off;
364  ps_setup->bl_cvc_csr_off=src->bl_cvc_csr_off;
365  ps_setup->bl_cvc_clb_off=src->bl_cvc_clb_off;
366  ps_setup->bl_se_meb_asy_len=src->bl_se_meb_asy_len;
367  ps_setup->bh_meb_asy_flg=src->bh_meb_asy_flg;
369  ps_setup->bl_ml_pipe_seg_len=src->bl_ml_pipe_seg_len;
370  ps_setup->bl_ml_pipe_len=src->bl_ml_pipe_len;
371  ps_setup->bl_n_col_retry=src->bl_n_col_retry;
372  ps_setup->bh_meb_trig_mode=src->bh_meb_trig_mode;
375  ps_setup->lp_cvc_irq=src->lp_cvc_irq;
376  ps_setup->bl_cvc_irq_len=src->bl_cvc_irq_len;
379  ps_setup->h_rd_tab_flg=src->h_rd_tab_flg;
380  ps_setup->bl_init_read_len=src->bl_init_read_len;
381  return 0;
382 }
383 
384 
385 
386 
387 /*****************+***********+****************************************/
388 /* */
389 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
390 /* Postfach 11 05 52 */
391 /* D-64220 Darmstadt */
392 /* */
393 /*1+ C Procedure *************+****************************************/
394 /* */
395 /*+ Module : f_ut_setup */
396 /* */
397 /*--------------------------------------------------------------------*/
398 /*+ CALLING : l_status=f_ut_setup(s_setup, s_setup, socket) */
399 /*--------------------------------------------------------------------*/
400 /* */
401 /*+ PURPOSE : Write s_setup to socket. */
402 /* */
403 /*+ ARGUMENTS : */
404 /*+ s_setup : pointer to s_setup */
405 /*+ s_setup : pointer to copy of s_setup */
406 /*+ socket : Tcp socket from accept */
407 /*2+Implementation************+****************************************/
408 /*+ File name : f_ut_status.c */
409 /*+ Home direct.: /mbs/prod/src */
410 /*+ Version : 2.01 */
411 /*+ Author : H.G.Essel */
412 /*+ Created : 14-Nov-1998 */
413 /*+ Object libr.: mbslib.a */
414 /*+ Updates : Date Purpose */
415 /*1- C Procedure *************+****************************************/
416 INTS4 f_ut_setup(s_setup *ps_setup, INTU4 *pl_o, INTS4 l_tcp)
417 {
418 INTS4 i,l,k,n=0,l_status;
419 INTU4 *pl_count,*pl_size;
420 
421 l_status = f_ut_setup_ini(ps_setup);
422 
423 /*printf("setup Send %d LW + ",ps_setup->l_fix_lw);*/
424 l_status = f_stc_write (ps_setup, ps_setup->l_fix_lw*4, l_tcp);
425 pl_count = pl_o++;
426 pl_size = pl_o++;
427 l = 0;
428 for(i=0; i<ps_setup->bl_sbs__n_cr; i++)
429 {
430  if(ps_setup->bh_rd_flg[i] != 0)
431  {
432  n=0;
433  l++;
434  *pl_o++ = i; n++;
435  *pl_o++ = (INTU4) ps_setup->lp_rem_mem_base[i]; n++;
436  *pl_o++ = (INTU4) ps_setup->bl_rem_mem_off[i]; n++;
437  *pl_o++ = (INTU4) ps_setup->bl_rem_mem_len[i]; n++;
438  *pl_o++ = (INTU4) ps_setup->lp_rem_cam_base[i]; n++;
439  *pl_o++ = (INTU4) ps_setup->bl_rem_cam_off[i]; n++;
440  *pl_o++ = (INTU4) ps_setup->bl_rem_cam_len[i]; n++;
441  *pl_o++ = (INTU4) ps_setup->lp_loc_mem_base[i]; n++;
442  *pl_o++ = (INTU4) ps_setup->bl_loc_mem_len[i]; n++;
443  *pl_o++ = (INTU4) ps_setup->lp_loc_pipe_base[i]; n++;
444  *pl_o++ = (INTU4) ps_setup->bl_pipe_off[i]; n++;
445  *pl_o++ = (INTU4) ps_setup->bl_pipe_seg_len[i]; n++;
446  *pl_o++ = (INTU4) ps_setup->bl_pipe_len[i]; n++;
447  *pl_o++ = (INTU4) ps_setup->bh_controller_id[i]; n++;
448  *pl_o++ = (INTU4) ps_setup->bh_sy_asy_flg[i]; n++;
449  *pl_o++ = (INTU4) ps_setup->bh_trig_stat_nr[i]; n++;
450  *pl_o++ = (INTU4) ps_setup->bl_trig_cvt[i]; n++;
451  *pl_o++ = (INTU4) ps_setup->bl_trig_fct[i]; n++;
452  *pl_o++ = (INTU4) ps_setup->i_se_typ[i]; n++;
453  *pl_o++ = (INTU4) ps_setup->i_se_subtyp[i]; n++;
454  *pl_o++ = (INTU4) ps_setup->i_se_procid[i]; n++;
455  *pl_o++ = (INTU4) ps_setup->bh_rd_flg[i]; n++;
456  *pl_o++ = (INTU4) ps_setup->bl_init_tab_off[i]; n++;
457  *pl_o++ = (INTU4) ps_setup->bi_init_tab_len[i]; n++;
458  for(k=0;k<ps_setup->bl_sbs__n_trg_typ;k++)
459  *pl_o++ = (INTU4) ps_setup->bl_max_se_len[i][k];
460  for(k=0;k<ps_setup->bl_sbs__n_trg_typ;k++)
461  *pl_o++ = (INTU4) ps_setup->bl_rd_tab_off[i][k];
462  for(k=0;k<ps_setup->bl_sbs__n_trg_typ;k++)
463  *pl_o++ = (INTU4) ps_setup->bi_rd_tab_len[i][k];
464  n = n + 3 * ps_setup->bl_sbs__n_trg_typ;
465  }
466 }
467 *pl_count=l;
468 *pl_size=n;
469 l = l * n + 2;
470 /*printf("%d \n",l);*/
471 l_status = f_stc_write (pl_count, l * 4, l_tcp);
472 return l_status;
473 }
474 
475 /*****************+***********+****************************************/
476 /* */
477 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
478 /* Postfach 11 05 52 */
479 /* D-64220 Darmstadt */
480 /* */
481 /*1+ C Procedure *************+****************************************/
482 /* */
483 /*+ Module : f_ut_setup_r */
484 /* */
485 /*--------------------------------------------------------------------*/
486 /*+ CALLING : l_status=f_ut_setup_r(s_setup, socket) */
487 /*--------------------------------------------------------------------*/
488 /* */
489 /*+ PURPOSE : Read s_setup from socket. */
490 /* */
491 /*+ ARGUMENTS : */
492 /*+ s_setup : pointer to s_setup */
493 /*+ socket : Tcp socket from connect */
494 /*2+Implementation************+****************************************/
495 /*+ File name : f_ut_status.c */
496 /*+ Home direct.: /mbs/prod/src */
497 /*+ Version : 2.01 */
498 /*+ Author : H.G.Essel */
499 /*+ Created : 14-Nov-1998 */
500 /*+ Object libr.: mbslib.a */
501 /*+ Updates : Date Purpose */
502 /*1- C Procedure *************+****************************************/
503 INTS4 f_ut_setup_r(s_setup *ps_setup, INTS4 l_tcp)
504 {
505 
506  /* TODO TODO JAM64 adjust different member length here for 64 bit senders
507  * Probably we need architecture independent structure for tcp communication?*/
508 
509 INTS4 l_swap=0;
510 INTS4 l_cmd;
511 INTS4 i,k,l_items,l_size,l_crate;
512 INTU4 *pl_b,*pl_o;
514 s_setup_64_receiver *ps_setup_64=0;
515 s_setup_32_receiver *ps_setup_32=0;
516 
517  memset(ps_setup,0,sizeof(s_setup));
518 l_cmd=2;
519 l_status = f_stc_write (&l_cmd,4,l_tcp); if (l_status != STC__SUCCESS) return(-1);
520 l_status = f_stc_read (&ps_setup->l_endian,16,l_tcp,-1); if (l_status != STC__SUCCESS) return(-1);
521 if(ps_setup->l_endian != 1) l_swap = 1;
522 if(l_swap == 1) l_status = f_swaplw((INTS4 *) &ps_setup->l_endian,4,NULL);
523 if((ps_setup->l_version != VERSION__SETUP) && (ps_setup->l_version != 1))
524 {
525  printf ("f_ut_setup_r sees setup version %d, current version is %d", ps_setup->l_version, VERSION__SETUP);
526  return -1; // correct for legacy MBS
527 }
528 
529 // JAM here decide if setup comes from 32 or 64 bit host:
530 if(ps_setup->l_fix_lw == 40)
531 {
532  // data from 32 bit machine. first use auxiliary structure:
533  ps_setup_32 = (s_setup_32_receiver*) malloc (sizeof( s_setup_32_receiver));
534  if (ps_setup_32 == NULL) {
535  printf ("f_ut_setup_r memory allocation error");
536  return -1;
537  }
538  l_status = f_stc_read (&ps_setup_32->bl_sbs__n_cr, (ps_setup->l_fix_lw-4)*4 , l_tcp,-1);
539  l_status = f_stc_read (&l_items,4 , l_tcp,-1);
540  l_status = f_stc_read (&l_size,4 , l_tcp,-1);
541  if(l_swap == 1) l_status = f_swaplw((INTS4 *) &ps_setup_32->bl_sbs__n_cr, (ps_setup->l_fix_lw-4),NULL);
542  if(l_swap == 1) l_status = f_swaplw(&l_items,1,NULL);
543  if(l_swap == 1) l_status = f_swaplw(&l_size,1,NULL);
544 
545  // copy values to actual local setup (which can be both 32 or 64 bit, it should work):
546  f_ut_setup_copy32(ps_setup,ps_setup_32);
547  free(ps_setup_32);
548 }
549 else if(ps_setup->l_fix_lw == 46)
550 {
551  // 64 bit with mbs >v6.3. use auxiliary structure:
552  ps_setup_64 = (s_setup_64_receiver*) malloc (sizeof( s_setup_64_receiver));
553  if (ps_setup_64 == NULL) {
554  printf ("f_ut_setup_r memory allocation error");
555  return -1;
556  }
557 
558  l_status = f_stc_read (&ps_setup_64->bl_sbs__n_cr, (ps_setup->l_fix_lw-4)*4 , l_tcp,-1);
559  l_status = f_stc_read (&l_items,4 , l_tcp,-1);
560  l_status = f_stc_read (&l_size,4 , l_tcp,-1);
561  if(l_swap == 1) l_status = f_swaplw((INTS4 *) &ps_setup_64->bl_sbs__n_cr, (ps_setup->l_fix_lw-4),NULL);
562  if(l_swap == 1) l_status = f_swaplw(&l_items,1,NULL);
563  if(l_swap == 1) l_status = f_swaplw(&l_size,1,NULL);
564 
565  // copy values to actual local setup (which can be both 32 or 64 bit, it should work):
566  f_ut_setup_copy64(ps_setup,ps_setup_64);
567  free(ps_setup_64);
568 }
569 else
570 {
571  printf("f_ut_setup_r finds non consistent l_fix_lw=%d. do not read further!", ps_setup->l_fix_lw);
572  return -1;
573 }
574 
575 // the rest does not depend on architecture, each word is transferred separately with 4 bytes
576 // (losing some 64 bit addresses, but anyway now TODO adjust sending of data too):
577 
578 pl_b = (INTU4 *) malloc(l_size * l_items * 4);
579  l_status = f_stc_read (pl_b,l_size * l_items * 4, l_tcp,-1);
580 if(l_swap == 1) l_status = f_swaplw((INTS4 *) pl_b,l_size * l_items,NULL);
581 
582 pl_o = pl_b;
583 for(i=0;i<l_items;i++)
584 {
585  l_crate = *pl_o++;
586  ps_setup->lp_rem_mem_base[l_crate] = *pl_o++;
587  ps_setup->bl_rem_mem_off[l_crate] = *pl_o++;
588  ps_setup->bl_rem_mem_len[l_crate] = *pl_o++;
589  ps_setup->lp_rem_cam_base[l_crate] = *pl_o++;
590  ps_setup->bl_rem_cam_off[l_crate] = *pl_o++;
591  ps_setup->bl_rem_cam_len[l_crate] = *pl_o++;
592  ps_setup->lp_loc_mem_base[l_crate] = *pl_o++;
593  ps_setup->bl_loc_mem_len[l_crate] = *pl_o++;
594  ps_setup->lp_loc_pipe_base[l_crate] = *pl_o++;
595  ps_setup->bl_pipe_off[l_crate] = *pl_o++;
596  ps_setup->bl_pipe_seg_len[l_crate] = *pl_o++;
597  ps_setup->bl_pipe_len[l_crate] = *pl_o++;
598  ps_setup->bh_controller_id[l_crate] = *pl_o++;
599  ps_setup->bh_sy_asy_flg[l_crate] = *pl_o++;
600  ps_setup->bh_trig_stat_nr[l_crate] = *pl_o++;
601  ps_setup->bl_trig_cvt[l_crate] = *pl_o++;
602  ps_setup->bl_trig_fct[l_crate] = *pl_o++;
603  ps_setup->i_se_typ[l_crate] = *pl_o++;
604  ps_setup->i_se_subtyp[l_crate] = *pl_o++;
605  ps_setup->i_se_procid[l_crate] = *pl_o++;
606  ps_setup->bh_rd_flg[l_crate] = *pl_o++;
607  ps_setup->bl_init_tab_off[l_crate] = *pl_o++;
608  ps_setup->bi_init_tab_len[l_crate] = *pl_o++;
609  for(k=0;k<ps_setup->bl_sbs__n_trg_typ;k++) ps_setup->bl_max_se_len[l_crate][k] = *pl_o++;
610  for(k=0;k<ps_setup->bl_sbs__n_trg_typ;k++) ps_setup->bl_rd_tab_off[l_crate][k] = *pl_o++;
611  for(k=0;k<ps_setup->bl_sbs__n_trg_typ;k++) ps_setup->bi_rd_tab_len[l_crate][k] = *pl_o++;
612 } /* setup */
613 
614 free(pl_b);
615 return 0;
616 }
617 
618 /*****************+***********+****************************************/
619 /* */
620 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
621 /* Postfach 11 05 52 */
622 /* D-64220 Darmstadt */
623 /* */
624 /*1+ C Procedure *************+****************************************/
625 /* */
626 /*+ Module : f_ut_set_ml_ini */
627 /* */
628 /*--------------------------------------------------------------------*/
629 /*+ CALLING : l_status=f_ut_set_ml_ini(s_set_ml) */
630 /*--------------------------------------------------------------------*/
631 /* */
632 /*+ PURPOSE : Initialize s_set_ml. */
633 /* */
634 /*+ ARGUMENTS : */
635 /*+ s_set_ml : pointer to s_set_ml */
636 /*2+Implementation************+****************************************/
637 /*+ File name : f_ut_status.c */
638 /*+ Home direct.: /mbs/prod/src */
639 /*+ Version : 2.01 */
640 /*+ Author : H.G.Essel */
641 /*+ Created : 14-Nov-1998 */
642 /*+ Object libr.: mbslib.a */
643 /*+ Updates : Date Purpose */
644 /*1- C Procedure *************+****************************************/
646 {
647 if(ps_set_ml == NULL) return -1;
648 ps_set_ml->l_endian = 1;
649 ps_set_ml->l_version = VERSION__SET_ML;
650 ps_set_ml->l_set_ml_lw = sizeof(s_set_ml)/4;
651 ps_set_ml->l_fix_lw = ((long)&ps_set_ml->c_rd_hostname[0][0]-(long)ps_set_ml)/4;
652 ps_set_ml->l_ml__n_rd_pipe = ML__N_RD_PIPE;
653 ps_set_ml->l_short_len = 16;
654 ps_set_ml->l_long_len = 128;
655 return 0;
656 }
657 
658 /*****************+***********+****************************************/
659 /* */
660 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
661 /* Postfach 11 05 52 */
662 /* D-64220 Darmstadt */
663 /* */
664 /*1+ C Procedure *************+****************************************/
665 /* */
666 /*+ Module : f_ut_set_ml */
667 /* */
668 /*--------------------------------------------------------------------*/
669 /*+ CALLING : l_status=f_ut_set_ml(s_set_ml, s_set_ml, socket) */
670 /*--------------------------------------------------------------------*/
671 /* */
672 /*+ PURPOSE : Write s_set_ml to socket. */
673 /* */
674 /*+ ARGUMENTS : */
675 /*+ s_set_ml : pointer to s_set_ml */
676 /*+ s_set_ml : pointer to copy of s_set_ml */
677 /*+ socket : Tcp socket from accept */
678 /*2+Implementation************+****************************************/
679 /*+ File name : f_ut_status.c */
680 /*+ Home direct.: /mbs/prod/src */
681 /*+ Version : 2.01 */
682 /*+ Author : H.G.Essel */
683 /*+ Created : 14-Nov-1998 */
684 /*+ Object libr.: mbslib.a */
685 /*+ Updates : Date Purpose */
686 /*1- C Procedure *************+****************************************/
687 INTS4 f_ut_set_ml(s_set_ml *ps_set_ml, INTU4 *pl_o, INTS4 l_tcp)
688 {
689 INTS4 i,l,k,l_status;
690 INTU4 *pl_count,*pl_s;
691 
692 l_status = f_ut_set_ml_ini(ps_set_ml);
693 
694 pl_count = pl_o;
695 /*printf("MLset Send %d LW + ",ps_set_ml->l_fix_lw);*/
696 l_status = f_stc_write (ps_set_ml, ps_set_ml->l_fix_lw*4, l_tcp);
697 l = 0;
698 for(i=0; i<ps_set_ml->l_n_rd_pipe; i++)
699 {
700  l++;
701  pl_s = (INTU4 *)&ps_set_ml->c_rd_hostname[i];
702  for(k=0;k<ps_set_ml->l_short_len/4;k++)*pl_o++ = *pl_s++;
703  pl_s = (INTU4 *)&ps_set_ml->c_sbs_setup_path[i];
704  for(k=0;k<ps_set_ml->l_long_len/4;k++)*pl_o++ = *pl_s++;
705 }
706 l = l * (ps_set_ml->l_short_len + ps_set_ml->l_long_len);
707 /*printf("%d \n",l);*/
708 l_status = f_stc_write (pl_count, l , l_tcp);
709 return l_status;
710 }
711 
712 /*****************+***********+****************************************/
713 /* */
714 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
715 /* Postfach 11 05 52 */
716 /* D-64220 Darmstadt */
717 /* */
718 /*1+ C Procedure *************+****************************************/
719 /* */
720 /*+ Module : f_ut_set_ml_r */
721 /* */
722 /*--------------------------------------------------------------------*/
723 /*+ CALLING : l_status=f_ut_set_ml_r(s_set_ml, socket) */
724 /*--------------------------------------------------------------------*/
725 /* */
726 /*+ PURPOSE : Read s_set_ml from socket. */
727 /* */
728 /*+ ARGUMENTS : */
729 /*+ s_set_ml : pointer to s_set_ml */
730 /*+ socket : Tcp socket from connect */
731 /*2+Implementation************+****************************************/
732 /*+ File name : f_ut_status.c */
733 /*+ Home direct.: /mbs/prod/src */
734 /*+ Version : 2.01 */
735 /*+ Author : H.G.Essel */
736 /*+ Created : 14-Nov-1998 */
737 /*+ Object libr.: mbslib.a */
738 /*+ Updates : Date Purpose */
739 /*1- C Procedure *************+****************************************/
740 INTS4 f_ut_set_ml_r(s_set_ml *ps_set_ml, INTS4 l_tcp)
741 {
742 INTS4 l_swap=0;
743 INTS4 l_cmd;
744 INTS4 i;
746 
747 l_cmd=3;
748 l_status = f_stc_write (&l_cmd,4, l_tcp); if (l_status != STC__SUCCESS) return(-1);
749 l_status = f_stc_read (&ps_set_ml->l_endian,16,l_tcp,-1); if (l_status != STC__SUCCESS) return(-1);
750 if(ps_set_ml->l_endian != 1) l_swap = 1;
751 if(l_swap == 1) l_status = f_swaplw((INTS4 *)&ps_set_ml->l_endian,4,NULL);
752 if( (ps_set_ml->l_version != VERSION__SET_ML) && (ps_set_ml->l_version != 1)) return -1; // correct legacy MBS version
753  l_status = f_stc_read (&ps_set_ml->l_ml__n_rd_pipe,(ps_set_ml->l_fix_lw-4)*4 , l_tcp,-1);
754 if(l_swap == 1) l_status = f_swaplw((INTS4 *)&ps_set_ml->l_ml__n_rd_pipe,(ps_set_ml->l_fix_lw-4)-4,NULL); /* last 16 byte are char */
755 for(i=0;i<ps_set_ml->l_n_rd_pipe;i++)
756 {
757  l_status = f_stc_read (&ps_set_ml->c_rd_hostname[i], ps_set_ml->l_short_len, l_tcp,-1);
758  l_status = f_stc_read (&ps_set_ml->c_sbs_setup_path[i],ps_set_ml->l_long_len, l_tcp,-1);
759 }
760 return 0;
761 }
762 /*****************+***********+****************************************/
763 /* */
764 /* GSI, Gesellschaft fuer Schwerionenforschung mbH */
765 /* Postfach 11 05 52 */
766 /* D-64220 Darmstadt */
767 /* */
768 /*1+ C Procedure *************+****************************************/
769 /* */
770 /*+ Module : f_ut_set_mo_ini */
771 /* */
772 /*--------------------------------------------------------------------*/
773 /*+ CALLING : l_status=f_ut_set_mo_ini(s_set_mo) */
774 /*--------------------------------------------------------------------*/
775 /* */
776 /*+ PURPOSE : Initialize s_set_mo. */
777 /* */
778 /*+ ARGUMENTS : */
779 /*+ s_set_mo : pointer to s_set_mo */
780 /*2+Implementation************+****************************************/
781 /*+ File name : f_ut_status.c */
782 /*+ Home direct.: /mbs/prod/src */
783 /*+ Version : 2.01 */
784 /*+ Author : H.G.Essel */
785 /*+ Created : 24-Oct-2005 */
786 /*+ Object libr.: mbslib.a */
787 /*+ Updates : Date Purpose */
788 /*1- C Procedure *************+****************************************/
790 {
791  INTS4 i;
792 if(ps_set_mo == NULL) return -1;
793 ps_set_mo->l_endian = 1;
794 ps_set_mo->l_version = VERSION__SET_MO;
795 ps_set_mo->l_set_mo_lw = sizeof(s_set_mo)/4;
796 ps_set_mo->l_swap_lw = ((long)&ps_set_mo->c_ds_hostname[0][0]-(long)ps_set_mo)/4;
797 ps_set_mo->l_max_nodes = MO__N_NODE;
798 ps_set_mo->l_no_senders = 0;
799 ps_set_mo->l_no_receivers = 0;
800  for(i=0;i<MO__N_NODE;i++)if(strlen(&ps_set_mo->c_ds_hostname[i][0]) > 0) ps_set_mo->l_no_senders++;
801  for(i=0;i<MO__N_NODE;i++)if(strlen(&ps_set_mo->c_dr_hostname[i][0]) > 0) ps_set_mo->l_no_receivers++;
802 return 0;
803 }
804 /*1+ C Procedure *************+****************************************/
805 /* */
806 /*+ Module : f_ut_set_mo */
807 /* */
808 /*--------------------------------------------------------------------*/
809 /*+ CALLING : l_status=f_ut_set_mo(s_set_mo, socket) */
810 /*--------------------------------------------------------------------*/
811 /* */
812 /*+ PURPOSE : Send s_set_mo to socket. */
813 /* */
814 /*+ ARGUMENTS : */
815 /*+ s_daqst : pointer to s_set_mo */
816 /*+ socket : Tcp socket from accept */
817 /*2+Implementation************+****************************************/
818 /*+ File name : f_ut_status.c */
819 /*+ Home direct.: /mbs/prod/src */
820 /*+ Version : 2.01 */
821 /*+ Author : H.G.Essel */
822 /*+ Created : 25.Oct.2005 */
823 /*+ Object libr.: mbslib.a */
824 /*+ Updates : Date Purpose */
825 /*1- C Procedure *************+****************************************/
826 INTS4 f_ut_set_mo(s_set_mo *ps_set_mo, INTS4 l_tcp)
827 {
828  INTS4 l_status;
829 
830  l_status = f_ut_set_mo_ini(ps_set_mo);
831  if (l_status != 0)
832  return l_status;
833  l_status = f_stc_write(ps_set_mo, ps_set_mo->l_set_mo_lw * 4, l_tcp);
834  return l_status;
835 }
836 
837 
838 /*1+ C Procedure *************+****************************************/
839 /* */
840 /*+ Module : f_ut_set_mo_r */
841 /* */
842 /*--------------------------------------------------------------------*/
843 /*+ CALLING : l_status=f_ut_set_mo_r(s_set_mo, socket) */
844 /*--------------------------------------------------------------------*/
845 /* */
846 /*+ PURPOSE : Read s_set_mo from socket. */
847 /* */
848 /*+ ARGUMENTS : */
849 /*+ s_set_mo : pointer to s_set_mo */
850 /*+ socket : Tcp socket from connect */
851 /*2+Implementation************+****************************************/
852 /*+ File name : f_ut_status.c */
853 /*+ Home direct.: /mbs/prod/src */
854 /*+ Version : 2.01 */
855 /*+ Author : H.G.Essel */
856 /*+ Created : 25.Oct.2005 */
857 /*+ Object libr.: mbslib.a */
858 /*+ Updates : Date Purpose */
859 /*1- C Procedure *************+****************************************/
860 INTS4 f_ut_set_mo_r(s_set_mo *ps_set_mo, INTS4 l_tcp)
861 {
862 INTS4 l_swap=0;
863 INTS4 l_cmd;
865 
866 l_cmd=4;
867 l_status = f_stc_write (&l_cmd,4, l_tcp); if (l_status != STC__SUCCESS) return(-1);
868 l_status = f_stc_read (ps_set_mo,16,l_tcp,-1); if (l_status != STC__SUCCESS) return(-1);
869 if(ps_set_mo->l_endian != 1) l_swap=1;
870 if(l_swap) l_status = f_swaplw((INTS4*)ps_set_mo,4,NULL);
871 
872 l_status = f_stc_read (&ps_set_mo->l_max_nodes,(ps_set_mo->l_set_mo_lw-4)*4, l_tcp,-1);
873 if(l_swap) l_status = f_swaplw((INTS4*)&ps_set_mo->l_max_nodes,ps_set_mo->l_swap_lw-4,NULL);
874 
875 return 0;
876 }
INTU4 bh_crate_nr
Definition: s_setup.h:51
INTU4 bl_n_col_retry
Definition: s_setup.h:537
INTU4 bl_sbs__n_trg_typ
Definition: s_setup.h:470
ADDRS lp_rem_mem_base[SBS__N_CR]
Definition: s_setup.h:168
#define VERSION__SETUP
Definition: f_ut_status.c:37
INTU4 bh_special_meb_trig_type
Definition: s_setup.h:557
INTU4 l_fix_lw
Definition: s_set_ml.h:44
INTU4 l_version
Definition: s_set_ml.h:42
INTU4 bl_cvc_crr_off
Definition: s_setup.h:94
INTS4 f_ut_status(s_daqst *ps_daqst, INTS4 l_tcp)
Definition: f_ut_status.c:112
INTU4 bl_se_meb_asy_len
Definition: s_setup.h:521
INTU4 bh_controller_id[SBS__N_CR]
Definition: s_setup.h:210
INTS4 f_stc_read(void *p_buffer, INTS4 i_buflen, INTS4 i_channel, INTS4 i_timeout)
Definition: f_stccomm.c:134
ADDRS bl_rem_mem_len[SBS__N_CR]
Definition: s_setup.h:175
CHARS c_user[SBS__STR_LEN_64]
Definition: s_daqst.h:147
int f_swaplw(int *pp_source, int l_len, int *pp_dest)
Definition: f_swaplw.c:69
INTU4 l_fix_lw
Definition: s_setup.h:44
CHARS c_pname[SYS__N_MAX_PROCS][SBS__STR_LEN_64]
Definition: s_daqst.h:165
INTU4 bl_rem_esone_base
Definition: s_setup.h:309
INTU4 bi_master
Definition: s_setup.h:48
INTU4 bi_evt_subtyp_asy
Definition: s_setup.h:486
ADDRS bl_special_meb_trig_base
Definition: s_setup.h:138
#define SBS__N_TRG_TYP
Definition: sbs_def.h:28
INTU4 bl_sbs__n_trg_typ
Definition: s_setup.h:264
INTS4 f_ut_setup(s_setup *ps_setup, INTU4 *pl_o, INTS4 l_tcp)
Definition: f_ut_status.c:416
CHARS c_rd_hostname[ML__N_RD_PIPE][16]
Definition: s_set_ml.h:99
INTU4 bl_special_meb_trig_base
Definition: s_setup.h:352
INTS4 f_ut_set_mo(s_set_mo *ps_set_mo, INTS4 l_tcp)
Definition: f_ut_status.c:826
INTU4 bl_no_crates
Definition: s_setup.h:50
ADDRS bl_rem_cam_off[SBS__N_CR]
Definition: s_setup.h:183
INTU4 bl_trig_fct[SBS__N_CR]
Definition: s_setup.h:222
INTU4 bi_evt_subtyp_asy
Definition: s_setup.h:62
INTS4 f_ut_status_r(s_daqst *ps_daqst, INTS4 l_tcp)
Definition: f_ut_status.c:150
INTU4 bh_meb_asy_flg
Definition: s_setup.h:523
INTS4 f_stc_write(void *p_buffer, INTS4 i_buflen, INTS4 i_channel)
Definition: f_stccomm.c:339
INTU4 l_no_senders
Definition: s_set_mo.h:34
INTU4 bl_ml_pipe_len
Definition: s_setup.h:534
INTU4 bh_meb_trig_mode
Definition: s_setup.h:116
INTU4 bl_se_meb_asy_len
Definition: s_setup.h:315
CHARS c_ds_hostname[MO__N_NODE][16]
Definition: s_set_mo.h:104
INTU4 l_set_ml_lw
Definition: s_set_ml.h:43
INTU4 bl_init_read_len
Definition: s_setup.h:373
ADDRS bl_loc_mem_len[SBS__N_CR]
Definition: s_setup.h:192
INTU4 bl_cvc_irq_source_off
Definition: s_setup.h:363
INTU4 bh_col_mode
Definition: s_setup.h:70
INTU4 bl_n_ev_buf
Definition: s_setup.h:56
INTU4 l_long_len
Definition: s_set_ml.h:47
INTS4 f_ut_set_mo_r(s_set_mo *ps_set_mo, INTS4 l_tcp)
Definition: f_ut_status.c:860
INTU4 l_sbs__n_trg_typ
Definition: s_daqst.h:48
INTU4 bh_meb_asy_flg
Definition: s_setup.h:99
INTU4 bl_ml_pipe_seg_len
Definition: s_setup.h:322
INTU4 bl_se_meb_asy_len
Definition: s_setup.h:97
INTS4 i_se_subtyp[SBS__N_CR]
Definition: s_setup.h:224
INTS4 h_rd_tab_flg
Definition: s_setup.h:156
INTU4 bh_trig_stat_nr[SBS__N_CR]
Definition: s_setup.h:220
INTU4 l_swap_lw
Definition: s_set_mo.h:32
INTU4 bl_cvc_irq_mask_off
Definition: s_setup.h:364
INTU4 bl_cvc_csr_off
Definition: s_setup.h:95
int l
Definition: f_mbs_status.c:31
INTU4 bi_rd_tab_len[SBS__N_CR][SBS__N_TRG_TYP]
Definition: s_setup.h:245
#define SYS__N_MAX_PROCS
Definition: sys_def.h:31
INTS4 f_ut_set_mo_ini(s_set_mo *ps_set_mo)
Definition: f_ut_status.c:789
CHARS c_dr_hostname[MO__N_NODE][16]
Definition: s_set_mo.h:106
INTS4 f_ut_setup_copy64(s_setup *ps_setup, s_setup_64_receiver *src)
Definition: f_ut_status.c:269
INTU4 l_version
Definition: s_set_mo.h:30
ADDRS bl_ml_pipe_seg_len
Definition: s_setup.h:106
INTU4 bl_cvc_irq_len
Definition: s_setup.h:575
INTU4 bh_meb_trig_mode
Definition: s_setup.h:540
INTS4 f_ut_set_ml_r(s_set_ml *ps_set_ml, INTS4 l_tcp)
Definition: f_ut_status.c:740
INTU4 l_daqst_lw
Definition: s_daqst.h:44
INTU4 bi_evt_typ_asy
Definition: s_setup.h:484
INTU4 bl_ml_pipe_len
Definition: s_setup.h:110
unsigned int INTU4
Definition: typedefs.h:29
INTU4 l_endian
Definition: s_set_mo.h:29
INTU4 bl_n_col_retry
Definition: s_setup.h:328
INTU4 l_no_receivers
Definition: s_set_mo.h:35
#define STC__SUCCESS
Definition: f_stccomm.h:369
#define SBS__STR_LEN_64
Definition: sbs_def.h:24
INTU4 bl_esone_off
Definition: s_setup.h:93
ADDRS bl_pipe_seg_len[SBS__N_CR]
Definition: s_setup.h:206
ADDRS lp_loc_mem_base[SBS__N_CR]
Definition: s_setup.h:189
int l_status
Definition: f_evcli.c:169
#define ML__N_RD_PIPE
Definition: ml_def.h:22
int INTS4
Definition: typedefs.h:28
INTU4 bl_ml_pipe_len
Definition: s_setup.h:325
ADDRS bl_pipe_off[SBS__N_CR]
Definition: s_setup.h:202
INTU4 bl_struc_len
Definition: s_setup.h:43
INTU4 bh_daqst_initalized
Definition: s_daqst.h:49
INTU4 bl_cvc_clb_off
Definition: s_setup.h:520
INTS4 f_ut_set_ml_ini(s_set_ml *ps_set_ml)
Definition: f_ut_status.c:645
INTU4 bl_init_tab_off[SBS__N_CR]
Definition: s_setup.h:231
INTU4 l_sys__n_max_procs
Definition: s_daqst.h:46
INTU4 bl_ml_pipe_base_addr
Definition: s_setup.h:319
INTS4 f_ut_setup_ini(s_setup *ps_setup)
Definition: f_ut_status.c:226
INTU4 bl_cvc_csr_off
Definition: s_setup.h:519
#define MO__N_NODE
Definition: mo_def.h:30
INTS4 l_n_rd_pipe
Definition: s_set_ml.h:49
INTU4 bi_evt_typ_asy
Definition: s_setup.h:60
CHARS c_out_chan[SBS__STR_LEN_64]
Definition: s_daqst.h:163
ADDRS lp_loc_pipe_base[SBS__N_CR]
Definition: s_setup.h:199
INTU4 bl_cvc_irq_mask_off
Definition: s_setup.h:153
INTU4 bl_n_stream
Definition: s_setup.h:57
INTS4 f_ut_setup_copy32(s_setup *ps_setup, s_setup_32_receiver *src)
Definition: f_ut_status.c:342
ADDR64 bl_ml_pipe_base_addr
Definition: s_setup.h:526
#define SBS__N_CR
Definition: sbs_def.h:27
INTU4 bh_sy_asy_flg[SBS__N_CR]
Definition: s_setup.h:214
INTU4 bh_special_meb_trig_type
Definition: s_setup.h:348
#define VERSION__SET_MO
Definition: f_ut_status.c:39
ADDRS bl_rem_mem_off[SBS__N_CR]
Definition: s_setup.h:172
ADDRS bl_ml_pipe_base_addr
Definition: s_setup.h:102
INTU4 bl_n_col_retry
Definition: s_setup.h:113
#define VERSION__SET_ML
Definition: f_ut_status.c:38
INTU4 bl_cvc_irq_len
Definition: s_setup.h:362
INTU4 bl_cvc_irq_source_off
Definition: s_setup.h:152
INTS4 i_se_procid[SBS__N_CR]
Definition: s_setup.h:225
INTU4 bl_loc_esone_base
Definition: s_setup.h:307
INTU4 bl_init_read_len
Definition: s_setup.h:586
INTU4 l_version
Definition: s_setup.h:42
INTU4 bl_sbs__n_trg_typ
Definition: s_setup.h:46
INTU4 bi_evt_subtyp_asy
Definition: s_setup.h:280
INTU4 bl_cvc_clb_off
Definition: s_setup.h:96
INTU4 bl_rd_tab_off[SBS__N_CR][SBS__N_TRG_TYP]
Definition: s_setup.h:241
INTU4 bi_evt_subtyp_sy
Definition: s_setup.h:279
INTU4 bi_evt_subtyp_sy
Definition: s_setup.h:61
INTU4 bh_running[SYS__N_MAX_PROCS]
Definition: s_daqst.h:103
INTU4 l_short_len
Definition: s_set_ml.h:46
INTU4 l_endian
Definition: s_daqst.h:42
INTU4 l_endian
Definition: s_set_ml.h:41
INTU4 bl_ev_buf_len
Definition: s_setup.h:55
INTU4 bh_meb_trig_mode
Definition: s_setup.h:331
INTU4 bl_rem_cam_len[SBS__N_CR]
Definition: s_setup.h:186
INTU4 bl_max_se_len[SBS__N_CR][SBS__N_TRG_TYP]
Definition: s_setup.h:239
INTU4 l_ml__n_rd_pipe
Definition: s_set_ml.h:45
ADDRS bl_loc_esone_base
Definition: s_setup.h:89
INTU4 l_version
Definition: s_daqst.h:43
INTU4 bi_evt_subtyp_sy
Definition: s_setup.h:485
INTU4 bi_evt_typ_sy
Definition: s_setup.h:59
INTU4 bi_evt_typ_asy
Definition: s_setup.h:278
INTS4 f_ut_setup_r(s_setup *ps_setup, INTS4 l_tcp)
Definition: f_ut_status.c:503
INTS4 h_se_control
Definition: s_setup.h:63
INTU4 bh_meb_asy_flg
Definition: s_setup.h:317
INTU4 bl_cvc_irq_len
Definition: s_setup.h:151
CHARS c_sbs_setup_path[ML__N_RD_PIPE][128]
Definition: s_set_ml.h:102
INTU4 l_max_nodes
Definition: s_set_mo.h:33
INTS4 f_ut_status_ini(s_daqst *ps_daqst)
Definition: f_ut_status.c:67
INTU4 bi_init_tab_len[SBS__N_CR]
Definition: s_setup.h:235
ADDR64 bl_rem_esone_base
Definition: s_setup.h:515
INTU4 l_endian
Definition: s_setup.h:41
INTU4 l_fix_lw
Definition: s_daqst.h:45
INTU4 bl_cvc_clb_off
Definition: s_setup.h:314
INTU4 lp_cvc_irq
Definition: s_setup.h:150
INTU4 bl_cvc_crr_off
Definition: s_setup.h:518
INTU4 bl_cvc_crr_off
Definition: s_setup.h:312
INTU4 l_procs_run
Definition: s_daqst.h:52
ADDR64 bl_loc_esone_base
Definition: s_setup.h:513
INTU4 bl_init_read_len
Definition: s_setup.h:162
INTS4 i_se_typ[SBS__N_CR]
Definition: s_setup.h:223
INTU4 bl_sbs__n_cr
Definition: s_setup.h:45
ADDRS bl_rem_esone_base
Definition: s_setup.h:91
INTU4 bh_rd_flg[SBS__N_CR]
Definition: s_setup.h:227
INTS4 f_ut_set_ml(s_set_ml *ps_set_ml, INTU4 *pl_o, INTS4 l_tcp)
Definition: f_ut_status.c:687
INTU4 l_set_mo_lw
Definition: s_set_mo.h:31
#define VERSION__DAQST
Definition: f_ut_status.c:36
INTU4 bl_cvc_csr_off
Definition: s_setup.h:313
ADDR64 bl_ml_pipe_seg_len
Definition: s_setup.h:530
INTU4 bl_cvc_irq_mask_off
Definition: s_setup.h:577
INTU4 bl_trig_cvt[SBS__N_CR]
Definition: s_setup.h:221
INTU4 bh_rd_typ
Definition: s_setup.h:65
ADDRS lp_rem_cam_base[SBS__N_CR]
Definition: s_setup.h:181
ADDR64 bl_special_meb_trig_base
Definition: s_setup.h:562
INTU4 bl_cvc_irq_source_off
Definition: s_setup.h:576
INTU4 bl_pipe_len[SBS__N_CR]
Definition: s_setup.h:209
INTU4 l_sbs__str_len_64
Definition: s_daqst.h:47
INTU4 bh_special_meb_trig_type
Definition: s_setup.h:133