12#if defined STANDALONE_RTI || defined LF_ENCLAVES
24typedef enum execution_mode_t { FAST, REALTIME } execution_mode_t;
27typedef enum scheduling_node_state_t {
31} scheduling_node_state_t;
34typedef struct minimum_delay_t {
49typedef struct scheduling_node_t {
54 tag_t last_provisionally_granted;
57 scheduling_node_state_t state;
58 uint16_t* immediate_upstreams;
61 uint16_t num_immediate_upstreams;
62 uint16_t* immediate_downstreams;
63 uint16_t num_immediate_downstreams;
64 execution_mode_t mode;
73typedef struct rti_common_t {
75 scheduling_node_t** scheduling_nodes;
78 uint16_t number_of_scheduling_nodes;
90 int num_scheduling_nodes_handling_stop;
105} tag_advance_grant_t;
113void initialize_rti_common(rti_common_t* rti_common);
127void _logical_tag_complete(scheduling_node_t* e,
tag_t completed);
135void initialize_scheduling_node(scheduling_node_t* e, uint16_t
id);
147void notify_downstream_advance_grant_if_safe(scheduling_node_t* e,
bool visited[]);
162void notify_tag_advance_grant(scheduling_node_t* e,
tag_t tag);
173void notify_advance_grant_if_safe(scheduling_node_t* e);
187void notify_provisional_tag_advance_grant(scheduling_node_t* e,
tag_t tag);
220tag_advance_grant_t tag_advance_grant_if_safe(scheduling_node_t* e);
232void update_scheduling_node_next_event_tag_locked(scheduling_node_t* e,
tag_t next_event_tag);
242tag_t earliest_future_incoming_message_tag(scheduling_node_t* e);
254tag_t eimt_strict(scheduling_node_t* e);
262void update_min_delays();
291tag_t downstream_next_event_tag(scheduling_node_t* node, uint16_t node_sending_new_net_id);
298void notify_downstream_next_event_tag(scheduling_node_t* e,
tag_t tag);
304bool is_in_zero_delay_cycle(scheduling_node_t* node);
310bool is_in_cycle(scheduling_node_t* node);
316void invalidate_min_delays();
321void free_scheduling_nodes(scheduling_node_t** scheduling_nodes, uint16_t number_of_scheduling_nodes);
void * lf_mutex_t
Definition lf_arduino_support.h:118
Time and tag definitions and functions for Lingua Franca.
int64_t interval_t
Definition tag.h:68
Definitions of tracepoint functions for use with the C code generator and any other code generator th...