HAP user PMU
HAP user PMU API
HAP_user_pmu.h
Go to the documentation of this file.
1 /*-----------------------------------------------------------------------------
2  Copyright (c) 2019-2020 QUALCOMM Technologies, Incorporated.
3  All Rights Reserved.
4  QUALCOMM Proprietary.
5 -----------------------------------------------------------------------------*/
6 
7 #ifndef HAP_USER_PMU_H_
8 #define HAP_USER_PMU_H_
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
24 #define HAP_USER_PMU_READ_NOT_SUPPORTED 0x80000FFF
25 
27 #define HAP_USER_PMU_READ_FAILED 0xDEADDEAD
28 
44 typedef struct {
45  int contextId;
48  unsigned int num_events;
51  unsigned short pmu_events[4];
54  unsigned int pmu_value[4];
57 
64 int __attribute__((weak)) __HAP_register_pmu_group(HAP_pmu_group_config_t* pmu_config);
65 int __attribute__((weak)) __HAP_deregister_pmu_group(int contextId);
66 int __attribute__((weak)) __HAP_read_pmu_group(HAP_pmu_group_config_t* pmu_config);
67 int __attribute__((weak)) __HAP_register_pmu_event(unsigned short pmu_event);
68 int __attribute__((weak)) __HAP_deregister_pmu_event(unsigned short pmu_event);
69 unsigned int __attribute__((weak)) __HAP_read_pmu_event(unsigned short pmu_event);
70 
101 static inline int HAP_register_pmu_group(HAP_pmu_group_config_t* pmu_config) {
102  if(__HAP_register_pmu_group)
103  return __HAP_register_pmu_group(pmu_config);
104 
106 }
107 
128 static inline int HAP_read_pmu_group(HAP_pmu_group_config_t* pmu_config) {
129  if(__HAP_read_pmu_group)
130  return __HAP_read_pmu_group(pmu_config);
131 
133 }
134 
145 static inline int HAP_deregister_pmu_group(HAP_pmu_group_config_t* pmu_config) {
146  if(__HAP_deregister_pmu_group)
147  return __HAP_deregister_pmu_group(pmu_config->contextId);
148 
150 }
151 
172 static inline int HAP_register_pmu_event(unsigned short pmu_event) {
173  if(__HAP_register_pmu_event)
174  return __HAP_register_pmu_event(pmu_event);
175 
177 }
178 
190 static inline unsigned int HAP_read_pmu_event(unsigned short pmu_event) {
191  if(__HAP_read_pmu_event)
192  return __HAP_read_pmu_event(pmu_event);
193 
195 }
196 
208 static inline int HAP_deregister_pmu_event(unsigned short pmu_event) {
209  if(__HAP_deregister_pmu_event)
210  return __HAP_deregister_pmu_event(pmu_event);
211 
213 }
214 
218 #ifdef __cplusplus
219 }
220 #endif
221 #endif /*HAP_USER_PMU_H_*/
static int HAP_read_pmu_group(HAP_pmu_group_config_t *pmu_config)
Definition: HAP_user_pmu.h:126
Definition: HAP_user_pmu.h:43
static int HAP_deregister_pmu_event(unsigned short pmu_event)
Definition: HAP_user_pmu.h:206
static unsigned int HAP_read_pmu_event(unsigned short pmu_event)
Definition: HAP_user_pmu.h:188
static int HAP_register_pmu_group(HAP_pmu_group_config_t *pmu_config)
Definition: HAP_user_pmu.h:99
static int HAP_register_pmu_event(unsigned short pmu_event)
Definition: HAP_user_pmu.h:170
#define HAP_USER_PMU_READ_NOT_SUPPORTED
Definition: HAP_user_pmu.h:24
int contextId
Definition: HAP_user_pmu.h:44
static int HAP_deregister_pmu_group(HAP_pmu_group_config_t *pmu_config)
Definition: HAP_user_pmu.h:143