dol: initial dol commit
[jump.git] / dol / src / dol / visitor / rtems / lib / appsupport.h
1 ///////////////////////////////////////////////////////////////////////////////\r
2 // Copyright 2003 DEIS - Universita' di Bologna\r
3 // \r
4 // name         appsupport.h\r
5 // author       DEIS - Universita' di Bologna\r
6 //              Davide Bertozzi - dbertozzi@deis.unibo.it\r
7 //              Mirko Loghi - mloghi@deis.unibo.it\r
8 //              Federico Angiolini - fangiolini@deis.unibo.it\r
9 //              Francesco Poletti - fpoletti@deis.unibo.it\r
10 // portions by  Massimo Scardamaglia - mascard@vizzavi.it\r
11 // info         Provides support for testbench compilation\r
12 //\r
13 ///////////////////////////////////////////////////////////////////////////////\r
14 \r
15 #ifndef __APPSUPPORT_H__\r
16 #define __APPSUPPORT_H__\r
17 \r
18 #include "swi_calls.h"\r
19 #include "config.h"\r
20 #include "sim_support_flags.h"\r
21 \r
22 #define start_metric()       __asm ("swi " SWI_METRIC_STARTstr)\r
23 #define stop_metric()        __asm ("swi " SWI_METRIC_STOPstr)\r
24 #define dump_metric()        __asm ("swi " SWI_METRIC_DUMPstr)\r
25 #define clear_metric()       __asm ("swi " SWI_METRIC_CLEARstr)\r
26 #define stop_simulation()    __asm ("swi " SWI_EXITstr)\r
27 void pr(int proc, int msg_num, int num_arg);\r
28 unsigned int get_proc_id();\r
29 \r
30 #undef get_id\r
31 #define get_id() get_proc_id()\r
32 \r
33 unsigned int get_proc_num();\r
34 \r
35 // ---------------------------\r
36 // Frequency scaling functions\r
37 // ---------------------------\r
38 void scale_this_core_frequency(unsigned short int divider);\r
39 void scale_device_frequency(unsigned short int divider, int ID);\r
40 unsigned short int get_this_core_frequency();\r
41 unsigned short int get_device_frequency(int ID);\r
42 \r
43 #define RTEMS_TRACE_MAIN_APP\r
44 \r
45 #ifdef RTEMS_TRACE_MAIN_APP\r
46 //It print out the processor id, the parameter "a" and the actual clock cycles\r
47 //Eg. Processor 0  -  0x3e740 start_cycle:353089\r
48 #define SHOW_TIME_START(a)    pr(0x11111, 0x10020, (int)a)\r
49 //Eg. Processor 0  -  0x3e740 stop_cycle:353143\r
50 #define SHOW_TIME_STOP(a)     pr(0x11111, 0x10030, (int)a)\r
51 //It print out the string a \r
52 #define SHOW_DEBUG(a)         pr(0x11111, 0x10000, (int)a)\r
53 #define SHOW_DEBUG_NON(a)     pr(0x11111, 0x10001, (int)a)\r
54 #define SHOW_DEBUG_NOP(a)     pr(0x11111, 0x10002, (int)a)\r
55 #define SHOW_DEBUG_NON_NOP(a) pr(0x11111, 0x10003, (int)a)\r
56 //It print out the integer a\r
57 #define SHOW_DEBUG_INT(a)         pr(0x11111, 0x10010, (int)a)\r
58 #define SHOW_DEBUG_INT_NON(a)     pr(0x11111, 0x10011, (int)a)\r
59 #define SHOW_DEBUG_INT_NOP(a)     pr(0x11111, 0x10012, (int)a)\r
60 #define SHOW_DEBUG_INT_NON_NOP(a) pr(0x11111, 0x10013, (int)a)\r
61 #else\r
62 //empty definitions\r
63 #define SHOW_TIME_START(a)\r
64 #define SHOW_TIME_STOP(a)\r
65 #define SHOW_DEBUG(a)\r
66 #define SHOW_DEBUG_NON(a)\r
67 #define SHOW_DEBUG_INT_NOP(a)\r
68 #define SHOW_DEBUG_INT_NON_NOP(a)\r
69 #define SHOW_DEBUG_INT(a)\r
70 #define SHOW_DEBUG_INT_NON(a)\r
71 #define SHOW_DEBUG_INT_NOP(a)\r
72 #define SHOW_DEBUG_INT_NON_NOP(a)\r
73 #endif\r
74 \r
75 unsigned long long int get_time();\r
76 unsigned long long int get_cycle();\r
77 unsigned long long int get_cycle1();\r
78 \r
79 #endif // __APPSUPPORT_H__\r