xref: /dragonfly/stand/boot/efi/include/efi.h (revision 34f16cb6)
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