24#include <sys/syscall.h>
28#include <sys/ucontext.h>
29#include <sys/ptrace.h>
40#define DEBUGCALL(a,b) { if (ISLEVEL(a)) { b; } }
45#define PFNECLIB_MAX_PMDS 32
56#define PKG_NUM_EVENTS 16
59 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
61 = {
"EX",
"VX",
"FPEC",
"VE",
"VECC",
"L1MCC",
"VE2",
"VAREC",
62 "VLDEC",
"PCCC",
"VLDCC",
"VLEC",
"VLCME2",
"FMAEC",
"PTCC",
"TTCC"};
71 "Vector execution count",
72 "Floating point data element count",
73 "Vector elements count",
74 "Vector execution clock count",
75 "L1 cache miss clock count",
76 "Vector elements count 2",
77 "Vector arithmetic execution clock count",
78 "Vector load execution clock count",
79 "Port conflict clock count",
80 "Vector load packet count",
81 "Vector load element count",
82 "Vector load cache miss element count 2",
83 "Fused multiply add element count",
84 "Power throttling clock count",
85 "Thermal throttling clock count"};
87typedef struct _perfnec_register {
91typedef struct _perfnec_native_event_entry {
113 char *
retval = strncpy( dst, src, size );
114 if ( size > 0 ) dst[size-1] =
'\0';
120#define MAX_COUNTERS PFMLIB_MAX_PMCS
121#define MAX_COUNTER_TERMS PFMLIB_MAX_PMCS
134#if defined(USE_PROC_PTTIMER)
pfnec_register_t cmp_register_t
int pfnec_dfl_smpl_entry_t
#define PFNECLIB_MAX_PMDS
static _perfnec_native_event_entry_t perfnec_ntv_events[PKG_NUM_EVENTS]
static char * _local_strlcpy(char *dst, const char *src, size_t size)
static const char * pkg_event_descs[PKG_NUM_EVENTS]
static int pkg_events[PKG_NUM_EVENTS]
pfnec_reg_alloc_t cmp_reg_alloc_t
static const char * pkg_units[PKG_NUM_EVENTS]
static const char * pkg_event_names[PKG_NUM_EVENTS]
pfnec_control_state_t _perfnec_control_state_t
pfnec_context_t _perfnec_context_t
char units[MAX_EVENTS][BUFSIZ]
_perfnec_register_t resources