diff --git a/MdePkg/Include/Ipf/IpfMacro.i b/MdePkg/Include/Ipf/IpfMacro.i index 7166ed70aa..11a0d18271 100644 --- a/MdePkg/Include/Ipf/IpfMacro.i +++ b/MdePkg/Include/Ipf/IpfMacro.i @@ -1,5 +1,7 @@ -//++ -// Copyright (c) 2006, Intel Corporation +// @file +// Contains the macros required by calling procedures in Itanium-based assembly code. +// +// Copyright (c) 2006 - 2009, Intel Corporation // All rights reserved. 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 @@ -8,68 +10,49 @@ // THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, // WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. // -// Module Name: -// IpfMacro.i -// -// Abstract: -// Contains the macros needed for calling procedures in Itanium-based assembly code. -// -// -// Revision History: -// -//-- #ifndef __IA64PROC_I__ #define __IA64PROC_I__ - +// +// Delcare the begin of assembly function entry. +// +// @param name Name of function in assembly code. +// #define PROCEDURE_ENTRY(name) .##text; \ .##type name, @function; \ .##proc name; \ name:: +// +// End of assembly function. +// +// @param name Name of function in assembly code. +// #define PROCEDURE_EXIT(name) .##endp name -// Note: use of NESTED_SETUP requires number of locals (l) >= 3 - +// +// NESTED_SETUP Requires number of locals (l) >= 3 +// #define NESTED_SETUP(i,l,o,r) \ alloc loc1=ar##.##pfs,i,l,o,r ;\ mov loc0=b0 +// +// End of Nested +// #define NESTED_RETURN \ mov b0=loc0 ;\ mov ar##.##pfs=loc1 ;;\ br##.##ret##.##dpnt b0;; +// +// Export assembly function as the global function. +// +// @param Function Name of function in assembly code. +// #define GLOBAL_FUNCTION(Function) \ .##type Function, @function; \ .##globl Function -#define GLOBAL_OBJECT(Object) \ - .##type Object, @object; \ - .##globl Object - -#define GLOBAL_CONSTANT(Constant) \ - .##type Constant, @notype; \ - .##globl Constant - -#define INTERRUPT_HANDLER_BEGIN(name) \ -PROCEDURE_ENTRY(name##HandlerBegin) \ -;; \ -PROCEDURE_EXIT(name##HandlerBegin) - -#define INTERRUPT_HANDLER_END(name) \ -PROCEDURE_ENTRY(name##HandlerEnd) \ -;; \ -PROCEDURE_EXIT(name##HandlerEnd) - - -#define INTERRUPT_HANDLER_BLOCK_BEGIN \ -INTERRUPT_HANDLER_BEGIN(First) - -#define INTERRUPT_HANDLER_BLOCK_END \ -INTERRUPT_HANDLER_END(Last) - - - #endif diff --git a/MdePkg/Include/Library/ReportStatusCodeLib.h b/MdePkg/Include/Library/ReportStatusCodeLib.h index 8b71274d73..c2bf9e17fb 100644 --- a/MdePkg/Include/Library/ReportStatusCodeLib.h +++ b/MdePkg/Include/Library/ReportStatusCodeLib.h @@ -178,9 +178,8 @@ ReportStatusCode ( Allocates and fills in the extended data section of a status code with the Device Path Protocol specified by DevicePath. This function is responsible for allocating a buffer large enough for the standard header and the device - path. The standard header is filled in with a GUID of - gEfiStatusCodeSpecificDataGuid. The status code is reported with a zero - instance and a caller ID of gEfiCallerIdGuid. + path. The standard header is filled in with an implementation dependent GUID. + The status code is reported with a zero instance and a caller ID of gEfiCallerIdGuid. ReportStatusCodeWithDevicePath()must actively prevent recursion. If ReportStatusCodeWithDevicePath() is called while processing another any other @@ -220,7 +219,7 @@ ReportStatusCodeWithDevicePath ( These data structure do not have the standard header, so this function is responsible for allocating a buffer large enough for the standard header and the extended data passed into this function. The standard header is filled - in with a GUID of gEfiStatusCodeSpecificDataGuid. The status code is reported + in with an implementation dependent GUID. The status code is reported with a zero instance and a caller ID of gEfiCallerIdGuid. ReportStatusCodeWithExtendedData()must actively prevent recursion. If @@ -285,8 +284,7 @@ ReportStatusCodeWithExtendedData ( ID of gEfiCallerIdGuid is used. @param ExtendedDataGuid Pointer to the GUID for the extended data buffer. If this parameter is NULL, then a the status code - standard header is filled in with - gEfiStatusCodeSpecificDataGuid. + standard header is filled in with an implementation dependent GUID. @param ExtendedData Pointer to the extended data buffer. This is an optional parameter that may be NULL. @param ExtendedDataSize The size, in bytes, of the extended data buffer. @@ -368,7 +366,21 @@ ReportDebugCodeEnabled ( VOID ); +#ifndef NDEBUG +#if 0 +//#if __INTEL_COMPILER +#define REPORT_STATUS_CODE(Type,Value) ReportStatusCode(Type,Value) +#define REPORT_STATUS_CODE_WITH_DEVICE_PATH(Type,Value,DevicePathParameter) \ + ReportStatusCodeWithDevicePath(Type,Value,DevicePathParameter) + +#define REPORT_STATUS_CODE_WITH_EXTENDED_DATA(Type,Value,ExtendedData,ExtendedDataSize) \ + ReportStatusCodeWithExtendedData(Type,Value,ExtendedData,ExtendedDataSize) + +#define REPORT_STATUS_CODE_EX(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) \ + ReportStatusCodeEx(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) + +#else /** Reports a status code with minimal parameters if the status code type is enabled. @@ -472,8 +484,7 @@ ReportDebugCodeEnabled ( ID of gEfiCallerIdGuid is used. @param ExtendedDataGuid Pointer to the GUID for the extended data buffer. If this parameter is NULL, then a the status code - standard header is filled in with - gEfiStatusCodeSpecificDataGuid. + standard header is filled in with an implementation dependent GUID. @param ExtendedData Pointer to the extended data buffer. This is an optional parameter that may be NULL. @param ExtendedDataSize The size, in bytes, of the extended data buffer. @@ -494,5 +505,13 @@ ReportDebugCodeEnabled ( (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) ? \ ReportStatusCodeEx(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) : \ EFI_UNSUPPORTED +#endif + +#else +#define REPORT_STATUS_CODE(Type,Value) EFI_UNSUPPORTED +#define REPORT_STATUS_CODE_WITH_DEVICE_PATH(Type,Value,DevicePathParameter) EFI_UNSUPPORTED +#define REPORT_STATUS_CODE_WITH_EXTENDED_DATA(Type,Value,ExtendedData,ExtendedDataSize) EFI_UNSUPPORTED +#define REPORT_STATUS_CODE_EX(Type,Value,Instance,CallerId,ExtendedDataGuid,ExtendedData,ExtendedDataSize) EFI_UNSUPPORTED +#endif #endif diff --git a/MdePkg/Include/Protocol/PlatformDriverOverride.h b/MdePkg/Include/Protocol/PlatformDriverOverride.h index 2219ea65ba..cbcdefc083 100644 --- a/MdePkg/Include/Protocol/PlatformDriverOverride.h +++ b/MdePkg/Include/Protocol/PlatformDriverOverride.h @@ -63,9 +63,10 @@ EFI_STATUS PROTOCOL instance. @param ControllerHandle The device handle of the controller to check if a driver override exists. - @param DriverImageHandle On input, a pointer to the previous driver image handle returned - by GetDriverPath(). On output, a pointer to the next driver - device path. + @param DriverImagePath On input, a pointer to the previous driver device path returned by + GetDriverPath(). On output, a pointer to the next driver + device path. Passing in a pointer to NULL, will return the first + driver device path for ControllerHandle. @retval EFI_SUCCESS The driver override for ControllerHandle was returned in DriverImageHandle.