]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm64/include/asm/hw_breakpoint.h
Merge remote-tracking branch 'ubifs/linux-next'
[karo-tx-linux.git] / arch / arm64 / include / asm / hw_breakpoint.h
index 52b484b6aa1a7fec251a72b028f655523c74236a..e54415ec693571d1d4195d57b1928e2e58173353 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,21 @@ 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)
+{
+       return 1 +
+               cpuid_feature_extract_field(read_system_reg(SYS_ID_AA64DFR0_EL1),
+                                               ID_AA64DFR0_BRPS_SHIFT);
+}
+
+/* Determine number of WRP registers available. */
+static inline int get_num_wrps(void)
+{
+       return 1 +
+               cpuid_feature_extract_field(read_system_reg(SYS_ID_AA64DFR0_EL1),
+                                               ID_AA64DFR0_WRPS_SHIFT);
+}
+
 #endif /* __KERNEL__ */
 #endif /* __ASM_BREAKPOINT_H */