7 Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
8 This software and associated documentation (if any) is furnished
9 under a license and may only be used or copied in accordance
10 with the terms of the license. Except as permitted by such
11 license, no part of this software or documentation may be
12 reproduced, stored in a retrieval system, or transmitted in any
13 form or by any means without the express written consent of
31 typedef UINT16 CHAR16;
33 #ifndef ACPI_THREAD_ID /* ACPI's definitions are fine */
34 typedef UINT8 BOOLEAN;
38 #define TRUE ((BOOLEAN) 1)
39 #define FALSE ((BOOLEAN) 0)
43 #define NULL ((VOID *) 0)
46 typedef UINTN EFI_STATUS;
47 typedef UINT64 EFI_LBA;
48 typedef UINTN EFI_TPL;
49 typedef VOID *EFI_HANDLE;
50 typedef VOID *EFI_EVENT;
54 // Prototype argument decoration for EFI parameters to indicate
57 // IN - argument is passed into the function
58 // OUT - argument (pointer) is returned from the function
59 // OPTIONAL - argument is optional
86 UINT16 Year; // 1998 - 20XX
87 UINT8 Month; // 1 - 12
90 UINT8 Minute; // 0 - 59
91 UINT8 Second; // 0 - 59
93 UINT32 Nanosecond; // 0 - 999,999,999
94 INT16 TimeZone; // -1440 to 1440 or 2047
99 // Bit definitions for EFI_TIME.Daylight
100 #define EFI_TIME_ADJUST_DAYLIGHT 0x01
101 #define EFI_TIME_IN_DAYLIGHT 0x02
103 // Value definition for EFI_TIME.TimeZone
104 #define EFI_UNSPECIFIED_TIMEZONE 0x07FF
128 typedef UINT64 EFI_PHYSICAL_ADDRESS;
129 typedef UINT64 EFI_VIRTUAL_ADDRESS;
138 //Preseve the attr on any range supplied.
139 //ConventialMemory must have WB,SR,SW when supplied.
140 //When allocating from ConventialMemory always make it WB,SR,SW
141 //When returning to ConventialMemory always make it WB,SR,SW
142 //When getting the memory map, or on RT for runtime types
146 EfiReservedMemoryType,
151 EfiRuntimeServicesCode,
152 EfiRuntimeServicesData,
153 EfiConventionalMemory,
155 EfiACPIReclaimMemory,
158 EfiMemoryMappedIOPortSpace,
163 // possible caching types for the memory range
164 #define EFI_MEMORY_UC 0x0000000000000001
165 #define EFI_MEMORY_WC 0x0000000000000002
166 #define EFI_MEMORY_WT 0x0000000000000004
167 #define EFI_MEMORY_WB 0x0000000000000008
168 #define EFI_MEMORY_UCE 0x0000000000000010
170 // physical memory protection on range
171 #define EFI_MEMORY_WP 0x0000000000001000
172 #define EFI_MEMORY_RP 0x0000000000002000
173 #define EFI_MEMORY_XP 0x0000000000004000
175 // range requires a runtime mapping
176 #define EFI_MEMORY_RUNTIME 0x8000000000000000
178 #define EFI_MEMORY_DESCRIPTOR_VERSION 1
180 UINT32 Type; // Field size is 32 bits followed by 32 bit pad
182 EFI_PHYSICAL_ADDRESS PhysicalStart; // Field size is 64 bits
183 EFI_VIRTUAL_ADDRESS VirtualStart; // Field size is 64 bits
184 UINT64 NumberOfPages; // Field size is 64 bits
185 UINT64 Attribute; // Field size is 64 bits
186 } EFI_MEMORY_DESCRIPTOR;
189 // International Language
192 typedef UINT8 ISO_639_2;
193 #define ISO_639_2_ENTRY_SIZE 3
199 #define EFI_PAGE_SIZE 4096
200 #define EFI_PAGE_MASK 0xFFF
201 #define EFI_PAGE_SHIFT 12
203 #define EFI_SIZE_TO_PAGES(a) \
204 ( ((a) >> EFI_PAGE_SHIFT) + (((a) & EFI_PAGE_MASK) ? 1 : 0) )