linux/arch/powerpc/include/asm/pmc.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/*
   3 * pmc.h
   4 * Copyright (C) 2004  David Gibson, IBM Corporation
   5 */
   6#ifndef _POWERPC_PMC_H
   7#define _POWERPC_PMC_H
   8#ifdef __KERNEL__
   9
  10#include <asm/ptrace.h>
  11
  12typedef void (*perf_irq_t)(struct pt_regs *);
  13extern perf_irq_t perf_irq;
  14
  15int reserve_pmc_hardware(perf_irq_t new_perf_irq);
  16void release_pmc_hardware(void);
  17void ppc_enable_pmcs(void);
  18
  19#ifdef CONFIG_PPC_BOOK3S_64
  20#include <asm/lppaca.h>
  21#include <asm/firmware.h>
  22
  23static inline void ppc_set_pmu_inuse(int inuse)
  24{
  25#if defined(CONFIG_PPC_PSERIES) || defined(CONFIG_KVM_BOOK3S_HV_POSSIBLE)
  26        if (firmware_has_feature(FW_FEATURE_LPAR)) {
  27#ifdef CONFIG_PPC_PSERIES
  28                get_lppaca()->pmcregs_in_use = inuse;
  29#endif
  30        }
  31#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
  32        get_paca()->pmcregs_in_use = inuse;
  33#endif
  34#endif
  35}
  36
  37extern void power4_enable_pmcs(void);
  38
  39#else /* CONFIG_PPC64 */
  40
  41static inline void ppc_set_pmu_inuse(int inuse) { }
  42
  43#endif
  44
  45#endif /* __KERNEL__ */
  46#endif /* _POWERPC_PMC_H */
  47