mirror of
https://github.com/ipxe/ipxe
synced 2025-12-21 20:40:25 +03:00
[librm] Discard argument as part of return from prot_call()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -663,7 +663,7 @@ void hook_comboot_interrupts ( ) {
|
||||
"pushl %0\n\t"
|
||||
"pushw %%cs\n\t"
|
||||
"call prot_call\n\t"
|
||||
"addw $4, %%sp\n\t"
|
||||
"clc\n\t"
|
||||
"call patch_cf\n\t"
|
||||
"iret\n\t" )
|
||||
: : "i" ( int20 ) );
|
||||
@@ -675,7 +675,7 @@ void hook_comboot_interrupts ( ) {
|
||||
"pushl %0\n\t"
|
||||
"pushw %%cs\n\t"
|
||||
"call prot_call\n\t"
|
||||
"addw $4, %%sp\n\t"
|
||||
"clc\n\t"
|
||||
"call patch_cf\n\t"
|
||||
"iret\n\t" )
|
||||
: : "i" ( int21 ) );
|
||||
@@ -687,7 +687,7 @@ void hook_comboot_interrupts ( ) {
|
||||
"pushl %0\n\t"
|
||||
"pushw %%cs\n\t"
|
||||
"call prot_call\n\t"
|
||||
"addw $4, %%sp\n\t"
|
||||
"clc\n\t"
|
||||
"call patch_cf\n\t"
|
||||
"iret\n\t" )
|
||||
: : "i" ( int22) );
|
||||
|
||||
@@ -9,7 +9,6 @@ void __asmcall _dump_regs ( struct i386_all_regs *ix86 ) {
|
||||
"pushl $_dump_regs\n\t"
|
||||
"pushw %%cs\n\t"
|
||||
"call prot_call\n\t"
|
||||
"addr32 leal 4(%%esp), %%esp\n\t"
|
||||
"ret\n\t" ) : : );
|
||||
|
||||
printf ( "EAX=%08x EBX=%08x ECX=%08x EDX=%08x\n"
|
||||
|
||||
@@ -536,7 +536,6 @@ static void bios_inject_startup ( void ) {
|
||||
"pushl %0\n\t"
|
||||
"pushw %%cs\n\t"
|
||||
"call prot_call\n\t"
|
||||
"addw $4, %%sp\n\t"
|
||||
"\n1:\n\t"
|
||||
"popfw\n\t"
|
||||
"ljmp *%%cs:int16_vector\n\t" )
|
||||
|
||||
@@ -123,7 +123,6 @@ pxenv_entry:
|
||||
pushl $pxe_api_call
|
||||
pushw %cs
|
||||
call prot_call
|
||||
addl $4, %esp
|
||||
lret
|
||||
.size pxenv_entry, . - pxenv_entry
|
||||
|
||||
|
||||
@@ -373,7 +373,6 @@ start_runtime:
|
||||
pushl $main
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %ecx /* discard */
|
||||
|
||||
/* Uninstall iPXE */
|
||||
call uninstall
|
||||
|
||||
@@ -151,7 +151,6 @@ _exe_start:
|
||||
pushl $main
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %ecx /* discard */
|
||||
|
||||
/* Uninstall iPXE */
|
||||
call uninstall
|
||||
|
||||
@@ -102,7 +102,6 @@ start_image:
|
||||
pushl $main
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %ecx /* discard */
|
||||
|
||||
/* Uninstall iPXE */
|
||||
call uninstall
|
||||
|
||||
@@ -880,7 +880,6 @@ payload_death_message:
|
||||
movw %ax, (prot_call_vector+2)
|
||||
pushl $relocate
|
||||
lcall *prot_call_vector
|
||||
popl %edx /* discard */
|
||||
|
||||
/* Copy code to new location */
|
||||
progress " copy\n"
|
||||
|
||||
@@ -200,7 +200,6 @@ no_cmd_line:
|
||||
pushl $main
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %ecx /* discard */
|
||||
|
||||
/* Uninstall iPXE */
|
||||
call uninstall
|
||||
|
||||
@@ -69,7 +69,6 @@ _nbi_start:
|
||||
pushl $main
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %ecx /* discard */
|
||||
|
||||
/* Uninstall iPXE */
|
||||
call uninstall
|
||||
|
||||
@@ -823,7 +823,6 @@ run_ipxe:
|
||||
pushl $main
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %ecx /* discard */
|
||||
|
||||
/* Uninstall iPXE */
|
||||
call uninstall
|
||||
|
||||
@@ -807,7 +807,6 @@ exec: /* Set %ds = %cs */
|
||||
pushl $main
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %eax /* discard */
|
||||
|
||||
/* Set up flat real mode for return to BIOS */
|
||||
call flatten_real_mode
|
||||
|
||||
@@ -41,9 +41,7 @@ undiloader:
|
||||
pushw %ax
|
||||
pushw $prot_call
|
||||
lret
|
||||
1: popw %bx /* discard */
|
||||
popw %bx /* discard */
|
||||
/* Restore registers and return */
|
||||
1: /* Restore registers and return */
|
||||
popw %bx
|
||||
popw %es
|
||||
popw %ds
|
||||
|
||||
@@ -134,7 +134,6 @@ init_librm:
|
||||
pushl $init_idt
|
||||
pushw %cs
|
||||
call prot_call
|
||||
popl %eax /* discard */
|
||||
|
||||
/* Restore registers */
|
||||
negl %edi
|
||||
@@ -385,8 +384,8 @@ rm_gdtr:
|
||||
*
|
||||
* Example usage:
|
||||
* pushl $pxe_api_call
|
||||
* pushw %cs
|
||||
* call prot_call
|
||||
* addw $4, %sp
|
||||
* to call in to the C function
|
||||
* void pxe_api_call ( struct i386_all_regs *ix86 );
|
||||
****************************************************************************
|
||||
@@ -455,7 +454,7 @@ pc_rmode:
|
||||
*/
|
||||
addr32 movl -20(%esp), %esp
|
||||
popfl
|
||||
lret
|
||||
lret $4
|
||||
|
||||
/****************************************************************************
|
||||
* real_call (protected-mode near call, 32-bit virtual return address)
|
||||
@@ -554,7 +553,6 @@ flatten_real_mode:
|
||||
pushl $flatten_dummy
|
||||
pushw %cs
|
||||
call prot_call
|
||||
addw $4, %sp
|
||||
/* Restore GDT */
|
||||
movb $0x00, real_cs + 6
|
||||
movb $0x00, real_ds + 6
|
||||
|
||||
@@ -108,7 +108,6 @@ static void librm_test_exec ( void ) {
|
||||
"pushl %k3\n\t"
|
||||
"pushw %%cs\n\t"
|
||||
"call prot_call\n\t"
|
||||
"addw $4, %%sp\n\t"
|
||||
"rdtsc\n\t" )
|
||||
: "=a" ( stopped ), "=d" ( discard_d ),
|
||||
"=R" ( started )
|
||||
|
||||
Reference in New Issue
Block a user