PAPI 7.1.0.0
Loading...
Searching...
No Matches
libperfnec/include/perfmon/perfmon.h File Reference
Include dependency graph for libperfnec/include/perfmon/perfmon.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pfarg_sinfo_t
 
struct  pfarg_pmr_t
 
struct  pfarg_pmd_attr_t
 
struct  pfarg_set_desc_t
 
struct  pfarg_set_info_t
 
struct  pfarg_ovfl_msg_t
 
union  pfarg_msg_t
 

Macros

#define PFM_MAX_PMCS   PFM_ARCH_MAX_PMCS
 
#define PFM_MAX_PMDS   PFM_ARCH_MAX_PMDS
 
#define PFM_BPL   (sizeof(uint64_t)<<3)
 
#define PFM_BVSIZE(x)   (((x)+PFM_BPL-1) / PFM_BPL)
 
#define PFM_PMD_BV   PFM_BVSIZE(PFM_MAX_PMDS)
 
#define PFM_PMC_BV   PFM_BVSIZE(PFM_MAX_PMCS)
 
#define PFM_ARCH_MAX_PMCS   32
 
#define PFM_ARCH_MAX_PMDS   32
 
#define PFM_FL_NOTIFY_BLOCK   0x01 /* block task on user notifications */
 
#define PFM_FL_SYSTEM_WIDE   0x02 /* create a system wide context */
 
#define PFM_FL_SMPL_FMT   0x04 /* session uses sampling format */
 
#define PFM_FL_OVFL_NO_MSG   0x80 /* no overflow msgs */
 
#define PFM_REGFL_OVFL_NOTIFY   0x1 /* PMD: send notification on event */
 
#define PFM_REGFL_RANDOM   0x2 /* PMD: randomize value after event */
 
#define PFM_REGFL_NO_EMUL64   0x4 /* PMC: no 64-bit emulation */
 
#define PFM_RW_PMD   1 /* simplified PMD (pfarg_pmr_t) */
 
#define PFM_RW_PMC   2 /* PMC registers (pfarg_pmr_t) */
 
#define PFM_RW_PMD_ATTR   3 /* extended PMD (pfarg_pmd_attr) */
 
#define PFM_NO_TARGET   -1 /* no target, detach */
 
#define PFM_ST_START   0x1 /* start monitoring */
 
#define PFM_ST_STOP   0x2 /* stop monitoring */
 
#define PFM_ST_RESTART   0x3 /* resume after notify */
 
#define PFM_SETFL_OVFL_SWITCH   0x01 /* enable switch on overflow (subject to individual switch_cnt */
 
#define PFM_SETFL_TIME_SWITCH   0x02 /* switch set on timeout */
 
#define PFM_MSG_OVFL   1 /* an overflow happened */
 
#define PFM_MSG_END   2 /* thread to which context was attached ended */
 
#define PFM_VERSION_MAJOR(x)   (((x)>>16) & 0xffff)
 
#define PFM_VERSION_MINOR(x)   ((x) & 0xffff)
 

Typedefs

typedef int os_err_t
 

Functions

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_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_sets (int fd, int flags, pfarg_set_desc_t *s, size_t sz)
 
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)
 

Macro Definition Documentation

◆ PFM_ARCH_MAX_PMCS

#define PFM_ARCH_MAX_PMCS   32

Definition at line 53 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_ARCH_MAX_PMDS

#define PFM_ARCH_MAX_PMDS   32

Definition at line 54 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_BPL

#define PFM_BPL   (sizeof(uint64_t)<<3)

Definition at line 32 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_BVSIZE

#define PFM_BVSIZE (   x)    (((x)+PFM_BPL-1) / PFM_BPL)

Definition at line 33 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_FL_NOTIFY_BLOCK

#define PFM_FL_NOTIFY_BLOCK   0x01 /* block task on user notifications */

Definition at line 71 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_FL_OVFL_NO_MSG

#define PFM_FL_OVFL_NO_MSG   0x80 /* no overflow msgs */

Definition at line 74 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_FL_SMPL_FMT

#define PFM_FL_SMPL_FMT   0x04 /* session uses sampling format */

Definition at line 73 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_FL_SYSTEM_WIDE

#define PFM_FL_SYSTEM_WIDE   0x02 /* create a system wide context */

Definition at line 72 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_MAX_PMCS

#define PFM_MAX_PMCS   PFM_ARCH_MAX_PMCS

Definition at line 25 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_MAX_PMDS

#define PFM_MAX_PMDS   PFM_ARCH_MAX_PMDS

Definition at line 26 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_MSG_END

#define PFM_MSG_END   2 /* thread to which context was attached ended */

Definition at line 194 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_MSG_OVFL

#define PFM_MSG_OVFL   1 /* an overflow happened */

Definition at line 193 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_NO_TARGET

#define PFM_NO_TARGET   -1 /* no target, detach */

Definition at line 129 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_PMC_BV

#define PFM_PMC_BV   PFM_BVSIZE(PFM_MAX_PMCS)

Definition at line 35 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_PMD_BV

#define PFM_PMD_BV   PFM_BVSIZE(PFM_MAX_PMDS)

Definition at line 34 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_REGFL_NO_EMUL64

#define PFM_REGFL_NO_EMUL64   0x4 /* PMC: no 64-bit emulation */

Definition at line 95 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_REGFL_OVFL_NOTIFY

#define PFM_REGFL_OVFL_NOTIFY   0x1 /* PMD: send notification on event */

Definition at line 93 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_REGFL_RANDOM

#define PFM_REGFL_RANDOM   0x2 /* PMD: randomize value after event */

