ROSS
ross-types.h
Go to the documentation of this file.
1 #ifndef INC_ross_types_h
2 #define INC_ross_types_h
3 
4 /** @file ross-types.h
5  * @brief Definition of ROSS basic types
6  */
7 
8 typedef struct tw_statistics tw_statistics;
9 typedef struct tw_pq tw_pq;
10 #ifdef ROSS_QUEUE_kp_splay
11 typedef struct tw_eventpq tw_eventpq;
12 #endif
13 typedef struct tw_lptype tw_lptype;
14 typedef struct tw_petype tw_petype;
15 typedef struct tw_bf tw_bf;
16 typedef struct tw_eventq tw_eventq;
17 typedef struct tw_event tw_event;
18 typedef struct tw_lp tw_lp;
19 typedef struct tw_kp tw_kp;
20 typedef struct tw_pe tw_pe;
21 typedef struct avlNode *AvlTree;
22 
23 /**
24  * Synchronization protocol used
25  */
26 enum tw_synch_e {
33 };
34 
35 typedef enum tw_synch_e tw_synch;
36 
37 enum tw_lp_map {
41 };
42 typedef enum tw_lp_map tw_lp_map;
43 
44 /** tw_kpid -- Kernel Process (KP) id*/
45 typedef tw_peid tw_kpid;
46 typedef unsigned int tw_eventid;
47 
48 typedef unsigned long long tw_stat;
49 
50 typedef void (*pe_init_f) (tw_pe * pe);
51 typedef void (*pe_gvt_f) (tw_pe * pe);
52 typedef void (*pe_final_f) (tw_pe * pe);
53 
54 /** tw_petype @brief Virtual Functions for per PE ops
55  *
56  * User model implements virtual functions for per PE operations. Currently,
57  * ROSS provides hooks for PE init, finalization and per GVT operations.
58  */
59 struct tw_petype {
60  pe_init_f pre_lp_init; /**< @brief PE initialization routine, before LP init */
61  pe_init_f post_lp_init; /**< @brief PE initialization routine, after LP init */
62  pe_gvt_f gvt; /**< @brief PE per GVT routine */
63  pe_final_f final; /**< @brief PE finilization routine */
64 };
65 
66 /*
67  * User implements virtual functions by giving us function pointers
68  * for setting up an LP, handling an event on that LP, reversing the
69  * event on the LP and cleaning up the LP for stats computation/collecting
70  * results.
71  */
72 typedef void (*init_f) (void *sv, tw_lp * me);
73 typedef tw_peid (*map_f) (tw_lpid);
74 typedef tw_lp * (*map_local_f) (tw_lpid);
75 typedef void (*map_custom_f) (void);
76 typedef void (*pre_run_f) (void *sv, tw_lp * me);
77 typedef void (*event_f) (void *sv, tw_bf * cv, void *msg, tw_lp * me);
78 typedef void (*revent_f) (void *sv, tw_bf * cv, void *msg, tw_lp * me);
79 typedef void (*commit_f) (void *sv, tw_bf * cv, void *msg, tw_lp * me);
80 typedef void (*final_f) (void *sv, tw_lp * me);
81 
82 /**
83  * tw_lptype
84  * @brief Function Pointers for ROSS Event Handlers
85  *
86  **/
87 struct tw_lptype {
88  init_f init; /**< @brief LP setup routine */
89  pre_run_f pre_run; /**< @brief Second stage LP initialization */
90  event_f event; /**< @brief LP event handler routine */
91  revent_f revent; /**< @brief LP Reverse event handler routine */
92  commit_f commit; /**< @brief LP Commit event routine */
93  final_f final; /**< @brief Final handler routine */
94  map_f map; /**< @brief LP Mapping of LP gid -> remote PE routine */
95  size_t state_sz; /**< @brief Number of bytes that SV is for the LP */
96 };
97 
98 // Type mapping function: gid -> type index
99 typedef tw_lpid (*tw_typemap_f) (tw_lpid gid);
100 
101 /**
102  * tw_statistics
103  * @brief Statistics tallied over the duration of the simulation.
104  * @attention If you change the order of this struct you must ensure that
105  * tw_net_statistics() is updated!
106  **/
109 
114 
119 
124 
129 
131 
133 
140 
145 
147 
153 
155 
158 
159 #ifdef USE_RIO
160  tw_clock s_rio_load;
161  tw_clock s_rio_lp_init;
162 #endif
163 };
164 
165 struct tw_eventq {
166  size_t size;
169 };
170 
171 /**
172  * tw_bf
173  * @brief Reverse Computation Bitfield
174  *
175  * Some applications find it handy to have this bitfield when doing
176  * reverse computation. So we follow GTW tradition and provide it.
177  */
178 struct tw_bf {
179  unsigned int c0:1;
180  unsigned int c1:1;
181  unsigned int c2:1;
182  unsigned int c3:1;
183  unsigned int c4:1;
184  unsigned int c5:1;
185  unsigned int c6:1;
186  unsigned int c7:1;
187  unsigned int c8:1;
188  unsigned int c9:1;
189  unsigned int c10:1;
190  unsigned int c11:1;
191  unsigned int c12:1;
192  unsigned int c13:1;
193  unsigned int c14:1;
194  unsigned int c15:1;
195  unsigned int c16:1;
196  unsigned int c17:1;
197  unsigned int c18:1;
198  unsigned int c19:1;
199  unsigned int c20:1;
200  unsigned int c21:1;
201  unsigned int c22:1;
202  unsigned int c23:1;
203  unsigned int c24:1;
204  unsigned int c25:1;
205  unsigned int c26:1;
206  unsigned int c27:1;
207  unsigned int c28:1;
208  unsigned int c29:1;
209  unsigned int c30:1;
210  unsigned int c31:1;
211 };
212 
214  TW_pe_event_q = 1, /**< @brief In a tw_pe.event_q list */
215  TW_pe_pq = 2, /**< @brief In a tw_pe.pq */
216  TW_kp_pevent_q = 3, /**< @brief In a tw_kp.pevent_q */
217  TW_pe_anti_msg = 4, /**< @brief Anti-message */
218  TW_net_outq = 5, /**< @brief Pending network transmission */
219  TW_net_asend = 6, /**< @brief Network transmission in progress */
220  TW_net_acancel = 7, /**< @brief Network transmission in progress */
221  TW_pe_sevent_q = 8, /**< @brief In tw_pe.sevent_q */
222  TW_pe_free_q = 9, /**< @brief In tw_pe.free_q */
223 #ifdef USE_RIO
224  IO_buffer = 10, /**< @brief RIO captured event */
225 #endif
226 };
228 
229 /**
230  * tw_out
231  * @brief Rollback-aware output mechanism
232  *
233  * Regularly requested feature: rollback-aware output. This will allow us to
234  * create an output stream without messages from cancelled events.
235  */
236 typedef struct tw_out {
237  struct tw_out *next;
239  /** The actual message content */
240  char message[256 - 2*sizeof(void *)];
241 } tw_out;
242 
243 /**
244  * tw_event:
245  * @brief Event Stucture
246  *
247  * Holds entire event structure, one is created for each and every
248  * event in use.
249  */
250 struct tw_event {
253 #if defined(ROSS_QUEUE_splay) || defined(ROSS_QUEUE_kp_splay)
254  tw_event *up; /**< @brief Up pointer for storing membufs in splay tree */
255 #endif
256 #ifdef ROSS_QUEUE_heap
257  unsigned long heap_index; /**< @brief Index for storing membufs in heap queue */
258 #endif
259 
260  tw_event *cancel_next; /**< @brief Next event in the cancel queue for the dest_pe */
261  tw_event *caused_by_me; /**< @brief Start of event list caused by this event */
262  tw_event *cause_next; /**< @brief Next in parent's caused_by_me chain */
263 
264  tw_eventid event_id; /**< @brief Unique id assigned by src_lp->pe if remote. */
265 
266  /** Status of the event's queue location(s). */
267  struct {
268  unsigned char owner; /**< @brief Owner of the next/prev pointers; see tw_event_owner */
269  unsigned char cancel_q; /**< @brief Actively on a dest_lp->pe's cancel_q */
270  unsigned char cancel_asend;
271  unsigned char remote; /**< @brief Indicates union addr is in 'remote' storage */
272  } state;
273 
274  tw_bf cv; /**< @brief Used by app during reverse computation. */
275  void *delta_buddy; /**< @brief Delta memory from buddy allocator. */
276  size_t delta_size; /**< @brief Size of delta. */
277 
278  unsigned int critical_path; /**< @brief Critical path of this event */
279 
280  tw_lp *dest_lp; /**< @brief Destination LP ID */
281  tw_lp *src_lp; /**< @brief Sending LP ID */
282  tw_stime recv_ts; /**< @brief Actual time to be received */
283 
285  tw_lpid send_lp; /**< @brief sending LP ID for data collection uses */
288 
289  tw_out *out_msgs; /**< @brief Output messages */
290 };
291 
292 /**
293  * tw_lp @brief LP State Structure
294  *
295  * Holds our state for the LP, including the lptype and a pointer
296  * to the user's current state. The lptype is copied into the tw_lp
297  * in order to save the extra memory load that would otherwise be
298  * required (if we stored a pointer).
299  *
300  * Specific PE's service specific LPs, each PE has a linked list of
301  * the LPs it services, this list is made through the pe_next field
302  * of the tw_lp structure.
303  */
304 struct tw_lp {
305  tw_lpid id; /**< @brief local LP id */
306  tw_lpid gid; /**< @brief global LP id */
307 
309 
310  /*
311  * pe_next -- Next LP in the PE's service list. ????
312  */
313  tw_kp *kp; /**< @brief kp -- Kernel process that we belong to (must match pe). */
314 
315  void *cur_state; /**< @brief Current application LP data */
316  tw_lptype *type; /**< @brief Type of this LP, including service callbacks */
317  tw_rng_stream *rng; /**< @brief RNG stream array for this LP */
318 
319  unsigned int critical_path; /**< @brief Critical path value for this LP */
320 
321  /* ROSS instrumentation structs */
325 
326  /* tw_suspend variables */
329  unsigned int suspend_error_number;
331  unsigned int suspend_flag;
332 };
333 
334 /**
335  * tw_kp KP State Structure
336  *
337  * Holds our state for the Kernel Process (KP), which consists only of
338  * processed event list for a collection of LPs.
339  */
340 struct tw_kp {
341  tw_kpid id; /**< @brief ID number, otherwise its not available to the app */
342  tw_pe *pe; /**< @brief PE that services this KP */
343  tw_kp *next; /**< @brief Next KP in the PE's service list */
344  tw_out *output; /**< @brief Output messages */
345  int lp_count;
346 
347 #ifdef ROSS_QUEUE_kp_splay
348  tw_eventpq *pq;
349 
350  tw_kp *prev;
351  tw_kp *up;
352 #endif
353 
354 #ifdef AVL_TREE
355  /* AVL tree root */
356  AvlTree avl_tree;
357 #endif
358 
359  tw_eventq pevent_q; /**< @brief Events processed by LPs bound to this KP */
360  tw_stime last_time; /**< @brief Time of the current event being processed */
361  tw_stat s_nevent_processed; /**< @brief Number of events processed */
362 
363  long s_e_rbs; /**< @brief Number of events rolled back by this LP */
364  long s_rb_total; /**< @brief Number of total rollbacks by this LP */
365  long s_rb_secondary; /**< @brief Number of secondary rollbacks by this LP */
368 
369 };
370 
371 /**
372  * tw_pe @brief Holds the entire PE state
373  *
374  */
375 struct tw_pe {
377  tw_petype type; /**< @brief Model defined PE type routines */
378 
379  tw_eventq event_q; /**< @brief Linked list of events sent to this PE */
380  tw_event *cancel_q; /**< @brief List of canceled events */
381  tw_pq *pq; /**< @brief Priority queue used to sort events */
382 
383  tw_eventq free_q; /**< @brief Linked list of free tw_events */
384  tw_event *abort_event; /**< @brief Placeholder event for when free_q is empty */
385  tw_event *cur_event; /**< @brief Current event being processed */
386  tw_eventq sevent_q; /**< @brief events already sent over the network */
387 
388  unsigned char *delta_buffer[3]; /**< @brief buffers used for delta encoding */
389 
390 #ifdef AVL_TREE
391  /* AVL node head pointer and size */
392  AvlTree avl_list_head;
393  unsigned avl_tree_size;
394 #endif
395 
396  tw_clock clock_offset; /**< @brief Initial clock value for this PE */
397  tw_clock clock_time; /**< @brief Most recent clock value for this PE */
398 
399  unsigned char cev_abort; /**< @brief Current event being processed must be aborted */
400  unsigned char gvt_status; /**< @brief Bits available for gvt computation */
401 
402  tw_stime trans_msg_ts; /**< @brief Last transient messages' time stamp */
403  tw_stime GVT; /**< @brief Global Virtual Time */
405  tw_stime LVT; /**< @brief Local (to PE) Virtual Time */
406 
407 #ifdef ROSS_GVT_mpi_allreduce
408  long long s_nwhite_sent;
409  long long s_nwhite_recv;
410 #endif
411 
412  tw_wtime start_time; /**< @brief When this PE first started execution */
413  tw_wtime end_time; /**< @brief When this PE finished its execution */
414 
415  tw_statistics stats; /**< @brief per PE counters */
416 
417 #ifndef ROSS_NETWORK_none
418  void *hash_t; /**< @brief Array of incoming events from remote pes, Note: only necessary for distributed DSR*/
419 #ifdef ROSS_NETWORK_mpi
420  tw_eventid seq_num; /**< @brief Array of remote send counters for hashing on, size == g_tw_npe */
421 #else
422  tw_eventid *seq_num; /**< @brief Array of remote send counters for hashing on, size == g_tw_npe */
423 #endif
424 #endif
425 
426  tw_rng *rng; /**< @brief Pointer to the random number generator on this PE */
427 };
428 
429 #endif
long long s_nwhite_recv
Definition: ross-types.h:409
unsigned int c21
Definition: ross-types.h:200
init_f init
LP setup routine.
Definition: ross-types.h:88
Network transmission in progress.
Definition: ross-types.h:220
void * delta_buddy
Delta memory from buddy allocator.
Definition: ross-types.h:275
pe_gvt_f gvt
PE per GVT routine.
Definition: ross-types.h:62
unsigned int c6
Definition: ross-types.h:185
tw_clock s_net_other
Definition: ross-types.h:137
tw_clock s_event_process
Definition: ross-types.h:142
tw_lp * dest_lp
Destination LP ID.
Definition: ross-types.h:280
tw_eventq event_q
Linked list of events sent to this PE.
Definition: ross-types.h:379
unsigned int c24
Definition: ross-types.h:203
size_t delta_size
Size of delta.
Definition: ross-types.h:276
tw_kp * owner
Definition: ross-types.h:238
unsigned int c4
Definition: ross-types.h:183
tw_event * suspend_event
Definition: ross-types.h:327
unsigned char gvt_status
Bits available for gvt computation.
Definition: ross-types.h:400
double tw_stime
Definition: ross.h:150
unsigned int c30
Definition: ross-types.h:209
revent_f revent
LP Reverse event handler routine.
Definition: ross-types.h:91
char message[256-2 *sizeof(void *)]
Definition: ross-types.h:240
tw_eventid event_id
Unique id assigned by src_lp->pe if remote.
Definition: ross-types.h:264
tw_clock s_pq
Definition: ross-types.h:143
tw_event * head
Definition: ross-types.h:167
unsigned int c16
Definition: ross-types.h:195
struct st_lp_stats * lp_stats
Definition: ross-types.h:323
unsigned int critical_path
Critical path value for this LP.
Definition: ross-types.h:319
tw_lptype * type
Type of this LP, including service callbacks.
Definition: ross-types.h:316
tw_stat s_rb_primary
Definition: ross-types.h:116
struct st_kp_stats * kp_stats
Definition: ross-types.h:366
tw_stat s_nevent_abort
Definition: ross-types.h:112
unsigned int c7
Definition: ross-types.h:186
tw_statistics stats
per PE counters
Definition: ross-types.h:415
AvlTree avl_tree
Definition: ross-types.h:356
pe_init_f pre_lp_init
PE initialization routine, before LP init.
Definition: ross-types.h:60
struct st_kp_stats * last_stats[3]
Definition: ross-types.h:367
tw_stime recv_ts
Actual time to be received.
Definition: ross-types.h:282
void(* pe_init_f)(tw_pe *pe)
Definition: ross-types.h:50
tw_pe * pe
PE that services this KP.
Definition: ross-types.h:342
tw_stat s_rb_total
Definition: ross-types.h:115
Anti-message.
Definition: ross-types.h:217
unsigned char * delta_buffer[3]
buffers used for delta encoding
Definition: ross-types.h:388
long s_rb_secondary
Number of secondary rollbacks by this LP.
Definition: ross-types.h:365
unsigned int c13
Definition: ross-types.h:192
tw_stime GVT_prev
Definition: ross-types.h:404
unsigned int c29
Definition: ross-types.h:208
tw_event * cancel_next
Next event in the cancel queue for the dest_pe.
Definition: ross-types.h:260
tw_clock s_lz4
Definition: ross-types.h:150
struct tw_out tw_out
Rollback-aware output mechanism.
tw_stime LVT
Local (to PE) Virtual Time.
Definition: ross-types.h:405
map_f map
LP Mapping of LP gid -> remote PE routine.
Definition: ross-types.h:94
tw_stime trans_msg_ts
Last transient messages' time stamp.
Definition: ross-types.h:402
Holds the entire PE state.
Definition: ross-types.h:375
Network transmission in progress.
Definition: ross-types.h:219
unsigned int c8
Definition: ross-types.h:187
tw_clock s_init
Definition: ross-types.h:135
unsigned int suspend_flag
Definition: ross-types.h:331
tw_eventq pevent_q
Events processed by LPs bound to this KP.
Definition: ross-types.h:359
unsigned int c5
Definition: ross-types.h:184
tw_event * cancel_q
List of canceled events.
Definition: ross-types.h:380
void(* event_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)
Definition: ross-types.h:77
pe_init_f post_lp_init
PE initialization routine, after LP init.
Definition: ross-types.h:61
tw_bf cv
Used by app during reverse computation.
Definition: ross-types.h:274
tw_lp_map
Definition: ross-types.h:37
tw_clock s_stat_comp
Definition: ross-types.h:151
unsigned int c1
Definition: ross-types.h:180
In a tw_kp.pevent_q.
Definition: ross-types.h:216
tw_stat s_nsend_network
Definition: ross-types.h:121
tw_petype type
Model defined PE type routines.
Definition: ross-types.h:377
tw_stat s_nsend_remote_rb
Definition: ross-types.h:123
int lp_count
Definition: ross-types.h:345
tw_out * out_msgs
Output messages.
Definition: ross-types.h:289
tw_event * prev
Definition: ross-types.h:252
tw_eventq free_q
Linked list of free tw_events.
Definition: ross-types.h:383
uint64_t tw_lpid
Definition: ross.h:160
tw_eventid seq_num
Array of remote send counters for hashing on, size == g_tw_npe.
Definition: ross-types.h:420
Function Pointers for ROSS Event Handlers.
Definition: ross-types.h:87
tw_stat s_net_events
Definition: ross-types.h:110
unsigned int c20
Definition: ross-types.h:199
tw_event * up
Up pointer for storing membufs in splay tree.
Definition: ross-types.h:254
tw_kp * kp
kp – Kernel process that we belong to (must match pe).
Definition: ross-types.h:313
unsigned int c15
Definition: ross-types.h:194
tw_stat s_pq_qsize
Definition: ross-types.h:120
struct timeval tw_wtime
Definition: tw-timing.h:4
Statistics tallied over the duration of the simulation.
Definition: ross-types.h:107
unsigned int c22
Definition: ross-types.h:201
unsigned int suspend_do_orig_event_rc
Definition: ross-types.h:330
tw_stat s_nsend_net_remote
Definition: ross-types.h:126
unsigned int c10
Definition: ross-types.h:189
Event Stucture.
Definition: ross-types.h:250
struct st_lp_stats * last_stats[3]
Definition: ross-types.h:324
tw_peid(* map_f)(tw_lpid)
Definition: ross-types.h:73
tw_clock s_stat_write
Definition: ross-types.h:152
tw_stat s_nread_network
Definition: ross-types.h:122
tw_stime suspend_time
Definition: ross-types.h:328
tw_lpid gid
global LP id
Definition: ross-types.h:306
void(* pe_gvt_f)(tw_pe *pe)
Definition: ross-types.h:51
tw_clock clock_offset
Initial clock value for this PE.
Definition: ross-types.h:396
tw_event * abort_event
Placeholder event for when free_q is empty.
Definition: ross-types.h:384
tw_clock s_buddy
Definition: ross-types.h:149
tw_clock clock_time
Most recent clock value for this PE.
Definition: ross-types.h:397
unsigned int critical_path
Critical path of this event.
Definition: ross-types.h:278
tw_event * next
Definition: ross-types.h:251
tw_event * cur_event
Current event being processed.
Definition: ross-types.h:385
unsigned int c11
Definition: ross-types.h:190
void * hash_t
Array of incoming events from remote pes, Note: only necessary for distributed DSR.
Definition: ross-types.h:418
tw_out * output
Output messages.
Definition: ross-types.h:344
unsigned int c0
Definition: ross-types.h:179
tw_lpid(* tw_typemap_f)(tw_lpid gid)
Definition: ross-types.h:99
double s_max_run_time
Definition: ross-types.h:108
unsigned int c23
Definition: ross-types.h:202
unsigned int suspend_error_number
Definition: ross-types.h:329
struct tw_out * next
Definition: ross-types.h:237
tw_event * cause_next
Next in parent's caused_by_me chain.
Definition: ross-types.h:262
tw_lpid send_lp
sending LP ID for data collection uses
Definition: ross-types.h:285
tw_stat s_alp_e_rbs
Definition: ross-types.h:157
unsigned int c12
Definition: ross-types.h:191
tw_stat s_e_rbs
Definition: ross-types.h:113
tw_wtime start_time
When this PE first started execution.
Definition: ross-types.h:412
tw_event * caused_by_me
Start of event list caused by this event.
Definition: ross-types.h:261
Reverse Computation Bitfield.
Definition: ross-types.h:178
unsigned int c25
Definition: ross-types.h:204
unsigned int c14
Definition: ross-types.h:193
tw_rng * rng
Pointer to the random number generator on this PE.
Definition: ross-types.h:426
tw_lpid dest_lpid
Definition: ross-types.h:286
void(* init_f)(void *sv, tw_lp *me)
Definition: ross-types.h:72
In tw_pe.free_q.
Definition: ross-types.h:222
long s_e_rbs
Number of events rolled back by this LP.
Definition: ross-types.h:363
tw_pq * pq
Priority queue used to sort events.
Definition: ross-types.h:381
unsigned int c31
Definition: ross-types.h:210
unsigned avl_tree_size
Definition: ross-types.h:393
unsigned int c27
Definition: ross-types.h:206
tw_kp * next
Next KP in the PE's service list.
Definition: ross-types.h:343
void(* revent_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)
Definition: ross-types.h:78
tw_clock s_net_read
Definition: ross-types.h:136
unsigned int c19
Definition: ross-types.h:198
size_t state_sz
Number of bytes that SV is for the LP.
Definition: ross-types.h:95
void(* pre_run_f)(void *sv, tw_lp *me)
Definition: ross-types.h:76
long s_rb_total
Number of total rollbacks by this LP.
Definition: ross-types.h:364
double s_min_detected_offset
Definition: ross-types.h:132
tw_stat s_ngvts
Definition: ross-types.h:127
commit_f commit
LP Commit event routine.
Definition: ross-types.h:92
tw_clock s_avl
Definition: ross-types.h:148
Pending network transmission.
Definition: ross-types.h:218
tw_stat s_mem_buffers_used
Definition: ross-types.h:128
tw_stat s_fc_attempts
Definition: ross-types.h:118
AvlTree avl_list_head
Definition: ross-types.h:392
tw_peid send_pe
Definition: ross-types.h:284
In tw_pe.sevent_q.
Definition: ross-types.h:221
tw_eventq sevent_q
events already sent over the network
Definition: ross-types.h:386
tw_stat s_pe_event_ties
Definition: ross-types.h:130
struct st_model_types * model_types
Definition: ross-types.h:322
tw_event * tail
Definition: ross-types.h:168
tw_stat s_nsend_loc_remote
Definition: ross-types.h:125
tw_clock s_fossil_collect
Definition: ross-types.h:139
tw_stime send_ts
Definition: ross-types.h:287
struct tw_event::@0 state
tw_wtime end_time
When this PE finished its execution.
Definition: ross-types.h:413
tw_pe * pe
Definition: ross-types.h:308
long long s_nwhite_sent
Definition: ross-types.h:408
unsigned char remote
Indicates union addr is in 'remote' storage.
Definition: ross-types.h:271
tw_stime GVT
Global Virtual Time.
Definition: ross-types.h:403
unsigned long long tw_stat
Definition: ross-types.h:48
unsigned long tw_peid
Definition: ross.h:147
enum tw_synch_e tw_synch
Definition: ross-types.h:35
tw_lpid id
local LP id
Definition: ross-types.h:305
tw_peid tw_kpid
Definition: ross-types.h:45
tw_clock s_gvt
Definition: ross-types.h:138
tw_pe * pe
Definition: avl_tree.c:11
uint64_t tw_clock
Definition: aarch64.h:4
tw_lp * src_lp
Sending LP ID.
Definition: ross-types.h:281
tw_kpid id
ID number, otherwise its not available to the app.
Definition: ross-types.h:341
void * cur_state
Current application LP data.
Definition: ross-types.h:315
void(* map_custom_f)(void)
Definition: ross-types.h:75
event_f event
LP event handler routine.
Definition: ross-types.h:90
Rollback-aware output mechanism.
Definition: ross-types.h:236
unsigned int c9
Definition: ross-types.h:188
size_t size
Definition: ross-types.h:166
unsigned int c26
Definition: ross-types.h:205
unsigned int c2
Definition: ross-types.h:181
Virtual Functions for per PE ops.
Definition: ross-types.h:59
tw_stat s_alp_nevent_processed
Definition: ross-types.h:156
unsigned int c28
Definition: ross-types.h:207
tw_stat s_nevent_processed
Definition: ross-types.h:111
tw_rng_stream * rng
RNG stream array for this LP.
Definition: ross-types.h:317
tw_peid id
Definition: ross-types.h:376
unsigned int c3
Definition: ross-types.h:182
tw_stat s_events_past_end
Definition: ross-types.h:154
struct avlNode * AvlTree
Definition: ross-types.h:21
unsigned int c17
Definition: ross-types.h:196
In a tw_pe.pq.
Definition: ross-types.h:215
tw_clock s_total
Definition: ross-types.h:134
tw_clock s_event_abort
Definition: ross-types.h:141
void(* final_f)(void *sv, tw_lp *me)
Definition: ross-types.h:80
void(* commit_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)
Definition: ross-types.h:79
void(* pe_final_f)(tw_pe *pe)
Definition: ross-types.h:52
pre_run_f pre_run
Second stage LP initialization.
Definition: ross-types.h:89
tw_clock s_rollback
Definition: ross-types.h:144
unsigned int c18
Definition: ross-types.h:197
unsigned char cancel_q
Actively on a dest_lp->pe's cancel_q.
Definition: ross-types.h:269
unsigned int tw_eventid
Definition: ross-types.h:46
tw_event_owner
Definition: ross-types.h:213
tw_stat s_rb_secondary
Definition: ross-types.h:117
tw_stime last_time
Time of the current event being processed.
Definition: ross-types.h:360
tw_clock s_cancel_q
Definition: ross-types.h:146
unsigned char cev_abort
Current event being processed must be aborted.
Definition: ross-types.h:399
tw_stat s_nevent_processed
Number of events processed.
Definition: ross-types.h:361
Definition: splay.c:36
unsigned char cancel_asend
Definition: ross-types.h:270
LP State Structure.
Definition: ross-types.h:304
In a tw_pe.event_q list.
Definition: ross-types.h:214
tw_synch_e
Definition: ross-types.h:26
unsigned char owner
Owner of the next/prev pointers; see tw_event_owner.
Definition: ross-types.h:268