+ Class General Definitions: NULL_HANDLE definition is removed from UefiBaseType.h. If any modules referencs NULL_HANDLE, they should be updated to use NULL. \r
+ \r
+EDK_5869: Non-Compatible: qhuang8\r
+ Class General Definitions: Update the macro ALIGN_VARIALBE to drop the second parameter.\r
+ \r
+ Code Change:\r
+ The macro ALIGN_VARIABLE in base.h is changed to keep the first paramter\r
+\r
+ Possible Impacts:\r
+ Modules using this macro, it needs to adapt to new interface.\r
+ \r
+EDK_5939: Non-Compatible: qwang12\r
+ Library API moved from HiiLib to UefiLib.\r
+ \r
+ Code Change:\r
+ Change HiiLibGetCurrentLanguage to GetCurrentLanguage and moved it from HiiLib to UefiLib.\r
+\r
+ Possible Impacts:\r
+ All module that reference HiiLibGetCurrentLanguage should be updated in the following step:\r
+ 0) Change HiiLibGetCurrentLanguage to GetCurrentLanguage.\r
+ 1) Add UefiLib to [LibraryClass] in INF if it is not included before.\r
+ 2) Remove HiiLib from [LibraryClass] if HiiLibGetCurrentLanguage is the only API from original HiiLib referenced by this module.\r
+ 3) Add UefiLib to [LibraryClasses.common.Module Type] for the affected module if UefiLib is not in the list.\r
+ \r
+EDK_5989: Non-Compatible: qwang12\r
+ Library API name changed:\r
+ In IfrSupportLib,\r
+ Rename BufToHexString to BufInReverseOrderToHexString \r
+ Rename HexStringToBuf to HexStringToBufInReverseOrder\r
+\r
+Possible Impacts:\r
+ All module that reference BufToHexString or HexStringToBuf should be updated in the following step:\r
+ 0) Change HiiLibGetCurrentLanguage to GetCurrentLanguage.\r
+ 1) Change BufToHexString to BufInReverseOrderToHexString \r
+ 2) Change HexStringToBuf to HexStringToBufInReverseOrder\r
+\r
+EDK_6111: Non-Compatible: qwang12\r
+ Module type Include file is not included on default.\r
+ In Protocol/PPI/GUID/Libary header file, the "#include" of the module type header file such as <Base.h>, <PiPei.h>, <PiDxe.h> and \r
+ <Uefi.h> are removed. The module (DXE driver, UEFI Driver, PEIM) should include these files if required.\r
+\r
+Possible Impacts:\r
+ Customer's module (DXE driver, UEFI Driver, PEIM) may failed to build as module type header file such as <Base.h>, <PiPei.h>, <PiDxe.h>\r
+ <Uefi.h> is removed from the Protocol/PPI/GUID/Libary header file. If the module can build before the update but failed after the update\r
+ because of some undefined basic data type such as "EFI_GUID", module developer should include the module type header file accordingly.\r
+ \r
+EDK_6131: Non-Compatible: qwang12\r
+\r
+Base on PI spec, GetPeiServicesTablePointer in PeiServicesTablePointer library is updated to return CONST EFI_PEI_SERVICES**. This is a incompatible changes. All file that reference this must be updated.\r
+\r
+Possible Impacts:\r
+ Customer's module that reference GetPeiServicesTablePointer in PeiServicesTablePointer library may need to updated. Otherwise\r
+ a build break (mismatch of data type) may occur.\r
+ \r
+EDK_6307: Non-Compatible: qwang12\r
+\r
+Remove SafeFreePool from MemoryAllocationLib as this API's name is misleading. Its implementation only check if a pointer is NULL. If a garbage pointer is passed in, the gBS->FreePool will still ASSERT in debug build and return error code. \r
+\r
+It is recommended that module writer should keep track how a pointer is allocated and free it after use.\r
+\r
+Possible Impacts:\r
+ Customer's module that reference SafeFreePool need to updated. Otherwise\r
+ a build break may occur.\r
+ \r
+EDK_6455-6460: Non-Compatible: klu2\r
+ 1. Clean up device path protocol header file, move device path utility macros to MdePkg\Include\DevicePathLib.h.\r
+ 2. I remove "Efi" prefix for this utility function macro name. \r
+ 3. The upacked device path type is removed. Should use device path utility macro to access structure's member.\r
+\r
+Possible Impacts:\r
+ 1. Customer's module that access device path node's structure need use DevicePathLib\r
+ 2. Should not use unpacked type device path node, this type is retired.\r
+ 3. If want to access private member in device path node, customer module need DuplicateDevicePath() at first to \r
+ make sure node is in alignment.\r
+ \r
+EDK_6496-6519: Non-Compatible: qhuang8\r
+\r
+ A bundle of library class/instance renames, moves and merges:\r
+ 1. Rename library class UsbLib to UefiUsbLib\r
+ 2. Rename library class ScsiLib to UefiScsiLib\r
+ 3. Rename library class PalCallLib to PalLib\r
+ 4. Rename library class DxePiLib to DxeSerivcesLib and drop the prefix "PiLib" to all its APIs.\r
+ 5. Merge library class PiPeiLib to PeiServicesLib and rename the PiLibInstallFvInfoPpi() to PeiServicesInstallFvInfoPpi()\r
+ 6. Move library class HiiLib to MdeModulePkg\r
+ 7. Move library class IfrSupportLib to MdeModulePkg\r
+ 8. Move library class FvbServiceLib to MdeModulePkg\r
+ 9. Rename library instance of BasePalCallLibNull to BasePalLibNull\r
+ 10. Move library instance UefiHiiLib to MdeModulePkg\r
+ 11. Move library instance UefiIfrSupportLib to MdeModulePkg\r
+\r
+Possible Impacts:\r
+ Every change listed above is non-backward compatible for MdePkg and other packages. It is required to update module\r
+ sources (*.c;*.h), module meta data files (*.inf) and update the platform DSC files to fix the build break.\r
+ However, it is less likely to bring about functional issue for these updates.\r
+\r
+\r
+EDK_6565: Non-Compatible: qhuang8\r
+ \r
+ Remove some macro in UefiScsiLib:\r
+ EFI_SCSI_STALL_1_MICROSECOND, EFI_SCSI_STALL_1_MILLISECOND, EFI_SCSI_STALL_1_SECOND & EFI_SCSI_STALL_SECONDS(a) \r
+ \r
+Possible Impacts:\r
+ Modules depending on UefiScsiLib for these macros should update the source to use new UefiLib macros\r
+ EFI_TIMER_PERIOD_MICROSECONDS(X), EFI_TIMER_PERIOD_MILLISECONDS(X) and EFI_TIMER_PERIOD_SECONDS(X) for managing Timer Events.\r
+ Especailly, EFI_SCSI_STALL_SECONDS(a) is simply replaced by EFI_TIMER_PERIOD_SECONDS(a)\r
+\r
+EDK_6886: Non-Compatible: mdkinney\r
+ \r
+ Rename _CR macro defined in MdePkg/Include/Base.h to BASE_CR macro aligned to MdeLib spec.\r
+\r
+Possible Impacts:\r
+ All source codes that depends on _CR macro must be changed to use BASE_CR. \r
+\r
+EDK_6935: Non-Compatible: lgao4\r
+ \r
+ In MdePkg/Include/Guid/FileSystemVolumeLabelInfo.h file, to follow UEFI specification.\r
+ Rename EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID_GUID to EFI_FILE_SYSTEM_VOLUME_LABEL_ID\r
+ Rename EFI_FILE_SYSTEM_VOLUME_LABEL_INFO to EFI_FILE_SYSTEM_VOLUME_LABEL.\r
+\r
+Possible Impacts:\r
+ All source codes that refer to EFI_FILE_SYSTEM_VOLUME_LABEL_INFO_ID_GUID or EFI_FILE_SYSTEM_VOLUME_LABEL_INFO\r
+ must be changed to use their definitions from UEFI specification. \r
+\r
+EDK_6974: Non-Compatible: lgao4\r
+ \r
+ In MdePkg/Include/Uefi/UefiSpec.h file, to follow UEFI2.1 specification.\r
+ Rename struct EFI_KEY_OPTION.KeyOptions to EFI_KEY_OPTION.KeyData\r
+\r
+Possible Impacts:\r
+ All source codes that refer to EFI_KEY_OPTION.KeyOptions\r
+ must be changed to use EFI_KEY_OPTION.KeyData from UEFI specification. \r
+\r
+EDK_7057: Non-Compatible: qhuang8\r
+ Retired the following macros defined in MdePkg/Include/Uefi/UefiBaseType.h:\r
+ EFI_SIGNATURE_16, EFI_SIGNATURE_32, EFI_SIGNATURE_64, EFI_FIELD_OFFSET, EFI_MAX_BIT & EFI_MAX_ADDRESS\r
+ \r
+Possible impacts:\r
+ All EDKII native source code needs to update to use the equivelent macros (without "EFI_" prefix except for\r
+ EFI_FIELD_OFFSET) defined in MdePkg\Include\Base.h and MdePkg\Include\$(ARCH)\ProcessorBinding.h:\r
+ EFI_SIGNATURE_16 -> SIGNATURE_16\r
+ EFI_SIGNATURE_32 -> SIGNATURE_32\r
+ EFI_SIGNATURE_64 -> SIGNATURE_64\r
+ EFI_FIELD_OFFSET -> OFFSET_OF\r
+ EFI_MAX_BIT -> MAX_BIT\r
+ EFI_MAX_ADDRESS -> MAX_ADDRESS\r