#------------------------------------------------------------------------------ | |
# | |
# Manage differenced between UNIX ABI and EFI/Windows ABI | |
# | |
# For IA-32 the only difference is Mac OS X requires a 16-byte aligned stack. | |
# For Linux this stack adjustment is a no-op, but we may as well make the | |
# the code common. | |
# | |
# Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR> | |
# Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> | |
# SPDX-License-Identifier: BSD-2-Clause-Patent | |
# | |
#------------------------------------------------------------------------------ | |
.text | |
// | |
// EMU_THUNK_PROTOCOL gaskets (EFIAPI to UNIX ABI) | |
// | |
ASM_GLOBAL ASM_PFX(GasketSecWriteStdErr) | |
ASM_PFX(GasketSecWriteStdErr): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecWriteStdErr) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecConfigStdIn) | |
ASM_PFX(GasketSecConfigStdIn): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecConfigStdIn) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecWriteStdOut) | |
ASM_PFX(GasketSecWriteStdOut): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecWriteStdOut) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecReadStdIn) | |
ASM_PFX(GasketSecReadStdIn): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecReadStdIn) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecPollStdIn) | |
ASM_PFX(GasketSecPollStdIn): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecPollStdIn) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecMalloc) | |
ASM_PFX(GasketSecMalloc): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecMalloc) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecValloc) | |
ASM_PFX(GasketSecValloc): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecValloc) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecFree) | |
ASM_PFX(GasketSecFree): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecFree) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecSetTimer) | |
ASM_PFX(GasketSecSetTimer): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 8(%ebp), %eax | |
movl 12(%ebp), %edx | |
movl %edx, 4(%esp) | |
movl %eax, (%esp) | |
call ASM_PFX(SecSetTimer) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecEnableInterrupt) | |
ASM_PFX(GasketSecEnableInterrupt): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(SecEnableInterrupt) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecDisableInterrupt) | |
ASM_PFX(GasketSecDisableInterrupt): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(SecDisableInterrupt) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketQueryPerformanceFrequency) | |
ASM_PFX(GasketQueryPerformanceFrequency): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(QueryPerformanceFrequency) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketQueryPerformanceCounter) | |
ASM_PFX(GasketQueryPerformanceCounter): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(QueryPerformanceCounter) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecSleep) | |
ASM_PFX(GasketSecSleep): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl 12(%ebp), %ecx | |
movl %ecx, 4(%esp) | |
movl %eax, (%esp) | |
call ASM_PFX(SecSleep) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecCpuSleep) | |
ASM_PFX(GasketSecCpuSleep): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(SecCpuSleep) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecExit) | |
ASM_PFX(GasketSecExit): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecExit) // Less to do as we will never return to EFI ABI world | |
LDEAD_LOOP: | |
jmp LDEAD_LOOP // _exit should never return | |
ASM_GLOBAL ASM_PFX(GasketSecGetTime) | |
ASM_PFX(GasketSecGetTime): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecGetTime) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecSetTime) | |
ASM_PFX(GasketSecSetTime): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecSetTime) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecSetMemoryAttributes) | |
ASM_PFX(GasketSecSetMemoryAttributes): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 28(%ebp), %eax | |
movl %eax, 20(%esp) | |
movl 24(%ebp), %eax | |
movl %eax, 16(%esp) | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecSetMemoryAttributes) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecGetNextProtocol) | |
ASM_PFX(GasketSecGetNextProtocol): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecGetNextProtocol) | |
leave | |
ret | |
// PPIs produced by SEC | |
ASM_GLOBAL ASM_PFX(GasketSecPeCoffGetEntryPoint) | |
ASM_PFX(GasketSecPeCoffGetEntryPoint): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecPeCoffGetEntryPoint) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecPeCoffRelocateImageExtraAction) | |
ASM_PFX(GasketSecPeCoffRelocateImageExtraAction): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecPeCoffRelocateImageExtraAction) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecPeCoffUnloadImageExtraAction) | |
ASM_PFX(GasketSecPeCoffUnloadImageExtraAction): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecPeCoffUnloadImageExtraAction) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecEmuThunkAddress) | |
ASM_PFX(GasketSecEmuThunkAddress): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(SecEmuThunkAddress) | |
leave | |
ret | |
// | |
// Gasket functions for EFI_EMU_UGA_IO_PROTOCOL | |
// | |
ASM_GLOBAL ASM_PFX(GasketX11Size) | |
ASM_PFX(GasketX11Size): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11Size) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11CheckKey) | |
ASM_PFX(GasketX11CheckKey): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11CheckKey) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11GetKey) | |
ASM_PFX(GasketX11GetKey): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11GetKey) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11KeySetState) | |
ASM_PFX(GasketX11KeySetState): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11KeySetState) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11RegisterKeyNotify) | |
ASM_PFX(GasketX11RegisterKeyNotify): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11RegisterKeyNotify) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11Blt) | |
ASM_PFX(GasketX11Blt): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11Blt) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11CheckPointer) | |
ASM_PFX(GasketX11CheckPointer): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11CheckPointer) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11GetPointerState) | |
ASM_PFX(GasketX11GetPointerState): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11GetPointerState) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11GraphicsWindowOpen) | |
ASM_PFX(GasketX11GraphicsWindowOpen): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11GraphicsWindowOpen) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketX11GraphicsWindowClose) | |
ASM_PFX(GasketX11GraphicsWindowClose): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(X11GraphicsWindowClose) | |
leave | |
ret | |
// Pthreads | |
ASM_GLOBAL ASM_PFX(GasketPthreadMutexLock) | |
ASM_PFX(GasketPthreadMutexLock): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadMutexLock) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadMutexUnLock) | |
ASM_PFX(GasketPthreadMutexUnLock): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadMutexUnLock) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadMutexTryLock) | |
ASM_PFX(GasketPthreadMutexTryLock): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadMutexTryLock) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadMutexInit) | |
ASM_PFX(GasketPthreadMutexInit): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(PthreadMutexInit) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadMutexDestroy) | |
ASM_PFX(GasketPthreadMutexDestroy): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadMutexDestroy) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadCreate) | |
ASM_PFX(GasketPthreadCreate): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadCreate) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadExit) | |
ASM_PFX(GasketPthreadExit): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadExit) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadSelf) | |
ASM_PFX(GasketPthreadSelf): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(PthreadSelf) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadOpen) | |
ASM_PFX(GasketPthreadOpen): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadOpen) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPthreadClose) | |
ASM_PFX(GasketPthreadClose): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PthreadClose) | |
leave | |
ret | |
// | |
// UNIX ABI to EFI ABI call | |
// | |
// UINTN | |
// ReverseGasketUint64 ( | |
// void *Api, | |
// UINTN Arg1 | |
// ); | |
ASM_GLOBAL ASM_PFX(ReverseGasketUint64) | |
ASM_PFX(ReverseGasketUint64): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $8, %esp | |
movl 16(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, (%esp) | |
calll *8(%ebp) | |
addl $8, %esp | |
popl %ebp | |
ret | |
// | |
// UNIX ABI to EFI ABI call | |
// | |
// UINTN | |
// ReverseGasketUint64Uint64 ( | |
// void *Api, | |
// UINTN Arg1 | |
// UINTN Arg2 | |
// ); | |
ASM_GLOBAL ASM_PFX(ReverseGasketUint64Uint64) | |
ASM_PFX(ReverseGasketUint64Uint64): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp | |
movl 24(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 20(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, (%esp) | |
calll *8(%ebp) | |
addl $24, %esp | |
popl %ebp | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecUnixPeiAutoScan) | |
ASM_PFX(GasketSecUnixPeiAutoScan): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecUnixPeiAutoScan) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSecUnixFdAddress) | |
ASM_PFX(GasketSecUnixFdAddress): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecUnixFdAddress) | |
leave | |
ret | |
// EmuIoThunk SimpleFileSystem | |
ASM_GLOBAL ASM_PFX(GasketPosixOpenVolume) | |
ASM_PFX(GasketPosixOpenVolume): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixOpenVolume) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileOpen) | |
ASM_PFX(GasketPosixFileOpen): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $56, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 28(%ebp), %eax | |
movl 32(%ebp), %ecx | |
movl %ecx, 24(%esp) | |
movl %eax, 20(%esp) | |
movl 20(%ebp), %eax | |
movl 24(%ebp), %ecx | |
movl %ecx, 16(%esp) | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileOpen) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileClose) | |
ASM_PFX(GasketPosixFileClose): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileClose) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileDelete) | |
ASM_PFX(GasketPosixFileDelete): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileDelete) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileRead) | |
ASM_PFX(GasketPosixFileRead): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileRead) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileWrite) | |
ASM_PFX(GasketPosixFileWrite): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileWrite) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileSetPosition) | |
ASM_PFX(GasketPosixFileSetPosition): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl 16(%ebp), %ecx | |
movl %ecx, 8(%esp) | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileSetPosition) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileGetPosition) | |
ASM_PFX(GasketPosixFileGetPosition): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileGetPosition) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileGetInfo) | |
ASM_PFX(GasketPosixFileGetInfo): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileGetInfo) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileSetInfo) | |
ASM_PFX(GasketPosixFileSetInfo): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileSetInfo) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileFlush) | |
ASM_PFX(GasketPosixFileFlush): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileFlush) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileSystemThunkOpen) | |
ASM_PFX(GasketPosixFileSystemThunkOpen): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileSystemThunkOpen) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketPosixFileSystemThunkClose) | |
ASM_PFX(GasketPosixFileSystemThunkClose): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(PosixFileSystemThunkClose) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketEmuBlockIoReset) | |
ASM_PFX(GasketEmuBlockIoReset): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuBlockIoReset) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketEmuBlockIoReadBlocks) | |
ASM_PFX(GasketEmuBlockIoReadBlocks): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $56, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 32(%ebp), %eax | |
movl %eax, 24(%esp) | |
movl 28(%ebp), %eax | |
movl %eax, 20(%esp) | |
movl 24(%ebp), %eax | |
movl %eax, 16(%esp) | |
movl 16(%ebp), %eax | |
movl 20(%ebp), %edx | |
movl %edx, 12(%esp) | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuBlockIoReadBlocks) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketEmuBlockIoWriteBlocks) | |
ASM_PFX(GasketEmuBlockIoWriteBlocks): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $56, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 32(%ebp), %eax | |
movl %eax, 24(%esp) | |
movl 28(%ebp), %eax | |
movl %eax, 20(%esp) | |
movl 24(%ebp), %eax | |
movl %eax, 16(%esp) | |
movl 16(%ebp), %eax | |
movl 20(%ebp), %edx | |
movl %edx, 12(%esp) | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuBlockIoWriteBlocks) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketEmuBlockIoFlushBlocks) | |
ASM_PFX(GasketEmuBlockIoFlushBlocks): pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuBlockIoFlushBlocks) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketEmuBlockIoCreateMapping) | |
ASM_PFX(GasketEmuBlockIoCreateMapping): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuBlockIoCreateMapping) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketBlockIoThunkOpen) | |
ASM_PFX(GasketBlockIoThunkOpen): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuBlockIoThunkOpen) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketBlockIoThunkClose) | |
ASM_PFX(GasketBlockIoThunkClose): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuBlockIoThunkClose) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpCreateMapping) | |
ASM_PFX(GasketSnpCreateMapping): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpCreateMapping) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpStart) | |
ASM_PFX(GasketSnpStart): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpStart) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpStop) | |
ASM_PFX(GasketSnpStop): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpStop) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpInitialize) | |
ASM_PFX(GasketSnpInitialize): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpInitialize) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpReset) | |
ASM_PFX(GasketSnpReset): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpReset) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpShutdown) | |
ASM_PFX(GasketSnpShutdown): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpShutdown) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpReceiveFilters) | |
ASM_PFX(GasketSnpReceiveFilters): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 28(%ebp), %eax | |
movl %eax, 20(%esp) | |
movl 24(%ebp), %eax | |
movl %eax, 16(%esp) | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpReceiveFilters) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpStationAddress) | |
ASM_PFX(GasketSnpStationAddress): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpStatistics) | |
ASM_PFX(GasketSnpStatistics): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpStatistics) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpMCastIpToMac) | |
ASM_PFX(GasketSnpMCastIpToMac): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpMCastIpToMac) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpNvData) | |
ASM_PFX(GasketSnpNvData): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 24(%ebp), %eax | |
movl %eax, 16(%esp) | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpNvData) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpGetStatus) | |
ASM_PFX(GasketSnpGetStatus): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $40, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpGetStatus) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpTransmit) | |
ASM_PFX(GasketSnpTransmit): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $56, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 32(%ebp), %eax | |
movl %eax, 24(%esp) | |
movl 28(%ebp), %eax | |
movl %eax, 20(%esp) | |
movl 24(%ebp), %eax | |
movl %eax, 16(%esp) | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpTransmit) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpReceive) | |
ASM_PFX(GasketSnpReceive): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $56, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 32(%ebp), %eax | |
movl %eax, 24(%esp) | |
movl 28(%ebp), %eax | |
movl %eax, 20(%esp) | |
movl 24(%ebp), %eax | |
movl %eax, 16(%esp) | |
movl 20(%ebp), %eax | |
movl %eax, 12(%esp) | |
movl 16(%ebp), %eax | |
movl %eax, 8(%esp) | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpReceive) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpThunkOpen) | |
ASM_PFX(GasketSnpThunkOpen): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpThunkOpen) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSnpThunkClose) | |
ASM_PFX(GasketSnpThunkClose): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(EmuSnpThunkClose) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketRegisterSignalHandler) | |
ASM_PFX(GasketRegisterSignalHandler): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 12(%ebp), %eax | |
movl %eax, 4(%esp) | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecRegisterSignalHandler) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketUnregisterSignalHandler) | |
ASM_PFX(GasketUnregisterSignalHandler): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SecUnregisterSignalHandler) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSignalOpen) | |
ASM_PFX(GasketSignalOpen): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SignalOpen) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSignalClose) | |
ASM_PFX(GasketSignalClose): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SignalClose) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketGetIsSigTermSignaled) | |
ASM_PFX(GasketGetIsSigTermSignaled): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
call ASM_PFX(GetIsSigTermSignaled) | |
leave | |
ret | |
ASM_GLOBAL ASM_PFX(GasketSetIsSigTermSignaled) | |
ASM_PFX(GasketSetIsSigTermSignaled): | |
pushl %ebp | |
movl %esp, %ebp | |
subl $24, %esp // sub extra 16 from the stack for alignment | |
and $-16, %esp // stack needs to end in 0xFFFFFFF0 before call | |
movl 8(%ebp), %eax | |
movl %eax, (%esp) | |
call ASM_PFX(SetIsSigTermSignaled) | |
leave | |
ret |