summaryrefslogtreecommitdiff
path: root/Core/Tiano.h
diff options
context:
space:
mode:
authorraywu <raywu0301@gmail.com>2018-06-15 00:00:50 +0800
committerraywu <raywu0301@gmail.com>2018-06-15 00:00:50 +0800
commitb7c51c9cf4864df6aabb99a1ae843becd577237c (patch)
treeeebe9b0d0ca03062955223097e57da84dd618b9a /Core/Tiano.h
downloadzprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz
init. 1AQQW051HEADmaster
Diffstat (limited to 'Core/Tiano.h')
-rw-r--r--Core/Tiano.h348
1 files changed, 348 insertions, 0 deletions
diff --git a/Core/Tiano.h b/Core/Tiano.h
new file mode 100644
index 0000000..dec5019
--- /dev/null
+++ b/Core/Tiano.h
@@ -0,0 +1,348 @@
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2006, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 6145-F Northbelt Pkwy, Norcross, GA 30071 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//**********************************************************************
+
+//**********************************************************************
+// $Header: /Alaska/SOURCE/Core/EDK/Tiano.h 7 5/27/11 5:44p Felixp $
+//
+// $Revision: 7 $
+//
+// $Date: 5/27/11 5:44p $
+//**********************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/SOURCE/Core/EDK/Tiano.h $
+//
+// 7 5/27/11 5:44p Felixp
+// EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID definition is removed
+// (the macro is now defined in the FirmwareVolumeBlock.h
+//
+// 6 9/22/10 7:09p Felixp
+// Bug fix: PEI_REPORT_STATUS_CODE was not properly defined.
+//
+// 5 4/25/07 11:31a Felixp
+//
+// 4 10/07/06 10:23a Felixp
+// UIEFI2.0 support.
+// Updated to EDK 20060904
+//
+// 3 8/24/06 9:40a Felixp
+// x64 support
+//
+// 2 5/20/06 9:38p Felixp
+//
+// 1 5/19/06 11:28p Felixp
+//
+// 1 3/13/06 1:57a Felixp
+//
+//**********************************************************************
+//<AMI_FHDR_START>
+//
+// Name: Tiano.h
+//
+// Description:
+//
+//<AMI_FHDR_END>
+//**********************************************************************
+#ifndef __TIANO__H__
+#define __TIANO__H__
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <EFI.h>
+#include <DXE.h>
+#include <StatusCodes.h>
+#include <Protocol/DevicePath.h>
+
+//from EfiStdArg.h
+#define _EFI_INT_SIZE_OF(n) ((sizeof (n) + sizeof (UINTN) - 1) &~(sizeof (UINTN) - 1))
+
+//
+// Also support coding convention rules for var arg macros
+//
+#ifndef VA_START
+
+typedef CHAR8 *VA_LIST;
+#define VA_START(ap, v) (ap = (VA_LIST) & (v) + _EFI_INT_SIZE_OF (v))
+#define VA_ARG(ap, t) (*(t *) ((ap += _EFI_INT_SIZE_OF (t)) - _EFI_INT_SIZE_OF (t)))
+#define VA_END(ap) (ap = (VA_LIST) 0)
+
+#endif
+
+#include <EfiDebug.h>
+
+#define EFI_STRINGIZE(a) #a
+
+#define EFI_PROTOCOL_DEFINITION(a) EFI_STRINGIZE (Protocol/a.h)
+#define EFI_GUID_DEFINITION(a) EFI_STRINGIZE (Guid/a.h)
+#define EFI_ARCH_PROTOCOL_DEFINITION(a) EFI_STRINGIZE (Protocol/a.h)
+
+#define EFI_PROTOCOL_PRODUCER(a) EFI_PROTOCOL_DEFINITION (a)
+#define EFI_PROTOCOL_CONSUMER(a) EFI_PROTOCOL_DEFINITION (a)
+#define EFI_PROTOCOL_DEPENDENCY(a) EFI_PROTOCOL_DEFINITION (a)
+
+#define EFI_PPI_DEFINITION(a) EFI_STRINGIZE (Ppi/a.h)
+#define EFI_PPI_PRODUCER(a) EFI_PPI_DEFINITION (a)
+#define EFI_PPI_CONSUMER(a) EFI_PPI_DEFINITION (a)
+#define EFI_PPI_DEPENDENCY(a) EFI_PPI_DEFINITION (a)
+
+#define CONST const
+#define STATIC static
+#define VOLATILE volatile
+
+#define EFI_BOOTSERVICE
+#define EFI_RUNTIMESERVICE
+#define EFI_BOOTSERVICE11
+#define EFI_DXESERVICE
+//
+// ALIGN_POINTER - aligns a pointer to the lowest boundry
+//
+#define ALIGN_POINTER(p, s) ((VOID *) (p + ((s - ((UINTN) p)) & (s - 1))))
+
+//
+// ALIGN_VARIABLE - aligns a variable up to the next natural boundry for int size of a processor
+//
+#define ALIGN_VARIABLE(Value, Adjustment) \
+ (UINTN) Adjustment = 0; \
+ if ((UINTN) Value % sizeof (UINTN)) { \
+ (UINTN) Adjustment = sizeof (UINTN) - ((UINTN) Value % sizeof (UINTN)); \
+ } \
+ Value = (UINTN) Value + (UINTN) Adjustment
+
+//
+// EFI_FIELD_OFFSET - returns the byte offset to a field within a structure
+//
+#define EFI_FIELD_OFFSET(TYPE,Field) ((UINTN)(&(((TYPE *) 0)->Field)))
+
+//
+// CONTAINING_RECORD - returns a pointer to the structure
+// from one of it's elements.
+//
+#define _CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - (CHAR8 *) &(((TYPE *) 0)->Field)))
+
+//
+// Define macros to build data structure signatures from characters.
+//
+#define EFI_SIGNATURE_16(A, B) ((A) | (B << 8))
+#define EFI_SIGNATURE_32(A, B, C, D) (EFI_SIGNATURE_16 (A, B) | (EFI_SIGNATURE_16 (C, D) << 16))
+#define EFI_SIGNATURE_64(A, B, C, D, E, F, G, H) \
+ (EFI_SIGNATURE_32 (A, B, C, D) | ((UINT64) (EFI_SIGNATURE_32 (E, F, G, H)) << 32))
+
+//AMI <--> EDK mapping
+#define EFI_LOADED_IMAGE_INFORMATION_REVISION EFI_LOADED_IMAGE_PROTOCOL_REVISION
+typedef DXE_SERVICES EFI_DXE_SERVICES;
+#define EFI_TPL_APPLICATION TPL_APPLICATION
+#define EFI_TPL_CALLBACK TPL_CALLBACK
+#define EFI_TPL_NOTIFY TPL_NOTIFY
+#define EFI_TPL_HIGH_LEVEL TPL_HIGH_LEVEL
+
+#define END_DEVICE_PATH_TYPE 0x7F
+#define END_ENTIRE_DEVICE_PATH_SUBTYPE 0xFF
+#define EFI_EVENT_EFI_SIGNAL_MASK 0x000000FF
+#define EFI_EVENT_EFI_SIGNAL_MAX 4
+#define EFI_TPL_DRIVER 6
+#define EFI_DXE_SERVICES_SIGNATURE DXE_SERVICES_SIGNATURE
+#define EFI_DXE_SERVICES_REVISION DXE_SERVICES_REVISION
+#define EFI_DXE_ENTRY_POINT(EntryPoint)
+#ifndef EFI_DEADLOOP
+#define EFI_DEADLOOP() { volatile UINTN __DeadLoopVar__ = 1; while (__DeadLoopVar__); }
+#endif
+#define EFI_BREAKPOINT() EFI_DEADLOOP()
+#define EFI_BAD_POINTER 0xAFAFAFAF
+//This is defined in FirmwareValume.h but has nothing to do with the protocol.
+//It should be in DxeMain internal header
+#define FV_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', '_')
+#define EFI_FVH_SIGNATURE FV_SIGNATURE
+#define EFI_FV_BLOCK_MAP_ENTRY FvBlockMapEntry
+//This is define in TianoType.h, however, this is not in DXECIS
+//
+// attributes for reserved memory before it is promoted to system memory
+//
+#define EFI_MEMORY_PRESENT 0x0100000000000000
+#define EFI_MEMORY_INITIALIZED 0x0200000000000000
+#define EFI_MEMORY_TESTED 0x0400000000000000
+
+//
+// range for memory mapped port I/O on IPF
+//
+#define EFI_MEMORY_PORT_IO 0x4000000000000000
+//
+// A pointer to a function in IPF points to a plabel.
+//
+typedef struct {
+ UINT64 EntryPoint;
+ UINT64 GP;
+} EFI_PLABEL;
+////////////////////////////////////////////////
+//defined for every CPU architecture
+// Maximum legal IA-32 address
+#define EFI_MAX_ADDRESS 0xFFFFFFFF
+////////////////////////////////////////////////
+//from AmiLib.h
+#define EFI_PAGE_MASK (EFI_PAGE_SIZE - 1)
+#define EFI_PAGE_SHIFT 12
+#define EFI_SIZE_TO_PAGES(s) \
+ ( (((UINTN)(s)) >> EFI_PAGE_SHIFT) + ((((UINTN)(s)) & EFI_PAGE_MASK) ? 1 : 0) )
+
+#define EFI_PAGES_TO_SIZE(p) ( ((UINTN)(p)) << EFI_PAGE_SHIFT)
+
+//from EfiDevicePath.h
+#define EFI_DP_TYPE_MASK 0x7F
+#define EFI_DP_TYPE_UNPACKED 0x80
+#define END_INSTANCE_DEVICE_PATH_SUBTYPE 0x01
+
+#define DP_IS_END_TYPE(a)
+#define DP_IS_END_SUBTYPE(a) ( ((a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE )
+
+#define DevicePathType(a) ( ((a)->Type) & EFI_DP_TYPE_MASK )
+#define DevicePathSubType(a) ( (a)->SubType )
+#define DevicePathNodeLength(a) ( ((a)->Length[0]) | ((a)->Length[1] << 8) )
+
+#define IsDevicePathEndType(a) ( DevicePathType(a) == END_DEVICE_PATH_TYPE )
+#define IsDevicePathEndSubType(a) ( (a)->SubType == END_ENTIRE_DEVICE_PATH_SUBTYPE )
+#define IsDevicePathEnd(a) ( IsDevicePathEndType(a) && IsDevicePathEndSubType(a) )
+#define NextDevicePathNode(a) ( (EFI_DEVICE_PATH_PROTOCOL *) ( ((UINT8 *) (a)) + DevicePathNodeLength(a)))
+
+#define SetDevicePathNodeLength(a,l) { \
+ (a)->Length[0] = (UINT8) (l); \
+ (a)->Length[1] = (UINT8) ((l) >> 8); \
+ }
+
+#define SetDevicePathEndNode(a) { \
+ (a)->Type = END_DEVICE_PATH_TYPE; \
+ (a)->SubType = END_ENTIRE_DEVICE_PATH_SUBTYPE; \
+ (a)->Length[0] = sizeof(EFI_DEVICE_PATH_PROTOCOL); \
+ (a)->Length[1] = 0; \
+ }
+
+//from DevicePath.h
+#define EFI_END_ENTIRE_DEVICE_PATH 0x7f
+#define EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE 0xff
+#define EFI_END_INSTANCE_DEVICE_PATH 0x01
+#define EFI_END_DEVICE_PATH_LENGTH (sizeof (EFI_DEVICE_PATH_PROTOCOL))
+
+#define EfiDevicePathNodeLength(a) (((a)->Length[0]) | ((a)->Length[1] << 8))
+
+#define EfiNextDevicePathNode(a) ((EFI_DEVICE_PATH_PROTOCOL *) (((UINT8 *) (a)) + EfiDevicePathNodeLength (a)))
+
+#define EfiDevicePathType(a) (((a)->Type) & 0x7f)
+#define EfiIsDevicePathEndType(a) (EfiDevicePathType (a) == 0x7f)
+
+#define EfiIsDevicePathEndSubType(a) ((a)->SubType == EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE)
+#define EfiIsDevicePathEndInstanceSubType(a) ((a)->SubType == EFI_END_INSTANCE_DEVICE_PATH)
+
+#define EfiIsDevicePathEnd(a) (EfiIsDevicePathEndType (a) && EfiIsDevicePathEndSubType (a))
+#define EfiIsDevicePathEndInstance(a) (EfiIsDevicePathEndType (a) && EfiIsDevicePathEndInstanceSubType (a))
+
+//EfiTypes.h
+#define NULL_HANDLE ((VOID *) 0)
+//defined in Protocol/SimpleFileSystem - not in efi spec.
+//protocol name does not match uefi2.0 (EFI_FILE)
+#include <Protocol/SimpleFileSystem.h>
+typedef EFI_FILE_PROTOCOL *EFI_FILE_HANDLE;
+
+//EfiApi.h
+#define NextMemoryDescriptor(_Ptr, _Size) ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) (_Ptr)) + (_Size)))
+//EfiImageFormat.h
+#define SECTION_SIZE(SectionHeaderPtr) \
+ ((UINT32) (*((UINT32 *) ((EFI_COMMON_SECTION_HEADER *) SectionHeaderPtr)->Size) & 0x00ffffff))
+#define EFI_CUSTOMIZED_COMPRESSION 0x02
+//
+// Bit values for AuthenticationStatus
+//
+#define EFI_AGGREGATE_AUTH_STATUS_PLATFORM_OVERRIDE 0x000001
+#define EFI_AGGREGATE_AUTH_STATUS_IMAGE_SIGNED 0x000002
+#define EFI_AGGREGATE_AUTH_STATUS_NOT_TESTED 0x000004
+#define EFI_AGGREGATE_AUTH_STATUS_TEST_FAILED 0x000008
+#define EFI_AGGREGATE_AUTH_STATUS_ALL 0x00000f
+
+#define EFI_LOCAL_AUTH_STATUS_PLATFORM_OVERRIDE 0x010000
+#define EFI_LOCAL_AUTH_STATUS_IMAGE_SIGNED 0x020000
+#define EFI_LOCAL_AUTH_STATUS_NOT_TESTED 0x040000
+#define EFI_LOCAL_AUTH_STATUS_TEST_FAILED 0x080000
+#define EFI_LOCAL_AUTH_STATUS_ALL 0x0f0000
+//////////////////////////// PEI //////////////////////////
+#include <Pei.h>
+#include <PeiDebug.h>
+#include <PeiHob.h>
+
+typedef struct {
+ UINTN BootFirmwareVolume;
+ UINTN SizeOfCacheAsRam;
+ EFI_PEI_PPI_DESCRIPTOR *DispatchTable;
+} EFI_PEI_STARTUP_DESCRIPTOR;
+
+#ifdef EFI_PEI_REPORT_STATUS_CODE_ON
+#define PEI_REPORT_STATUS_CODE_CODE(Code) Code
+#define PEI_REPORT_STATUS_CODE(PeiServices, CodeType, Value, Instance, CallerId, Data) \
+ (*PeiServices)->ReportStatusCode (PeiServices, CodeType, Value, Instance, CallerId, Data)
+#else
+#define PEI_REPORT_STATUS_CODE_CODE(Code)
+#define PEI_REPORT_STATUS_CODE(PeiServices, CodeType, Value, Instance, CallerId, Data)
+#endif
+#define EFI_PEI_CORE_ENTRY_POINT(EntryPoint)
+
+#define PEI_RESET_PPI EFI_PEI_RESET_PPI
+
+#define EFI_DXE_SERVICES_TABLE_GUID DXE_SERVICES_TABLE_GUID
+#define EFI_HOB_LIST_GUID HOB_LIST_GUID
+#define EFI_HOB_TYPE_PEI_MEMORY_POOL EFI_HOB_TYPE_MEMORY_POOL
+
+//Compatibility
+// PPI's
+#define PEI_CPU_IO_PPI_GUID EFI_PEI_CPU_IO_PPI_INSTALLED_GUID
+#define PEI_CPU_IO_PPI EFI_PEI_CPU_IO_PPI
+#define PEI_PCI_CFG_PPI_GUID EFI_PEI_PCI_CFG_PPI_INSTALLED_GUID
+#define PEI_PCI_CFG_PPI EFI_PEI_PCI_CFG_PPI
+#define PEI_SMBUS_PPI_GUID EFI_PEI_SMBUS_PPI_GUID
+#define PEI_SMBUS_PPI EFI_PEI_SMBUS_PPI
+#define PEI_STALL_PPI_GUID EFI_PEI_STALL_PPI_GUID
+#define PEI_STALL_PPI EFI_PEI_STALL_PPI
+#define PEI_STATUS_CODE_PPI_GUID EFI_PEI_REPORT_PROGRESS_CODE_PPI_GUID
+#define PEI_STATUS_CODE_PPI EFI_PEI_PROGRESS_CODE_PPI
+#define PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID EFI_PEI_READ_ONLY_VARIABLE_PPI_GUID
+#define PEI_READ_ONLY_VARIABLE_PPI EFI_PEI_READ_ONLY_VARIABLE_PPI
+#define PEI_RESET_PPI_GUID EFI_PEI_RESET_PPI_GUID
+#define PEI_RESET_PPI EFI_PEI_RESET_PPI
+#define PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID
+#define PEI_BOOT_SCRIPT_EXECUTER_PPI EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI
+#define PEI_S3_RESUME_PPI_GUID EFI_PEI_S3_RESUME_PPI_GUID
+#define PEI_S3_RESUME_PPI EFI_PEI_S3_RESUME_PPI
+#define PEI_RECOVERY_MODULE_INTERFACE_PPI EFI_PEI_RECOVERY_MODULE_PPI_GUID
+#define PEI_RECOVERY_MODULE_INTERFACE EFI_PEI_RECOVERY_MODULE_PPI
+// Protocols
+#define EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL
+#define EFI_SIMPLE_TEXT_OUT_PROTOCOL_GUID EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID
+#define EFI_SIMPLE_TEXT_OUT_PROTOCOL EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
+#define EFI_SIMPLE_TEXT_IN_PROTOCOL_GUID EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID
+#define EFI_SIMPLE_TEXT_IN_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL
+#define LOAD_FILE_PROTOCOL_GUID EFI_LOAD_FILE_PROTOCOL_GUID
+#define EFI_EBC_INTERPRETER_PROTOCOL_GUID EFI_EBC_PROTOCOL_GUID
+/****** DO NOT WRITE BELOW THIS LINE *******/
+#ifdef __cplusplus
+}
+#endif
+#endif
+//**********************************************************************
+//**********************************************************************
+//** **
+//** (C)Copyright 1985-2006, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 6145-F Northbelt Pkwy, Norcross, GA 30071 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//**********************************************************************
+//********************************************************************** \ No newline at end of file