GSI Object Oriented Online Offline (Go4)
GO4-5.3.2
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
MbsAPIbase
s_set_mo.h
Go to the documentation of this file.
1
// $Id: s_set_mo.h 478 2009-10-29 12:26:09Z 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 für 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
/*
15
* N.Kurz 8-Jun-1998
16
*
17
* within this structure the setup information for a n # m
18
* (multiple output/collector) mbs system is specified
19
*/
20
21
#include "
typedefs.h
"
22
#include "
mo_def.h
"
23
24
typedef
struct
25
{
26
INTU4
l_endian
;
/* must be 1 */
27
INTU4
l_version
;
/* structure version */
28
INTU4
l_set_mo_lw
;
/* length of structure */
29
INTU4
l_swap_lw
;
/* longwords to be swapped */
30
INTU4
l_max_nodes
;
/* set to MO__N_NODE */
31
INTU4
l_no_senders
;
/* actual number of senders */
32
INTU4
l_no_receivers
;
/* actual number of receivers */
33
INTU4
bl_dr_active[
MO__N_NODE
];
/* active receivers */
34
35
INTU4
l_rd_pipe_base_addr [
MO__N_NODE
] [
MO__N_NODE
];
36
/* base addresses of all pipes residing on the ds nodes seen remote */
37
/* from dr nodes l_rd_pipe_base_addr[dr_node_id][ds_node_id]. */
38
/* this setup parametes are only necessary for an address mapped */
39
/* transfer mode (l_trans_mode = 0). */
40
INTU4
l_rd_pipe_seg_len [
MO__N_NODE
];
41
/* size of pipe segments on ds nodes. index is ds id. this information */
42
/* is only necessary if transfer type 0 (single shot data transfer) */
43
/* from any of the ds nodes. !!!! WARNING !!!! this information is */
44
/* redundant. the size is also specified in the setup.usf or */
45
/* set_ml.usf of the ds node and must match. */
46
INTU4
l_rd_pipe_trans_mode [
MO__N_NODE
] [
MO__N_NODE
];
47
/* data transfer mode from ds nodes to dr nodes */
48
/* l_rd_pipe_base_addr[dr_node_id][ds_node_id]. */
49
/* transfer mode: 0xxx = address mapped, dr reads data */
50
/* 1xxx = message oriented mode ( tcp ), ds sends data */
51
/* 01xx = address mapped DMA modes (various) */
52
/* */
53
/* 0x 0 = standard singe cycle address mapped */
54
/* 0x 101 = VME DMA E7 */
55
/* 0x 102 = VME DMA RIO2 <- RIO2 */
56
/* 0x 103 = VSB DMA RIO2 <- "any" VSB slave device */
57
/* 0x 104 = PVIC DMA RIO2 */
58
/* 0x 105 = VME DMA RIO2 <- E7 / VME memory */
59
/* 0x1001 = TCP sockets */
60
INTU4
l_form_mode
;
61
/* two format modes have been forseen, whereas only mode 1 is imple- */
62
/* mented yet. */
63
/* mode 1: ds node sends data, or dr node reads data (depending on */
64
/* transfer type) to an intermediate event buffer of size */
65
/* l_max_evt_size. formatting, and possible byte swapping is */
66
/* done afterwards from the intermediate event buffer into the */
67
/* streams. */
68
/* mode 2: ds node sends data, or dr node reads data and formats */
69
/* immediately into the streams. not yet implemented */
70
INTU4
l_base_addr_evt_buf[
MO__N_NODE
];
71
/* if l_form_mode = 1: (intermediate formatting) */
72
/* for transfer types where address mapped writing from ds node or dma */
73
/* data transfer is done a shared segement is needed and created with */
74
/* physical base address l_base_addr_evt_buf and size l_max_evt_size. */
75
/* if l_form_mode = 2: (direct formatting) */
76
/* a shared segment for this buffer must also be created for */
77
/* direct formatting into streams if the ds node writes address mapped */
78
/* or dma is done. this buffer will be used to hold an event if the */
79
/* actual stream has less space than l_max_evt_size since in this mode */
80
/* the actual event size is not known before the transfer of the last */
81
/* fraction. */
82
/* */
83
/* if l_base_addr_evt_buf != 0 an smem_create segment will be created */
84
/* if l_base_addr_evt_buf = 0 ( or not specified) a buffer of size */
85
/* l_max_evt_size will be created with malloc and is therefore not */
86
/* contigious in the address space. */
87
/* MO__N_NODE runs over dr node ids. */
88
INTU4
l_max_evt_size
;
89
/* TOTAL maximum event size, which could occur within this setup. */
90
/* in bytes. */
91
INTU4
l_n_frag
;
92
/* many subevents/fragments can be send/read in one transfer (i.e. */
93
/* tcp, vme block transfer) from m_ds to m_dr if the data is conscu- */
94
/* tive. l_n_frag specifies the number fragments sent in such a packet */
95
INTU4
l_ev_buf_len [
MO__N_NODE
];
96
INTU4
l_n_ev_buf [
MO__N_NODE
];
97
INTU4
l_n_stream [
MO__N_NODE
];
98
INTU4
l_base_addr_stream_seg [
MO__N_NODE
];
99
/* only nedded if l_form mode = 2. see explanation above */
100
INTU4
l_out_mode [
MO__N_NODE
];
101
CHARS
c_ds_hostname [
MO__N_NODE
][16];
102
/* name of ds nodes */
103
CHARS
c_dr_hostname [
MO__N_NODE
][16];
104
/* name of dr nodes */
105
106
}
s_set_mo
;
s_set_mo::l_max_evt_size
INTU4 l_max_evt_size
Definition:
s_set_mo.h:88
s_set_mo::l_form_mode
INTU4 l_form_mode
Definition:
s_set_mo.h:60
s_set_mo::l_no_senders
INTU4 l_no_senders
Definition:
s_set_mo.h:31
s_set_mo
Definition:
s_set_mo.h:24
s_set_mo::l_swap_lw
INTU4 l_swap_lw
Definition:
s_set_mo.h:29
s_set_mo::l_version
INTU4 l_version
Definition:
s_set_mo.h:27
s_set_mo::l_n_frag
INTU4 l_n_frag
Definition:
s_set_mo.h:91
INTU4
unsigned int INTU4
Definition:
typedefs.h:29
s_set_mo::l_endian
INTU4 l_endian
Definition:
s_set_mo.h:26
s_set_mo::l_no_receivers
INTU4 l_no_receivers
Definition:
s_set_mo.h:32
mo_def.h
MO__N_NODE
#define MO__N_NODE
Definition:
mo_def.h:27
typedefs.h
s_set_mo::l_max_nodes
INTU4 l_max_nodes
Definition:
s_set_mo.h:30
CHARS
char CHARS
Definition:
typedefs.h:21
s_set_mo::l_set_mo_lw
INTU4 l_set_mo_lw
Definition:
s_set_mo.h:28
Generated on Fri Oct 26 2018 08:34:53 for GSI Object Oriented Online Offline (Go4) by
1.8.8