32#ifndef _PERF_PMU_PRI_H
33#define _PERF_PMU_PRI_H
37#ifdef LOSCFG_HRTIMER_ENABLE
56 VOID (*setPeriod)(
Event *event);
67#ifdef LOSCFG_HRTIMER_ENABLE
69 struct hrtimer hrtimer;
77#define GET_HW_PMU(item) LOS_DL_LIST_ENTRY(item, HwPmu, pmu)
79#define TIMER_PERIOD_LOWER_BOUND_US 100
81#define CCNT_FULL 0xFFFFFFFF
82#define CCNT_PERIOD_LOWER_BOUND 0x00000000
83#define CCNT_PERIOD_UPPER_BOUND 0xFFFFFF00
84#define PERIOD_CALC(p) (CCNT_FULL - (p))
85#define VALID_PERIOD(p) ((PERIOD_CALC(p) > CCNT_PERIOD_LOWER_BOUND) \
86 && (PERIOD_CALC(p) < CCNT_PERIOD_UPPER_BOUND))
88#define PERF_HW_INVALID_EVENT_TYPE 0xFFFFFFFF
90#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
92#define PMU_LABEL_INT_1 \
93 NUM_HAL_INTERRUPT_PMU_0,
94#define PMU_LABEL_INT_2 \
96 NUM_HAL_INTERRUPT_PMU_1,
97#define PMU_LABEL_INT_3 \
99 NUM_HAL_INTERRUPT_PMU_2,
100#define PMU_LABEL_INT_4 \
102 NUM_HAL_INTERRUPT_PMU_3,
104#define PMU_INT(_num) PMU_LABEL_INT_##_num
106#define OS_PMU_INTS(_num, _list) \
107 STATIC UINT32 _list [_num] = { \
Pmu * OsPerfPmuGet(UINT32 type)
UINT32 OsPerfPmuRegister(Pmu *pmu)
UINT32 OsGetPmuMaxCounter(VOID)
UINT32 OsPerfHwInit(HwPmu *hwPmu)
UINT32 OsGetPmuCounter0(VOID)
UINT32 OsGetPmuCycleCounter(VOID)
UINT32 OsTimedPmuInit(VOID)
VOID OsPerfPmuRm(UINT32 type)