Add in the 1st version of ECP.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
104
EdkCompatibilityPkg/Foundation/Include/Pei/PeiDebug.h
Normal file
104
EdkCompatibilityPkg/Foundation/Include/Pei/PeiDebug.h
Normal file
@@ -0,0 +1,104 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2007, 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
|
||||
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.
|
||||
|
||||
Module Name:
|
||||
|
||||
PeiDebug.h
|
||||
|
||||
Abstract:
|
||||
|
||||
PEI Debug macros. The work needs to be done in library. The Debug
|
||||
macros them selves are standard for all files, including the core.
|
||||
|
||||
There needs to be code linked in that produces the following macros:
|
||||
|
||||
PeiDebugAssert(file, linenumber, assertion string) - worker function for
|
||||
ASSERT. filename and line number of where this ASSERT() is located
|
||||
is passed in along with the stringized version of the assertion.
|
||||
|
||||
PeiDebugPrint - Worker function for debug print
|
||||
|
||||
_DEBUG_SET_MEM(address, length, value) - Set memory at address to value
|
||||
for legnth bytes. This macro is used to initialzed uninitialized memory
|
||||
or memory that is free'ed, so it will not be used by mistake.
|
||||
|
||||
--*/
|
||||
|
||||
#ifndef _PEIDEBUG_H_
|
||||
#define _PEIDEBUG_H_
|
||||
|
||||
#ifdef EFI_DEBUG
|
||||
|
||||
VOID
|
||||
PeiDebugAssert (
|
||||
IN CONST EFI_PEI_SERVICES **PeiServices,
|
||||
IN CHAR8 *FileName,
|
||||
IN INTN LineNumber,
|
||||
IN CHAR8 *Description
|
||||
);
|
||||
|
||||
VOID
|
||||
PeiDebugPrint (
|
||||
IN CONST EFI_PEI_SERVICES **PeiServices,
|
||||
IN UINTN ErrorLevel,
|
||||
IN CHAR8 *Format,
|
||||
...
|
||||
);
|
||||
|
||||
#define _PEI_DEBUG_ASSERT(PeiST, assertion) \
|
||||
PeiDebugAssert (PeiST, __FILE__, __LINE__, #assertion)
|
||||
|
||||
#define _PEI_DEBUG(PeiST, arg) PeiDebugPrint (PeiST, arg)
|
||||
|
||||
//
|
||||
// Define ASSERT() macro, if assertion is FALSE trigger the ASSERT
|
||||
//
|
||||
#define PEI_ASSERT(PeiST, assertion) if(!(assertion)) \
|
||||
_PEI_DEBUG_ASSERT(PeiST, assertion)
|
||||
|
||||
#define PEI_ASSERT_LOCKED(PeiST, l) if(!(l)->Lock) _PEI_DEBUG_ASSERT(PeiST, l not locked)
|
||||
|
||||
//
|
||||
// DEBUG((DebugLevel, "format string", ...)) - if DebugLevel is active do
|
||||
// the a debug print.
|
||||
//
|
||||
|
||||
#define PEI_DEBUG(arg) PeiDebugPrint arg
|
||||
|
||||
#define PEI_DEBUG_CODE(code) code
|
||||
|
||||
#define PEI_CR(Record, TYPE, Field, Signature) \
|
||||
_CR(Record, TYPE, Field)
|
||||
|
||||
|
||||
#define _PEI_DEBUG_SET_MEM(address, length, data) SetMem(address, length, data)
|
||||
|
||||
#else
|
||||
#define PEI_ASSERT(PeiST, a)
|
||||
#define PEI_ASSERT_LOCKED(PeiST, l)
|
||||
#define PEI_DEBUG(arg)
|
||||
#define PEI_DEBUG_CODE(code)
|
||||
#define PEI_CR(Record, TYPE, Field, Signature) \
|
||||
_CR(Record, TYPE, Field)
|
||||
#define _PEI_DEBUG_SET_MEM(address, length, data)
|
||||
#endif
|
||||
|
||||
#define ASSERT_PEI_ERROR(PeiST, status) PEI_ASSERT(PeiST, !EFI_ERROR(status))
|
||||
|
||||
#ifdef EFI_DEBUG_CLEAR_MEMORY
|
||||
#define PEI_DEBUG_SET_MEMORY(address,length) \
|
||||
_PEI_DEBUG_SET_MEM(address, length, EFI_BAD_POINTER_AS_BYTE)
|
||||
#else
|
||||
#define PEI_DEBUG_SET_MEMORY(address,length)
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user