These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / arm64 / include / asm / hw_breakpoint.h
index 52b484b..9732908 100644 (file)
@@ -16,6 +16,9 @@
 #ifndef __ASM_HW_BREAKPOINT_H
 #define __ASM_HW_BREAKPOINT_H
 
+#include <asm/cputype.h>
+#include <asm/cpufeature.h>
+
 #ifdef __KERNEL__
 
 struct arch_hw_breakpoint_ctrl {
@@ -132,5 +135,23 @@ static inline void ptrace_hw_copy_thread(struct task_struct *task)
 
 extern struct pmu perf_ops_bp;
 
+/* Determine number of BRP registers available. */
+static inline int get_num_brps(void)
+{
+       u64 dfr0 = read_system_reg(SYS_ID_AA64DFR0_EL1);
+       return 1 +
+               cpuid_feature_extract_unsigned_field(dfr0,
+                                               ID_AA64DFR0_BRPS_SHIFT);
+}
+
+/* Determine number of WRP registers available. */
+static inline int get_num_wrps(void)
+{
+       u64 dfr0 = read_system_reg(SYS_ID_AA64DFR0_EL1);
+       return 1 +
+               cpuid_feature_extract_unsigned_field(dfr0,
+                                               ID_AA64DFR0_WRPS_SHIFT);
+}
+
 #endif /* __KERNEL__ */
 #endif /* __ASM_BREAKPOINT_H */