20(uint32_t source_id, uint32_t run_no, uint32_t lvl1_id, uint32_t bc_id)
39 set(m_node[0], m_header, 6, &m_node[1]);
41 set(m_node[2], &m_header[6], 4, 0);
42 ERS_DEBUG_3(
"%s Source Id. = 0x%x., LVL1 Id. = %d, Run Number = %d",
43 "Built (write) ros fragment from scratch, with",
56 set(m_node[0], ros, 6, &m_node[1]);
57 set(m_node[1], &ros[6], ros[5], &m_node[2]);
58 set(m_node[2], &ros[6+ros[5]], 4, &m_extra);
61 ERS_DEBUG_3(
"%s Source Id. = 0x%x., LVL1 Id. = %d, Run Number = %d",
62 "Built (write) ros fragment from contiguous memory, with",
74 set(m_node[0], ros->
base, 6, &m_node[1]);
75 set(m_node[1], &ros->
base[6], ros->
base[5], &m_node[2]);
76 set(m_node[2], &ros->
base[6+ros->
base[5]], 4, &m_extra);
80 ERS_DEBUG_3(
"%s Source Id. = 0x%x., LVL1 Id. = %d, Run Number = %d",
81 "Built (write) ros fragment from paged memory, with",
104 set(m_node[0], m_header, 6, &m_node[1]);
106 set(m_node[2], &m_header[6], 4, 0);
107 ERS_DEBUG_3(
"%s Source Id. = 0x%x., LVL1 Id. = %d, Run Number = %d",
108 "Built empty (write) ros fragment from scratch, with",
122 ERS_DEBUG_3(
"%s Source Id. = 0x%x., LVL1 Id. = %d, Run Number = %d",
123 "Built (write) ros fragment from copy, with",
131 memcpy(
reinterpret_cast<void*
>(m_header),
132 reinterpret_cast<const void*
>(other.m_node[0].base),
134 memcpy(
reinterpret_cast<void*
>(m_header+6),
135 reinterpret_cast<const void*
>(other.m_node[2].base),
139 set(m_node[0], m_header, 6, &m_node[1]);
140 set(m_node[1], other.m_node[1].base, other.m_node[1].size_word, &m_node[2]);
141 set(m_node[2], &m_header[6], 4, 0);
142 ERS_DEBUG_3(
"%s Source Id. = 0x%x., LVL1 Id. = %d, Run Number = %d",
143 "Copied (write) ros fragment, with",
151 if (m_parent) m_parent->size_change(m_node[0].base[1],
152 m_node[0].base[1]-m_node[0].base[5]+n);
153 m_node[0].base[1] -= m_node[0].base[5];
154 m_node[0].base[2] -= m_node[0].base[5];
155 m_node[1].size_word = m_node[0].base[5] = n;
156 m_node[0].base[1] += n;
157 m_node[0].base[2] += n;
158 m_node[1].base =
const_cast<uint32_t*
>(status);
163 uint32_t old_size = m_node[0].base[1];
164 m_node[0].base[1] -= o;
165 m_node[0].base[1] += n;
166 if (m_parent) m_parent->size_change(old_size, m_node[0].base[1]);
171 ERS_DEBUG_3(
"%s Source Id. = 0x%x to ros fragment with Source Id. = 0x%x",
172 "Appending rob fragment with",
175 uint32_t old_size = m_node[0].base[1];
179 if (m_last) m_last->next(rob);
184 if (m_parent) m_parent->size_change(old_size, m_node[0].base[1]);
189 uint32_t retval = 3 + m_extra_count;
191 retval += curr->page_count();
201 while (last->
next) last = last->
next;
205 while (last->
next) last = last->
next;
A helper class to help the user to interpret the status information in the first status word and to c...
Helps the user to define and build a ROS fragment.
Helps the user to define and build a SubDetector fragment.