41#define PFM_pfm_create_context (_pfmlib_get_sys_base()+0)
42#define PFM_pfm_write_pmcs (_pfmlib_get_sys_base()+1)
43#define PFM_pfm_write_pmds (_pfmlib_get_sys_base()+2)
44#define PFM_pfm_read_pmds (_pfmlib_get_sys_base()+3)
45#define PFM_pfm_load_context (_pfmlib_get_sys_base()+4)
46#define PFM_pfm_start (_pfmlib_get_sys_base()+5)
47#define PFM_pfm_stop (_pfmlib_get_sys_base()+6)
48#define PFM_pfm_restart (_pfmlib_get_sys_base()+7)
49#define PFM_pfm_create_evtsets (_pfmlib_get_sys_base()+8)
50#define PFM_pfm_getinfo_evtsets (_pfmlib_get_sys_base()+9)
51#define PFM_pfm_delete_evtsets (_pfmlib_get_sys_base()+10)
52#define PFM_pfm_unload_context (_pfmlib_get_sys_base()+11)
60 unsigned char ctx_smpl_buf_id[16];
64 uint64_t ctx_reserved3[12];
70#ifndef PFMLIB_OLD_PFMV2
90 if (
name || smpl_arg || smpl_size)
109 pmrs = calloc(
count,
sizeof(*pmrs));
137 sz =
count *
sizeof(*pmas);
142 pmas = calloc(
count,
sizeof(*pmas));
160 memcpy(pmas[
i].reg_smpl_pmds, pmds[
i].reg_smpl_pmds,
sizeof(pmds[
i].reg_smpl_pmds));
161 memcpy(pmas[
i].reg_reset_pmds, pmds[
i].reg_reset_pmds,
sizeof(pmds[
i].reg_reset_pmds));
184 sz =
count *
sizeof(*pmas);
189 pmas = calloc(
count,
sizeof(*pmas));
276 int fdx,
i, ret, errno_save;
287 memset(&cinfo, -1,
sizeof(cinfo));
297 sif = calloc(
count,
sizeof(*sif));
304 sif[
i].set_id = info[
i].set_id;
314 memcpy(info[
i].set_ovfl_pmds,
315 sif[
i].set_ovfl_pmds,
316 sizeof(info[
i].set_ovfl_pmds));
322 memcpy(info[
i].set_avail_pmcs,
326 memcpy(info[
i].set_avail_pmds,
496 memset (&ctx22, 0,
sizeof(ctx22));
511 return (r < 0 ? r : ctx22.
ctx_fd);
544#define __PFMLIB_OS_COMPILE
552perfmonctl(
int fd,
int cmd,
void *arg,
int narg)
554 return syscall(__NR_perfmonctl, fd, cmd, arg, narg);
static struct timeval start
os_err_t pfm_read(int fd, int flags, int type, void *reg, size_t n)
os_err_t pfm_set_state(int fd, int flags, int state)
os_err_t pfm_create(int flags, pfarg_sinfo_t *sif,...)
os_err_t pfm_write(int fd, int flags, int type, void *reg, size_t n)
os_err_t pfm_getinfo_sets(int fd, int flags, pfarg_set_info_t *s, size_t sz)
os_err_t pfm_attach(int fd, int flags, int target)
os_err_t pfm_create_sets(int fd, int flags, pfarg_set_desc_t *s, size_t sz)
int perfmonctl(int fd, int cmd, void *arg, int narg)
int _pfmlib_major_version
int _pfmlib_minor_version
int pfm_load_context(int fd, pfarg_load_t *load)
static int pfm_load_context_2v3(int fd, pfarg_load_t *load)
int pfm_start(int fd, pfarg_start_t *start)
#define PFM_pfm_create_context
int pfm_create_evtsets(int fd, pfarg_setdesc_t *setd, int count)
#define PFM_pfm_read_pmds
static int pfm_getinfo_evtsets_2v3(int fd, pfarg_setinfo_t *info, int count)
static int pfm_read_pmds_2v3(int fd, pfarg_pmd_t *pmds, int count)
static int pfm_restart_2v3(int fd)
int pfm_read_pmds(int fd, pfarg_pmd_t *pmds, int count)
#define PFM_pfm_load_context
static int pfm_stop_2v3(int fd)
int pfm_getinfo_evtsets(int fd, pfarg_setinfo_t *info, int count)
static int pfm_create_evtsets_2v3(int fd, pfarg_setdesc_t *setd, int count)
#define PFM_pfm_unload_context
int pfm_delete_evtsets(int fd, pfarg_setdesc_t *setd, int count)
static int pfm_write_pmcs_2v3(int fd, pfarg_pmc_t *pmcs, int count)
static int pfm_unload_context_2v3(int fd)
int pfm_write_pmds(int fd, pfarg_pmd_t *pmds, int count)
int pfm_unload_context(int fd)
static int pfm_delete_evtsets_2v3(int fd, pfarg_setdesc_t *setd, int count)
#define PFM_pfm_delete_evtsets
int pfm_write_pmcs(int fd, pfarg_pmc_t *pmcs, int count)
#define PFM_pfm_write_pmcs
#define PFM_pfm_getinfo_evtsets
#define PFM_pfm_write_pmds
static int pfm_write_pmds_2v3(int fd, pfarg_pmd_t *pmds, int count)
static int pfm_start_2v3(int fd, pfarg_start_t *start)
#define PFM_pfm_create_evtsets
int pfm_create_context(pfarg_ctx_t *ctx, char *name, void *smpl_arg, size_t smpl_size)
static int pfm_create_context_2v3(pfarg_ctx_t *ctx, char *name, void *smpl_arg, size_t smpl_size)
void __pfm_vbprintf(const char *fmt,...)
uint64_t ctx_reserved3[12]
uint64_t ctx_smpl_buf_size
unsigned char ctx_smpl_buf_id[16]
uint64_t reg_smpl_eventid
uint64_t reg_ovfl_switch_cnt
uint64_t reg_last_reset_val
uint64_t reg_smpl_eventid
uint64_t set_avail_pmcs[PFM_PMC_BV]
uint64_t set_avail_pmds[PFM_PMD_BV]
uint64_t set_act_duration
uint64_t sif_avail_pmds[PFM_PMD_BV]
uint64_t sif_avail_pmcs[PFM_PMC_BV]