Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.37 77 lines 1.8 kB view raw
1/* 2 * linux/arch/arm/include/asm/pmu.h 3 * 4 * Copyright (C) 2009 picoChip Designs Ltd, Jamie Iles 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 * 10 */ 11 12#ifndef __ARM_PMU_H__ 13#define __ARM_PMU_H__ 14 15enum arm_pmu_type { 16 ARM_PMU_DEVICE_CPU = 0, 17 ARM_NUM_PMU_DEVICES, 18}; 19 20#ifdef CONFIG_CPU_HAS_PMU 21 22/** 23 * reserve_pmu() - reserve the hardware performance counters 24 * 25 * Reserve the hardware performance counters in the system for exclusive use. 26 * The platform_device for the system is returned on success, ERR_PTR() 27 * encoded error on failure. 28 */ 29extern struct platform_device * 30reserve_pmu(enum arm_pmu_type device); 31 32/** 33 * release_pmu() - Relinquish control of the performance counters 34 * 35 * Release the performance counters and allow someone else to use them. 36 * Callers must have disabled the counters and released IRQs before calling 37 * this. The platform_device returned from reserve_pmu() must be passed as 38 * a cookie. 39 */ 40extern int 41release_pmu(struct platform_device *pdev); 42 43/** 44 * init_pmu() - Initialise the PMU. 45 * 46 * Initialise the system ready for PMU enabling. This should typically set the 47 * IRQ affinity and nothing else. The users (oprofile/perf events etc) will do 48 * the actual hardware initialisation. 49 */ 50extern int 51init_pmu(enum arm_pmu_type device); 52 53#else /* CONFIG_CPU_HAS_PMU */ 54 55#include <linux/err.h> 56 57static inline struct platform_device * 58reserve_pmu(enum arm_pmu_type device) 59{ 60 return ERR_PTR(-ENODEV); 61} 62 63static inline int 64release_pmu(struct platform_device *pdev) 65{ 66 return -ENODEV; 67} 68 69static inline int 70init_pmu(enum arm_pmu_type device) 71{ 72 return -ENODEV; 73} 74 75#endif /* CONFIG_CPU_HAS_PMU */ 76 77#endif /* __ARM_PMU_H__ */