[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Files Reference

pmapi.h File


Describes the structures and constants used by the Performance Monitor APIs subroutines.


#include <pmapi.h>


The pmapi.h file defines the following symbolic constants, types, and structures:

Symbolic Constants

MAX_COUNTERS Maximum number of supported counters
MIN_THRESH_VALUE Specifies the minimum threshold value
MAX_THRESH_VALUE Specifies the maximum threshold value
THRESH_SHIFT_MODE Specifies the shift to use to put threshold into pm_mode_t.b.threshold
COUNT_NOTHING Specifies to not count event

Constants for event filters

PM_VERIFIED Specifies events that have been verified
PM_UNVERIFIED Specifies events that have not been verified
PM_CAVEAT Specifies events that work with caveats

Constants for setting mode bits

PM_PROCTREE Turns process tree counting on
PM_COUNT Turns counting on immediately
PM_USER Turns user mode counting on
PM_KERNEL Turns kernel mode counting on
PM_PROCESS Creates a process level group

The structure pm_info_t contains the following members:

int             maxpmcs               /* number of available counters
int             *maxevents            /* number of events for each hw counter 
pm_events_t     **list_events         /* list of available events 
int             thresholdmult         /* threshold multiplier 
char            *proc_name            /* processor name 

The structure pm_events_t contains the following members:

int             event_id              /* event number 
char            status                /* verified/unverified/... 
char            threshold             /* thresholdable event 
char            *short_name           /* mnemonic name 
char            *long_name            /* long name 
char            *description          /* full description 

The structure pm_prog_t contains the following members:

unsigned:6      mode.b.threshold      /* threshold value 
unsigned:1      mode.b.process        /* process level group indicator 
unsigned:1      mode.b.kernel         /* turns kernel mode counting on 
unsigned:1      mode.b.user           /* turns user mode counting on 
unsigned:1      mode.b.count          /* counting state 
unsigned:1      mode.b.proctree       /* turns process tree counting on 
int             events[MAX_COUNTERS]  /* list of counted events 

The structure pm_data_t contains the following members:

pm_ginfo_t      ginfo                 /* group information 
long long       accu[MAX_COUNTERS]    /* accumulated data 

The structure pm_ginfo_t contains the following members:

int             members;               /* number of threads in group 
unsigned:1      flags.b.process       /* process level group indicator 
unsigned:1      flags.b.consistent    /* group data consistent with members 

The following are declared as functions:

double    pm_cycles(void)
void      pm_error(char *where, int error)
int       pm_init(int filter, pm_info_t *pminfo)
int       pm_set_program(pm_prog_t *prog)
int       pm_get_program(pm_prog_t *prog)
int       pm_start(void)
int       pm_stop(void)
int       pm_reset_data(void)
int       pm_get_data(pm_data_t *data)
int       pm_delete_program(void)
int       pm_set_program_mythread(pm_prog_t *prog)
int       pm_get_program_mythread(pm_prog_t *prog)
int       pm_start_mythread(void)
int       pm_stop_mythread(void)
int       pm_reset_data_mythread(void)
int       pm_get_data_mythread(pm_data_t *data)
int       pm_delete_program_mythread(void)
int       pm_set_program_thread(pid_t pid, tid_t tid, pm_prog_t *prog)
int       pm_get_program_thread(pid_t pid, tid_t tid, pm_prog_t *prog)
int       pm_start_thread(pid_t pid, tid_t tid)
int       pm_stop_thread(pid_t pid, tid_t tid)
int       pm_reset_data_thread(pid_t pid, tid_t tid)
int       pm_get_data_thread(pid_t pid, tid_t tid, pm_data_t *data)
int       pm_delete_program_thread(pid_t pid, tid_t tid)
int       pm_set_program_mygroup(pm_prog_t *prog)
int       pm_get_program_mygroup(pm_prog_t *prog)
int       pm_start_mygroup(void)
int       pm_stop_mygroup(void)
int       pm_reset_data_mygroup(void)
int       pm_get_data_mygroup(pm_data_t *data)
int       pm_delete_program_mygroup(void)
int       pm_set_program_group(pid_t pid, tid_t tid, pm_prog_t *prog)
int       pm_get_program_group(pid_t pid, tid_t tid, pm_prog_t *prog)
int       pm_start_group(pid_t pid, tid_t tid)
int       pm_stop_group(pid_t pid, tid_t tid)
int       pm_reset_data_group(pid_t pid, tid_t tid)
int       pm_get_data_group(pid_t pid, tid_t tid, pm_data_t *data)
int       pm_delete_program_group(pid_t pid, tid_t tid)

Implementation Specifics

This file is part of Base Operating System (BOS) Runtime.

Related Information

The pm_cycles subroutine, pm_error subroutine, pm_init subroutine.

The pm_set_program subroutine, pm_get_program subroutine, pm_delete_program subroutine, pm_get_data subroutine, pm_start subroutine, pm_stop subroutine, pm_reset_data subroutine.

The pm_set_program_mythread subroutine, pm_get_program_mythread subroutine, pm_delete_program_mythread subroutine, pm_get_data_mythread subroutine, pm_start_mythread subroutine, pm_stop_mythread subroutine, pm_reset_data_mythread subroutine.

The pm_set_program_mygroup subroutine, pm_get_program_mygroup subroutine, pm_delete_program_mygroup subroutine, pm_get_data_mygroup subroutine, pm_start_mygroup subroutine, pm_stop_mygroup subroutine, pm_reset_data_mygroup subroutine.

The pm_set_program_thread subroutine, pm_get_program_thread subroutine, pm_delete_program_thread subroutine, pm_get_data_thread subroutine, pm_start_thread subroutine, pm_stop_thread subroutine, pm_reset_data_thread subroutine.

The pm_set_program_group subroutine, pm_get_program_group subroutine, pm_delete_program_group subroutine, pm_get_data_group subroutine, pm_start_group subroutine, pm_stop_group subroutine, pm_reset_data_group subroutine.

[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]