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