forked from KolibriOS/kolibrios
uefi64kos: Fix stack alignment on function calls.
It is a formal requirement of UEFI spec that the stack is to be aligned on 16 bytes on all calls to service routines. I changed eficall macro to fstcall one in my previous commit. Due to differences in macro logic that change broke UEFI boot on some platforms that do care about stack alignment. This commit should fix the issue. git-svn-id: svn://kolibrios.org@9253 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
7454368c78
commit
e44770ac18
@ -20,36 +20,39 @@ EFIERR = 0x80000000
|
|||||||
|
|
||||||
struct EFI_SYSTEM_TABLE
|
struct EFI_SYSTEM_TABLE
|
||||||
Hdr EFI_TABLE_HEADER
|
Hdr EFI_TABLE_HEADER
|
||||||
FirmwareVendor dd ?
|
FirmwareVendor DN ?
|
||||||
FirmwareRevision dd ?
|
FirmwareRevision dd ?
|
||||||
ConsoleInHandle dd ?
|
|
||||||
ConIn dd ?
|
ConsoleInHandle DN ?
|
||||||
ConsoleOutHandle dd ?
|
ConIn DN ?
|
||||||
ConOut dd ?
|
ConsoleOutHandle DN ?
|
||||||
StandardErrorHandle dd ?
|
ConOut DN ?
|
||||||
StdErr dd ?
|
StandardErrorHandle DN ?
|
||||||
RuntimeServices dd ?
|
StdErr DN ?
|
||||||
BootServices dd ?
|
RuntimeServices DN ?
|
||||||
NumberOfTableEntries dd ?
|
BootServices DN ?
|
||||||
ConfigurationTable dd ?
|
NumberOfTableEntries DN ?
|
||||||
|
ConfigurationTable DN ?
|
||||||
ends
|
ends
|
||||||
|
|
||||||
struct EFI_CONFIGURATION_TABLE
|
struct EFI_CONFIGURATION_TABLE
|
||||||
VendorGUID rd 4
|
VendorGUID rd 4
|
||||||
VendorTable dd ?
|
VendorTable DN ?
|
||||||
ends
|
ends
|
||||||
|
|
||||||
struct EFI_LOADED_IMAGE_PROTOCOL
|
struct EFI_LOADED_IMAGE_PROTOCOL
|
||||||
Revision dd ?
|
Revision dd ?
|
||||||
ParentHandle dd ?
|
|
||||||
SystemTable dd ?
|
ParentHandle DN ?
|
||||||
DeviceHandle dd ?
|
SystemTable DN ?
|
||||||
FilePath dd ?
|
DeviceHandle DN ?
|
||||||
Reserved dd ?
|
FilePath DN ?
|
||||||
|
Reserved DN ?
|
||||||
LoadOptionsSize dd ?
|
LoadOptionsSize dd ?
|
||||||
ImageBase dd ?
|
|
||||||
|
ImageBase DN ?
|
||||||
ImageSize DQ ?
|
ImageSize DQ ?
|
||||||
ImageCodeType dd ?
|
ImageCodeType dd ?
|
||||||
ImageDataType dd ?
|
ImageDataType dd ?
|
||||||
UnLoad dd ?
|
UnLoad DN ?
|
||||||
ends
|
ends
|
||||||
|
@ -20,34 +20,39 @@ EFIERR = 0x8000000000000000
|
|||||||
|
|
||||||
struct EFI_SYSTEM_TABLE
|
struct EFI_SYSTEM_TABLE
|
||||||
Hdr EFI_TABLE_HEADER
|
Hdr EFI_TABLE_HEADER
|
||||||
FirmwareVendor dq ?
|
FirmwareVendor DN ?
|
||||||
FirmwareRevision dd ?
|
FirmwareRevision dd ?
|
||||||
dd ?
|
dd ?
|
||||||
ConsoleInHandle dq ?
|
ConsoleInHandle DN ?
|
||||||
ConIn dq ?
|
ConIn DN ?
|
||||||
ConsoleOutHandle dq ?
|
ConsoleOutHandle DN ?
|
||||||
ConOut dq ?
|
ConOut DN ?
|
||||||
StandardErrorHandle dq ?
|
StandardErrorHandle DN ?
|
||||||
StdErr dq ?
|
StdErr DN ?
|
||||||
RuntimeServices dq ?
|
RuntimeServices DN ?
|
||||||
BootServices dq ?
|
BootServices DN ?
|
||||||
NumberOfTableEntries dq ?
|
NumberOfTableEntries DN ?
|
||||||
ConfigurationTable dq ?
|
ConfigurationTable DN ?
|
||||||
|
ends
|
||||||
|
|
||||||
|
struct EFI_CONFIGURATION_TABLE
|
||||||
|
VendorGUID rd 4
|
||||||
|
VendorTable DN ?
|
||||||
ends
|
ends
|
||||||
|
|
||||||
struct EFI_LOADED_IMAGE_PROTOCOL
|
struct EFI_LOADED_IMAGE_PROTOCOL
|
||||||
Revision dd ?
|
Revision dd ?
|
||||||
dd ?
|
dd ?
|
||||||
ParentHandle dq ?
|
ParentHandle DN ?
|
||||||
SystemTable dq ?
|
SystemTable DN ?
|
||||||
DeviceHandle dq ?
|
DeviceHandle DN ?
|
||||||
FilePath dq ?
|
FilePath DN ?
|
||||||
Reserved dq ?
|
Reserved DN ?
|
||||||
LoadOptionsSize dd ?
|
LoadOptionsSize dd ?
|
||||||
dd ?
|
dd ?
|
||||||
ImageBase dq ?
|
ImageBase DN ?
|
||||||
ImageSize dq ?
|
ImageSize dq ?
|
||||||
ImageCodeType dd ?
|
ImageCodeType dd ?
|
||||||
ImageDataType dd ?
|
ImageDataType dd ?
|
||||||
UnLoad dq ?
|
UnLoad DN ?
|
||||||
ends
|
ends
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user