]> xenbits.xensource.com Git - xtf.git/commitdiff
Factor out debug register infrastructure into a new header
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 23 Mar 2018 13:17:05 +0000 (13:17 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 3 Apr 2018 14:22:22 +0000 (15:22 +0100)
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
arch/x86/include/arch/lib.h
arch/x86/include/arch/processor.h
arch/x86/include/arch/x86-dbg-reg.h [new file with mode: 0644]
arch/x86/include/arch/xtf.h

index 6714bdcf7d49dc20a277d419a0d88cd6f4349d42..00459021f99235875e0d9b68a34fca16fec9dcae 100644 (file)
@@ -211,24 +211,6 @@ static inline void write_ss(unsigned int ss)
     asm volatile ("mov %0, %%ss" :: "r" (ss));
 }
 
-static inline unsigned long read_dr6(void)
-{
-    unsigned long val;
-
-    asm volatile ("mov %%dr6, %0" : "=r" (val));
-
-    return val;
-}
-
-static inline unsigned long read_dr7(void)
-{
-    unsigned long val;
-
-    asm volatile ("mov %%dr7, %0" : "=r" (val));
-
-    return val;
-}
-
 static inline unsigned long read_cr0(void)
 {
     unsigned long cr0;
index 2059cfca00863c85c63affc32a2bd5f4abc2355f..0c33545eb4b2828d0f28c6f7c7492c9d9e62ef17 100644 (file)
 #define X86_CR4_SMEP            0x00100000  /* SMEP                           */
 #define X86_CR4_SMAP            0x00200000  /* SMAP                           */
 
-/*
- * DR6 status bits.
- */
-#define X86_DR6_B0              (1u <<  0)  /* Breakpoint 0 triggered  */
-#define X86_DR6_B1              (1u <<  1)  /* Breakpoint 1 triggered  */
-#define X86_DR6_B2              (1u <<  2)  /* Breakpoint 2 triggered  */
-#define X86_DR6_B3              (1u <<  3)  /* Breakpoint 3 triggered  */
-#define X86_DR6_BD              (1u << 13)  /* Debug register accessed */
-#define X86_DR6_BS              (1u << 14)  /* Single step             */
-#define X86_DR6_BT              (1u << 15)  /* Task switch             */
-
 /*
  * CPU features in XCR0.
  */
diff --git a/arch/x86/include/arch/x86-dbg-reg.h b/arch/x86/include/arch/x86-dbg-reg.h
new file mode 100644 (file)
index 0000000..353bb2f
--- /dev/null
@@ -0,0 +1,49 @@
+/**
+ * @file arch/x86/include/arch/x86-dbg-reg.h
+ *
+ * %x86 Debug Register Infrastructure
+ */
+
+#ifndef XTF_X86_DBG_REG_H
+#define XTF_X86_DBG_REG_H
+
+/*
+ * DR6 status bits.
+ */
+#define X86_DR6_B0              (1u <<  0)  /* Breakpoint 0 triggered  */
+#define X86_DR6_B1              (1u <<  1)  /* Breakpoint 1 triggered  */
+#define X86_DR6_B2              (1u <<  2)  /* Breakpoint 2 triggered  */
+#define X86_DR6_B3              (1u <<  3)  /* Breakpoint 3 triggered  */
+#define X86_DR6_BD              (1u << 13)  /* Debug register accessed */
+#define X86_DR6_BS              (1u << 14)  /* Single step             */
+#define X86_DR6_BT              (1u << 15)  /* Task switch             */
+
+static inline unsigned long read_dr6(void)
+{
+    unsigned long val;
+
+    asm volatile ("mov %%dr6, %0" : "=r" (val));
+
+    return val;
+}
+
+static inline unsigned long read_dr7(void)
+{
+    unsigned long val;
+
+    asm volatile ("mov %%dr7, %0" : "=r" (val));
+
+    return val;
+}
+
+#endif /* XTF_X86_DBG_REG_H */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
index c9b9b8924fd57f5f956ca495680bb4cd8bccff39..2956e1a7f4d0b747491f9bedb7e9ef049f051c7f 100644 (file)
@@ -10,6 +10,7 @@
 #include <arch/msr.h>
 #include <arch/pagetable.h>
 #include <arch/symbolic-const.h>
+#include <arch/x86-dbg-reg.h>
 
 extern char _end[];