1. added common header files, Guid header filess, Protocol header files, PPI header...
authorvanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 26 Jun 2007 08:03:14 +0000 (08:03 +0000)
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 26 Jun 2007 08:03:14 +0000 (08:03 +0000)
2. added Guids/Protocols/PPIs/Pcds definitions in .nspd, .dec files.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2744 6f19259b-4bc3-4df7-8a09-765794883524

32 files changed:
MdeModulePkg/Include/Common/CapsuleName.h [new file with mode: 0644]
MdeModulePkg/Include/Common/Variable.h [new file with mode: 0644]
MdeModulePkg/Include/Common/WorkingBlockHeader.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/AlternateFvBlock.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/Bmp.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/BootState.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/CapsuleVendor.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/ConsoleInDevice.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/ConsoleOutDevice.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/GenericPlatformVariable.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/HotPlugDevice.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/MemoryTypeInformation.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/PeiPerformanceHob.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/PrimaryConsoleInDevice.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/PrimaryConsoleOutDevice.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/PrimaryStandardErrorDevice.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/StandardErrorDevice.h [new file with mode: 0644]
MdeModulePkg/Include/Guid/SystemNvDataGuid.h [new file with mode: 0644]
MdeModulePkg/Include/Ppi/BaseMemoryTest.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/Capsule.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/ConsoleControl.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/DiskInfo.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/FvbExtension.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/GenericMemoryTest.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/OEMBadging.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/Performance.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/Print.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/ScsiIo.h [new file with mode: 0644]
MdeModulePkg/Include/Protocol/usbatapi.h [new file with mode: 0644]
MdeModulePkg/MdeModulePkg.dec
MdeModulePkg/MdeModulePkg.nspd

