aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.rootkeys1
-rw-r--r--xen/arch/x86/x86_32/call_with_regs.S36
-rw-r--r--xen/include/asm-x86/debugger.h5
3 files changed, 2 insertions, 40 deletions
diff --git a/.rootkeys b/.rootkeys
index 701263e1f8..cd12228470 100644
--- a/.rootkeys
+++ b/.rootkeys
@@ -1237,7 +1237,6 @@
41f97ef5139vN42cOYHfX_Ac8WOOjA xen/arch/x86/vmx_platform.c
41c0c4128URE0dxcO15JME_MuKBPfg xen/arch/x86/vmx_vmcs.c
419cbedeQDg8IrO3izo3o5rQNlo0kQ xen/arch/x86/x86_32/asm-offsets.c
-4107c15e_NqNYew2EXroXz2mgTAMWQ xen/arch/x86/x86_32/call_with_regs.S
3e32af9aRnYGl4GMOaDKp7JdfhOGhg xen/arch/x86/x86_32/domain_page.c
3ddb79bcecupHj56ZbTa3B0FxDowMg xen/arch/x86/x86_32/entry.S
3ddb79bcHwuCQDjBICDTSis52hWguw xen/arch/x86/x86_32/mm.c
diff --git a/xen/arch/x86/x86_32/call_with_regs.S b/xen/arch/x86/x86_32/call_with_regs.S
deleted file mode 100644
index d3656d74e4..0000000000
--- a/xen/arch/x86/x86_32/call_with_regs.S
+++ /dev/null
@@ -1,36 +0,0 @@
-.global call_with_registers
-
-#include <asm/asm-offsets.h>
-
- // int call_with_registers(void (*f)(struct cpu_user_regs *r)) ->
- // build a cpu_user_regs structure, and then call f with that.
-call_with_registers:
- pushf
- subl $UREGS_user_sizeof, %esp
- movl %ebx, UREGS_ebx(%esp)
- movl %ecx, UREGS_ecx(%esp)
- movl %edx, UREGS_edx(%esp)
- movl %esi, UREGS_esi(%esp)
- movl %edi, UREGS_edi(%esp)
- movl %ebp, UREGS_ebp(%esp)
- movl %eax, UREGS_eax(%esp)
- movw $0, UREGS_error_code(%esp)
- movw $0, UREGS_entry_vector(%esp)
- movl UREGS_user_sizeof+4(%esp), %eax
- movl %eax, UREGS_eip(%esp)
- movl %cs, UREGS_cs(%esp)
- movl UREGS_user_sizeof(%esp), %eax
- movl %eax, UREGS_eflags(%esp)
- movl %esp, UREGS_esp(%esp)
- addl $UREGS_user_sizeof+4, UREGS_esp(%esp)
- movl %ss, UREGS_ss(%esp)
- movl %es, UREGS_es(%esp)
- movl %ds, UREGS_ds(%esp)
- movl %fs, UREGS_fs(%esp)
- movl %gs, UREGS_gs(%esp)
-
- movl UREGS_user_sizeof+8(%esp), %eax
- pushl %esp
- call *%eax
- add $UREGS_user_sizeof + 8, %esp
- ret
diff --git a/xen/include/asm-x86/debugger.h b/xen/include/asm-x86/debugger.h
index dbd9acb0ed..877aa3b5e8 100644
--- a/xen/include/asm-x86/debugger.h
+++ b/xen/include/asm-x86/debugger.h
@@ -38,14 +38,13 @@
#define DEBUGGER_trap_fatal(_v, _r) \
if ( debugger_trap_fatal(_v, _r) ) return EXCRET_fault_fixed;
-int call_with_registers(int (*f)(struct cpu_user_regs *r));
-
#if defined(CRASH_DEBUG)
extern int __trap_to_cdb(struct cpu_user_regs *r);
#define debugger_trap_entry(_v, _r) (0)
#define debugger_trap_fatal(_v, _r) __trap_to_cdb(_r)
-#define debugger_trap_immediate() call_with_registers(__trap_to_cdb)
+/* Int3 is a trivial way to gather cpu_user_regs context. */
+#define debugger_trap_immediate() __asm__ __volatile__ ( "int3" );
#elif defined(DOMU_DEBUG)