Go to the documentation of this file.
   34 #define PFMLIB_VERSION ( 3 << 16 | 9 ) 
   35 #define PFMLIB_MAJ_VERSION( v ) ( ( v ) >> 16 ) 
   36 #define PFMLIB_MIN_VERSION( v ) ( (v)&0xffff ) 
   41 #define PFMLIB_MAX_PMCS 512  
   42 #define PFMLIB_MAX_PMDS 512  
   63 #if PFMLIB_MAX_PMCS > PFMLIB_MAX_PMDS 
   64 #  define PFMLIB_REG_MAX PFMLIB_MAX_PMCS 
   66 #  define PFMLIB_REG_MAX PFMLIB_MAX_PMDS 
   70 #  define __PFMLIB_REG_BV_BITS ( sizeof( pfmlib_regmask_bits_t ) << 3 ) 
   71 #  define PFMLIB_BVSIZE( x ) ( ( ( x ) + (__PFMLIB_REG_BV_BITS)-1 ) / __PFMLIB_REG_BV_BITS ) 
   72 #  define PFMLIB_REG_BV PFMLIB_BVSIZE( PFMLIB_REG_MAX ) 
   79 #define PFMLIB_MAX_MASKS_PER_EVENT 48  
   90   unsigned long reserved[2];                            
 
  114   unsigned long    reserved[6];                 
 
  120 #define PFMLIB_PFP_SYSTEMWIDE 0x1  
  130   unsigned long reserved[7];               
 
  205 #define PFMLIB_NO_PMU -1          
  206 #define PFMLIB_UNKNOWN_PMU 0      
  207 #define PFMLIB_GEN_IA64_PMU 1     
  208 #define PFMLIB_ITANIUM_PMU 2      
  209 #define PFMLIB_ITANIUM2_PMU 3     
  210 #define PFMLIB_MONTECITO_PMU 4    
  211 #define PFMLIB_AMD64_PMU 16       
  212 #define PFMLIB_GEN_IA32_PMU 63    
  213 #define PFMLIB_I386_P6_PMU 32     
  214 #define PFMLIB_PENTIUM4_PMU 33    
  215 #define PFMLIB_COREDUO_PMU 34     
  216 #define PFMLIB_I386_PM_PMU 35     
  217 #define PFMLIB_CORE_PMU 36        
  218 #define PFMLIB_INTEL_CORE_PMU 36  
  219 #define PFMLIB_INTEL_PPRO_PMU 37  
  220 #define PFMLIB_INTEL_PII_PMU 38   
  221 #define PFMLIB_INTEL_ATOM_PMU 39  
  222 #define PFMLIB_INTEL_NHM_PMU 40   
  223 #define PFMLIB_INTEL_WSM_PMU 41   
  225 #define PFMLIB_MIPS_20KC_PMU 64    
  226 #define PFMLIB_MIPS_24K_PMU 65     
  227 #define PFMLIB_MIPS_25KF_PMU 66    
  228 #define PFMLIB_MIPS_34K_PMU 67     
  229 #define PFMLIB_MIPS_5KC_PMU 68     
  230 #define PFMLIB_MIPS_74K_PMU 69     
  231 #define PFMLIB_MIPS_R10000_PMU 70  
  232 #define PFMLIB_MIPS_R12000_PMU 71  
  233 #define PFMLIB_MIPS_RM7000_PMU 72  
  234 #define PFMLIB_MIPS_RM9000_PMU 73  
  235 #define PFMLIB_MIPS_SB1_PMU 74     
  236 #define PFMLIB_MIPS_VR5432_PMU 75  
  237 #define PFMLIB_MIPS_VR5500_PMU 76  
  238 #define PFMLIB_MIPS_ICE9A_PMU 77   
  239 #define PFMLIB_MIPS_ICE9B_PMU 78   
  241 #define PFMLIB_POWERPC_PMU 90  
  243 #define PFMLIB_CRAYX2_PMU 96  
  245 #define PFMLIB_CELL_PMU 100  
  247 #define PFMLIB_PPC970_PMU 110    
  248 #define PFMLIB_PPC970MP_PMU 111  
  249 #define PFMLIB_POWER3_PMU 112    
  250 #define PFMLIB_POWER4_PMU 113    
  251 #define PFMLIB_POWER5_PMU 114    
  252 #define PFMLIB_POWER5p_PMU 115   
  253 #define PFMLIB_POWER6_PMU 116    
  254 #define PFMLIB_POWER7_PMU 117    
  256 #define PFMLIB_SPARC_ULTRA12_PMU 130     
  257 #define PFMLIB_SPARC_ULTRA3_PMU 131      
  258 #define PFMLIB_SPARC_ULTRA3I_PMU 132     
  259 #define PFMLIB_SPARC_ULTRA3PLUS_PMU 133  
  260 #define PFMLIB_SPARC_ULTRA4PLUS_PMU 134  
  261 #define PFMLIB_SPARC_NIAGARA1_PMU 135    
  262 #define PFMLIB_SPARC_NIAGARA2_PMU 136    
  267 #define PFMLIB_SUCCESS 0          
  268 #define PFMLIB_ERR_NOTSUPP -1     
  269 #define PFMLIB_ERR_INVAL -2       
  270 #define PFMLIB_ERR_NOINIT -3      
  271 #define PFMLIB_ERR_NOTFOUND -4    
  272 #define PFMLIB_ERR_NOASSIGN -5    
  273 #define PFMLIB_ERR_FULL -6        
  274 #define PFMLIB_ERR_EVTMANY -7     
  275 #define PFMLIB_ERR_MAGIC -8       
  276 #define PFMLIB_ERR_FEATCOMB -9    
  277 #define PFMLIB_ERR_EVTSET -10     
  278 #define PFMLIB_ERR_EVTINCOMP -11  
  279 #define PFMLIB_ERR_TOOMANY -12    
  281 #define PFMLIB_ERR_IRRTOOBIG -13   
  282 #define PFMLIB_ERR_IRREMPTY -14    
  283 #define PFMLIB_ERR_IRRINVAL -15    
  284 #define PFMLIB_ERR_IRRTOOMANY -16  
  285 #define PFMLIB_ERR_DRRINVAL -17    
  286 #define PFMLIB_ERR_DRRTOOMANY -18  
  287 #define PFMLIB_ERR_BADHOST -19     
  288 #define PFMLIB_ERR_IRRALIGN -20    
  289 #define PFMLIB_ERR_IRRFLAGS -21    
  290 #define PFMLIB_ERR_UMASK -22       
  291 #define PFMLIB_ERR_NOMEM -23       
  293 #define __PFMLIB_REGMASK_EL( g ) ( ( g ) / __PFMLIB_REG_BV_BITS ) 
  294 #define __PFMLIB_REGMASK_MASK( g ) ( ( (pfmlib_regmask_bits_t)1 ) << ( ( g ) % __PFMLIB_REG_BV_BITS ) ) 
  319   unsigned int weight = 0;
 
  323   for ( pos = 0; pos < 
PFMLIB_REG_BV; pos++ ) { weight += (
unsigned int)pfmlib_popcnt( 
h->bits[pos] ); }
 
  331   if ( 
h1 == NULL || h2 == NULL ) 
return 0;
 
  334     if ( 
h1->bits[pos] != h2->
bits[pos] ) 
return 0;
 
  
 
