kolibrios/kernel/trunk/bootloader/uefi4kos/uefi64.inc
Ivan Baravy e44770ac18 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
2021-11-05 02:17:31 +00:00

59 lines
1.9 KiB
PHP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Copyright (C) KolibriOS team 2020-2021. All rights reserved. ;;
;; Distributed under terms of the GNU General Public License ;;
;; Version 2, or (at your option) any later version. ;;
;; ;;
;; Written by Ivan Baravy ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ;;
;; Based on UEFI library for fasm by bzt, Public Domain. ;;
;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DN fix dq ; native
include "uefi.inc"
EFIERR = 0x8000000000000000
struct EFI_SYSTEM_TABLE
Hdr EFI_TABLE_HEADER
FirmwareVendor DN ?
FirmwareRevision dd ?
dd ?
ConsoleInHandle DN ?
ConIn DN ?
ConsoleOutHandle DN ?
ConOut DN ?
StandardErrorHandle DN ?
StdErr DN ?
RuntimeServices DN ?
BootServices DN ?
NumberOfTableEntries DN ?
ConfigurationTable DN ?
ends
struct EFI_CONFIGURATION_TABLE
VendorGUID rd 4
VendorTable DN ?
ends
struct EFI_LOADED_IMAGE_PROTOCOL
Revision dd ?
dd ?
ParentHandle DN ?
SystemTable DN ?
DeviceHandle DN ?
FilePath DN ?
Reserved DN ?
LoadOptionsSize dd ?
dd ?
ImageBase DN ?
ImageSize dq ?
ImageCodeType dd ?
ImageDataType dd ?
UnLoad DN ?
ends