x86: Provide an option to enable legacy USB
[akaros.git] / kern / arch / x86 / perfmon.h
1 #pragma once
2 #include <ros/common.h>
3 #include <arch/x86.h>
4
5 #define IA32_PMC_BASE 0xC1
6 #define IA32_PERFEVTSEL_BASE 0x186
7
8 #define LLCACHE_EVENT 0x2E
9 #define LLCACHE_MISS_MASK 0x41
10 #define LLCACHE_REF_MASK 0x4F
11 #define ENABLE_PERFCTR 0x00400000
12 #define DISABLE_PERFCTR 0xFFAFFFFF
13
14 static inline uint64_t read_pmc(uint32_t index)
15 {
16         uint32_t edx, eax;
17         asm volatile("rdpmc" : "=d"(edx), "=a"(eax) : "c"(index));
18         return (uint64_t)edx << 32 | eax;
19 }
20
21 void perfmon_init();