21 #pragma GCC visibility push(default) 30 #ifdef FORTRANUNDERSCORE 31 #define PAPI_FCALL(function,caps,args) void function##_ args 32 #elif FORTRANDOUBLEUNDERSCORE 33 #define PAPI_FCALL(function,caps,args) void function##__ args 35 #define PAPI_FCALL(function,caps,args) void caps args 37 #define PAPI_FCALL(function,caps,args) void function args 41 #if defined(_AIX) || defined(sun) || defined(linux) 42 #define _FORTRAN_STRLEN_AT_END 49 #if defined(_FORTRAN_STRLEN_AT_END) 50 static void Fortran2cstring(
char *cstring,
char *Fstring,
int clen ,
int Flen )
55 slen = Flen < clen ? Flen : clen;
56 strncpy( cstring, Fstring, (
size_t ) slen );
59 for (
i = slen - 1;
i > -1 && cstring[
i] ==
' '; cstring[
i--] =
'\0' );
62 cstring[clen - 1] =
'\0';
110 #if defined(_FORTRAN_STRLEN_AT_END) 112 (
int *
EventSet,
char *EventName,
int *
check,
int Event_len ) )
218 (
long long *dest,
int *
check ) )
236 #if defined(_FORTRAN_STRLEN_AT_END) 238 (
char *fullname,
char *
name,
long long *text_start,
239 long long *text_end,
long long *data_start,
long long *data_end,
240 long long *bss_start,
long long *bss_end,
241 int *
check,
int fullname_len,
int name_len ) )
244 (
char *fullname,
char *
name,
long long *text_start,
245 long long *text_end,
long long *data_start,
long long *data_end,
246 long long *bss_start,
long long *bss_end,
int *
check ) )
256 #if defined(_FORTRAN_STRLEN_AT_END) 260 fullname[
i++] =
' ' );
289 #if defined(_FORTRAN_STRLEN_AT_END) 320 if ( hwinfo == NULL ) {
329 *ncpu = hwinfo->
ncpu;
333 *model = hwinfo->
model;
336 #if defined(_FORTRAN_STRLEN_AT_END) 337 strncpy( vendor_str, hwinfo->
vendor_string, (
size_t ) vendor_len );
339 vendor_str[
i++] =
' ' );
340 strncpy( model_str, hwinfo->
model_string, (
size_t ) model_len );
342 model_str[
i++] =
' ' );
382 (
int *
cidx,
int *num ) )
557 (
unsigned long int ( *handle ) (
void ),
int *
check ) )
635 #if defined(_FORTRAN_STRLEN_AT_END) 644 #if defined(_FORTRAN_STRLEN_AT_END) 673 (
int *EventCode,
int *
check ) )
688 #if defined(_FORTRAN_STRLEN_AT_END) 690 (
char *EventName,
int *
check,
int Event_len ) )
698 (
char *EventName,
int *
check ) )
716 #if defined(_FORTRAN_STRLEN_AT_END) 718 (
int *EventCode,
char *symbol,
char *long_descr,
char *short_descr,
719 int *
count,
char *event_note,
int *flags,
int *
check,
720 int symbol_len,
int long_descr_len,
int short_descr_len,
721 int event_note_len ) )
724 (
int *EventCode,
char *symbol,
char *long_descr,
char *short_descr,
725 int *
count,
char *event_note,
int *flags,
int *
check ) )
730 #if defined(_FORTRAN_STRLEN_AT_END) 733 strncpy( symbol, info.
symbol, (
size_t ) symbol_len );
734 for (
i = (
int ) strlen( info.
symbol );
i < symbol_len;
736 strncpy( long_descr, info.
long_descr, (
size_t ) long_descr_len );
737 for (
i = (
int ) strlen( info.
long_descr );
i < long_descr_len;
738 long_descr[
i++] =
' ' );
739 strncpy( short_descr, info.
short_descr, (
size_t ) short_descr_len );
740 for (
i = (
int ) strlen( info.
short_descr );
i < short_descr_len;
741 short_descr[
i++] =
' ' );
747 strncpy( event_note, info.
note, (
size_t ) event_note_len );
748 note_len=strlen(info.
note);
750 for (
i = note_len;
i < event_note_len;
751 event_note[
i++] =
' ' );
761 strncpy( event_note, info.
note,
778 #if defined(_FORTRAN_STRLEN_AT_END) 780 (
int *EventCode,
char *out_str,
int *
check,
int out_len ) )
783 (
int *EventCode,
char *out,
int *
check ) )
786 #if defined(_FORTRAN_STRLEN_AT_END) 791 strncpy( out_str,
tmp, (
size_t ) out_len );
793 for (
i = (
int ) strlen(
tmp );
i < out_len; out_str[
i++] =
' ' );
810 #if defined(_FORTRAN_STRLEN_AT_END) 812 (
char *in_str,
int *out,
int *
check,
int in_len ) )
815 (
char *in,
int *out,
int *
check ) )
818 #if defined(_FORTRAN_STRLEN_AT_END) 824 strncpy( tmpin, in_str, (
size_t ) slen );
827 for (
i = slen - 1;
i > -1 && tmpin[
i] ==
' '; tmpin[
i--] =
'\0' );
867 (
int *EventCode,
int *modifier,
int *
check ) )
930 #if defined(_FORTRAN_STRLEN_AT_END) 932 (
int *
EventSet,
char *EventName,
int *
check,
int Event_len ) )
1018 (
int *domain,
int *
cidx,
int *
check ) )
1034 (
int *granularity,
int *
check ) )
1050 (
int *granularity,
int *
cidx,
int *
check ) )
1194 (
long long *
values,
int *array_len,
int *
check ) )
1210 (
long long *
values,
int *array_len,
int *
check ) )
1226 (
long long *
values,
int *array_len,
int *
check ) )
1257 (
float *rtime,
float *ptime,
long long *ins,
float *ipc,
1274 (
int event,
float *rtime,
float *ptime,
1275 long long *ref,
long long *core,
long long *evt,
float *epc,
1278 *
check =
PAPI_epc( event, rtime, ptime, ref, core, evt, epc );
1292 (
float *real_time,
float *proc_time,
long long *flpins,
1293 float *mflips,
int *
check ) )
1309 (
float *real_time,
float *proc_time,
long long *flpops,
1310 float *mflops,
int *
check ) )
1347 #if defined(_FORTRAN_STRLEN_AT_END) 1349 (
char *lib_preload_env,
int *
check,
int lib_preload_env_len ) )
1352 (
char *lib_preload_env,
int *
check ) )
1356 #if defined(_FORTRAN_STRLEN_AT_END) 1361 (
size_t ) lib_preload_env_len );
1363 i < lib_preload_env_len; lib_preload_env[
i++] =
' ' );
1383 (
int *eventset,
int *granularity,
int *mode,
int *
check ) )
1411 (
int *eventset,
int *domain,
int *mode,
int *
check ) )
1451 (
int *es,
int *domain,
int *
check ) )
1478 #pragma GCC visibility pop
void PAPIF_FLOPS(float *real_time, float *proc_time, long long *flpops, float *mflops, int *check)
void PAPIF_GET_REAL_CYC(long long *real_cyc)
int PAPI_stop(int EventSet, long long *values)
void PAPIF_WRITE(int *EventSet, long long *values, int *check)
void PAPIF_ADD_NAMED_EVENT(int *EventSet, char *EventName, int *check, int Event_len)
int PAPI_is_initialized(void)
void PAPIF_SHUTDOWN(void)
void PAPIF_THREAD_ID(unsigned long *id)
void PAPIF_SET_DOMAIN(int *domain, int *check)
int PAPI_add_event(int EventSet, int EventCode)
long long PAPI_get_virt_usec(void)
int PAPI_set_cmp_granularity(int granularity, int cidx)
int PAPI_reset(int EventSet)
static int Events[NUM_EVENTS]
void PAPIF_GET_CLOCKRATE(int *cr)
unsigned long PAPI_thread_id(void)
int PAPI_write(int EventSet, long long *values)
void PAPIF_GET_PRELOAD(char *lib_preload_env, int *check, int lib_preload_env_len)
void PAPIF_IS_INITIALIZED(int *level)
int PAPI_ipc(float *rtime, float *ptime, long long *ins, float *ipc)
int PAPI_remove_event(int EventSet, int EventCode)
long long PAPI_get_virt_cyc(void)
void PAPIF_GET_REAL_USEC(long long *time)
void PAPIF_REMOVE_NAMED_EVENT(int *EventSet, char *EventName, int *check, int Event_len)
int PAPI_flops(float *rtime, float *ptime, long long *flpops, float *mflops)
void PAPIF_GET_DMEM_INFO(long long *dest, int *check)
void PAPIF_LOCK(int *lock, int *check)
int PAPI_accum_counters(long long *values, int array_len)
void PAPIF_GET_EVENT_INFO(int *EventCode, char *symbol, char *long_descr, char *short_descr, int *count, char *event_note, int *flags, int *check, int symbol_len, int long_descr_len, int short_descr_len, int event_note_len)
void PAPIF_STATE(int *EventSet, int *status, int *check)
int PAPI_enum_event(int *EventCode, int modifier)
PAPI_granularity_option_t granularity
void PAPIF_UNREGISTER_THREAD(int *check)
void PAPIF_START_COUNTERS(int *events, int *array_len, int *check)
char long_descr[PAPI_HUGE_STR_LEN]
int PAPI_register_thread(void)
void PAPIF_GET_GRANULARITY(int *eventset, int *granularity, int *mode, int *check)
int PAPI_event_name_to_code(const char *in, int *out)
A pointer to the following is passed to PAPI_set/get_opt()
static void Fortran2cstring(char *cstring, char *Fstring, int clen, int Flen)
int PAPI_remove_events(int EventSet, int *Events, int number)
void PAPIF_FLIPS(float *real_time, float *proc_time, long long *flpins, float *mflips, int *check)
Return the number of hardware counters on the specified component.
int PAPI_set_opt(int option, PAPI_option_t *ptr)
int PAPI_add_events(int EventSet, int *Events, int number)
void PAPIF_STOP_COUNTERS(long long *values, int *array_len, int *check)
void PAPIF_READ(int *EventSet, long long *values, int *check)
Return codes and api definitions.
void PAPIF_ASSIGN_EVENTSET_COMPONENT(int *EventSet, int *cidx, int *check)
int PAPI_get_event_info(int EventCode, PAPI_event_info_t *info)
void PAPIF_LIST_EVENTS(int *EventSet, int *Events, int *number, int *check)
void PAPIF_SET_INHERIT(int *inherit, int *check)
int PAPI_add_named_event(int EventSet, const char *EventName)
char events[MAX_EVENTS][BUFSIZ]
int PAPI_set_cmp_domain(int domain, int cidx)
int PAPI_flips(float *rtime, float *ptime, long long *flpins, float *mflips)
int PAPI_epc(int event, float *rtime, float *ptime, long long *ref, long long *core, long long *evt, float *epc)
int PAPI_num_cmp_hwctrs(int cidx)
void PAPIF_REMOVE_EVENTS(int *EventSet, int *Events, int *number, int *check)
int PAPI_accum(int EventSet, long long *values)
void PAPIF_NUM_COUNTERS(int *numevents)
void PAPIF_EVENT_CODE_TO_NAME(int *EventCode, char *out_str, int *check, int out_len)
int PAPI_thread_init(unsigned long int(*id_fn)(void))
int PAPI_library_init(int version)
int PAPI_num_hwctrs(void)
void PAPIF_SET_EVENT_DOMAIN(int *es, int *domain, int *check)
int PAPI_stop_counters(long long *values, int array_len)
Return the number of hardware counters on the cpu.
A pointer to the following is passed to PAPI_get_dmem_info()
void PAPIF_GET_REAL_NSEC(long long *time)
void PAPIF_READ_COUNTERS(long long *values, int *array_len, int *check)
int PAPI_num_events(int EventSet)
int PAPI_get_opt(int option, PAPI_option_t *ptr)
PAPI_address_map_t address_info
char symbol[PAPI_HUGE_STR_LEN]
void PAPIF_ADD_EVENTS(int *EventSet, int *Events, int *number, int *check)
void PAPIF_GET_MULTIPLEX(int *EventSet, int *check)
int PAPI_state(int EventSet, int *status)
char model_string[PAPI_MAX_STR_LEN]
int PAPI_query_named_event(const char *EventName)
void PAPIF_ACCUM_COUNTERS(long long *values, int *array_len, int *check)
void PAPIF_THREAD_INIT(unsigned long int(*handle)(void), int *check)
PAPI_exe_info_t * exe_info
#define PAPI_FCALL(function, caps, args)
static int Event[MAX_EVENTS]
void PAPIF_NUM_EVENTS(int *EventCode, int *count)
int PAPI_set_granularity(int granularity)
void PAPIF_REMOVE_EVENT(int *EventSet, int *Event, int *check)
char short_descr[PAPI_MIN_STR_LEN]
void PAPIF_GET_DOMAIN(int *eventset, int *domain, int *mode, int *check)
void PAPIF_QUERY_EVENT(int *EventCode, int *check)
void PAPIF_DESTROY_EVENTSET(int *EventSet, int *check)
int PAPI_cleanup_eventset(int EventSet)
void PAPIF_CREATE_EVENTSET(int *EventSet, int *check)
int PAPI_assign_eventset_component(int EventSet, int cidx)
int PAPI_create_eventset(int *EventSet)
int PAPI_event_code_to_name(int EventCode, char *out)
void PAPIF_REGISTER_THREAD(int *check)
void PAPIF_QUERY_NAMED_EVENT(char *EventName, int *check, int Event_len)
char vendor_string[PAPI_MAX_STR_LEN]
int PAPI_get_dmem_info(PAPI_dmem_info_t *dest)
void PAPIF_GET_EXE_INFO(char *fullname, char *name, long long *text_start, long long *text_end, long long *data_start, long long *data_end, long long *bss_start, long long *bss_end, int *check, int fullname_len, int name_len)
int PAPI_query_event(int EventCode)
int PAPI_multiplex_init(void)
void PAPIF_SET_MULTIPLEX(int *EventSet, int *check)
void PAPIF_MULTIPLEX_INIT(int *check)
void PAPIF_GET_VIRT_USEC(long long *time)
int PAPI_read_ts(int EventSet, long long *values, long long *cycles)
void PAPIF_SET_GRANULARITY(int *granularity, int *check)
void PAPIF_SET_CMP_GRANULARITY(int *granularity, int *cidx, int *check)
long long PAPI_get_real_usec(void)
void PAPIF_SET_DEBUG(int *debug, int *check)
int PAPI_unregister_thread(void)
int PAPI_read_counters(long long *values, int array_len)
long long PAPI_get_real_nsec(void)
int PAPI_num_counters(void)
void PAPIF_SET_CMP_DOMAIN(int *domain, int *cidx, int *check)
int PAPI_start_counters(int *events, int array_len)
void PAPIF_START(int *EventSet, int *check)
Unlock one of the mutex variables defined in papi.h.
void PAPIF_ADD_EVENT(int *EventSet, int *Event, int *check)
int PAPI_set_multiplex(int EventSet)
void PAPIF_RESET(int *EventSet, int *check)
int PAPI_destroy_eventset(int *EventSet)
void PAPIF_EPC(int event, float *rtime, float *ptime, long long *ref, long long *core, long long *evt, float *epc, int *check)
int PAPI_remove_named_event(int EventSet, const char *EventName)
PAPI_domain_option_t domain
int PAPI_set_domain(int domain)
long long PAPI_get_real_cyc(void)
int PAPI_read(int EventSet, long long *values)
void PAPIF_GET_HARDWARE_INFO(int *ncpu, int *nnodes, int *totalcpus, int *vendor, char *vendor_str, int *model, char *model_str, float *revision, float *mhz, int vendor_len, int model_len)
char fullname[PAPI_HUGE_STR_LEN]
int PAPI_start(int EventSet)
PAPI_preload_info_t preload
void PAPI_perror(const char *msg)
char lib_preload_env[PAPI_MAX_STR_LEN]
void PAPIF_EVENT_NAME_TO_CODE(char *in_str, int *out, int *check, int in_len)
int PAPI_get_multiplex(int EventSet)
const PAPI_hw_info_t * PAPI_get_hardware_info(void)
static long long values[NUM_EVENTS]
void PAPIF_READ_TS(int *EventSet, long long *values, long long *cycles, int *check)
char note[PAPI_HUGE_STR_LEN]
void PAPIF_IPC(float *rtime, float *ptime, long long *ins, float *ipc, int *check)
int PAPI_set_debug(int level)
void PAPIF_PERROR(char *message, int message_len)
char name[PAPI_HUGE_STR_LEN]
void PAPIF_CLEANUP_EVENTSET(int *EventSet, int *check)
void PAPIF_LIBRARY_INIT(int *check)
void PAPIF_GET_VIRT_CYC(long long *virt_cyc)
void PAPIF_ENUM_EVENT(int *EventCode, int *modifier, int *check)
int PAPI_list_events(int EventSet, int *Events, int *number)
void PAPIF_STOP(int *EventSet, long long *values, int *check)
void PAPIF_UNREGSTER_THREAD(int *check)
void PAPIF_ACCUM(int *EventSet, long long *values, int *check)