dol: initial dol commit
[jump.git] / dol / src / dol / visitor / rtems / lib / appsupport.h
diff --git a/dol/src/dol/visitor/rtems/lib/appsupport.h b/dol/src/dol/visitor/rtems/lib/appsupport.h
new file mode 100644 (file)
index 0000000..6e50558
--- /dev/null
@@ -0,0 +1,79 @@
+///////////////////////////////////////////////////////////////////////////////\r
+// Copyright 2003 DEIS - Universita' di Bologna\r
+// \r
+// name         appsupport.h\r
+// author       DEIS - Universita' di Bologna\r
+//              Davide Bertozzi - dbertozzi@deis.unibo.it\r
+//              Mirko Loghi - mloghi@deis.unibo.it\r
+//              Federico Angiolini - fangiolini@deis.unibo.it\r
+//              Francesco Poletti - fpoletti@deis.unibo.it\r
+// portions by  Massimo Scardamaglia - mascard@vizzavi.it\r
+// info         Provides support for testbench compilation\r
+//\r
+///////////////////////////////////////////////////////////////////////////////\r
+\r
+#ifndef __APPSUPPORT_H__\r
+#define __APPSUPPORT_H__\r
+\r
+#include "swi_calls.h"\r
+#include "config.h"\r
+#include "sim_support_flags.h"\r
+\r
+#define start_metric()       __asm ("swi " SWI_METRIC_STARTstr)\r
+#define stop_metric()        __asm ("swi " SWI_METRIC_STOPstr)\r
+#define dump_metric()        __asm ("swi " SWI_METRIC_DUMPstr)\r
+#define clear_metric()       __asm ("swi " SWI_METRIC_CLEARstr)\r
+#define stop_simulation()    __asm ("swi " SWI_EXITstr)\r
+void pr(int proc, int msg_num, int num_arg);\r
+unsigned int get_proc_id();\r
+\r
+#undef get_id\r
+#define get_id() get_proc_id()\r
+\r
+unsigned int get_proc_num();\r
+\r
+// ---------------------------\r
+// Frequency scaling functions\r
+// ---------------------------\r
+void scale_this_core_frequency(unsigned short int divider);\r
+void scale_device_frequency(unsigned short int divider, int ID);\r
+unsigned short int get_this_core_frequency();\r
+unsigned short int get_device_frequency(int ID);\r
+\r
+#define RTEMS_TRACE_MAIN_APP\r
+\r
+#ifdef RTEMS_TRACE_MAIN_APP\r
+//It print out the processor id, the parameter "a" and the actual clock cycles\r
+//Eg. Processor 0  -  0x3e740 start_cycle:353089\r
+#define SHOW_TIME_START(a)    pr(0x11111, 0x10020, (int)a)\r
+//Eg. Processor 0  -  0x3e740 stop_cycle:353143\r
+#define SHOW_TIME_STOP(a)     pr(0x11111, 0x10030, (int)a)\r
+//It print out the string a \r
+#define SHOW_DEBUG(a)         pr(0x11111, 0x10000, (int)a)\r
+#define SHOW_DEBUG_NON(a)     pr(0x11111, 0x10001, (int)a)\r
+#define SHOW_DEBUG_NOP(a)     pr(0x11111, 0x10002, (int)a)\r
+#define SHOW_DEBUG_NON_NOP(a) pr(0x11111, 0x10003, (int)a)\r
+//It print out the integer a\r
+#define SHOW_DEBUG_INT(a)         pr(0x11111, 0x10010, (int)a)\r
+#define SHOW_DEBUG_INT_NON(a)     pr(0x11111, 0x10011, (int)a)\r
+#define SHOW_DEBUG_INT_NOP(a)     pr(0x11111, 0x10012, (int)a)\r
+#define SHOW_DEBUG_INT_NON_NOP(a) pr(0x11111, 0x10013, (int)a)\r
+#else\r
+//empty definitions\r
+#define SHOW_TIME_START(a)\r
+#define SHOW_TIME_STOP(a)\r
+#define SHOW_DEBUG(a)\r
+#define SHOW_DEBUG_NON(a)\r
+#define SHOW_DEBUG_INT_NOP(a)\r
+#define SHOW_DEBUG_INT_NON_NOP(a)\r
+#define SHOW_DEBUG_INT(a)\r
+#define SHOW_DEBUG_INT_NON(a)\r
+#define SHOW_DEBUG_INT_NOP(a)\r
+#define SHOW_DEBUG_INT_NON_NOP(a)\r
+#endif\r
+\r
+unsigned long long int get_time();\r
+unsigned long long int get_cycle();\r
+unsigned long long int get_cycle1();\r
+\r
+#endif // __APPSUPPORT_H__\r