RecoSim  1.0
 All Classes Files Functions Variables Enumerations
monitoring_interface.h
Go to the documentation of this file.
1 
22 #ifndef MONITORING_INTERFACE_H
23 #define MONITORING_INTERFACE_H
24 
25 #define SC_INCLUDE_DYNAMIC_PROCESSES
26 #include <systemc.h>
27 
28 #include "scheduler_interface.h"
29 
30 using namespace std;
31 
32 #define MONITORING_MODULE(name) struct name##_trace_packet : public Monitoring
33 
34 #define TRACE_VAR_DOUBLE(var_nom) double var_nom ;
35 
36 #define TRACE_VAR_INT(var_name) int var_name ;
37 
38 #define TRACE_VAR_UINT(var_name) unsigned int var_name ;
39 
40 #define TRACE_VAR_SC_BIGINT(var_name, size) sc_bigint<size> var_name ;
41 
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];
44 
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);
46 
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)
49 
50 #define MONITORING_ACTIVATE void activate_trace()
51 
52 #define MONITORING_ANALOG_TRACE(var_name, nm, min_value, max_value, height) sc_trace(services.getTraceFile(), ##var_name##, monitoring_name + "." + nm);
53 
54 #define MONITORING_TRACE(var_name, displayed_name, format) sc_trace(services.getTraceFile(), ##var_name##, monitoring_name + "." + displayed_name);
55 
56 #define MONITORING_THREAD(name) void name(int monitoringThreadID)
57 
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)
62 
64 
65 public:
66 
71  virtual sc_trace_file* getTraceFile() const = 0;
72 
77  virtual Scheduler_interface& getShedulerInterface() = 0;
78 
83  virtual sc_event& startOfSchedulingEvent(int id) = 0;
84 
89  virtual sc_event& endOfSchedulingEvent(int id) = 0;
90 
95  virtual sc_event& updateRZStateEvent(int id) = 0;
96 
101  virtual sc_event& updateTaskStateEvent(int id) = 0;
102 
108  virtual RZ_config* getRZProperties(string inst_name) = 0;
109 
110 };
111 
112 #endif
Definition: monitoring_interface.h:63
Definition: rz_config.h:36
Definition: scheduler_interface.h:138