22 #ifndef MONITORING_INTERFACE_H
23 #define MONITORING_INTERFACE_H
25 #define SC_INCLUDE_DYNAMIC_PROCESSES
32 #define MONITORING_MODULE(name) struct name##_trace_packet : public Monitoring
34 #define TRACE_VAR_DOUBLE(var_nom) double var_nom ;
36 #define TRACE_VAR_INT(var_name) int var_name ;
38 #define TRACE_VAR_UINT(var_name) unsigned int var_name ;
40 #define TRACE_VAR_SC_BIGINT(var_name, size) sc_bigint<size> var_name ;
42 #define TRACE_VAR_SC_BIGINT_PTR(var_name, size) sc_bigint<size>* var_name ;
43 #define TRACE_VAR_SC_BIGINT_ALLOCATE(var_name, size, dim) var_name = new sc_bigint<size>[dim];
45 #define MONITORING_ADD_THREAD(module_name, thread_name) sc_spawn(sc_bind(&module_name##_trace_packet::##thread_name##, this, thread_number++), "monitoring_thread_" + thread_number);
47 #define MONITORING_INIT(name) SC_HAS_PROCESS(##name##_trace_packet); \
48 ##name##_trace_packet(sc_module_name nm, Monitoring_interface& services) : Monitoring(nm, services)
50 #define MONITORING_ACTIVATE void activate_trace()
52 #define MONITORING_ANALOG_TRACE(var_name, nm, min_value, max_value, height) sc_trace(services.getTraceFile(), ##var_name##, monitoring_name + "." + nm);
54 #define MONITORING_TRACE(var_name, displayed_name, format) sc_trace(services.getTraceFile(), ##var_name##, monitoring_name + "." + displayed_name);
56 #define MONITORING_THREAD(name) void name(int monitoringThreadID)
58 #define UPDATE_RZ_STATE_EVENT services.updateRZStateEvent(monitoringThreadID)
59 #define UPDATE_TASK_STATE_EVENT services.updateTaskStateEvent(monitoringThreadID)
60 #define START_OF_SCHEDULING_EVENT services.startOfSchedulingEvent(monitoringThreadID)
61 #define END_OF_SCHEDULING_EVENT services.endOfSchedulingEvent(monitoringThreadID)
71 virtual sc_trace_file* getTraceFile()
const = 0;
83 virtual sc_event& startOfSchedulingEvent(
int id) = 0;
89 virtual sc_event& endOfSchedulingEvent(
int id) = 0;
95 virtual sc_event& updateRZStateEvent(
int id) = 0;
101 virtual sc_event& updateTaskStateEvent(
int id) = 0;
108 virtual RZ_config* getRZProperties(
string inst_name) = 0;
Definition: monitoring_interface.h:63
Definition: rz_config.h:36
Definition: scheduler_interface.h:138