1 #ifndef INC_ross_types_h
2 #define INC_ross_types_h
10 #ifdef ROSS_QUEUE_kp_splay
11 typedef struct tw_eventpq tw_eventpq;
253 #if defined(ROSS_QUEUE_splay) || defined(ROSS_QUEUE_kp_splay)
256 #ifdef ROSS_QUEUE_heap
257 unsigned long heap_index;
347 #ifdef ROSS_QUEUE_kp_splay
407 #ifdef ROSS_GVT_mpi_allreduce
417 #ifndef ROSS_NETWORK_none
419 #ifdef ROSS_NETWORK_mpi
init_f init
LP setup routine.
Network transmission in progress.
void * delta_buddy
Delta memory from buddy allocator.
pe_gvt_f gvt
PE per GVT routine.
tw_lp * dest_lp
Destination LP ID.
tw_eventq event_q
Linked list of events sent to this PE.
size_t delta_size
Size of delta.
unsigned char gvt_status
Bits available for gvt computation.
revent_f revent
LP Reverse event handler routine.
char message[256-2 *sizeof(void *)]
tw_eventid event_id
Unique id assigned by src_lp->pe if remote.
struct st_lp_stats * lp_stats
unsigned int critical_path
Critical path value for this LP.
tw_lptype * type
Type of this LP, including service callbacks.
struct st_kp_stats * kp_stats
tw_statistics stats
per PE counters
pe_init_f pre_lp_init
PE initialization routine, before LP init.
struct st_kp_stats * last_stats[3]
tw_stime recv_ts
Actual time to be received.
void(* pe_init_f)(tw_pe *pe)
tw_pe * pe
PE that services this KP.
unsigned char * delta_buffer[3]
buffers used for delta encoding
long s_rb_secondary
Number of secondary rollbacks by this LP.
tw_event * cancel_next
Next event in the cancel queue for the dest_pe.
struct tw_out tw_out
Rollback-aware output mechanism.
tw_stime LVT
Local (to PE) Virtual Time.
map_f map
LP Mapping of LP gid -> remote PE routine.
tw_stime trans_msg_ts
Last transient messages' time stamp.
Holds the entire PE state.
Network transmission in progress.
unsigned int suspend_flag
tw_eventq pevent_q
Events processed by LPs bound to this KP.
tw_event * cancel_q
List of canceled events.
void(* event_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)
pe_init_f post_lp_init
PE initialization routine, after LP init.
tw_bf cv
Used by app during reverse computation.
tw_petype type
Model defined PE type routines.
tw_stat s_nsend_remote_rb
tw_out * out_msgs
Output messages.
tw_eventq free_q
Linked list of free tw_events.
tw_eventid seq_num
Array of remote send counters for hashing on, size == g_tw_npe.
Function Pointers for ROSS Event Handlers.
tw_event * up
Up pointer for storing membufs in splay tree.
tw_kp * kp
kp – Kernel process that we belong to (must match pe).
Statistics tallied over the duration of the simulation.
unsigned int suspend_do_orig_event_rc
tw_stat s_nsend_net_remote
struct st_lp_stats * last_stats[3]
tw_peid(* map_f)(tw_lpid)
void(* pe_gvt_f)(tw_pe *pe)
tw_clock clock_offset
Initial clock value for this PE.
tw_event * abort_event
Placeholder event for when free_q is empty.
tw_clock clock_time
Most recent clock value for this PE.
unsigned int critical_path
Critical path of this event.
tw_event * cur_event
Current event being processed.
void * hash_t
Array of incoming events from remote pes, Note: only necessary for distributed DSR.
tw_out * output
Output messages.
tw_lpid(* tw_typemap_f)(tw_lpid gid)
unsigned int suspend_error_number
tw_event * cause_next
Next in parent's caused_by_me chain.
tw_lpid send_lp
sending LP ID for data collection uses
tw_wtime start_time
When this PE first started execution.
tw_event * caused_by_me
Start of event list caused by this event.
Reverse Computation Bitfield.
tw_rng * rng
Pointer to the random number generator on this PE.
void(* init_f)(void *sv, tw_lp *me)
long s_e_rbs
Number of events rolled back by this LP.
tw_pq * pq
Priority queue used to sort events.
tw_kp * next
Next KP in the PE's service list.
void(* revent_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)
size_t state_sz
Number of bytes that SV is for the LP.
void(* pre_run_f)(void *sv, tw_lp *me)
long s_rb_total
Number of total rollbacks by this LP.
double s_min_detected_offset
commit_f commit
LP Commit event routine.
Pending network transmission.
tw_stat s_mem_buffers_used
tw_eventq sevent_q
events already sent over the network
struct st_model_types * model_types
tw_stat s_nsend_loc_remote
tw_clock s_fossil_collect
struct tw_event::@0 state
tw_wtime end_time
When this PE finished its execution.
unsigned char remote
Indicates union addr is in 'remote' storage.
tw_stime GVT
Global Virtual Time.
unsigned long long tw_stat
tw_lp * src_lp
Sending LP ID.
tw_kpid id
ID number, otherwise its not available to the app.
void * cur_state
Current application LP data.
void(* map_custom_f)(void)
event_f event
LP event handler routine.
Rollback-aware output mechanism.
Virtual Functions for per PE ops.
tw_stat s_alp_nevent_processed
tw_stat s_nevent_processed
tw_rng_stream * rng
RNG stream array for this LP.
tw_stat s_events_past_end
void(* final_f)(void *sv, tw_lp *me)
void(* commit_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)
void(* pe_final_f)(tw_pe *pe)
pre_run_f pre_run
Second stage LP initialization.
unsigned char cancel_q
Actively on a dest_lp->pe's cancel_q.
tw_stime last_time
Time of the current event being processed.
unsigned char cev_abort
Current event being processed must be aborted.
tw_stat s_nevent_processed
Number of events processed.
unsigned char cancel_asend
unsigned char owner
Owner of the next/prev pointers; see tw_event_owner.