diff --git a/MdeModulePkg/Include/Common/CapsuleName.h b/MdeModulePkg/Include/Common/CapsuleName.h
new file mode 100644 (file)
index 0000000..d446bbd
--- /dev/null
@@ -0,0 +1,28 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  CapsuleName.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef __CAPSULE_NAME_H__\r
+#define __CAPSULE_NAME_H__\r
+\r
+//\r
+// If capsule data is passed via a variable, then this name should be used.\r
+//\r
+#define EFI_CAPSULE_VARIABLE_NAME L"CapsuleUpdateData"\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Common/Variable.h b/MdeModulePkg/Include/Common/Variable.h
new file mode 100644 (file)
index 0000000..ef9e4c4
--- /dev/null
@@ -0,0 +1,87 @@
+/**@file\r
+       Header file for EFI Variable Services.\r
+\r
+Copyright (c) 2006 - 2007 Intel Corporation. <BR>\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __EFI_VARIABLE_H__\r
+#define __EFI_VARIABLE_H__\r
+\r
+#define VARIABLE_STORE_SIGNATURE  EFI_SIGNATURE_32 ('$', 'V', 'S', 'S')\r
+\r
+#define MAX_VARIABLE_SIZE                 1024\r
+\r
+//\r
+// Enlarges the hardware error record maximum variable size to 32K bytes\r
+//\r
+#define MAX_HARDWARE_ERROR_VARIABLE_SIZE  0x8000\r
+\r
+#define VARIABLE_DATA                     0x55AA\r
+\r
+//\r
+// Variable Store Header flags\r
+//\r
+#define VARIABLE_STORE_FORMATTED          0x5a\r
+#define VARIABLE_STORE_HEALTHY            0xfe\r
+\r
+//\r
+// The alignment of variable's start offset.\r
+// For IA32/X64 architecture, the alignment is set to 1, and\r
+// 8 is for IPF archtecture.\r
+//\r
+#if defined (MDE_CPU_IPF)\r
+#define ALIGNMENT  8\r
+#else\r
+#define ALIGNMENT  1\r
+#endif\r
+\r
+//\r
+// Variable Store Status\r
+//\r
+typedef enum {\r
+  EfiRaw,\r
+  EfiValid,\r
+  EfiInvalid,\r
+  EfiUnknown\r
+} VARIABLE_STORE_STATUS;\r
+\r
+//\r
+// Variable State flags\r
+//\r
+#define VAR_IN_DELETED_TRANSITION     0xfe  // Variable is in obsolete transistion\r
+#define VAR_DELETED                   0xfd  // Variable is obsolete\r
+#define VAR_ADDED                     0x7f  // Variable has been completely added\r
+#define IS_VARIABLE_STATE(_c, _Mask)  (BOOLEAN) (((~_c) & (~_Mask)) != 0)\r
+\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+  UINT32  Signature;\r
+  UINT32  Size;\r
+  UINT8   Format;\r
+  UINT8   State;\r
+  UINT16  Reserved;\r
+  UINT32  Reserved1;\r
+} VARIABLE_STORE_HEADER;\r
+\r
+typedef struct {\r
+  UINT16    StartId;\r
+  UINT8     State;\r
+  UINT8     Reserved;\r
+  UINT32    Attributes;\r
+  UINT32     NameSize;\r
+  UINT32     DataSize;\r
+  EFI_GUID  VendorGuid;\r
+} VARIABLE_HEADER;\r
+\r
+#pragma pack()\r
+\r
+#endif // _EFI_VARIABLE_H_\r
diff --git a/MdeModulePkg/Include/Common/WorkingBlockHeader.h b/MdeModulePkg/Include/Common/WorkingBlockHeader.h
new file mode 100644 (file)
index 0000000..fc023ff
--- /dev/null
@@ -0,0 +1,47 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  EfiWorkingBlockHeader.h\r
+\r
+Abstract:\r
+\r
+  Defines data structure that is the headers found at the runtime\r
+  updatable firmware volumes, such as the FileSystemGuid of the\r
+  working block, the header structure of the variable block, FTW\r
+  working block, or event log block.\r
+\r
+--*/\r
+\r
+#ifndef __EFI_WORKING_BLOCK_HEADER_H__\r
+#define __EFI_WORKING_BLOCK_HEADER_H__\r
+\r
+//\r
+// EFI Fault tolerant working block header\r
+// The header is immediately followed by the write queue.\r
+//\r
+typedef struct {\r
+  EFI_GUID  Signature;\r
+  UINT32    Crc;\r
+  UINT8     WorkingBlockValid : 1;\r
+  UINT8     WorkingBlockInvalid : 1;\r
+#define WORKING_BLOCK_VALID   0x1\r
+#define WORKING_BLOCK_INVALID 0x2\r
+  UINT8     Reserved : 6;\r
+  UINT8     Reserved3[3];\r
+  UINT32    WriteQueueSize;\r
+  //\r
+  // UINT8                WriteQueue[WriteQueueSize];\r
+  //\r
+} EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/AlternateFvBlock.h b/MdeModulePkg/Include/Guid/AlternateFvBlock.h
new file mode 100644 (file)
index 0000000..5eac2fe
--- /dev/null
@@ -0,0 +1,32 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  AlternateFvBlock.h\r
+\r
+Abstract:\r
+\r
+  Tiano Guid used to define the Alternate Firmware Volume Block Guid.\r
+\r
+--*/\r
+\r
+#ifndef __ALT_FVB_GUID_H__\r
+#define __ALT_FVB_GUID_H__\r
+\r
+#define EFI_ALTERNATE_FV_BLOCK_GUID \\r
+  { \\r
+    0xf496922d, 0x172f, 0x4bbc, {0xa1, 0xeb, 0xe, 0xeb, 0x94, 0x9c, 0x34, 0x86 } \\r
+  }\r
+\r
+extern EFI_GUID gEfiAlternateFvBlockGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/Bmp.h b/MdeModulePkg/Include/Guid/Bmp.h
new file mode 100644 (file)
index 0000000..43c354d
--- /dev/null
@@ -0,0 +1,62 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  Bmp.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef __BMP_GUID_H__\r
+#define __BMP_GUID_H__\r
+\r
+\r
+//\r
+// Definitions for BMP files\r
+//\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+  UINT8   Blue;\r
+  UINT8   Green;\r
+  UINT8   Red;\r
+  UINT8   Reserved;\r
+} BMP_COLOR_MAP;\r
+\r
+typedef struct {\r
+  CHAR8         CharB;\r
+  CHAR8         CharM;\r
+  UINT32        Size;\r
+  UINT16        Reserved[2];\r
+  UINT32        ImageOffset;\r
+  UINT32        HeaderSize;\r
+  UINT32        PixelWidth;\r
+  UINT32        PixelHeight;\r
+  UINT16        Planes;       // Must be 1\r
+  UINT16        BitPerPixel;  // 1, 4, 8, or 24\r
+  UINT32        CompressionType;\r
+  UINT32        ImageSize;    // Compressed image size in bytes\r
+  UINT32        XPixelsPerMeter;\r
+  UINT32        YPixelsPerMeter;\r
+  UINT32        NumberOfColors;\r
+  UINT32        ImportantColors;\r
+} BMP_IMAGE_HEADER;\r
+\r
+#pragma pack()\r
+\r
+#define EFI_DEFAULT_BMP_LOGO_GUID \\r
+  {0x7BB28B99,0x61BB,0x11d5,{0x9A,0x5D,0x00,0x90,0x27,0x3F,0xC1,0x4D}}\r
+\r
+extern EFI_GUID gEfiDefaultBmpLogoGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/BootState.h b/MdeModulePkg/Include/Guid/BootState.h
new file mode 100644 (file)
index 0000000..5965965
--- /dev/null
@@ -0,0 +1,36 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  BootState.h\r
+\r
+Abstract:\r
+\r
+  Constants and declarations that are common accross PEI and DXE.\r
+--*/\r
+\r
+#ifndef __BOOT_STATE_H__\r
+#define __BOOT_STATE_H__\r
+\r
+//\r
+// BOOT STATE\r
+//\r
+\r
+typedef UINT32 EFI_BOOT_STATE;\r
+\r
+#define BOOT_STATE_VARIABLE_NAME  L"BootState"\r
+\r
+#define  EFI_BOOT_STATE_VARIABLE_GUID  \\r
+  {0x60b5e939, 0xfcf, 0x4227, {0xba, 0x83, 0x6b, 0xbe, 0xd4, 0x5b, 0xc0, 0xe3} }\r
+\r
+extern EFI_GUID gEfiBootStateGuid;\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/CapsuleVendor.h b/MdeModulePkg/Include/Guid/CapsuleVendor.h
new file mode 100644 (file)
index 0000000..cd48c39
--- /dev/null
@@ -0,0 +1,35 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  CapsuleVendor.h\r
+\r
+Abstract:\r
+\r
+  Capsule update Guid definitions\r
+\r
+--*/\r
+\r
+#ifndef __EFI_CAPSULE_VENDOR_GUID_H__\r
+#define __EFI_CAPSULE_VENDOR_GUID_H__\r
+\r
+//\r
+// Note -- This guid is used as a vendor GUID (depending on implementation)\r
+// for the capsule variable if the capsule pointer is passes through reset\r
+// via a variable.\r
+//\r
+#define EFI_CAPSULE_VENDOR_GUID  \\r
+  { 0x711C703F, 0xC285, 0x4B10, { 0xA3, 0xB0, 0x36, 0xEC, 0xBD, 0x3C, 0x8B, 0xE2 } }\r
+\r
+extern EFI_GUID gEfiCapsuleVendorGuid;\r
+\r
+#endif // #ifndef _EFI_CAPSULE_VENDOR_GUID_H_\r
diff --git a/MdeModulePkg/Include/Guid/ConsoleInDevice.h b/MdeModulePkg/Include/Guid/ConsoleInDevice.h
new file mode 100644 (file)
index 0000000..85e487d
--- /dev/null
@@ -0,0 +1,29 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  ConsoleInDevice.h\r
+\r
+Abstract:\r
+\r
+\r
+--*/\r
+\r
+#ifndef __CONSOLE_IN_DEVICE_H__\r
+#define __CONSOLE_IN_DEVICE_H__\r
+\r
+#define EFI_CONSOLE_IN_DEVICE_GUID    \\r
+    { 0xd3b36f2b, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }\r
+\r
+extern EFI_GUID gEfiConsoleInDeviceGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/ConsoleOutDevice.h b/MdeModulePkg/Include/Guid/ConsoleOutDevice.h
new file mode 100644 (file)
index 0000000..d2103c0
--- /dev/null
@@ -0,0 +1,29 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  ConsoleOutDevice.h\r
+\r
+Abstract:\r
+\r
+\r
+--*/\r
+\r
+#ifndef __CONSOLE_OUT_DEVICE_H__\r
+#define __CONSOLE_OUT_DEVICE_H__\r
+\r
+#define EFI_CONSOLE_OUT_DEVICE_GUID    \\r
+    { 0xd3b36f2c, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }\r
+\r
+extern EFI_GUID gEfiConsoleOutDeviceGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/GenericPlatformVariable.h b/MdeModulePkg/Include/Guid/GenericPlatformVariable.h
new file mode 100644 (file)
index 0000000..595ef78
--- /dev/null
@@ -0,0 +1,27 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  GenericPlatformVariable.h\r
+\r
+Abstract:\r
+\r
+  The variable space Guid to pair with a Unicode string name to tag an EFI variable.\r
+\r
+--*/\r
+\r
+#ifndef __GENERIC_PLATFORM_VARIABLE_H__\r
+#define __GENERIC_PLATFORM_VARIABLE_H__\r
+\r
+extern EFI_GUID gEfiGenericPlatformVariableGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/HotPlugDevice.h b/MdeModulePkg/Include/Guid/HotPlugDevice.h
new file mode 100644 (file)
index 0000000..b15dc89
--- /dev/null
@@ -0,0 +1,28 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  HotPlugDevice.h\r
+\r
+Abstract:\r
+\r
+\r
+--*/\r
+\r
+#ifndef __HOT_PLUG_DEVICE_H__\r
+#define __HOT_PLUG_DEVICE_H__\r
+\r
+#define HOT_PLUG_DEVICE_GUID    \\r
+    { 0x220ac432, 0x1d43, 0x49e5, {0xa7, 0x4f, 0x4c, 0x9d, 0xa6, 0x7a, 0xd2, 0x3b } }\r
+\r
+extern EFI_GUID gEfiHotPlugDeviceGuid;\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/MemoryTypeInformation.h b/MdeModulePkg/Include/Guid/MemoryTypeInformation.h
new file mode 100644 (file)
index 0000000..ed9270b
--- /dev/null
@@ -0,0 +1,35 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+  MemoryTypeInformation.h\r
+    \r
+Abstract:\r
+  GUID used for Memory Type Information entries in the HOB list.\r
+\r
+--*/\r
+\r
+#ifndef __MEMORY_TYPE_INFORMATION_GUID_H__\r
+#define __MEMORY_TYPE_INFORMATION_GUID_H__\r
+\r
+#define EFI_MEMORY_TYPE_INFORMATION_GUID \\r
+  { 0x4c19049f,0x4137,0x4dd3, { 0x9c,0x10,0x8b,0x97,0xa8,0x3f,0xfd,0xfa } }\r
+\r
+#define EFI_MEMORY_TYPE_INFORMATION_VARIABLE_NAME L"MemoryTypeInformation"\r
+\r
+extern EFI_GUID gEfiMemoryTypeInformationGuid;\r
+\r
+typedef struct {\r
+  UINT32  Type;\r
+  UINT32  NumberOfPages;\r
+} EFI_MEMORY_TYPE_INFORMATION;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/PeiPerformanceHob.h b/MdeModulePkg/Include/Guid/PeiPerformanceHob.h
new file mode 100644 (file)
index 0000000..c3bfc1f
--- /dev/null
@@ -0,0 +1,56 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  PeiPerformanceHob.h\r
+    \r
+Abstract:\r
+\r
+  GUIDs used for PEI Performance HOB data structures\r
+\r
+--*/\r
+\r
+#ifndef __PEI_PERFORMANCE_HOB_H__\r
+#define __PEI_PERFORMANCE_HOB_H__\r
+\r
+//\r
+// This is the GUID of PEI performance HOB\r
+//\r
+#define PEI_PERFORMANCE_HOB_GUID \\r
+  { 0xec4df5af, 0x4395, 0x4cc9, { 0x94, 0xde, 0x77, 0x50, 0x6d, 0x12, 0xc7, 0xb8 } }\r
+\r
+//\r
+// PEI_PERFORMANCE_STRING_SIZE must be a multiple of 8.\r
+//\r
+#define PEI_PERFORMANCE_STRING_SIZE     8\r
+#define PEI_PERFORMANCE_STRING_LENGTH   (PEI_PERFORMANCE_STRING_SIZE - 1)\r
+\r
+typedef struct {\r
+  EFI_PHYSICAL_ADDRESS  Handle;\r
+  CHAR8                 Token[PEI_PERFORMANCE_STRING_SIZE];\r
+  CHAR8                 Module[PEI_PERFORMANCE_STRING_SIZE];\r
+  UINT64                StartTimeStamp;\r
+  UINT64                EndTimeStamp;\r
+} PEI_PERFORMANCE_LOG_ENTRY;\r
+\r
+//\r
+// The header must be aligned at 8 bytes.\r
+// \r
+typedef struct {\r
+  UINT32                             NumberOfEntries;\r
+  UINT32                             Reserved;\r
+} PEI_PERFORMANCE_LOG_HEADER;\r
+\r
+\r
+extern EFI_GUID gPeiPerformanceHobGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/PrimaryConsoleInDevice.h b/MdeModulePkg/Include/Guid/PrimaryConsoleInDevice.h
new file mode 100644 (file)
index 0000000..686ffa3
--- /dev/null
@@ -0,0 +1,29 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  PrimaryConsoleInDevice.h\r
+\r
+Abstract:\r
+\r
+\r
+--*/\r
+\r
+#ifndef __PRIMARY_CONSOLE_IN_DEVICE_H__\r
+#define __PRIMARY_CONSOLE_IN_DEVICE_H__\r
+\r
+#define EFI_PRIMARY_CONSOLE_IN_DEVICE_GUID    \\r
+  { 0xe451dcbe, 0x96a1, 0x4729, {0xa5, 0xcf, 0x6b, 0x9c, 0x2c, 0xff, 0x47, 0xfd } }\r
+\r
+extern EFI_GUID gEfiPrimaryConsoleInDeviceGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/PrimaryConsoleOutDevice.h b/MdeModulePkg/Include/Guid/PrimaryConsoleOutDevice.h
new file mode 100644 (file)
index 0000000..34195b5
--- /dev/null
@@ -0,0 +1,28 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  PrimaryConsoleOutDevice.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef __PRIMARY_CONSOLE_OUT_DEVICE_H__\r
+#define __PRIMARY_CONSOLE_OUT_DEVICE_H__\r
+\r
+#define EFI_PRIMARY_CONSOLE_OUT_DEVICE_GUID    \\r
+  { 0x62bdf38a, 0xe3d5, 0x492c, {0x95, 0xc, 0x23, 0xa7, 0xf6, 0x6e, 0x67, 0x2e } }\r
+\r
+extern EFI_GUID gEfiPrimaryConsoleOutDeviceGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/PrimaryStandardErrorDevice.h b/MdeModulePkg/Include/Guid/PrimaryStandardErrorDevice.h
new file mode 100644 (file)
index 0000000..9523d97
--- /dev/null
@@ -0,0 +1,28 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  PrimaryStandardErrorDevice.h\r
+\r
+Abstract:\r
+\r
+--*/\r
+\r
+#ifndef __PRIMARY_STANDARD_ERROR_DEVICE_H__\r
+#define __PRIMARY_STANDARD_ERROR_DEVICE_H__\r
+\r
+#define EFI_PRIMARY_STANDARD_ERROR_DEVICE_GUID    \\r
+  { 0x5a68191b, 0x9b97, 0x4752, {0x99, 0x46, 0xe3, 0x6a, 0x5d, 0xa9, 0x42, 0xb1 } }\r
+\r
+extern EFI_GUID gEfiPrimaryStandardErrorDeviceGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/StandardErrorDevice.h b/MdeModulePkg/Include/Guid/StandardErrorDevice.h
new file mode 100644 (file)
index 0000000..7806f55
--- /dev/null
@@ -0,0 +1,29 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  StandardErrorDevice.h\r
+\r
+Abstract:\r
+\r
+\r
+--*/\r
+\r
+#ifndef __STANDARD_ERROR_DEVICE_H__\r
+#define __STANDARD_ERROR_DEVICE_H__\r
+\r
+#define EFI_STANDARD_ERROR_DEVICE_GUID    \\r
+    { 0xd3b36f2d, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }\r
+\r
+extern EFI_GUID gEfiStandardErrorDeviceGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Guid/SystemNvDataGuid.h b/MdeModulePkg/Include/Guid/SystemNvDataGuid.h
new file mode 100644 (file)
index 0000000..946d4d8
--- /dev/null
@@ -0,0 +1,45 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+  \r
+    SystemNvDataGuid.h\r
+    \r
+Abstract:\r
+\r
+  GUIDs used for System Non Volatile HOB entries in the in the HOB list and FV Guids carrying\r
+  the System specific information.\r
+\r
+--*/\r
+\r
+#ifndef __SYSTEM_NV_DATA_GUID_H__\r
+#define __SYSTEM_NV_DATA_GUID_H__\r
+\r
+#define EFI_SYSTEM_NV_DATA_FV_GUID \\r
+  {0xfff12b8d, 0x7696, 0x4c8b, {0xa9, 0x85, 0x27, 0x47, 0x7, 0x5b, 0x4f, 0x50} }\r
+\r
+#define EFI_SYSTEM_NV_DATA_HOB_GUID \\r
+  {0xd6e5092d, 0xc7b2, 0x4872, {0xaf, 0x66, 0xfd, 0xc0, 0xe6, 0xf9, 0x5e, 0x78} }\r
+\r
+typedef struct {\r
+  EFI_GUID                  SystemNvDataHobGuid;\r
+  EFI_GUID                  SystemNvDataFvGuid;\r
+  EFI_LBA                   StartLba;    \r
+  UINTN                     StartLbaOffset;\r
+  EFI_LBA                   EndLba;    \r
+  UINTN                     EndLbaOffset;\r
+  UINT32                    DataTypeSignature;\r
+} NV_SYSTEM_DATA_GUID_TYPE;\r
+\r
+extern EFI_GUID gEfiSystemNvDataHobGuid;\r
+extern EFI_GUID gEfiSystemNvDataFvGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Ppi/BaseMemoryTest.h b/MdeModulePkg/Include/Ppi/BaseMemoryTest.h
new file mode 100644 (file)
index 0000000..aa9a8ba
--- /dev/null
@@ -0,0 +1,56 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  BaseMemoryTest.h\r
+\r
+Abstract:\r
+\r
+  Pei memory test PPI as defined in Tiano\r
+\r
+  Used to Pei memory test in PEI\r
+\r
+--*/\r
+\r
+#ifndef __BASE_MEMORY_TEST_H__\r
+#define __BASE_MEMORY_TEST_H__\r
+\r
+#define PEI_BASE_MEMORY_TEST_GUID \\r
+  { 0xb6ec423c, 0x21d2, 0x490d, {0x85, 0xc6, 0xdd, 0x58, 0x64, 0xea, 0xa6, 0x74 } }\r
+\r
+typedef struct _PEI_BASE_MEMORY_TEST_PPI  PEI_BASE_MEMORY_TEST_PPI;\r
+\r
+typedef enum {\r
+  Ignore,\r
+  Quick,\r
+  Sparse,\r
+  Extensive\r
+} PEI_MEMORY_TEST_OP;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *PEI_BASE_MEMORY_TEST) (\r
+  IN  EFI_PEI_SERVICES                   **PeiServices,\r
+  IN PEI_BASE_MEMORY_TEST_PPI            * This,\r
+  IN  EFI_PHYSICAL_ADDRESS               BeginAddress,\r
+  IN  UINT64                             MemoryLength,\r
+  IN  PEI_MEMORY_TEST_OP                 Operation,\r
+  OUT EFI_PHYSICAL_ADDRESS               * ErrorAddress\r
+  );\r
+\r
+struct _PEI_BASE_MEMORY_TEST_PPI {\r
+  PEI_BASE_MEMORY_TEST  BaseMemoryTest;\r
+};\r
+\r
+extern EFI_GUID gPeiBaseMemoryTestPpiGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Protocol/Capsule.h b/MdeModulePkg/Include/Protocol/Capsule.h
new file mode 100644 (file)
index 0000000..1af0b65
--- /dev/null
@@ -0,0 +1,39 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  Capsule.h\r
+\r
+Abstract:\r
+\r
+  Capsule Architectural Protocol is newly added to produce UEFI2.0 capsule runtime services.\r
+\r
+--*/\r
+\r
+#ifndef __ARCH_PROTOCOL_CAPSULE_ARCH_H__\r
+#define __ARCH_PROTOCOL_CAPSULE_ARCH_H__\r
+\r
+//\r
+// Global ID for the Capsule Architectural Protocol\r
+//\r
+#define EFI_CAPSULE_ARCH_PROTOCOL_GUID \\r
+  { 0x5053697e, 0x2ebc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54 }}\r
+\r
+extern EFI_GUID gEfiCapsuleArchProtocolGuid;\r
+\r
+typedef struct {\r
+  UINT32   CapsuleArrayNumber;\r
+  VOID*    CapsulePtr[1];\r
+} EFI_CAPSULE_TABLE;\r
+\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Protocol/ConsoleControl.h b/MdeModulePkg/Include/Protocol/ConsoleControl.h
new file mode 100644 (file)
index 0000000..c894302
--- /dev/null
@@ -0,0 +1,121 @@
+/*++ \r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+  ConsoleControl.h\r
+\r
+Abstract:\r
+\r
+  Abstraction of a Text mode or UGA screen\r
+\r
+--*/\r
+\r
+#ifndef __CONSOLE_CONTROL_H__\r
+#define __CONSOLE_CONTROL_H__\r
+\r
+#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \\r
+  { 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21 } }\r
+\r
+typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL   EFI_CONSOLE_CONTROL_PROTOCOL;\r
+\r
+\r
+typedef enum {\r
+  EfiConsoleControlScreenText,\r
+  EfiConsoleControlScreenGraphics,\r
+  EfiConsoleControlScreenMaxValue\r
+} EFI_CONSOLE_CONTROL_SCREEN_MODE;\r
+\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) (\r
+  IN  EFI_CONSOLE_CONTROL_PROTOCOL      *This,\r
+  OUT EFI_CONSOLE_CONTROL_SCREEN_MODE   *Mode,\r
+  OUT BOOLEAN                           *UgaExists,   OPTIONAL  \r
+  OUT BOOLEAN                           *StdInLocked  OPTIONAL\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Return the current video mode information. Also returns info about existence\r
+    of UGA Draw devices in system, and if the Std In device is locked. All the\r
+    arguments are optional and only returned if a non NULL pointer is passed in.\r
+\r
+  Arguments:\r
+    This - Protocol instance pointer.\r
+    Mode        - Are we in text of grahics mode.\r
+    UgaExists   - TRUE if UGA Spliter has found a UGA device\r
+    StdInLocked - TRUE if StdIn device is keyboard locked\r
+\r
+  Returns:\r
+    EFI_SUCCESS     - Mode information returned.\r
+\r
+--*/\r
+;\r
+\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) (\r
+  IN  EFI_CONSOLE_CONTROL_PROTOCOL      *This,\r
+  OUT EFI_CONSOLE_CONTROL_SCREEN_MODE   Mode\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Set the current mode to either text or graphics. Graphics is\r
+    for Quiet Boot.\r
+\r
+  Arguments:\r
+    This  - Protocol instance pointer.\r
+    Mode  - Mode to set the \r
+\r
+  Returns:\r
+    EFI_SUCCESS     - Mode information returned.\r
+\r
+--*/\r
+;\r
+\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) (\r
+  IN  EFI_CONSOLE_CONTROL_PROTOCOL      *This,\r
+  IN CHAR16                             *Password\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Lock Std In devices until Password is typed.\r
+\r
+  Arguments:\r
+    This     - Protocol instance pointer.\r
+    Password - Password needed to unlock screen. NULL means unlock keyboard\r
+\r
+  Returns:\r
+    EFI_SUCCESS      - Mode information returned.\r
+    EFI_DEVICE_ERROR - Std In not locked\r
+\r
+--*/\r
+;\r
+\r
+\r
+\r
+struct _EFI_CONSOLE_CONTROL_PROTOCOL {\r
+  EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE           GetMode;\r
+  EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE           SetMode;\r
+  EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN        LockStdIn;\r
+};\r
+\r
+extern EFI_GUID gEfiConsoleControlProtocolGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Protocol/DiskInfo.h b/MdeModulePkg/Include/Protocol/DiskInfo.h
new file mode 100644 (file)
index 0000000..374d41d
--- /dev/null
@@ -0,0 +1,179 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+    DiskInfo.h\r
+\r
+Abstract:\r
+\r
+  Disk Info protocol is used to export Inquiry Data for a drive.\r
+  Its needed to support low level formating of drives in a mannor\r
+  thats DOS compatible.\r
+\r
+--*/\r
+\r
+#ifndef __DISK_INFO_H__\r
+#define __DISK_INFO_H__\r
+\r
+#define EFI_DISK_INFO_PROTOCOL_GUID \\r
+  { \\r
+    0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27 } \\r
+  }\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+typedef struct _EFI_DISK_INFO_PROTOCOL  EFI_DISK_INFO_PROTOCOL;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_DISK_INFO_INQUIRY) (\r
+  IN EFI_DISK_INFO_PROTOCOL           * This,\r
+  IN OUT VOID                         *InquiryData,\r
+  IN OUT UINT32                       *IntquiryDataSize\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Return the results of the Inquiry command to a drive in InquiryData.\r
+    Data format of Inquiry data is defined by the Interface GUID.\r
+\r
+  Arguments:\r
+    This        - Protocol instance pointer.\r
+    InquiryData - Results of Inquiry command to device\r
+    InquiryDataSize - Size of InquiryData in bytes.\r
+\r
+  Returns:\r
+    EFI_SUCCESS       - InquiryData valid\r
+    EFI_NOT_FOUND     - Device does not support this data class\r
+    EFI_DEVICE_ERROR  - Error reading InquiryData from device\r
+    EFI_BUFFER_TOO_SMALL - IntquiryDataSize not big enough\r
+\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_DISK_INFO_IDENTIFY) (\r
+  IN EFI_DISK_INFO_PROTOCOL           * This,\r
+  IN OUT VOID                         *IdentifyData,\r
+  IN OUT UINT32                       *IdentifyDataSize\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Return the results of the Identify command to a drive in IdentifyData.\r
+    Data format of Identify data is defined by the Interface GUID.\r
+\r
+  Arguments:\r
+    This        - Protocol instance pointer.\r
+    IdentifyData - Results of Identify command to device\r
+    IdentifyDataSize - Size of IdentifyData in bytes.\r
+\r
+  Returns:\r
+    EFI_SUCCESS       - IdentifyData valid\r
+    EFI_NOT_FOUND     - Device does not support this data class\r
+    EFI_DEVICE_ERROR  - Error reading IdentifyData from device\r
+    EFI_BUFFER_TOO_SMALL - IdentifyDataSize not big enough\r
+\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_DISK_INFO_SENSE_DATA) (\r
+  IN EFI_DISK_INFO_PROTOCOL           * This,\r
+  IN OUT VOID                         *SenseData,\r
+  IN OUT UINT32                       *SenseDataSize,\r
+  OUT UINT8                           *SenseDataNumber\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Return the results of the Request Sense command to a drive in SenseData.\r
+    Data format of Sense data is defined by the Interface GUID.\r
+\r
+  Arguments:\r
+    This            - Protocol instance pointer.\r
+    SenseData       - Results of Request Sense command to device\r
+    SenseDataSize   - Size of SenseData in bytes.\r
+    SenseDataNumber - Type of SenseData\r
+\r
+  Returns:\r
+    EFI_SUCCESS       - InquiryData valid\r
+    EFI_NOT_FOUND     - Device does not support this data class\r
+    EFI_DEVICE_ERROR  - Error reading InquiryData from device\r
+    EFI_BUFFER_TOO_SMALL - SenseDataSize not big enough\r
+\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_DISK_INFO_WHICH_IDE) (\r
+  IN EFI_DISK_INFO_PROTOCOL           * This,\r
+  OUT UINT32                          *IdeChannel,\r
+  OUT UINT32                          *IdeDevice\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Return the results of the Request Sense command to a drive in SenseData.\r
+    Data format of Sense data is defined by the Interface GUID.\r
+\r
+  Arguments:\r
+    This        - Protocol instance pointer.\r
+    IdeChannel  - Primary or Secondary\r
+    IdeDevice   - Master or Slave\r
+\r
+  Returns:\r
+    EFI_SUCCESS       - IdeChannel and IdeDevice are valid\r
+    EFI_UNSUPPORTED   - This is not an IDE device\r
+\r
+--*/\r
+;\r
+\r
+//\r
+// GUIDs for EFI_DISK_INFO_PROTOCOL.Interface. Defines the format of the\r
+// buffers returned by member functions\r
+//\r
+#define EFI_DISK_INFO_IDE_INTERFACE_GUID \\r
+  { \\r
+    0x5e948fe3, 0x26d3, 0x42b5, {0xaf, 0x17, 0x61, 0x2, 0x87, 0x18, 0x8d, 0xec } \\r
+  }\r
+extern EFI_GUID gEfiDiskInfoIdeInterfaceGuid;\r
+\r
+#define EFI_DISK_INFO_SCSI_INTERFACE_GUID \\r
+  { \\r
+    0x8f74baa, 0xea36, 0x41d9, {0x95, 0x21, 0x21, 0xa7, 0xf, 0x87, 0x80, 0xbc } \\r
+  }\r
+extern EFI_GUID gEfiDiskInfoScsiInterfaceGuid;\r
+\r
+#define EFI_DISK_INFO_USB_INTERFACE_GUID \\r
+  { \\r
+    0xcb871572, 0xc11a, 0x47b5, {0xb4, 0x92, 0x67, 0x5e, 0xaf, 0xa7, 0x77, 0x27 } \\r
+  }\r
+extern EFI_GUID gEfiDiskInfoUsbInterfaceGuid;\r
+\r
+struct _EFI_DISK_INFO_PROTOCOL {\r
+  EFI_GUID                  Interface;\r
+  EFI_DISK_INFO_INQUIRY     Inquiry;\r
+  EFI_DISK_INFO_IDENTIFY    Identify;\r
+  EFI_DISK_INFO_SENSE_DATA  SenseData;\r
+  EFI_DISK_INFO_WHICH_IDE   WhichIde;\r
+};\r
+\r
+extern EFI_GUID gEfiDiskInfoProtocolGuid;\r
+\r
+#endif\r
+\r
+\r
diff --git a/MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h b/MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h
new file mode 100644 (file)
index 0000000..d345b77
--- /dev/null
@@ -0,0 +1,88 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  FaultTolerantWriteLite.h\r
+\r
+Abstract:\r
+\r
+  This is a simple fault tolerant write driver, based on PlatformFd library.\r
+  And it only supports write BufferSize <= SpareAreaLength.\r
+\r
+--*/\r
+\r
+#ifndef __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__\r
+#define __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__\r
+\r
+#define EFI_FTW_LITE_PROTOCOL_GUID \\r
+{ 0x3f557189, 0x8dae, 0x45ae, {0xa0, 0xb3, 0x2b, 0x99, 0xca, 0x7a, 0xa7, 0xa0 } }\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+typedef struct _EFI_FTW_LITE_PROTOCOL EFI_FTW_LITE_PROTOCOL;\r
+\r
+//\r
+// Protocol API definitions\r
+//\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI * EFI_FTW_LITE_WRITE) (\r
+  IN EFI_FTW_LITE_PROTOCOL             *This,\r
+  IN EFI_HANDLE                        FvbHandle,\r
+  IN EFI_LBA                           Lba,\r
+  IN UINTN                             Offset,\r
+  IN UINTN                             *NumBytes,\r
+  IN VOID                              *Buffer\r
+  );\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  Starts a target block update. This records information about the write\r
+  in fault tolerant storage and will complete the write in a recoverable\r
+  manner, ensuring at all times that either the original contents or\r
+  the modified contents are available.\r
+\r
+Arguments:\r
+\r
+  This             - Calling context\r
+  FvBlockHandle    - The handle of FVB protocol that provides services for\r
+                     reading, writing, and erasing the target block.\r
+  Lba              - The logical block address of the target block.\r
+  Offset           - The offset within the target block to place the data.\r
+  Length           - The number of bytes to write to the target block.\r
+  Buffer           - The data to write.\r
+\r
+Returns:\r
+\r
+  EFI_SUCCESS          - The function completed successfully\r
+  EFI_ABORTED          - The function could not complete successfully.\r
+  EFI_BAD_BUFFER_SIZE  - The write would span a block boundary,\r
+                         which is not a valid action.\r
+  EFI_ACCESS_DENIED    - No writes have been allocated.\r
+  EFI_NOT_READY        - The last write has not been completed.\r
+                         Restart () must be called to complete it.\r
+\r
+--*/\r
+\r
+//\r
+// Protocol declaration\r
+//\r
+struct _EFI_FTW_LITE_PROTOCOL {\r
+  EFI_FTW_LITE_WRITE               Write;\r
+};\r
+\r
+extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Protocol/FvbExtension.h b/MdeModulePkg/Include/Protocol/FvbExtension.h
new file mode 100644 (file)
index 0000000..8a85d3d
--- /dev/null
@@ -0,0 +1,53 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+    FvbExtension.h\r
+\r
+Abstract:\r
+\r
+  FVB Extension protocol that extends the FVB Class in a component fashion.\r
+\r
+--*/\r
+\r
+#ifndef __FVB_EXTENSION_H__\r
+#define __FVB_EXTENSION_H__\r
+\r
+#define EFI_FVB_EXTENSION_PROTOCOL_GUID  \\r
+  {0x53a4c71b, 0xb581, 0x4170, {0x91, 0xb3, 0x8d, 0xb8, 0x7a, 0x4b, 0x5c, 0x46 } }\r
+\r
+typedef struct _EFI_FVB_EXTENSION_PROTOCOL EFI_FVB_EXTENSION_PROTOCOL;\r
+\r
+//\r
+//  FVB Extension Function Prototypes\r
+//\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI * EFI_FV_ERASE_CUSTOM_BLOCK) (\r
+  IN EFI_FVB_EXTENSION_PROTOCOL   *This,\r
+  IN EFI_LBA                              StartLba,\r
+  IN UINTN                                OffsetStartLba,\r
+  IN EFI_LBA                              LastLba,\r
+  IN UINTN                                OffsetLastLba\r
+);\r
+\r
+//\r
+// IPMI TRANSPORT PROTOCOL\r
+//\r
+struct _EFI_FVB_EXTENSION_PROTOCOL {\r
+  EFI_FV_ERASE_CUSTOM_BLOCK               EraseFvbCustomBlock;\r
+};\r
+\r
+extern EFI_GUID                           gEfiFvbExtensionProtocolGuid;\r
+\r
+#endif\r
+\r
diff --git a/MdeModulePkg/Include/Protocol/GenericMemoryTest.h b/MdeModulePkg/Include/Protocol/GenericMemoryTest.h
new file mode 100644 (file)
index 0000000..8f566d3
--- /dev/null
@@ -0,0 +1,156 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation                                                         \r
+All rights reserved. This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+\r
+Module Name:\r
+\r
+    GenericMemoryTest.h\r
+\r
+Abstract:\r
+\r
+    The EFI generic memory test protocol\r
+    For more information please look at EfiMemoryTest.doc\r
+\r
+--*/\r
+\r
+#ifndef __GENERIC_MEMORY_TEST_H__\r
+#define __GENERIC_MEMORY_TEST_H__\r
+\r
+#define EFI_GENERIC_MEMORY_TEST_PROTOCOL_GUID  \\r
+  { 0x309de7f1, 0x7f5e, 0x4ace, {0xb4, 0x9c, 0x53, 0x1b, 0xe5, 0xaa, 0x95, 0xef} }\r
+\r
+typedef struct _EFI_GENERIC_MEMORY_TEST_PROTOCOL  EFI_GENERIC_MEMORY_TEST_PROTOCOL;\r
+\r
+typedef enum {\r
+  IGNORE,\r
+  QUICK,\r
+  SPARSE,\r
+  EXTENSIVE,\r
+  MAXLEVEL\r
+} EXTENDMEM_COVERAGE_LEVEL;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_MEMORY_TEST_INIT) (\r
+  IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
+  IN  EXTENDMEM_COVERAGE_LEVEL                 Level,\r
+  OUT BOOLEAN                                  *RequireSoftECCInit\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Initialize the generic memory test.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    Level                 - The coverage level of the memory test.\r
+    RequireSoftECCInit    - Indicate if the memory need software ECC init.\r
+\r
+  Returns:\r
+    EFI_SUCCESS           - The generic memory test initialized correctly.\r
+    EFI_NO_MEDIA          - There is not any non-tested memory found, in this\r
+                            function if not any non-tesed memory found means \r
+                            that the memory test driver have not detect any\r
+                            non-tested extended memory of current system.\r
+\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_PERFORM_MEMORY_TEST) (\r
+  IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
+  OUT UINT64                                   *TestedMemorySize,\r
+  OUT UINT64                                   *TotalMemorySize,\r
+  OUT BOOLEAN                                  *ErrorOut,\r
+  IN BOOLEAN                                   IfTestAbort\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Perform the memory test.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    TestedMemorySize      - Return the tested extended memory size.\r
+    TotalMemorySize       - Return the whole system physical memory size, this \r
+                            value may be changed if in some case some error \r
+                            DIMMs be disabled.\r
+    ErrorOut              - Any time the memory error occurs, this will be TRUE.\r
+    IfTestAbort           - Indicate if the user press "ESC" to skip the memory\r
+                            test.\r
+\r
+  Returns:\r
+    EFI_SUCCESS           - One block of memory test ok, the block size is hide\r
+                            internally.\r
+    EFI_NOT_FOUND         - Indicate all the non-tested memory blocks have \r
+                            already go through.\r
+\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_MEMORY_TEST_FINISHED) (\r
+  IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    The memory test finished.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+\r
+  Returns:\r
+    EFI_SUCCESS           - Successful free all the generic memory test driver\r
+                            allocated resource and notify to platform memory\r
+                            test driver that memory test finished.\r
+\r
+--*/\r
+;\r
+  \r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_MEMORY_TEST_COMPATIBLE_RANGE) (\r
+  IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This,\r
+  IN  EFI_PHYSICAL_ADDRESS                     StartAddress,\r
+  IN  UINT64                                   Length\r
+  )\r
+/*++\r
+  \r
+  Routine Description:\r
+    Provide capability to test compatible range which used by some sepcial\r
+    driver required using memory range before BDS perform memory test.\r
+    \r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    StartAddress          - The start address of the memory range.\r
+    Length                - The memory range's length.\r
+    \r
+  Return:\r
+    EFI_SUCCESS           - The compatible memory range pass the memory test.\r
+    EFI_DEVICE_ERROR      - The compatible memory range test find memory error\r
+                            and also return return the error address.\r
+    \r
+--*/\r
+;\r
+\r
+struct _EFI_GENERIC_MEMORY_TEST_PROTOCOL {\r
+  EFI_MEMORY_TEST_INIT              MemoryTestInit;\r
+  EFI_PERFORM_MEMORY_TEST           PerformMemoryTest;\r
+  EFI_MEMORY_TEST_FINISHED          Finished;\r
+  EFI_MEMORY_TEST_COMPATIBLE_RANGE  CompatibleRangeTest;\r
+};\r
+\r
+extern EFI_GUID gEfiGenericMemTestProtocolGuid;\r
+\r
+#endif\r
+\r
diff --git a/MdeModulePkg/Include/Protocol/OEMBadging.h b/MdeModulePkg/Include/Protocol/OEMBadging.h
new file mode 100644 (file)
index 0000000..ec63d00
--- /dev/null
@@ -0,0 +1,79 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+    EfiOEMBadging.h\r
+\r
+Abstract:\r
+\r
+    EFI OEM Badging Protocol definition header file\r
+\r
+Revision History\r
+\r
+--*/\r
+\r
+#ifndef __EFI_OEM_BADGING_H__\r
+#define __EFI_OEM_BADGING_H__\r
+\r
+//\r
+// GUID for EFI OEM Badging Protocol\r
+//\r
+#define EFI_OEM_BADGING_PROTOCOL_GUID \\r
+  { 0x170e13c0, 0xbf1b, 0x4218, {0x87, 0x1d, 0x2a, 0xbd, 0xc6, 0xf8, 0x87, 0xbc } }\r
+\r
+\r
+typedef struct _EFI_OEM_BADGING_PROTOCOL EFI_OEM_BADGING_PROTOCOL;\r
+\r
+typedef enum {\r
+  EfiBadgingFormatBMP,\r
+  EfiBadgingFormatJPEG,\r
+  EfiBadgingFormatTIFF,\r
+  EfiBadgingFormatGIF,\r
+  EfiBadgingFormatUnknown\r
+} EFI_BADGING_FORMAT;\r
+\r
+typedef enum {\r
+  EfiBadgingDisplayAttributeLeftTop,\r
+  EfiBadgingDisplayAttributeCenterTop,\r
+  EfiBadgingDisplayAttributeRightTop,\r
+  EfiBadgingDisplayAttributeCenterRight,\r
+  EfiBadgingDisplayAttributeRightBottom,\r
+  EfiBadgingDisplayAttributeCenterBottom,\r
+  EfiBadgingDisplayAttributeLeftBottom,\r
+  EfiBadgingDisplayAttributeCenterLeft,\r
+  EfiBadgingDisplayAttributeCenter,\r
+  EfiBadgingDisplayAttributeCustomized\r
+} EFI_BADGING_DISPLAY_ATTRIBUTE;\r
+\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_BADGING_GET_IMAGE) (\r
+  IN     EFI_OEM_BADGING_PROTOCOL          *This,\r
+  IN OUT UINT32                            *Instance,\r
+     OUT EFI_BADGING_FORMAT                *Format,\r
+     OUT UINT8                             **ImageData,\r
+     OUT UINTN                             *ImageSize,\r
+     OUT EFI_BADGING_DISPLAY_ATTRIBUTE     *Attribute,\r
+     OUT UINTN                             *CoordinateX,\r
+     OUT UINTN                             *CoordinateY\r
+);\r
+\r
+\r
+struct _EFI_OEM_BADGING_PROTOCOL {\r
+  EFI_BADGING_GET_IMAGE       GetImage;\r
+};\r
+\r
+\r
+extern EFI_GUID gEfiOEMBadgingProtocolGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Protocol/Performance.h b/MdeModulePkg/Include/Protocol/Performance.h
new file mode 100644 (file)
index 0000000..84e1cca
--- /dev/null
@@ -0,0 +1,166 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  Performance.h\r
+\r
+Abstract:\r
+\r
+\r
+--*/\r
+\r
+#ifndef __PERFORMANCE_H__\r
+#define __PERFORMANCE_H__\r
+\r
+#define PERFORMANCE_PROTOCOL_GUID \\r
+  { 0x76b6bdfa, 0x2acd, 0x4462, {0x9E, 0x3F, 0xcb, 0x58, 0xC9, 0x69, 0xd9, 0x37 } }\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+typedef struct _PERFORMANCE_PROTOCOL PERFORMANCE_PROTOCOL;\r
+\r
+#define DXE_TOK                         "DXE"\r
+#define SHELL_TOK                       "SHELL"\r
+#define PEI_TOK                         "PEI"\r
+#define BDS_TOK                         "BDS"\r
+#define DRIVERBINDING_START_TOK         "DriverBinding:Start"\r
+#define DRIVERBINDING_SUPPORT_TOK       "DriverBinding:Support"\r
+#define START_IMAGE_TOK                 "StartImage"\r
+#define LOAD_IMAGE_TOK                  "LoadImage"\r
+\r
+//\r
+// DXE_PERFORMANCE_STRING_SIZE must be a multiple of 8.\r
+//\r
+#define DXE_PERFORMANCE_STRING_SIZE     32\r
+#define DXE_PERFORMANCE_STRING_LENGTH   (DXE_PERFORMANCE_STRING_SIZE - 1)\r
+\r
+//\r
+// The default guage entries number for DXE phase.\r
+//\r
+#define INIT_DXE_GAUGE_DATA_ENTRIES     800\r
+\r
+typedef struct {\r
+  EFI_PHYSICAL_ADDRESS  Handle;\r
+  CHAR8                 Token[DXE_PERFORMANCE_STRING_SIZE];\r
+  CHAR8                 Module[DXE_PERFORMANCE_STRING_SIZE];\r
+  UINT64                StartTimeStamp;\r
+  UINT64                EndTimeStamp;\r
+} GAUGE_DATA_ENTRY;\r
+\r
+//\r
+// The header must be aligned at 8 bytes\r
+//\r
+typedef struct {\r
+  UINT32                NumberOfEntries;\r
+  UINT32                Reserved;\r
+} GAUGE_DATA_HEADER;\r
+\r
+/**\r
+  Adds a record at the end of the performance measurement log\r
+  that records the start time of a performance measurement.\r
+\r
+  Adds a record to the end of the performance measurement log\r
+  that contains the Handle, Token, and Module.\r
+  The end time of the new record must be set to zero.\r
+  If TimeStamp is not zero, then TimeStamp is used to fill in the start time in the record.\r
+  If TimeStamp is zero, the start time in the record is filled in with the value\r
+  read from the current time stamp.\r
+\r
+  @param  Handle                  Pointer to environment specific context used\r
+                                  to identify the component being measured.\r
+  @param  Token                   Pointer to a Null-terminated ASCII string\r
+                                  that identifies the component being measured.\r
+  @param  Module                  Pointer to a Null-terminated ASCII string\r
+                                  that identifies the module being measured.\r
+  @param  TimeStamp               64-bit time stamp.\r
+\r
+  @retval EFI_SUCCESS             The data was read correctly from the device.\r
+  @retval EFI_OUT_OF_RESOURCES    There are not enough resources to record the measurement.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI * PERFORMANCE_START_GAUGE) (\r
+  IN CONST VOID   *Handle,  OPTIONAL\r
+  IN CONST CHAR8  *Token,   OPTIONAL\r
+  IN CONST CHAR8  *Module,  OPTIONAL\r
+  IN UINT64       TimeStamp\r
+  );\r
+\r
+/**\r
+  Searches the performance measurement log from the beginning of the log\r
+  for the first matching record that contains a zero end time and fills in a valid end time.\r
+\r
+  Searches the performance measurement log from the beginning of the log\r
+  for the first record that matches Handle, Token, and Module and has an end time value of zero.\r
+  If the record can not be found then return EFI_NOT_FOUND.\r
+  If the record is found and TimeStamp is not zero,\r
+  then the end time in the record is filled in with the value specified by TimeStamp.\r
+  If the record is found and TimeStamp is zero, then the end time in the matching record\r
+  is filled in with the current time stamp value.\r
+\r
+  @param  Handle                  Pointer to environment specific context used\r
+                                  to identify the component being measured.\r
+  @param  Token                   Pointer to a Null-terminated ASCII string\r
+                                  that identifies the component being measured.\r
+  @param  Module                  Pointer to a Null-terminated ASCII string\r
+                                  that identifies the module being measured.\r
+  @param  TimeStamp               64-bit time stamp.\r
+\r
+  @retval EFI_SUCCESS             The end of  the measurement was recorded.\r
+  @retval EFI_NOT_FOUND           The specified measurement record could not be found.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI * PERFORMANCE_END_GAUGE) (\r
+  IN CONST VOID   *Handle,  OPTIONAL\r
+  IN CONST CHAR8  *Token,   OPTIONAL\r
+  IN CONST CHAR8  *Module,  OPTIONAL\r
+  IN UINT64       TimeStamp\r
+  );\r
+\r
+/**\r
+  Retrieves a previously logged performance measurement.\r
+\r
+  Retrieves the performance log entry from the performance log specified by LogEntryKey.\r
+  If it stands for a valid entry, then EFI_SUCCESS is returned and\r
+  GaugeDataEntry stores the pointer to that entry.\r
+\r
+  @param  LogEntryKey             The key for the previous performance measurement log entry.\r
+                                  If 0, then the first performance measurement log entry is retrieved.\r
+  @param  GaugeDataEntry          The indirect pointer to the gauge data entry specified by LogEntryKey\r
+                                  if the retrieval is successful.\r
+\r
+  @retval EFI_SUCCESS             The GuageDataEntry is successfuly found based on LogEntryKey.\r
+  @retval EFI_NOT_FOUND           The LogEntryKey is the last entry (equals to the total entry number).\r
+  @retval EFI_INVALIDE_PARAMETER  The LogEntryKey is not a valid entry (greater than the total entry number).\r
+  @retval EFI_INVALIDE_PARAMETER  GaugeDataEntry is NULL.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI * PERFORMANCE_GET_GAUGE) (\r
+  IN  UINTN               LogEntryKey,\r
+  OUT GAUGE_DATA_ENTRY    **GaugeDataEntry\r
+  );\r
+\r
+struct _PERFORMANCE_PROTOCOL {\r
+  PERFORMANCE_START_GAUGE             StartGauge;\r
+  PERFORMANCE_END_GAUGE               EndGauge;\r
+  PERFORMANCE_GET_GAUGE               GetGauge;\r
+};\r
+\r
+extern EFI_GUID gPerformanceProtocolGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Protocol/Print.h b/MdeModulePkg/Include/Protocol/Print.h
new file mode 100644 (file)
index 0000000..c381295
--- /dev/null
@@ -0,0 +1,50 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  Print.h\r
+\r
+Abstract:\r
+\r
+  This file defines the Print protocol\r
+\r
+--*/\r
+\r
+#ifndef __PPRINT_H__\r
+#define __PPRINT_H__\r
+\r
+#define EFI_PRINT_PROTOCOL_GUID  \\r
+   { 0xdf2d868e, 0x32fc, 0x4cf0, {0x8e, 0x6b, 0xff, 0xd9, 0x5d, 0x13, 0x43, 0xd0 } }\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+typedef struct _EFI_PRINT_PROTOCOL  EFI_PRINT_PROTOCOL;\r
+\r
+\r
+typedef\r
+UINTN\r
+(EFIAPI *EFI_VSPRINT) (\r
+  OUT CHAR16        *StartOfBuffer,\r
+  IN  UINTN         BufferSize,\r
+  IN  CONST CHAR16  *FormatString,\r
+  IN  VA_LIST       Marker\r
+  );\r
+\r
+struct _EFI_PRINT_PROTOCOL {\r
+  EFI_VSPRINT                                   VSPrint;\r
+};\r
+\r
+\r
+extern EFI_GUID gEfiPrintProtocolGuid;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Include/Protocol/ScsiIo.h b/MdeModulePkg/Include/Protocol/ScsiIo.h
new file mode 100644 (file)
index 0000000..4e3a170
--- /dev/null
@@ -0,0 +1,241 @@
+/*++\r
+\r
+Copyright (c) 2006, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+  ScsiIo.h\r
+\r
+Abstract:\r
+\r
+  SCSI I/O protocol.\r
+\r
+--*/\r
+\r
+#ifndef __SCSI_IO_H__\r
+#define __SCSI_IO_H__\r
+\r
+#define EFI_SCSI_IO_PROTOCOL_GUID \\r
+  { 0x403cd195, 0xf233, 0x48ec, {0x84, 0x55, 0xb2, 0xe5, 0x2f, 0x1d, 0x9e, 0x2  } }\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+typedef struct _EFI_SCSI_IO_PROTOCOL  EFI_SCSI_IO_PROTOCOL;\r
+\r
+//\r
+// SCSI Host Adapter Status definition\r
+//\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK                     0x00\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND        0x09    // timeout when processing the command\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT                0x0b    // timeout when waiting for the command processing\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT         0x0d    // a message reject was received when processing command\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET              0x0e    // a bus reset was detected\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR           0x0f\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED   0x10    // the adapter failed in issuing request sense command\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT      0x11    // selection timeout\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN  0x12    // data overrun or data underrun\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE               0x13    // Unexepected bus free\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR            0x14    // Target bus phase sequence failure\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER                  0x7f\r
+\r
+\r
+//\r
+// SCSI Target Status definition\r
+//\r
+#define EFI_SCSI_IO_STATUS_TARGET_GOOD                         0x00\r
+#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION              0x02    // check condition\r
+#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET                0x04    // condition met\r
+#define EFI_SCSI_IO_STATUS_TARGET_BUSY                         0x08    // busy\r
+#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE                 0x10    // intermediate\r
+#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET   0x14    // intermediate-condition met\r
+#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT         0x18    // reservation conflict\r
+#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED           0x22    // command terminated\r
+#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL                   0x28    // queue full\r
+\r
+typedef struct {\r
+  UINT64      Timeout;\r
+  VOID        *DataBuffer;\r
+  VOID        *SenseData;\r
+  VOID        *Cdb;\r
+  UINT32      TransferLength;\r
+  UINT8       CdbLength;\r
+  UINT8       DataDirection;\r
+  UINT8       HostAdapterStatus;\r
+  UINT8       TargetStatus;\r
+  UINT8       SenseDataLength;\r
+}EFI_SCSI_IO_SCSI_REQUEST_PACKET;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE) (\r
+  IN EFI_SCSI_IO_PROTOCOL     *This,\r
+  OUT UINT8                           *DeviceType\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Retrieves the device type information of the SCSI Controller.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    DeviceType            - A pointer to the device type information\r
+                            retrieved from the SCSI Controller.\r
+\r
+  Returns:\r
+    EFI_SUCCESS            - Retrieves the device type information successfully.\r
+    EFI_INVALID_PARAMETER  - The DeviceType is NULL.\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION) (\r
+  IN EFI_SCSI_IO_PROTOCOL   *This,\r
+  OUT UINT32                        *Target,\r
+  OUT UINT64                        *Lun\r
+  )\r
+/*++\r
+  Routine Description:\r
+    Retrieves the device location in the SCSI channel.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    Target                - A pointer to the Target ID of a SCSI device\r
+                            on the SCSI channel.\r
+    Lun                    - A pointer to the LUN of the SCSI device on\r
+                            the SCSI channel.\r
+\r
+  Returns:\r
+    EFI_SUCCESS            - Retrieves the device location successfully.\r
+    EFI_INVALID_PARAMETER  - The Target or Lun is NULL.\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_BUS) (\r
+  IN EFI_SCSI_IO_PROTOCOL     *This\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Resets the SCSI Bus that the SCSI Controller is attached to.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+\r
+  Returns:\r
+    EFI_SUCCESS            - The SCSI bus is reset successfully.\r
+    EFI_DEVICE_ERROR      - Errors encountered when resetting the SCSI bus.\r
+    EFI_UNSUPPORTED        - The bus reset operation is not supported by the\r
+                            SCSI Host Controller.\r
+    EFI_TIMEOUT            - A timeout occurred while attempting to reset\r
+                            the SCSI bus.\r
+--*/\r
+;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_DEVICE) (\r
+  IN EFI_SCSI_IO_PROTOCOL     *This\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Resets the SCSI Controller that the device handle specifies.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+\r
+\r
+  Returns:\r
+    EFI_SUCCESS            - Reset the SCSI controller successfully.\r
+    EFI_DEVICE_ERROR      - Errors are encountered when resetting the\r
+                            SCSI Controller.\r
+    EFI_UNSUPPORTED        - The SCSI bus does not support a device\r
+                            reset operation.\r
+    EFI_TIMEOUT            - A timeout occurred while attempting to\r
+                            reset the SCSI Controller.\r
+--*/\r
+;\r
+\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_CMD) (\r
+  IN EFI_SCSI_IO_PROTOCOL           *This,\r
+  IN OUT  EFI_SCSI_IO_SCSI_REQUEST_PACKET   *Packet,\r
+  IN EFI_EVENT                              Event  OPTIONAL\r
+  )\r
+/*++\r
+\r
+  Routine Description:\r
+    Sends a SCSI Request Packet to the SCSI Controller for execution.\r
+\r
+  Arguments:\r
+    This                  - Protocol instance pointer.\r
+    Packet                - The SCSI request packet to send to the SCSI\r
+                            Controller specified by the device handle.\r
+    Event                  - If the SCSI bus where the SCSI device is attached\r
+                            does not support non-blocking I/O, then Event is\r
+                            ignored, and blocking I/O is performed.\r
+                            If Event is NULL, then blocking I/O is performed.\r
+                            If Event is not NULL and non-blocking I/O is\r
+                            supported, then non-blocking I/O is performed,\r
+                            and Event will be signaled when the SCSI Request\r
+                            Packet completes.\r
+  Returns:\r
+    EFI_SUCCESS            - The SCSI Request Packet was sent by the host\r
+                            successfully, and TransferLength bytes were\r
+                            transferred to/from DataBuffer.See\r
+                            HostAdapterStatus, TargetStatus,\r
+                            SenseDataLength, and SenseData in that order\r
+                            for additional status information.\r
+    EFI_WARN_BUFFER_TOO_SMALL  - The SCSI Request Packet was executed,\r
+                            but the entire DataBuffer could not be transferred.\r
+                            The actual number of bytes transferred is returned\r
+                            in TransferLength. See HostAdapterStatus,\r
+                            TargetStatus, SenseDataLength, and SenseData in\r
+                            that order for additional status information.\r
+    EFI_NOT_READY          - The SCSI Request Packet could not be sent because\r
+                            there are too many SCSI Command Packets already\r
+                            queued.The caller may retry again later.\r
+    EFI_DEVICE_ERROR      - A device error occurred while attempting to send\r
+                            the SCSI Request Packet. See HostAdapterStatus,\r
+                            TargetStatus, SenseDataLength, and SenseData in\r
+                            that order for additional status information.\r
+    EFI_INVALID_PARAMETER  - The contents of CommandPacket are invalid.\r
+                            The SCSI Request Packet was not sent, so no\r
+                            additional status information is available.\r
+    EFI_UNSUPPORTED        - The command described by the SCSI Request Packet\r
+                            is not supported by the SCSI initiator(i.e., SCSI\r
+                            Host Controller). The SCSI Request Packet was not\r
+                            sent, so no additional status information is\r
+                            available.\r
+    EFI_TIMEOUT            - A timeout occurred while waiting for the SCSI\r
+                            Request Packet to execute. See HostAdapterStatus,\r
+                            TargetStatus, SenseDataLength, and SenseData in\r
+                            that order for additional status information.\r
+--*/\r
+;\r
+\r
+struct _EFI_SCSI_IO_PROTOCOL {\r
+    EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE      GetDeviceType;\r
+    EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION  GetDeviceLocation;\r
+    EFI_SCSI_IO_PROTOCOL_RESET_BUS            ResetBus;\r
+    EFI_SCSI_IO_PROTOCOL_RESET_DEVICE         ResetDevice;\r
+    EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_CMD        ExecuteSCSICommand;\r
+};\r
+\r
+extern EFI_GUID gEfiScsiIoProtocolGuid;\r
+\r
+#endif\r
+\r
diff --git a/MdeModulePkg/Include/Protocol/usbatapi.h b/MdeModulePkg/Include/Protocol/usbatapi.h
new file mode 100644 (file)
index 0000000..daa0529
--- /dev/null
@@ -0,0 +1,83 @@
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+Module Name:\r
+\r
+    UsbAtapi.h\r
+\r
+Abstract:\r
+\r
+    EFI Atapi Protocol definition.\r
+\r
+Revision History\r
+\r
+--*/\r
+\r
+#ifndef __EFI_USB_ATAPI_H__\r
+#define __EFI_USB_ATAPI_H__\r
+\r
+//\r
+// Transfer protocol types\r
+//\r
+#define BOT    0x50\r
+#define CBI0  0x00\r
+#define CBI1  0x01\r
+\r
+//\r
+// SubClass Code (defines command set)\r
+//\r
+#define EFI_USB_SUBCLASS_RBC            0x01\r
+#define EFI_USB_SUBCLASS_ATAPI          0x02\r
+#define EFI_USB_SUBCLASS_QIC_157        0x03\r
+#define EFI_USB_SUBCLASS_UFI            0x04\r
+#define EFI_USB_SUBCLASS_SFF_8070i      0x05\r
+#define EFI_USB_SUBCLASS_SCSI           0x06\r
+#define EFI_USB_SUBCLASS_RESERVED_LOW   0x07\r
+#define EFI_USB_SUBCLASS_RESERVED_HIGH  0xff\r
+//\r
+// Global GUID for transfer protocol interface\r
+//\r
+#define EFI_USB_ATAPI_PROTOCOL_GUID \\r
+    { 0x2B2F68DA, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } }\r
+\r
+typedef struct _EFI_USB_ATAPI_PROTOCOL EFI_USB_ATAPI_PROTOCOL;\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_USB_ATAPI_PACKET_CMD) (\r
+  IN EFI_USB_ATAPI_PROTOCOL  *This,\r
+  IN  VOID                            *Command,\r
+  IN  UINT8                            CommandSize,\r
+  IN  VOID                            *DataBuffer,\r
+  IN  UINT32                          BufferLength,\r
+  IN  EFI_USB_DATA_DIRECTION          Direction,\r
+  IN  UINT16                          TimeOutInMilliSeconds\r
+);\r
+\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_USB_MASS_STORAGE_RESET) (\r
+  IN EFI_USB_ATAPI_PROTOCOL  *This,\r
+  IN  BOOLEAN                         ExtendedVerification\r
+);\r
+\r
+//\r
+//  Protocol Interface Structure\r
+//\r
+struct _EFI_USB_ATAPI_PROTOCOL {\r
+  EFI_USB_ATAPI_PACKET_CMD        UsbAtapiPacketCmd;\r
+  EFI_USB_MASS_STORAGE_RESET      UsbAtapiReset;\r
+  UINT32                          CommandProtocol;\r
+};\r
+\r
+extern EFI_GUID gEfiUsbAtapiProtocolGuid;\r
+\r
+#endif\r
index 31fe01a..bf790be 100644 (file)
@@ -1,15 +1,17 @@
 #/** @file\r
 # Mde Module Package Reference Implementations\r
 #\r
-# This Module provides standard reference information for EFI/PI implementations.\r
+# This module provides headers and libraries that conform to EFI/PI Industry standards.\r
 # Copyright (c) 2007, Intel Corporation.\r
 #\r
 # All rights reserved.\r
-#    This program and the accompanying materials are licensed and made available\r
-#    under the terms and conditions of the BSD License which accompanies this distribution.\r
-#    The full text of the license may be found at http://opensource.org/licenses/bsd-license.php\r
-#    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES\r
-#    OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#    This program and the accompanying materials are licensed and made available under\r
+#    the terms and conditions of the BSD License which accompanies this distribution.\r
+#    The full text of the license may be found at\r
+#    http://opensource.org/licenses/bsd-license.php\r
+# \r
+#    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 #\r
 #**/\r
 \r
 \r
 ################################################################################\r
 #\r
-# Include Section - list of Include Paths that are provided by this package.\r
-#                   Comments are used for Keywords and Module Types.\r
-#\r
-# Supported Module Types:\r
-#  SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER\r
+# Global Guid Definition section - list of Global Guid C Name Data Structures\r
+#                                  that are provided by this package.\r
 #\r
 ################################################################################\r
-[Includes.common]\r
+[Guids.common]\r
+  gEfiGenericPlatformVariableGuid = { 0x59d1c24f, 0x50f1, 0x401a, { 0xb1, 0x01, 0xf3, 0x3e, 0x0d, 0xae, 0xd4, 0x43 }}\r
+  gPeiPerformanceHobGuid         = { 0xEC4DF5AF, 0x4395, 0x4CC9, { 0x94, 0xDE, 0x77, 0x50, 0x6D, 0x12, 0xC7, 0xB8 }}\r
+  gEfiCapsuleVendorGuid          = { 0x711C703F, 0xC285, 0x4B10, { 0xA3, 0xB0, 0x36, 0xEC, 0xBD, 0x3C, 0x8B, 0xE2 }}\r
+  gEfiPciHotplugDeviceGuid       = { 0x0B280816, 0x52E7, 0x4E51, { 0xAA, 0x57, 0x11, 0xBD, 0x41, 0xCB, 0xEF, 0xC3 }}\r
+  gEfiBootStateGuid              = { 0x60B5E939, 0x0FCF, 0x4227, { 0xBA, 0x83, 0x6B, 0xBE, 0xD4, 0x5B, 0xC0, 0xE3 }}\r
+  gEfiDefaultBmpLogoGuid         = { 0x7BB28B99, 0x61BB, 0x11D5, { 0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}\r
+  gEfiPrimaryConsoleOutDeviceGuid = { 0x62BDF38A, 0xE3D5, 0x492C, { 0x95, 0x0C, 0x23, 0xA7, 0xF6, 0x6E, 0x67, 0x2E }}\r
+  gEfiPrimaryConsoleInDeviceGuid = { 0xE451DCBE, 0x96A1, 0x4729, { 0xA5, 0xCF, 0x6B, 0x9C, 0x2C, 0xFF, 0x47, 0xFD }}\r
+  gEfiPrimaryStandardErrorDeviceGuid = { 0x5A68191B, 0x9B97, 0x4752, { 0x99, 0x46, 0xE3, 0x6A, 0x5D, 0xA9, 0x42, 0xB1 }}\r
+  gEfiHotPlugDeviceGuid          = { 0x220AC432, 0x1D43, 0x49E5, { 0xA7, 0x4F, 0x4C, 0x9D, 0xA6, 0x7A, 0xD2, 0x3B }}\r
+  gEfiStandardErrorDeviceGuid    = { 0xD3B36F2D, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}\r
+  gEfiConsoleOutDeviceGuid       = { 0xD3B36F2C, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}\r
+  gEfiConsoleInDeviceGuid        = { 0xD3B36F2B, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}\r
+  gEfiAlternateFvBlockGuid       = { 0xF496922D, 0x172F, 0x4BBC, { 0xA1, 0xEB, 0x0E, 0xEB, 0x94, 0x9C, 0x34, 0x86 }}\r
+  gEfiDiskInfoUsbInterfaceGuid   = { 0xCB871572, 0xC11A, 0x47B5, { 0xB4, 0x92, 0x67, 0x5E, 0xAF, 0xA7, 0x77, 0x27 }}\r
+  gEfiDiskInfoScsiInterfaceGuid  = { 0x08F74BAA, 0xEA36, 0x41D9, { 0x95, 0x21, 0x21, 0xA7, 0x0F, 0x87, 0x80, 0xBC }}\r
+  gEfiDiskInfoIdeInterfaceGuid   = { 0x5E948FE3, 0x26D3, 0x42B5, { 0xAF, 0x17, 0x61, 0x02, 0x87, 0x18, 0x8D, 0xEC }}\r
+  gEfiSystemNvDataFvGuid         = { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }}\r
+  gEfiSystemNvDataHobGuid        = { 0xD6E5092D, 0xC7B2, 0x4872, { 0xAF, 0x66, 0xFD, 0xC0, 0xE6, 0xF9, 0x5E, 0x78 }}\r
+  gPcdPeiCallbackFnTableHobGuid  = { 0xC625F4B2, 0xEA09, 0x4675, { 0x82, 0xD7, 0xBA, 0x36, 0x82, 0x15, 0x7A, 0x14 }}\r
+  gPcdDataBaseHobGuid            = { 0xEA296D92, 0x0B69, 0x423C, { 0x8C, 0x28, 0x33, 0xB4, 0xE0, 0xA9, 0x12, 0x68 }}\r
+  gEfiMdePkgTokenSpaceGuid       = { 0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC }}\r
+\r
 \r
 \r
 \r
 ################################################################################\r
 #\r
-# Library Class Header section - list of Library Class header files that are\r
-#                                provided by this package.\r
+# Global Protocols Definition section - list of Global Protocols C Name Data\r
+#                                  Structures that are provided by this package.\r
 #\r
 ################################################################################\r
-[LibraryClasses.common]\r
+[Protocols.common]\r
+  gEfiScsiIoProtocolGuid         = { 0x403CD195, 0xF233, 0x48EC, { 0x84, 0x55, 0xB2, 0xE5, 0x2F, 0x1D, 0x9E, 0x02 }}\r
+  gPerformanceProtocolGuid       = { 0x76B6BDFA, 0x2ACD, 0x4462, { 0x9E, 0x3F, 0xCB, 0x58, 0xC9, 0x69, 0xD9, 0x37 }}\r
+  gEfiUsbAtapiProtocolGuid       = { 0x2B2F68DA, 0x0CD2, 0x44CF, { 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 }}\r
+  gEfiOEMBadgingProtocolGuid     = { 0x170E13C0, 0xBF1B, 0x4218, { 0x87, 0x1D, 0x2A, 0xBD, 0xC6, 0xF8, 0x87, 0xBC }}\r
+  gEfiConsoleControlProtocolGuid = { 0xF42F7782, 0x012E, 0x4C12, { 0x99, 0x56, 0x49, 0xF9, 0x43, 0x04, 0xF7, 0x21 }}\r
+  gEfiFaultTolerantWriteLiteProtocolGuid = { 0x3F557189, 0x8DAE, 0x45AE, { 0xA0, 0xB3, 0x2B, 0x99, 0xCA, 0x7A, 0xA7, 0xA0 }}\r
+  gEfiFvbExtensionProtocolGuid   = { 0x53A4C71B, 0xB581, 0x4170, { 0x91, 0xB3, 0x8D, 0xB8, 0x7A, 0x4B, 0x5C, 0x46 }}\r
+  gEfiDiskInfoProtocolGuid       = { 0xD432A67F, 0x14DC, 0x484B, { 0xB3, 0xBB, 0x3F, 0x02, 0x91, 0x84, 0x93, 0x27 }}\r
+  gEfiGenericMemTestProtocolGuid = { 0x309DE7F1, 0x7F5E, 0x4ACE, { 0xB4, 0x9C, 0x53, 0x1B, 0xE5, 0xAA, 0x95, 0xEF }}\r
+  gEfiPrintProtocolGuid          = { 0xDF2D868E, 0x32FC, 0x4CF0, { 0x8E, 0x6B, 0xFF, 0xD9, 0x5D, 0x13, 0x43, 0xD0 }}\r
+  gEfiLoadPeImageProtocolGuid    = { 0x5CB5C776, 0x60D5, 0x45EE, { 0x88, 0x3C, 0x45, 0x27, 0x08, 0xCD, 0x74, 0x3F }}\r
+  gEfiCapsuleArchProtocolGuid    = { 0x5053697E, 0x2EBC, 0x4819, { 0x90, 0xD9, 0x05, 0x80, 0xDE, 0xEE, 0x57, 0x54 }}\r
+\r
 \r
 \r
 \r
 ################################################################################\r
 #\r
-# Global Guid Definition section - list of Global Guid C Name Data Structures\r
+# Global Ppis Definition section - list of Global Ppis C Name Data Structures\r
 #                                  that are provided by this package.\r
 #\r
 ################################################################################\r
-[Guids.common]\r
+[Ppis.common]\r
+  gPeiBaseMemoryTestPpiGuid      = { 0xB6EC423C, 0x21D2, 0x490D, { 0x85, 0xC6, 0xDD, 0x58, 0x64, 0xEA, 0xA6, 0x74 }}\r
 \r
 \r
-################################################################################\r
-#\r
-# Global Protocols Definition section - list of Global Protocols C Name Data\r
-#                                  Structures that are provided by this package.\r
-#\r
-################################################################################\r
-[Protocols.common]\r
 \r
 \r
 ################################################################################\r
 #\r
 ################################################################################\r
 \r
-[PcdsFeatureFlag.common]\r
+[PcdFeatureFlag.common]\r
+  PcdSupportUpdateCapsuleRest|0x0001001d|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE\r
+  PcdPeiPcdDatabaseTraverseEnabled|0x00010020|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdDxePcdDatabaseTraverseEnabled|0x00010021|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdPeiPcdDatabaseSetEnabled|0x00010030|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdPeiPcdDatabaseGetSizeEnabled|0x00010031|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdPeiPcdDatabaseCallbackOnSetEnabled|0x00010032|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdPeiPcdDatabaseExEnabled|0x00010033|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdDxeIplSupportEfiDecompress|0x00010034|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdDxeIplSupportTianoDecompress|0x00010035|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdDxeIplSupportCustomDecompress|0x00010036|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+  PcdDevicePathSupportDevicePathToText|0x00010037|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE\r
+  PcdDevicePathSupportDevicePathFromText|0x00010038|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE\r
+  PcdDxeIplBuildShareCodeHobs|0x0001003c|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE\r
+  PcdNtEmulatorEnable|0x0001003e|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE\r
+\r
+[PcdFixedAtBuild.common]\r
+  PcdMaxPeiPcdCallBackNumberPerPcdEntry|0x0001000f|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x08\r
+  PcdVpdBaseAddress|0x00010010|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0\r
+  PcdMaxSizePopulateCapsule|0x0001001e|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0\r
+  PcdMaxSizeNonPopulateCapsule|0x0001001f|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0\r
+  PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28\r
+  PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+\r
+[PcdDynamic.common]\r
+  PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+\r
+[PcdPatchableInModule.common]\r
+  PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28\r
+  PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+  PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0\r
+\r
+\r
+[PcdFeatureFlag.IA32]\r
+  PcdDxeIplSwitchToLongMode|0x0001003b|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE\r
+\r
 \r
index 79287dd..44214f4 100644 (file)
     <Filename>Universal/Disk/Partition/Dxe/Partition.msa</Filename>\r
     <Filename>Universal/Security/SecurityStub/SecurityStub.msa</Filename>\r
   </MsaFiles>\r
+  <GuidDeclarations>\r
+    <Entry Name="MdeModulePkgTokenSpace">\r
+      <C_Name>gEfiMdePkgTokenSpaceGuid</C_Name>\r
+      <GuidValue>A1AFF049-FDEB-442a-B320-13AB4CB72BBC</GuidValue>\r
+      <HelpText>All PCD define in MdeModulePkg is in this token space scope</HelpText>\r
+    </Entry>\r
+    <Entry Name="PcdDataBaseHob">\r
+      <C_Name>gPcdDataBaseHobGuid</C_Name>\r
+      <GuidValue>EA296D92-0B69-423C-8C28-33B4E0A91268</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="PcdPeiCallbackFnTable">\r
+      <C_Name>gPcdPeiCallbackFnTableHobGuid</C_Name>\r
+      <GuidValue>C625F4B2-EA09-4675-82D7-BA3682157A14</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="SystemNvDataHob">\r
+      <C_Name>gEfiSystemNvDataHobGuid</C_Name>\r
+      <GuidValue>D6E5092D-C7B2-4872-AF66-FDC0E6F95E78</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="SystemNvDataFv">\r
+      <C_Name>gEfiSystemNvDataFvGuid</C_Name>\r
+      <GuidValue>FFF12B8D-7696-4C8B-A985-2747075B4F50</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="DiskInfoIde">\r
+      <C_Name>gEfiDiskInfoIdeInterfaceGuid</C_Name>\r
+      <GuidValue>5E948FE3-26D3-42B5-AF17-610287188DEC</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="DiskInfoScsi">\r
+      <C_Name>gEfiDiskInfoScsiInterfaceGuid</C_Name>\r
+      <GuidValue>08F74BAA-EA36-41D9-9521-21A70F8780BC</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="DiskInfoUsb">\r
+      <C_Name>gEfiDiskInfoUsbInterfaceGuid</C_Name>\r
+      <GuidValue>CB871572-C11A-47B5-B492-675EAFA77727</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="AlternateFvBlock">\r
+      <C_Name>gEfiAlternateFvBlockGuid</C_Name>\r
+      <GuidValue>F496922D-172F-4BBC-A1EB-0EEB949C3486</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="ConsoleInDevice">\r
+      <C_Name>gEfiConsoleInDeviceGuid</C_Name>\r
+      <GuidValue>D3B36F2B-D551-11D4-9A46-0090273FC14D</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="ConsoleOutDevice">\r
+      <C_Name>gEfiConsoleOutDeviceGuid</C_Name>\r
+      <GuidValue>D3B36F2C-D551-11D4-9A46-0090273FC14D</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="StandardErrorDevice">\r
+      <C_Name>gEfiStandardErrorDeviceGuid</C_Name>\r
+      <GuidValue>D3B36F2D-D551-11D4-9A46-0090273FC14D</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="HotPlugDevice">\r
+      <C_Name>gEfiHotPlugDeviceGuid</C_Name>\r
+      <GuidValue>220AC432-1D43-49E5-A74F-4C9DA67AD23B</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="PrimaryStandardErrorDevice">\r
+      <C_Name>gEfiPrimaryStandardErrorDeviceGuid</C_Name>\r
+      <GuidValue>5A68191B-9B97-4752-9946-E36A5DA942B1</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="PrimaryConsoleInDevice">\r
+      <C_Name>gEfiPrimaryConsoleInDeviceGuid</C_Name>\r
+      <GuidValue>E451DCBE-96A1-4729-A5CF-6B9C2CFF47FD</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="PrimaryConsoleOutDevice">\r
+      <C_Name>gEfiPrimaryConsoleOutDeviceGuid</C_Name>\r
+      <GuidValue>62BDF38A-E3D5-492C-950C-23A7F66E672E</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="Bmp">\r
+      <C_Name>gEfiDefaultBmpLogoGuid</C_Name>\r
+      <GuidValue>7BB28B99-61BB-11D5-9A5D-0090273FC14D</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="BootState">\r
+      <C_Name>gEfiBootStateGuid</C_Name>\r
+      <GuidValue>60B5E939-0FCF-4227-BA83-6BBED45BC0E3</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="PciHotplugDevice">\r
+      <C_Name>gEfiPciHotplugDeviceGuid</C_Name>\r
+      <GuidValue>0B280816-52E7-4E51-AA57-11BD41CBEFC3</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="CapsuleVendor">\r
+      <C_Name>gEfiCapsuleVendorGuid</C_Name>\r
+      <GuidValue>711C703F-C285-4B10-A3B0-36ECBD3C8BE2</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="PeiPerformanceHob">\r
+      <C_Name>gPeiPerformanceHobGuid</C_Name>\r
+      <GuidValue>EC4DF5AF-4395-4CC9-94DE-77506D12C7B8</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="GenericPlatformVariable" GuidTypeList="EFI_VARIABLE">\r
+      <C_Name>gEfiGenericPlatformVariableGuid</C_Name>\r
+      <GuidValue>59d1c24f-50f1-401a-b101-f33e0daed443</GuidValue>\r
+      <HelpText>The variable space Guid to pair with a Unicode string name to tag an EFI variable</HelpText>\r
+    </Entry>\r
+  </GuidDeclarations>\r
+  <ProtocolDeclarations>\r
+    <Entry Name="Capsule">\r
+      <C_Name>gEfiCapsuleArchProtocolGuid</C_Name>\r
+      <GuidValue>5053697E-2EBC-4819-90D9-0580DEEE5754</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="LoadPeImage">\r
+      <C_Name>gEfiLoadPeImageProtocolGuid</C_Name>\r
+      <GuidValue>5CB5C776-60D5-45EE-883C-452708CD743F</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="Print">\r
+      <C_Name>gEfiPrintProtocolGuid</C_Name>\r
+      <GuidValue>DF2D868E-32FC-4CF0-8E6B-FFD95D1343D0</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="GenericMemTest">\r
+      <C_Name>gEfiGenericMemTestProtocolGuid</C_Name>\r
+      <GuidValue>309DE7F1-7F5E-4ACE-B49C-531BE5AA95EF</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="DiskInfo">\r
+      <C_Name>gEfiDiskInfoProtocolGuid</C_Name>\r
+      <GuidValue>D432A67F-14DC-484B-B3BB-3F0291849327</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="FvbExtension">\r
+      <C_Name>gEfiFvbExtensionProtocolGuid</C_Name>\r
+      <GuidValue>53A4C71B-B581-4170-91B3-8DB87A4B5C46</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="FaultTolerantWriteLite">\r
+      <C_Name>gEfiFaultTolerantWriteLiteProtocolGuid</C_Name>\r
+      <GuidValue>3F557189-8DAE-45AE-A0B3-2B99CA7AA7A0</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="ConsoleControl">\r
+      <C_Name>gEfiConsoleControlProtocolGuid</C_Name>\r
+      <GuidValue>F42F7782-012E-4C12-9956-49F94304F721</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="OEMBadging">\r
+      <C_Name>gEfiOEMBadgingProtocolGuid</C_Name>\r
+      <GuidValue>170E13C0-BF1B-4218-871D-2ABDC6F887BC</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="UsbAtapi">\r
+      <C_Name>gEfiUsbAtapiProtocolGuid</C_Name>\r
+      <GuidValue>2B2F68DA-0CD2-44CF-8E8B-BBA20B1B5B75</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="Performance">\r
+      <C_Name>gPerformanceProtocolGuid</C_Name>\r
+      <GuidValue>76B6BDFA-2ACD-4462-9E3F-CB58C969D937</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+    <Entry Name="ScsiIo">\r
+      <C_Name>gEfiScsiIoProtocolGuid</C_Name>\r
+      <GuidValue>403CD195-F233-48EC-8455-B2E52F1D9E02</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+  </ProtocolDeclarations>\r
+  <PpiDeclarations>\r
+    <Entry Name="BaseMemoryTest">\r
+      <C_Name>gPeiBaseMemoryTestPpiGuid</C_Name>\r
+      <GuidValue>B6EC423C-21D2-490D-85C6-DD5864EAA674</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
+  </PpiDeclarations>\r
+  <PcdDeclarations>\r
+    <PcdEntry>\r
+      <C_Name>PcdMaxPeiPcdCallBackNumberPerPcdEntry</C_Name>\r
+      <Token>0x0001000f</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
+      <DefaultValue>0x08</DefaultValue>\r
+      <HelpText>The maximum number of callback function, which will be triggered when
+        a PCD entry is been set, can be registered for a single PCD entry in PEI phase.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdVpdBaseAddress</C_Name>\r
+      <Token>0x00010010</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>The base address of the VPD (Vital Product Data) region. It is
+        normally a region reserved on flash.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdSupportUpdateCapsuleRest</C_Name>\r
+      <Token>0x0001001d</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>Indicate whether platform can support update capsule across a system reset</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdMaxSizePopulateCapsule</C_Name>\r
+      <Token>0x0001001e</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Indicate the max size the platform can support in case of populated capsules</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdMaxSizeNonPopulateCapsule</C_Name>\r
+      <Token>0x0001001f</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Indicate the max size the platform can support in case of non-populated capsules</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseTraverseEnabled</C_Name>\r
+      <Token>0x00010020</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the Pcd PEIM database
+        traverse capability. Disable it can reduce the size of final image generated.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdDxePcdDatabaseTraverseEnabled</C_Name>\r
+      <Token>0x00010021</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the Pcd DXE database
+        traverse capability. Disable it can reduce the size of final image generated.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdMaxPeiPerformanceLogEntries</C_Name>\r
+      <Token>0x0001002f</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT8</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE</ValidUsage>\r
+      <DefaultValue>28</DefaultValue>\r
+      <HelpText>Maximun number of performance log entries during PEI phase.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseSetEnabled</C_Name>\r
+      <Token>0x00010030</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the SET capability of PCD service PEIM. If a platform does not do PCD SET operation in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseGetSizeEnabled</C_Name>\r
+      <Token>0x00010031</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the GET size capability of PCD service PEIM. If a platform does not do PCD get size operation in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseCallbackOnSetEnabled</C_Name>\r
+      <Token>0x00010032</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the Callback On SET capability of PCD service PEIM. If a platform does not register any callback on set  in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdPeiPcdDatabaseExEnabled</C_Name>\r
+      <Token>0x00010033</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>This feature flag can be used to enable or disable the PCD service PEIM to handle DynamicEX PCD. If a platform has no module to use DynamicEX  in PEI phase. This flag can be set to DISABLE to save size.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageVariableBase</C_Name>\r
+      <Token>0x30000001</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Base address of the variable section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageVariableSize</C_Name>\r
+      <Token>0x30000002</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Size of the variable section in NV firmware volume..</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwSpareBase</C_Name>\r
+      <Token>0x30000013</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Base address of the FTW spare block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwSpareSize</C_Name>\r
+      <Token>0x30000014</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Size of the FTW spare block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwWorkingBase</C_Name>\r
+      <Token>0x30000010</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Base address of the FTW working block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdFlashNvStorageFtwWorkingSize</C_Name>\r
+      <Token>0x30000011</Token>\r
+      <TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>UINT32</DatumType>\r
+      <ValidUsage>FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC</ValidUsage>\r
+      <DefaultValue>0x0</DefaultValue>\r
+      <HelpText>Size of the FTW working block section in NV firmware volume.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdDxeIplSupportEfiDecompress</C_Name>\r
+      <Token>0x00010034</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>If this feature is enabled, then the DXE IPL must support decompressing files compressed with the EFI Compression algorithm</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdDxeIplSupportTianoDecompress</C_Name>\r
+      <Token>0x00010035</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>If this feature is enabled, then the DXE IPL must support decompressing files compressed with the Tiano Compression algorithm</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdDxeIplSupportCustomDecompress</C_Name>\r
+      <Token>0x00010036</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>If this feature is enabled, then the DXE IPL must support decompressing files compressed with the Custom Compression algorithm</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdDevicePathSupportDevicePathToText</C_Name>\r
+      <Token>0x00010037</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>If TRUE, then the Device Path To Text Protocol should be produced by the platform</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdDevicePathSupportDevicePathFromText</C_Name>\r
+      <Token>0x00010038</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>If TRUE, then the Device Path From Text Protocol should be produced by the platform</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry SupArchList="IA32">\r
+      <C_Name>PcdDxeIplSwitchToLongMode</C_Name>\r
+      <Token>0x0001003b</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>TRUE</DefaultValue>\r
+      <HelpText>If this feature is enabled, then the DXE IPL will load a 64-bit DxeCore.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdDxeIplBuildShareCodeHobs</C_Name>\r
+      <Token>0x0001003c</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>If this feature is enabled, DXE IPL will build a series of HOBs to share code with DXE Core.</HelpText>\r
+    </PcdEntry>\r
+    <PcdEntry>\r
+      <C_Name>PcdNtEmulatorEnable</C_Name>\r
+      <Token>0x0001003e</Token>\r
+      <TokenSpaceGuidCName>gEfiEdkModulePkgTokenSpaceGuid</TokenSpaceGuidCName>\r
+      <DatumType>BOOLEAN</DatumType>\r
+      <ValidUsage>FEATURE_FLAG</ValidUsage>\r
+      <DefaultValue>FALSE</DefaultValue>\r
+      <HelpText>If this PCD is set as TRUE, NT emulator will be endabled.</HelpText>\r
+    </PcdEntry>\r
+  </PcdDeclarations>\r
 </PackageSurfaceArea>\r