diff options
-rw-r--r-- | .rootkeys | 1 | ||||
-rw-r--r-- | xen/arch/x86/x86_32/call_with_regs.S | 36 | ||||
-rw-r--r-- | xen/include/asm-x86/debugger.h | 5 |
3 files changed, 2 insertions, 40 deletions
@@ -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) |