diff --git a/repos/base-hw/src/core/spec/arm/kernel/cpu.cc b/repos/base-hw/src/core/spec/arm/kernel/cpu.cc index f4f8edd2b1..da9c280536 100644 --- a/repos/base-hw/src/core/spec/arm/kernel/cpu.cc +++ b/repos/base-hw/src/core/spec/arm/kernel/cpu.cc @@ -19,8 +19,7 @@ void Kernel::Cpu::_arch_init() { - /* enable performance counter */ - perf_counter()->enable(); + enable_performance_counter(); /* enable timer interrupt */ _pic.unmask(_timer.interrupt_id(), id()); diff --git a/repos/base-hw/src/core/kernel/perf_counter.h b/repos/base-hw/src/core/spec/arm/kernel/perf_counter.h similarity index 72% rename from repos/base-hw/src/core/kernel/perf_counter.h rename to repos/base-hw/src/core/spec/arm/kernel/perf_counter.h index fc0f5e1957..ca53093bfa 100644 --- a/repos/base-hw/src/core/kernel/perf_counter.h +++ b/repos/base-hw/src/core/spec/arm/kernel/perf_counter.h @@ -16,21 +16,7 @@ namespace Kernel { - /** - * Performance counter - */ - class Perf_counter - { - public: - - /** - * Enable counting - */ - void enable(); - }; - - - extern Perf_counter * perf_counter(); + void enable_performance_counter(); } #endif /* _CORE__KERNEL__PERF_COUNTER_H_ */ diff --git a/repos/base-hw/src/core/spec/arm_v6/perf_counter.cc b/repos/base-hw/src/core/spec/arm_v6/perf_counter.cc index 8f9515b288..cd9ac1c4a7 100644 --- a/repos/base-hw/src/core/spec/arm_v6/perf_counter.cc +++ b/repos/base-hw/src/core/spec/arm_v6/perf_counter.cc @@ -93,7 +93,7 @@ struct Accvalctlr : Register<32> }; -void Kernel::Perf_counter::enable() +void Kernel::enable_performance_counter() { /* enable counters and disable overflow interrupt. */ Pmcr::access_t v = Pmcr::enable_and_reset(); @@ -105,10 +105,3 @@ void Kernel::Perf_counter::enable() /* enable user-mode access */ Accvalctlr::write(Accvalctlr::enable_user_access()); } - - -Kernel::Perf_counter* Kernel::perf_counter() -{ - static Kernel::Perf_counter inst; - return &inst; -} diff --git a/repos/base-hw/src/core/spec/arm_v7/perf_counter.cc b/repos/base-hw/src/core/spec/arm_v7/perf_counter.cc index 85ed68bf62..0e4eb5a8b2 100644 --- a/repos/base-hw/src/core/spec/arm_v7/perf_counter.cc +++ b/repos/base-hw/src/core/spec/arm_v7/perf_counter.cc @@ -168,7 +168,7 @@ struct Pmuseren : Register<32> }; -void Kernel::Perf_counter::enable() +void Kernel::enable_performance_counter() { /* program PMU and enable all counters */ Pmcr::write(Pmcr::enable_and_reset()); @@ -179,10 +179,3 @@ void Kernel::Perf_counter::enable() Pmuseren::write(Pmuseren::enable()); Pmintenclr::write(Pmintenclr::disable_overflow_intr()); } - - -Kernel::Perf_counter* Kernel::perf_counter() -{ - static Kernel::Perf_counter inst; - return &inst; -}