pfm_err_t pfm_find_event_bycode_next(int code, unsigned int start, unsigned int *next)
pfm_err_t pfm_get_impl_counters(pfmlib_regmask_t *impl_counters)
pfm_err_t pfm_get_event_description(unsigned int idx, char **str)
unsigned int pfp_pmd_count
unsigned int reg_reserved1
pfm_err_t pfm_get_full_event_name(pfmlib_event_t *e, char *name, size_t maxlen)
pfm_err_t pfm_get_num_events(unsigned int *count)
pfm_err_t pfm_get_max_event_name_len(size_t *len)
pfm_err_t pfm_get_event_code_counter(unsigned int idx, unsigned int cnt, int *code)
pfm_err_t pfm_get_version(unsigned int *version)
pfm_err_t pfm_is_pmu_supported(int type)
pfm_err_t pfm_get_event_code(unsigned int idx, int *code)
pfm_err_t pfm_initialize(void)
char * pfm_strerror(int code)
pfm_err_t pfm_get_pmu_name_bytype(int type, char *name, size_t maxlen)
unsigned long long reg_value
unsigned int pfm_reserved
pfm_err_t pfm_force_pmu(int type)
pfm_err_t pfm_get_event_mask_name(unsigned int event_idx, unsigned int mask_idx, char *name, size_t maxlen)
pfm_err_t pfm_get_event_name(unsigned int idx, char *name, size_t maxlen)
#define __PFMLIB_REGMASK_MASK(g)
pfm_err_t pfm_get_hw_counter_width(unsigned int *width)
pfm_err_t pfm_get_pmu_type(int *type)
#define PFMLIB_MAX_MASKS_PER_EVENT
pfm_err_t pfm_get_pmu_name(char *name, int maxlen)
pfm_err_t pfm_set_options(pfmlib_options_t *opt)
#define __PFMLIB_REGMASK_EL(g)
pfm_err_t pfm_find_event_bycode(int code, unsigned int *idx)
pfm_err_t pfm_get_cycle_event(pfmlib_event_t *e)
pfm_err_t pfm_find_full_event(const char *str, pfmlib_event_t *e)
pfm_err_t pfm_get_event_mask_description(unsigned int event_idx, unsigned int mask_idx, char **desc)
pfm_err_t pfm_find_event_byname(const char *name, unsigned int *idx)
unsigned long reg_alt_addr
unsigned long pfmlib_regmask_bits_t
pfm_err_t pfm_get_impl_pmds(pfmlib_regmask_t *impl_pmds)
pfm_err_t pfm_get_event_mask_code(unsigned int idx, unsigned int mask_idx, unsigned int *code)
pfmlib_regmask_bits_t bits[PFMLIB_REG_BV]
pfm_err_t pfm_find_event_mask(unsigned int event_idx, const char *str, unsigned int *mask_idx)
pfm_err_t pfm_get_num_pmds(unsigned int *num)
pfm_err_t pfm_list_supported_pmus(int(*pf)(const char *fmt,...))
pfm_err_t pfm_get_event_counters(unsigned int idx, pfmlib_regmask_t *counters)
pfm_err_t pfm_get_num_counters(unsigned int *num)
pfm_err_t pfm_find_event(const char *str, unsigned int *idx)
unsigned int pfp_pmc_count
unsigned long long reg_addr
pfm_err_t pfm_get_impl_pmcs(pfmlib_regmask_t *impl_pmcs)
pfm_err_t pfm_get_num_pmcs(unsigned int *num)
pfm_err_t pfm_get_num_event_masks(unsigned int event_idx, unsigned int *count)
pfm_err_t pfm_dispatch_events(pfmlib_input_param_t *p, void *model_in, pfmlib_output_param_t *q, void *model_out)
pfm_err_t pfm_get_inst_retired_event(pfmlib_event_t *e)