pfm_regmask_weight3
Operations on pfmlib_regmask_t bitmasks
Part of pfm_regmask_set(3).
Usage
int pfm_regmask_isset(pfmlib_regmask_t
*mask,
unsigned
int
b);
int pfm_regmask_set(pfmlib_regmask_t
*mask,
unsigned
int
b);
int pfm_regmask_clr(pfmlib_regmask_t
*mask,
unsigned
int
b);
int pfm_regmask_weight(pfmlib_regmask_t
*mask,
unsigned
int
*w);
int pfm_regmask_eq(pfmlib_regmask_t
*mask1,
pfmlib_regmask_t
*mask2);
int pfm_regmask_and(pfmlib_regmask_t
*dest,
pfmlib_regmask_t
*m1,
pmlib_regmask_t
*m2);
int pfm_regmask_or(pfmlib_regmask_t
*dest,
pfmlib_regmask_t
*m1,
pmlib_regmask_t
*m2);
int pfm_regmask_copy(pfmlib_regmask_t
*dest,
pfmlib_regmask_t
*src);
Overview
This set of function is used to operate of the pfmlib_regmask_t bitmasks that are returned by certain functions or passed to pfm_dispatch_events.
To ensure portability, it is important that applications use only the functions specified here to access te bitmasks. It is strongly discouraged to access the internal fields of the pfm_regmask_t structure.
The pfm_regmask_set function is used to set bit b in the bitmask mask.
The pfm_regmask_clr function is used to clear bit b in the bitmask mask.
The pfm_regmask_isset function returns a non-zero value if b is set in the bitmask mask.
The pfm_regmask_weight function returns in w the number of bits set in the bitmask mask.
The pfm_regmask_eq function returns a non-zero value if the bitmasks mask1 and mask2 are identical.
The pfm_regmask_and function returns in bitmask dest the result of the logical AND operation between bitmask m1 and bitmask m2.
The pfm_regmask_or function returns in bitmask dest the result of the logical OR operation between bitmask m1 and bitmask m2.
The pfm_regmask_copy function copies bitmask src into bitmask dest.
Return
The function returns whether or not it was successful. A return value of PFMLIB_SUCCESS indicates success, otherwise the value is the error code.
Errors
PFMLIB_ERR_INVAL the bit b exceeds the limit supported by the library