1*a0c7f9aaSSamuel Khuvis ! Copyright (c) 2019-2020 University of Oregon 2*a0c7f9aaSSamuel Khuvis ! Distributed under the BSD Software License 3*a0c7f9aaSSamuel Khuvis ! (See accompanying file LICENSE.txt) 4*a0c7f9aaSSamuel Khuvis 5*a0c7f9aaSSamuel Khuvis #ifdef PERFSTUBS_USE_TIMERS 6*a0c7f9aaSSamuel Khuvis 7*a0c7f9aaSSamuel Khuvis ! 8*a0c7f9aaSSamuel Khuvis ! Macro API for option of entirely disabling at compile time 9*a0c7f9aaSSamuel Khuvis ! To use this API, set the Macro PERFSTUBS_USE_TIMERS on the command 10*a0c7f9aaSSamuel Khuvis ! line or in a config.h file, however your project does it 11*a0c7f9aaSSamuel Khuvis ! 12*a0c7f9aaSSamuel Khuvis 13*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_INITIALIZE() call ps_initialize() 14*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_FINALIZE() call ps_finalize() 15*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_DUMP_DATA() call ps_dump_data() 16*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_REGISTER_THREAD() call ps_register_thread() 17*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_CREATE(_timer_object, _timer_name) \ 18*a0c7f9aaSSamuel Khuvis call ps_timer_create_fortran(_timer_object, _timer_name//CHAR(0)) 19*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_START(_timer_object) \ 20*a0c7f9aaSSamuel Khuvis call ps_timer_start_fortran(_timer_object) 21*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_STOP(_timer_object) \ 22*a0c7f9aaSSamuel Khuvis call ps_timer_stop_fortran(_timer_object) 23*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_SET_PARAMETER(_parameter_name, parameter_value) \ 24*a0c7f9aaSSamuel Khuvis call ps_set_parameter(_parameter_name//CHAR(0), parameter_value) 25*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_DYNAMIC_PHASE_START(_phase_prefix, _iteration_index) \ 26*a0c7f9aaSSamuel Khuvis call ps_dynamic_phase_start(_phase_prefix//CHAR(0), _iteration_index) 27*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_DYNAMIC_PHASE_STOP(_phase_prefix, _iteration_index) \ 28*a0c7f9aaSSamuel Khuvis call ps_dynamic_phase_stop(_phase_prefix//CHAR(0), _iteration_index) 29*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_CREATE_COUNTER(_counter_object, _name) \ 30*a0c7f9aaSSamuel Khuvis call ps_create_counter_fortran(_counter_object, _name//CHAR(0)) 31*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_SAMPLE_COUNTER(_counter_object, _value) \ 32*a0c7f9aaSSamuel Khuvis call ps_sample_counter_fortran(_counter_object, _value) 33*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_METADATA(_name, _value) \ 34*a0c7f9aaSSamuel Khuvis call ps_set_metadata(_name//CHAR(0), _value//CHAR(0)) 35*a0c7f9aaSSamuel Khuvis 36*a0c7f9aaSSamuel Khuvis ! // defined(PERFSTUBS_USE_TIMERS) 37*a0c7f9aaSSamuel Khuvis #else 38*a0c7f9aaSSamuel Khuvis 39*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_INIT() 40*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_DUMP_DATA() 41*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_REGISTER_THREAD() 42*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_CREATE(_timer_object, _timer_name) 43*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_START(_timer_object) 44*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_STOP(_timer_object) 45*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_SET_PARAMETER(_parameter_name, _parameter_value) 46*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_DYNAMIC_PHASE_START(_phase_prefix, _iteration_index) 47*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_DYNAMIC_PHASE_STOP(_phase_prefix, _iteration_index) 48*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_START_FUNC() 49*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_TIMER_STOP_FUNC() 50*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_CREATE_COUNTER(_counter_object, _name) 51*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_SAMPLE_COUNTER(_counter_object, _value) 52*a0c7f9aaSSamuel Khuvis #define PERFSTUBS_METADATA(_name, _value) 53*a0c7f9aaSSamuel Khuvis 54*a0c7f9aaSSamuel Khuvis ! // defined(PERFSTUBS_USE_TIMERS) 55*a0c7f9aaSSamuel Khuvis #endif 56