;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Copyright (C) KolibriOS team 2020. All rights reserved. ;; ;; Distributed under terms of the GNU General Public License ;; ;; Version 2, or (at your option) any later version. ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; Based on UEFI library for fasm by bzt, Public Domain. ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EFI_LOCATE_SEARCH_TYPE: .AllHandles = 0 .ByRegisterNotify = 1 .ByProtocol = 2 ; EFI_MEMORY_TYPE EFI_RESERVED_MEMORY_TYPE = 0 EFI_LOADER_CODE = 1 EFI_LOADER_DATA = 2 EFI_BOOT_SERVICES_CODE = 3 EFI_BOOT_SERVICES_DATA = 4 EFI_RUNTIME_SERVICES_CODE = 5 EFI_RUNTIME_SERVICES_DATA = 6 EFI_CONVENTIONAL_MEMORY = 7 EFI_UNUSABLE_MEMORY = 8 EFI_ACPI_RECLAIM_MEMORY = 9 EFI_ACPI_MEMORY_NVS = 10 EFI_MEMORY_MAPPED_IO = 11 EFI_MEMORY_MAPPED_IO_PORT_SPACE = 12 EFI_PAL_CODE = 13 EFI_PERSISTENT_MEMORY = 14 EFI_MAX_MEMORY_TYPE = 15 ; EFI_ALLOCATE_TYPE EFI_ALLOCATE_ANY_PAGES = 0 EFI_ALLOCATE_MAX_ADDRESS = 1 EFI_ALLOCATE_ADDRESS = 2 EFI_MEMORY_UC = 0x00000001 EFI_MEMORY_WC = 0x00000002 EFI_MEMORY_WT = 0x00000004 EFI_MEMORY_WB = 0x00000008 EFI_MEMORY_UCE = 0x00000010 EFI_MEMORY_WP = 0x00001000 EFI_MEMORY_RP = 0x00002000 EFI_MEMORY_XP = 0x00004000 EFI_MEMORY_NV = 0x00008000 EFI_MEMORY_MORE_RELIABLE = 0x00010000 EFI_MEMORY_RO = 0x00020000 EFI_SUCCESS = 0 EFI_LOAD_ERROR = EFIERR or 1 EFI_INVALID_PARAMETER = EFIERR or 2 EFI_UNSUPPORTED = EFIERR or 3 EFI_BAD_BUFFER_SIZE = EFIERR or 4 EFI_BUFFER_TOO_SMALL = EFIERR or 5 EFI_NOT_READY = EFIERR or 6 EFI_DEVICE_ERROR = EFIERR or 7 EFI_WRITE_PROTECTED = EFIERR or 8 EFI_OUT_OF_RESOURCES = EFIERR or 9 EFI_VOLUME_CORRUPTED = EFIERR or 10 EFI_VOLUME_FULL = EFIERR or 11 EFI_NO_MEDIA = EFIERR or 12 EFI_MEDIA_CHANGED = EFIERR or 13 EFI_NOT_FOUND = EFIERR or 14 EFI_ACCESS_DENIED = EFIERR or 15 EFI_NO_RESPONSE = EFIERR or 16 EFI_NO_MAPPING = EFIERR or 17 EFI_TIMEOUT = EFIERR or 18 EFI_NOT_STARTED = EFIERR or 19 EFI_ALREADY_STARTED = EFIERR or 20 EFI_ABORTED = EFIERR or 21 EFI_ICMP_ERROR = EFIERR or 22 EFI_TFTP_ERROR = EFIERR or 23 EFI_PROTOCOL_ERROR = EFIERR or 24 EFI_FILE_SYSTEM_INFO_ID equ 0x93,0x6e,0x57,0x09,0x3f,0x6d,0xd2,0x11, \ 0x39,0x8e,0x00,0xa0,0xc9,0x69,0x72,0x3b EFI_SYSTEM_TABLE_SIGNATURE equ 0x49,0x42,0x49,0x20,0x53,0x59,0x53,0x54 EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID equ 0x22,0x5b,0x4e,0x96, \ 0x59,0x64,0xd2,0x11, \ 0x8e,0x39,0x00,0xa0, \ 0xc9,0x69,0x72,0x3b EFI_LOADED_IMAGE_PROTOCOL_GUID equ 0xA1,0x31,0x1b,0x5b,0x62,0x95,0xd2,0x11, \ 0x8E,0x3F,0x00,0xA0,0xC9,0x69,0x72,0x3B EFI_BLOCK_IO_PROTOCOL_GUID equ 0x21,0x5b,0x4e,0x96,0x59,0x64,0xd2,0x11, \ 0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID equ 0xde,0xa9,0x42,0x90,0xdc,0x23,0x38,0x4a, \ 0x96,0xfb,0x7a,0xde,0xd0,0x80,0x51,0x6a EFI_FILE_MODE_READ = 1 EFI_FILE_MODE_WRITE = 2 EFI_FILE_MODE_CREATE = 0x8000000000000000 struct EFI_MEMORY_DESCRIPTOR Type dd ? dd ? ; align PhysicalStart DQ ? VirtualStart DQ ? NumberOfPages DQ ? Attribute DQ ? ends struct EFI_FILE_SYSTEM_INFO Size DQ ? ReadOnly db ? rb 7 VolumeSize DQ ? FreeSpace DQ ? BlockSize dd ? VolumeLabel rw 32 ends struct EFI_TABLE_HEADER Signature DQ ? Revision dd ? HeaderSize dd ? CRC32 dd ? Reserved dd ? ends struct EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL Reset DN ? OutputString DN ? TestString DN ? QueryMode DN ? SetMode DN ? SetAttribute DN ? ClearScreen DN ? SetCursorPosition DN ? EnableCursor DN ? Mode DN ? ends struct SIMPLE_INPUT_INTERFACE Reset DN ? ReadKeyStroke DN ? WaitForKey DN ? ends struct EFI_BOOT_SERVICES Hdr EFI_TABLE_HEADER RaisePriority DN ? RestorePriority DN ? AllocatePages DN ? FreePages DN ? GetMemoryMap DN ? AllocatePool DN ? FreePool DN ? CreateEvent DN ? SetTimer DN ? WaitForEvent DN ? SignalEvent DN ? CloseEvent DN ? CheckEvent DN ? InstallProtocolInterface DN ? ReInstallProtocolInterface DN ? UnInstallProtocolInterface DN ? HandleProtocol DN ? Reserved DN ? RegisterProtocolNotify DN ? LocateHandle DN ? LocateDevicePath DN ? InstallConfigurationTable DN ? ImageLoad DN ? ImageStart DN ? Exit DN ? ImageUnLoad DN ? ExitBootServices DN ? GetNextMonotonicCount DN ? Stall DN ? SetWatchdogTimer DN ? ConnectController DN ? DisConnectController DN ? OpenProtocol DN ? CloseProtocol DN ? OpenProtocolInformation DN ? ProtocolsPerHandle DN ? LocateHandleBuffer DN ? LocateProtocol DN ? InstallMultipleProtocolInterfaces DN ? UnInstallMultipleProtocolInterfaces DN ? CalculateCrc32 DN ? CopyMem DN ? SetMem DN ? ends struct EFI_RUNTIME_SERVICES Hdr EFI_TABLE_HEADER GetTime DN ? SetTime DN ? GetWakeUpTime DN ? SetWakeUpTime DN ? SetVirtualAddressMap DN ? ConvertPointer DN ? GetVariable DN ? GetNextVariableName DN ? SetVariable DN ? GetNextHighMonoCount DN ? ResetSystem DN ? ends struct EFI_SIMPLE_FILE_SYSTEM_PROTOCOL Revision DQ ? OpenVolume DN ? ends struct EFI_FILE_PROTOCOL Revision DQ ? Open DN ? Close DN ? Delete DN ? Read DN ? Write DN ? GetPosition DN ? SetPosition DN ? GetInfo DN ? SetInfo DN ? Flush DN ? OpenEx DN ? ReadEx DN ? WriteEx DN ? FlushEx DN ? ends struct EFI_GRAPHICS_OUTPUT_PROTOCOL QueryMode DN ? SetMode DN ? Blt DN ? Mode DN ? ends struct EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE MaxMode dd ? Mode dd ? Info DN ? SizeOfInfo DN ? FrameBufferBase DQ ? FrameBufferSize DN ? ends EFI_GRAPHICS_PIXEL_FORMAT: .PixelRedGreenBlueReserved8BitPerColor = 0 .PixelBlueGreenRedReserved8BitPerColor = 1 .PixelBitMask = 2 .PixelBltOnly = 3 .PixelFormatMax = 4 struct EFI_PIXEL_BITMASK RedMask dd ? GreenMask dd ? BlueMask dd ? ReservedMask dd ? ends struct EFI_GRAPHICS_OUTPUT_MODE_INFORMATION Version dd ? HorizontalResolution dd ? VerticalResolution dd ? PixelFormat dd ? PixelInformation EFI_PIXEL_BITMASK PixelsPerScanLine dd ? ends