GSI Object Oriented Online Offline (Go4) GO4-6.4.0
Loading...
Searching...
No Matches
f_ut_status.c
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// 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 = ((ADDRS)&ps_daqst->c_pname[0][0]-(ADDRS)ps_daqst)/4;
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 *************+****************************************/
113{
115
116l = 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);*/
118l_status = f_stc_write (ps_daqst, l, l_tcp);
119return 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 *************+****************************************/
151{
152 INTS4 l_swap=0, len_64, n_trg, max_proc;
153 INTS4 l_cmd;
154 INTS4 k;
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 and MBS v70
186 if((ps_daqst->l_version == 51) || (ps_daqst->l_version == 62) || (ps_daqst->l_version == 63) || (ps_daqst->l_version == 70)|| (ps_daqst->l_version == 71))
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{
228if(ps_setup == NULL) return -1;
229ps_setup->l_endian = 1;
230ps_setup->l_version = VERSION__SETUP;
231ps_setup->bl_struc_len = sizeof(s_setup)/4;
232ps_setup->l_fix_lw = ((ADDRS)&ps_setup->lp_rem_mem_base[0]-(ADDRS)ps_setup)/4;
233ps_setup->bl_sbs__n_cr = SBS__N_CR;
235return 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;
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;
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;
294 ps_setup->bh_meb_asy_flg=src->bh_meb_asy_flg;
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;
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;
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;
367 ps_setup->bh_meb_asy_flg=src->bh_meb_asy_flg;
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 *************+****************************************/
416INTS4 f_ut_setup(s_setup *ps_setup, INTU4 *pl_o, INTS4 l_tcp)
417{
418INTS4 i,l,k,n=0,l_status;
419INTU4 *pl_count,*pl_size;
420
421l_status = f_ut_setup_ini(ps_setup);
422
423/*printf("setup Send %d LW + ",ps_setup->l_fix_lw);*/
424l_status = f_stc_write (ps_setup, ps_setup->l_fix_lw*4, l_tcp);
425pl_count = pl_o++;
426pl_size = pl_o++;
427l = 0;
428for(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;
469l = l * n + 2;
470/*printf("%d \n",l);*/
471l_status = f_stc_write (pl_count, l * 4, l_tcp);
472return 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 *************+****************************************/
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
509INTS4 l_swap=0;
510INTS4 l_cmd;
511INTS4 i,k,l_items,l_size,l_crate;
512INTU4 *pl_b,*pl_o;
514s_setup_64_receiver *ps_setup_64=0;
515s_setup_32_receiver *ps_setup_32=0;
516
517 memset(ps_setup,0,sizeof(s_setup));
518l_cmd=2;
519l_status = f_stc_write (&l_cmd,4,l_tcp); if (l_status != STC__SUCCESS) return(-1);
520l_status = f_stc_read (&ps_setup->l_endian,16,l_tcp,-1); if (l_status != STC__SUCCESS) return(-1);
521if(ps_setup->l_endian != 1) l_swap = 1;
522if(l_swap == 1) l_status = f_swaplw((INTS4 *) &ps_setup->l_endian,4,NULL);
523if((ps_setup->l_version < VERSION__SETUP) && (ps_setup->l_version != 1))
524{
525 printf ("f_ut_setup_r sees setup version %d, minimum 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:
530if(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}
549else 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}
569else
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
578pl_b = (INTU4 *) malloc(l_size * l_items * 4);
579 l_status = f_stc_read (pl_b,l_size * l_items * 4, l_tcp,-1);
580if(l_swap == 1) l_status = f_swaplw((INTS4 *) pl_b,l_size * l_items,NULL);
581
582pl_o = pl_b;
583for(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
614free(pl_b);
615return 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{
647if(ps_set_ml == NULL) return -1;
648ps_set_ml->l_endian = 1;
649ps_set_ml->l_version = VERSION__SET_ML;
650ps_set_ml->l_set_ml_lw = sizeof(s_set_ml)/4;
651ps_set_ml->l_fix_lw = ((ADDRS)&ps_set_ml->c_rd_hostname[0][0]-(ADDRS)ps_set_ml)/4;
652ps_set_ml->l_ml__n_rd_pipe = ML__N_RD_PIPE;
653ps_set_ml->l_short_len = 16;
654ps_set_ml->l_long_len = 128;
655return 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 *************+****************************************/
687INTS4 f_ut_set_ml(s_set_ml *ps_set_ml, INTU4 *pl_o, INTS4 l_tcp)
688{
689INTS4 i,l,k,l_status;
690INTU4 *pl_count,*pl_s;
691
692l_status = f_ut_set_ml_ini(ps_set_ml);
693
694pl_count = pl_o;
695/*printf("MLset Send %d LW + ",ps_set_ml->l_fix_lw);*/
696l_status = f_stc_write (ps_set_ml, ps_set_ml->l_fix_lw*4, l_tcp);
697l = 0;
698for(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}
706l = l * (ps_set_ml->l_short_len + ps_set_ml->l_long_len);
707/*printf("%d \n",l);*/
708l_status = f_stc_write (pl_count, l , l_tcp);
709return 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 *************+****************************************/
741{
742INTS4 l_swap=0;
743INTS4 l_cmd;
744INTS4 i;
746
747l_cmd=3;
748l_status = f_stc_write (&l_cmd,4, l_tcp); if (l_status != STC__SUCCESS) return(-1);
749l_status = f_stc_read (&ps_set_ml->l_endian,16,l_tcp,-1); if (l_status != STC__SUCCESS) return(-1);
750if(ps_set_ml->l_endian != 1) l_swap = 1;
751if(l_swap == 1) l_status = f_swaplw((INTS4 *)&ps_set_ml->l_endian,4,NULL);
752if( (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);
754if(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 */
755for(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}
760return 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;
792if(ps_set_mo == NULL) return -1;
793ps_set_mo->l_endian = 1;
794ps_set_mo->l_version = VERSION__SET_MO;
795ps_set_mo->l_set_mo_lw = sizeof(s_set_mo)/4;
796ps_set_mo->l_swap_lw = ((ADDRS)&ps_set_mo->c_ds_hostname[0][0]-(ADDRS)ps_set_mo)/4;
797ps_set_mo->l_max_nodes = MO__N_NODE;
798ps_set_mo->l_no_senders = 0;
799ps_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++;
802return 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 *************+****************************************/
826INTS4 f_ut_set_mo(s_set_mo *ps_set_mo, INTS4 l_tcp)
827{
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 *************+****************************************/
861{
862INTS4 l_swap=0;
863INTS4 l_cmd;
865
866l_cmd=4;
867l_status = f_stc_write (&l_cmd,4, l_tcp); if (l_status != STC__SUCCESS) return(-1);
868l_status = f_stc_read (ps_set_mo,16,l_tcp,-1); if (l_status != STC__SUCCESS) return(-1);
869if(ps_set_mo->l_endian != 1) l_swap=1;
870if(l_swap) l_status = f_swaplw((INTS4*)ps_set_mo,4,NULL);
871
872l_status = f_stc_read (&ps_set_mo->l_max_nodes,(ps_set_mo->l_set_mo_lw-4)*4, l_tcp,-1);
873if(l_swap) l_status = f_swaplw((INTS4*)&ps_set_mo->l_max_nodes,ps_set_mo->l_swap_lw-4,NULL);
874
875return 0;
876}
int l_status
Definition f_evcli.c:169
#define VERSION__SET_ML
int l
#define VERSION__DAQST
#define VERSION__SETUP
#define VERSION__SET_MO
INTS4 f_stc_write(void *p_buffer, INTS4 i_buflen, INTS4 i_channel)
Definition f_stccomm.c:339
INTS4 f_stc_read(void *p_buffer, INTS4 i_buflen, INTS4 i_channel, INTS4 i_timeout)
Definition f_stccomm.c:134
#define STC__SUCCESS
Definition f_stccomm.h:369
int f_swaplw(int *pp_source, int l_len, int *pp_dest)
Definition f_swaplw.c:69
INTS4 f_ut_setup_r(s_setup *ps_setup, INTS4 l_tcp)
INTS4 f_ut_set_mo(s_set_mo *ps_set_mo, INTS4 l_tcp)
INTS4 f_ut_set_ml_ini(s_set_ml *ps_set_ml)
INTS4 f_ut_set_mo_ini(s_set_mo *ps_set_mo)
INTS4 f_ut_setup_copy64(s_setup *ps_setup, s_setup_64_receiver *src)
INTS4 f_ut_setup(s_setup *ps_setup, INTU4 *pl_o, INTS4 l_tcp)
INTS4 f_ut_status_ini(s_daqst *ps_daqst)
Definition f_ut_status.c:67
INTS4 f_ut_status(s_daqst *ps_daqst, INTS4 l_tcp)
INTS4 f_ut_set_mo_r(s_set_mo *ps_set_mo, INTS4 l_tcp)
INTS4 f_ut_setup_ini(s_setup *ps_setup)
INTS4 f_ut_setup_copy32(s_setup *ps_setup, s_setup_32_receiver *src)
INTS4 f_ut_status_r(s_daqst *ps_daqst, INTS4 l_tcp)
INTS4 f_ut_set_ml_r(s_set_ml *ps_set_ml, INTS4 l_tcp)
INTS4 f_ut_set_ml(s_set_ml *ps_set_ml, INTU4 *pl_o, INTS4 l_tcp)
#define ML__N_RD_PIPE
Definition ml_def.h:22
#define MO__N_NODE
Definition mo_def.h:30
#define SBS__N_TRG_TYP
Definition sbs_def.h:28
#define SBS__STR_LEN_64
Definition sbs_def.h:24
#define SBS__N_CR
Definition sbs_def.h:27
INTU4 l_version
Definition s_daqst.h:43
INTU4 bh_running[SYS__N_MAX_PROCS]
Definition s_daqst.h:103
INTU4 l_sys__n_max_procs
Definition s_daqst.h:46
INTU4 l_daqst_lw
Definition s_daqst.h:44
INTU4 l_fix_lw
Definition s_daqst.h:45
INTU4 l_procs_run
Definition s_daqst.h:52
INTU4 l_sbs__n_trg_typ
Definition s_daqst.h:48
CHARS c_out_chan[SBS__STR_LEN_64]
Definition s_daqst.h:163
INTU4 l_sbs__str_len_64
Definition s_daqst.h:47
INTU4 l_endian
Definition s_daqst.h:42
CHARS c_pname[SYS__N_MAX_PROCS][SBS__STR_LEN_64]
Definition s_daqst.h:165
CHARS c_user[SBS__STR_LEN_64]
Definition s_daqst.h:147
INTU4 bh_daqst_initalized
Definition s_daqst.h:49
INTU4 l_version
Definition s_set_ml.h:42
CHARS c_sbs_setup_path[ML__N_RD_PIPE][128]
Definition s_set_ml.h:102
INTU4 l_endian
Definition s_set_ml.h:41
INTU4 l_ml__n_rd_pipe
Definition s_set_ml.h:45
INTU4 l_fix_lw
Definition s_set_ml.h:44
INTU4 l_long_len
Definition s_set_ml.h:47
CHARS c_rd_hostname[ML__N_RD_PIPE][16]
Definition s_set_ml.h:99
INTU4 l_short_len
Definition s_set_ml.h:46
INTU4 l_set_ml_lw
Definition s_set_ml.h:43
INTS4 l_n_rd_pipe
Definition s_set_ml.h:49
INTU4 l_endian
Definition s_set_mo.h:29
INTU4 l_no_senders
Definition s_set_mo.h:34
CHARS c_ds_hostname[MO__N_NODE][16]
Definition s_set_mo.h:104
INTU4 l_no_receivers
Definition s_set_mo.h:35
CHARS c_dr_hostname[MO__N_NODE][16]
Definition s_set_mo.h:106
INTU4 l_set_mo_lw
Definition s_set_mo.h:31
INTU4 l_max_nodes
Definition s_set_mo.h:33
INTU4 l_swap_lw
Definition s_set_mo.h:32
INTU4 l_version
Definition s_set_mo.h:30
INTU4 bl_special_meb_trig_base
Definition s_setup.h:352
INTU4 bl_sbs__n_trg_typ
Definition s_setup.h:264
INTU4 bh_special_meb_trig_type
Definition s_setup.h:348
INTU4 bl_rem_esone_base
Definition s_setup.h:309
INTU4 bl_cvc_irq_mask_off
Definition s_setup.h:364
INTU4 bl_se_meb_asy_len
Definition s_setup.h:315
INTU4 bl_ml_pipe_base_addr
Definition s_setup.h:319
INTU4 bl_ml_pipe_seg_len
Definition s_setup.h:322
INTU4 bl_cvc_irq_source_off
Definition s_setup.h:363
INTU4 bi_evt_subtyp_asy
Definition s_setup.h:280
INTU4 bl_loc_esone_base
Definition s_setup.h:307
INTU4 bl_sbs__n_trg_typ
Definition s_setup.h:470
INTU4 bi_evt_subtyp_asy
Definition s_setup.h:486
ADDR64 bl_ml_pipe_seg_len
Definition s_setup.h:530
INTU4 bh_special_meb_trig_type
Definition s_setup.h:557
INTU4 bl_se_meb_asy_len
Definition s_setup.h:521
INTU4 bl_cvc_irq_source_off
Definition s_setup.h:576
ADDR64 bl_special_meb_trig_base
Definition s_setup.h:562
ADDR64 bl_loc_esone_base
Definition s_setup.h:513
INTU4 bl_cvc_irq_mask_off
Definition s_setup.h:577
ADDR64 bl_ml_pipe_base_addr
Definition s_setup.h:526
ADDR64 bl_rem_esone_base
Definition s_setup.h:515
INTU4 bl_esone_off
Definition s_setup.h:93
INTU4 bl_n_stream
Definition s_setup.h:57
INTU4 bl_max_se_len[SBS__N_CR][SBS__N_TRG_TYP]
Definition s_setup.h:239
INTU4 bl_init_read_len
Definition s_setup.h:162
ADDRS lp_loc_mem_base[SBS__N_CR]
Definition s_setup.h:189
ADDRS bl_special_meb_trig_base
Definition s_setup.h:138
INTS4 h_se_control
Definition s_setup.h:63
INTU4 bi_evt_subtyp_sy
Definition s_setup.h:61
INTU4 bh_meb_asy_flg
Definition s_setup.h:99
ADDRS bl_ml_pipe_base_addr
Definition s_setup.h:102
INTU4 bh_col_mode
Definition s_setup.h:70
INTU4 bl_sbs__n_cr
Definition s_setup.h:45
INTU4 bl_n_col_retry
Definition s_setup.h:113
INTU4 l_version
Definition s_setup.h:42
INTS4 i_se_typ[SBS__N_CR]
Definition s_setup.h:223
INTU4 bl_cvc_irq_source_off
Definition s_setup.h:152
INTU4 bl_pipe_len[SBS__N_CR]
Definition s_setup.h:209
INTU4 bi_init_tab_len[SBS__N_CR]
Definition s_setup.h:235
INTU4 bl_rd_tab_off[SBS__N_CR][SBS__N_TRG_TYP]
Definition s_setup.h:241
INTU4 bi_evt_typ_sy
Definition s_setup.h:59
INTU4 bl_cvc_crr_off
Definition s_setup.h:94
INTU4 bl_ev_buf_len
Definition s_setup.h:55
INTU4 bi_master
Definition s_setup.h:48
INTU4 bl_cvc_clb_off
Definition s_setup.h:96
INTU4 bl_trig_fct[SBS__N_CR]
Definition s_setup.h:222
INTS4 i_se_subtyp[SBS__N_CR]
Definition s_setup.h:224
INTU4 bh_meb_trig_mode
Definition s_setup.h:116
INTU4 bh_controller_id[SBS__N_CR]
Definition s_setup.h:210
INTU4 bh_special_meb_trig_type
Definition s_setup.h:133
INTU4 bh_rd_typ
Definition s_setup.h:65
INTU4 bl_trig_cvt[SBS__N_CR]
Definition s_setup.h:221
ADDRS lp_loc_pipe_base[SBS__N_CR]
Definition s_setup.h:199
INTU4 bl_init_tab_off[SBS__N_CR]
Definition s_setup.h:231
ADDRS lp_rem_mem_base[SBS__N_CR]
Definition s_setup.h:168
ADDRS lp_rem_cam_base[SBS__N_CR]
Definition s_setup.h:181
INTU4 lp_cvc_irq
Definition s_setup.h:150
INTU4 bi_evt_typ_asy
Definition s_setup.h:60
ADDRS bl_loc_esone_base
Definition s_setup.h:89
INTS4 h_rd_tab_flg
Definition s_setup.h:156
INTU4 bl_cvc_csr_off
Definition s_setup.h:95
INTS4 i_se_procid[SBS__N_CR]
Definition s_setup.h:225
INTU4 bl_ml_pipe_len
Definition s_setup.h:110
INTU4 bl_rem_cam_len[SBS__N_CR]
Definition s_setup.h:186
INTU4 bi_rd_tab_len[SBS__N_CR][SBS__N_TRG_TYP]
Definition s_setup.h:245
ADDRS bl_loc_mem_len[SBS__N_CR]
Definition s_setup.h:192
INTU4 bh_rd_flg[SBS__N_CR]
Definition s_setup.h:227
INTU4 bl_no_crates
Definition s_setup.h:50
INTU4 bl_struc_len
Definition s_setup.h:43
ADDRS bl_ml_pipe_seg_len
Definition s_setup.h:106
ADDRS bl_rem_mem_len[SBS__N_CR]
Definition s_setup.h:175
INTU4 bl_cvc_irq_mask_off
Definition s_setup.h:153
ADDRS bl_pipe_off[SBS__N_CR]
Definition s_setup.h:202
INTU4 bl_sbs__n_trg_typ
Definition s_setup.h:46
ADDRS bl_rem_mem_off[SBS__N_CR]
Definition s_setup.h:172
INTU4 l_fix_lw
Definition s_setup.h:44
INTU4 bl_cvc_irq_len
Definition s_setup.h:151
INTU4 bi_evt_subtyp_asy
Definition s_setup.h:62
INTU4 bl_se_meb_asy_len
Definition s_setup.h:97
INTU4 l_endian
Definition s_setup.h:41
INTU4 bh_crate_nr
Definition s_setup.h:51
ADDRS bl_rem_cam_off[SBS__N_CR]
Definition s_setup.h:183
INTU4 bl_n_ev_buf
Definition s_setup.h:56
ADDRS bl_rem_esone_base
Definition s_setup.h:91
INTU4 bh_sy_asy_flg[SBS__N_CR]
Definition s_setup.h:214
ADDRS bl_pipe_seg_len[SBS__N_CR]
Definition s_setup.h:206
INTU4 bh_trig_stat_nr[SBS__N_CR]
Definition s_setup.h:220
#define SYS__N_MAX_PROCS
Definition sys_def.h:31
int INTS4
Definition typedefs.h:28
unsigned int INTU4
Definition typedefs.h:29