1479ab7f0SSascha Wildner /* 2479ab7f0SSascha Wildner * Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved 3479ab7f0SSascha Wildner * This software and associated documentation (if any) is furnished 4479ab7f0SSascha Wildner * under a license and may only be used or copied in accordance 5479ab7f0SSascha Wildner * with the terms of the license. Except as permitted by such 6479ab7f0SSascha Wildner * license, no part of this software or documentation may be 7479ab7f0SSascha Wildner * reproduced, stored in a retrieval system, or transmitted in any 8479ab7f0SSascha Wildner * form or by any means without the express written consent of 9479ab7f0SSascha Wildner * Intel Corporation. 10479ab7f0SSascha Wildner */ 11479ab7f0SSascha Wildner 12479ab7f0SSascha Wildner #ifndef _EFI_INCLUDE_ 13479ab7f0SSascha Wildner #define _EFI_INCLUDE_ 14479ab7f0SSascha Wildner 15479ab7f0SSascha Wildner #ifdef __x86_64__ 16479ab7f0SSascha Wildner #define EFIAPI __attribute__((ms_abi)) 17479ab7f0SSascha Wildner #endif 18479ab7f0SSascha Wildner 19479ab7f0SSascha Wildner /* 20479ab7f0SSascha Wildner * The following macros are defined unconditionally in the EDK II headers, 21479ab7f0SSascha Wildner * so get our definitions out of the way. 22479ab7f0SSascha Wildner */ 23479ab7f0SSascha Wildner #undef NULL 24479ab7f0SSascha Wildner #undef MIN 25479ab7f0SSascha Wildner #undef MAX 26479ab7f0SSascha Wildner 27479ab7f0SSascha Wildner #include <Uefi.h> 28479ab7f0SSascha Wildner #include <Guid/Acpi.h> 29479ab7f0SSascha Wildner #include <Guid/DebugImageInfoTable.h> 30479ab7f0SSascha Wildner #include <Guid/DxeServices.h> 31479ab7f0SSascha Wildner #include <Guid/HobList.h> 32888e2fdcSAaron LI #include <Guid/LzmaDecompress.h> 33479ab7f0SSascha Wildner #include <Guid/Mps.h> 34479ab7f0SSascha Wildner #include <Guid/SmBios.h> 35888e2fdcSAaron LI #include <Guid/SystemResourceTable.h> 36479ab7f0SSascha Wildner #include <Protocol/BlockIo.h> 37479ab7f0SSascha Wildner #include <Protocol/GraphicsOutput.h> 38479ab7f0SSascha Wildner #include <Protocol/NetworkInterfaceIdentifier.h> 39479ab7f0SSascha Wildner #include <Protocol/PciIo.h> 40479ab7f0SSascha Wildner #include <Protocol/SerialIo.h> 41479ab7f0SSascha Wildner #include <Protocol/SimpleNetwork.h> 42479ab7f0SSascha Wildner #include <Protocol/UgaDraw.h> 43479ab7f0SSascha Wildner 44479ab7f0SSascha Wildner /* 45479ab7f0SSascha Wildner * The following macros haven been preserved from the old EFI headers for now. 46479ab7f0SSascha Wildner */ 47479ab7f0SSascha Wildner #define EFI_DP_TYPE_MASK 0x7f 48479ab7f0SSascha Wildner 49479ab7f0SSascha Wildner #define END_DEVICE_PATH_TYPE 0x7f 50479ab7f0SSascha Wildner 51479ab7f0SSascha Wildner #define DevicePathType(a) (((a)->Type) & EFI_DP_TYPE_MASK) 52479ab7f0SSascha Wildner #define DevicePathSubType(a) ((a)->SubType) 53479ab7f0SSascha Wildner #define DevicePathNodeLength(a) ((size_t)(((a)->Length[0]) | ((a)->Length[1] << 8))) 54479ab7f0SSascha Wildner #define NextDevicePathNode(a) ((EFI_DEVICE_PATH *)(((UINT8 *)(a)) + DevicePathNodeLength(a))) 55479ab7f0SSascha Wildner #define IsDevicePathType(a, t) (DevicePathType(a) == t) 56479ab7f0SSascha Wildner #define IsDevicePathEndType(a) IsDevicePathType(a, END_DEVICE_PATH_TYPE) 57479ab7f0SSascha Wildner #define IsDevicePathEndSubType(a) ((a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE) 58479ab7f0SSascha Wildner #define IsDevicePathEnd(a) (IsDevicePathEndType(a) && IsDevicePathEndSubType(a)) 59479ab7f0SSascha Wildner 60479ab7f0SSascha Wildner #define SetDevicePathEndNode(a) do { \ 61479ab7f0SSascha Wildner (a)->Type = END_DEVICE_PATH_TYPE; \ 62479ab7f0SSascha Wildner (a)->SubType = END_ENTIRE_DEVICE_PATH_SUBTYPE; \ 63479ab7f0SSascha Wildner (a)->Length[0] = sizeof(EFI_DEVICE_PATH); \ 64479ab7f0SSascha Wildner (a)->Length[1] = 0; \ 65479ab7f0SSascha Wildner } while (0) 66479ab7f0SSascha Wildner 67479ab7f0SSascha Wildner #define NextMemoryDescriptor(Ptr,Size) ((EFI_MEMORY_DESCRIPTOR *)(((UINT8 *)Ptr) + Size)) 68479ab7f0SSascha Wildner 69479ab7f0SSascha Wildner #define FDT_TABLE_GUID \ 70479ab7f0SSascha Wildner { 0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0} } 71479ab7f0SSascha Wildner 72479ab7f0SSascha Wildner #define MEMORY_TYPE_INFORMATION_TABLE_GUID \ 73479ab7f0SSascha Wildner { 0x4c19049f, 0x4137, 0x4dd3, {0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa} } 74479ab7f0SSascha Wildner 75*34f16cb6SAaron LI #define AMI_ROM_LAYOUT_GUID \ 76*34f16cb6SAaron LI { 0x00781ca1, 0x5de3, 0x405f, {0xab, 0xb8, 0x37, 0x9c, 0x3c, 0x07, 0x69, 0x84} } 77*34f16cb6SAaron LI 78479ab7f0SSascha Wildner #endif 79