[FREELDR]

Simplify the stack management in PxeCallApi(), we don't need that much

svn path=/trunk/; revision=65909
This commit is contained in:
Pierre Schweitzer 2014-12-30 13:51:41 +00:00
parent c21b05742a
commit e1f04ea0de

View file

@ -158,41 +158,33 @@ Int386_return:
*/ */
PUBLIC _PxeCallApi PUBLIC _PxeCallApi
_PxeCallApi: _PxeCallApi:
push ebp
mov ebp, esp
pusha
push es
/* copy entry point */ /* copy entry point */
mov eax, [ebp + 8] mov eax, [esp + 4]
shl eax, 16 shl eax, 16
mov ax, [ebp + 12] mov ax, [esp + 8]
mov dword ptr ds:[BSS_PxeEntryPoint], eax mov dword ptr ds:[BSS_PxeEntryPoint], eax
/* copy function */ /* copy function */
mov ax, [ebp + 16] mov ax, [esp + 12]
mov word ptr ds:[BSS_PxeFunction], ax mov word ptr ds:[BSS_PxeFunction], ax
/* convert pointer to data buffer to segment/offset */ /* convert pointer to data buffer to segment/offset */
mov eax, [ebp + 20] mov eax, [esp + 16]
shr eax, 4 shr eax, 4
and eax, HEX(0f000) and eax, HEX(0f000)
mov word ptr ds:[BSS_PxeBufferSegment], ax mov word ptr ds:[BSS_PxeBufferSegment], ax
mov eax, [ebp + 20] mov eax, [esp + 16]
and eax, HEX(0ffff) and eax, HEX(0ffff)
mov word ptr ds:[BSS_PxeBufferOffset], ax mov word ptr ds:[BSS_PxeBufferOffset], ax
pusha
/* Set the function ID and call realmode */ /* Set the function ID and call realmode */
mov bx, FNID_PxeCallApi mov bx, FNID_PxeCallApi
call i386CallRealMode call i386CallRealMode
pop es
popa popa
mov esp, ebp
pop ebp
mov ax, word ptr [BSS_PxeResult] mov ax, word ptr [BSS_PxeResult]
ret ret