CPC Hardware Query Interfaces
The hardware query interfaces allow you to access process details such as counter information and events supported by the processor. The following are the hardware query interfaces:
-
cpc_npic
() -
cpc_caps
() -
cpc_walk_events_all
() -
cpc_walk_events_pic
() -
cpc_walk_attrs
()
uint_t cpc_npic(cpc_t *cpc); uint_t cpc_caps(cpc_t *cpc); void cpc_walk_events_all(cpc_t *cpc, void *arg, void (*action)(void *arg, const char *event)); void cpc_walk_events_pic(cpc_t *cpc, uint_t picno, void *arg, void(*action)(void *arg, uint_t picno, const char *event)); void cpc_walk-attrs(cpc_t *cpc, void *arg, void (*action)(void *arg, const char *attr));
The cpc_npic
()
function returns the number of
physical counters on the underlying processor.
The cpc_caps
()
function returns a
uint_t
parameter whose value is the
result of the bitwise inclusive-OR operation performed on the
capabilities that the underlying processor supports. There are two
capabilities. The CPC_CAP_OVERFLOW_INTERRUPT
capability enables the processor to generate an interrupt when a
counter overflows. The CPC_CAP_OVERFLOW_PRECISE
capability enables the processor to determine which counter generates
an overflow interrupt.
The Oracle Solaris OS maintains a list of the events that the underlying
processor supports. Different physical counters on a single chip do
not have to use the same list of events. The
cpc_walk_events_all
()
function calls the
action
()
routine for each processor-supported
event without regard to physical counter. The
cpc_walk_events_pic
()
function calls the
action
()
routine for each processor-supported
event on a specific physical counter. Both of these functions pass the
arg
parameter uninterpreted from the
caller to each invocation of the action
()
function.
The platform maintains a list of attributes that the underlying
processor supports. These attributes enable access to advanced
processor-specific features of the performance counters. The
cpc_walk_attrs
()
function calls the action
routine on each attribute name.