Definition at line 94 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_RW_PMC

#define PFM_RW_PMC   2 /* PMC registers (pfarg_pmr_t) */

Definition at line 123 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_RW_PMD

#define PFM_RW_PMD   1 /* simplified PMD (pfarg_pmr_t) */

Definition at line 122 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_RW_PMD_ATTR

#define PFM_RW_PMD_ATTR   3 /* extended PMD (pfarg_pmd_attr) */

Definition at line 124 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_SETFL_OVFL_SWITCH

#define PFM_SETFL_OVFL_SWITCH   0x01 /* enable switch on overflow (subject to individual switch_cnt */

Definition at line 163 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_SETFL_TIME_SWITCH

#define PFM_SETFL_TIME_SWITCH   0x02 /* switch set on timeout */

Definition at line 164 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_ST_RESTART

#define PFM_ST_RESTART   0x3 /* resume after notify */

Definition at line 137 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_ST_START

#define PFM_ST_START   0x1 /* start monitoring */

Definition at line 135 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_ST_STOP

#define PFM_ST_STOP   0x2 /* stop monitoring */

Definition at line 136 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_VERSION_MAJOR

#define PFM_VERSION_MAJOR (   x)    (((x)>>16) & 0xffff)

Definition at line 196 of file libperfnec/include/perfmon/perfmon.h.

◆ PFM_VERSION_MINOR

#define PFM_VERSION_MINOR (   x)    ((x) & 0xffff)

Definition at line 197 of file libperfnec/include/perfmon/perfmon.h.

Typedef Documentation

◆ os_err_t

typedef int os_err_t

Definition at line 46 of file libperfnec/include/perfmon/perfmon.h.

Function Documentation

◆ pfm_attach()

os_err_t pfm_attach ( int  fd,
int  flags,
int  target 
)

Definition at line 118 of file pfmlib_os_linux_v3.c.

119{
120 if (_pfmlib_major_version < 3)
121 return -ENOSYS;
122 return (int)syscall(PFM_pfm_attach, fd, flags, target);
123}
int _pfmlib_major_version
#define PFM_pfm_attach
Here is the caller graph for this function:

◆ pfm_create()

os_err_t pfm_create ( int  flags,
pfarg_sinfo_t sif,
  ... 
)

Definition at line 55 of file pfmlib_os_linux_v3.c.

56{
57 va_list ap;
58 char *name = NULL;
59 void *smpl_arg = NULL;
60 size_t smpl_size = 0;
61 int ret;
62
63 if (_pfmlib_major_version < 3) {
64 errno = ENOSYS;
65 return -1;
66 }
67
68 if (flags & PFM_FL_SMPL_FMT)
69 va_start(ap, sif);
70
71 if (flags & PFM_FL_SMPL_FMT) {
72 name = va_arg(ap, char *);
73 smpl_arg = va_arg(ap, void *);
74 smpl_size = va_arg(ap, size_t);
75 }
76
77 ret = (int)syscall(PFM_pfm_create, flags, sif, name, smpl_arg, smpl_size);
78
79 if (flags & PFM_FL_SMPL_FMT)
80 va_end(ap);
81
82 return ret;
83}
int errno
__gnuc_va_list va_list
#define PFM_pfm_create
va_end(arg_list)
va_start(arg_list, fmt)
const char * name
Definition: rocs.c:225
int
Definition: sde_internal.h:89
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pfm_create_sets()

os_err_t pfm_create_sets ( int  fd,
int  flags,
pfarg_set_desc_t s,
size_t  sz 
)

Definition at line 102 of file pfmlib_os_linux_v3.c.

103{
104 if (_pfmlib_major_version < 3)
105 return -ENOSYS;
106 return (int)syscall(PFM_pfm_create_sets, fd, flags, setd, sz);
107}
#define PFM_pfm_create_sets
Here is the caller graph for this function:

◆ pfm_getinfo_sets()

os_err_t pfm_getinfo_sets ( int  fd,
int  flags,
pfarg_set_info_t s,
size_t  sz 
)

Definition at line 110 of file pfmlib_os_linux_v3.c.

111{
112 if (_pfmlib_major_version < 3)
113 return -ENOSYS;
114 return (int)syscall(PFM_pfm_getinfo_sets, fd, flags, info, sz);
115}
#define PFM_pfm_getinfo_sets
Here is the caller graph for this function:

◆ pfm_read()

os_err_t pfm_read ( int  fd,
int  flags,
int  type,
void *  reg,
size_t  n 
)

Definition at line 94 of file pfmlib_os_linux_v3.c.

95{
97 return -ENOSYS;
98 return (int)syscall(PFM_pfm_read, fd, flags, type, pms, sz);
99}
uint16_t type
#define PFM_pfm_read
Here is the caller graph for this function:

◆ pfm_set_state()

os_err_t pfm_set_state ( int  fd,
int  flags,
int  state 
)

Definition at line 126 of file pfmlib_os_linux_v3.c.

127{
128 if (_pfmlib_major_version < 3)
129 return -ENOSYS;
130 return (int)syscall(PFM_pfm_set_state, fd, flags, state);
131}
bool state
Definition: papi_hl.c:155
#define PFM_pfm_set_state
Here is the caller graph for this function:

◆ pfm_write()

os_err_t pfm_write ( int  fd,
int  flags,
int  type,
void *  reg,
size_t  n 
)

Definition at line 86 of file pfmlib_os_linux_v3.c.

87{
89 return -ENOSYS;
90 return (int)syscall(PFM_pfm_write, fd, flags, type, pms, sz);
91}
#define PFM_pfm_write
Here is the caller graph for this function: