## @file
# The EdkCompatibilityPkg provides header files and libraries that enable you to build the EDK module 
# in UEFI 2.0 + Framework 0.9x mode. This package also provides Thunk modules that enable Framework 0.9x modules to work with UEFI2.3/PI1.2 EDK II Cores.
# EdkCompatibilityPkg is based on the EDK 1.01 release, found at http://edk.tianocore.org. This package only 
# contains the header files and libraries found in the original EDK. EdkCompatibilityPkg code is ANSI C compliant, so the modules can be built with GCC tool-chains. 
# This package also incorporates bug fixes released in EDK 1.06.
# 
# Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.<BR>
#
#    This program and the accompanying materials are licensed and made available under
#    the terms and conditions of the BSD License which accompanies this distribution.
#    The full text of the license may be found at
#    http://opensource.org/licenses/bsd-license.php
#
#    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
##

[Defines]
  DEC_SPECIFICATION              = 0x00010005
  PACKAGE_NAME                   = EdkCompatibilityPkg
  PACKAGE_GUID                   = 98EDD7B0-2A6C-4b4a-AC72-4AAE0F95A3F8
  PACKAGE_VERSION                = 0.92
  
[Includes]
  Compatibility/Include

[LibraryClasses]
  ##  @libraryclass  Provides functions for language conversion between
  #                  ISO 639-2 and RFC 4646 styles.
  ##
  LanguageLib|Compatibility/Include/Library/LanguageLib.h

[Guids]
  gEfiSmmBaseThunkCommunicationGuid       = { 0x6568a3d6, 0x15f, 0x4b4a, { 0x9c, 0x89, 0x1d, 0x14, 0x63, 0x14, 0x13, 0xa } }
  gEfiBootStateGuid                       = { 0x60b5e939, 0xfcf, 0x4227, { 0xba, 0x83, 0x6b, 0xbe, 0xd4, 0x5b, 0xc0, 0xe3 } }
  gEfiEdkCompatibilityPkgTokenSpaceGuid   = { 0x2354d320, 0x3eb3, 0x4c81, { 0x99, 0xf4, 0xcc, 0x4a, 0xe1, 0x43, 0x46, 0x3e }}
  gFrameworkBdsFrontPageFormsetGuid       = { 0x9e0c30bc, 0x3f06, 0x4ba6, { 0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe }}

[Ppis]
  gEcpPeiPciCfgPpiGuid                    = { 0xb0ee53d4, 0xa049, 0x4a79, { 0xb2, 0xff, 0x19, 0xd9, 0xfa, 0xef, 0xaa, 0x94 }} 

[Protocols]
  gEfiPrintProtocolGuid                   = { 0xdf2d868e, 0x32fc, 0x4cf0, {0x8e, 0x6b, 0xff, 0xd9, 0x5d, 0x13, 0x43, 0xd0} }
  gEfiSmmBaseHelperReadyProtocolGuid      = { 0x910dca07, 0x1f94, 0x4ee7, { 0xaf, 0x2f, 0xff, 0x72, 0xf3, 0x15, 0x43, 0x53 } }

[PcdsDynamic, PcdsDynamicEx]
  gEfiEdkCompatibilityPkgTokenSpaceGuid.BootScriptThunkDataPtr|0x0|UINT64|0x30000001

