- opints -> points - sucessfully -> successfully - suported -> supported - hexidecimal -> hexadecimal - TURE -> TRUE - servity -> severity - Moudle -> Module - contiue -> continue - infomation -> information - malformated -> malformatted - Pepresentation -> Representation - opeque -> opaque - assocated -> associated - Libary -> Library - descrption -> description - paramter -> parameter - chracter -> character Cc: Feng Tian <feng.tian@intel.com> Cc: Star Zeng <star.zeng@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gary Lin <glin@suse.com> Reviewed-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
		
			
				
	
	
		
			104 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Debug Agent Library provide source-level debug capability.
 | 
						|
 | 
						|
Copyright (c) 2010 - 2012, 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 that 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.
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __DEBUG_AGENT_LIB_H__
 | 
						|
#define __DEBUG_AGENT_LIB_H__
 | 
						|
 | 
						|
#define DEBUG_AGENT_INIT_PREMEM_SEC              1
 | 
						|
#define DEBUG_AGENT_INIT_POSTMEM_SEC             2
 | 
						|
#define DEBUG_AGENT_INIT_DXE_CORE                3
 | 
						|
#define DEBUG_AGENT_INIT_SMM                     4
 | 
						|
#define DEBUG_AGENT_INIT_ENTER_SMI               5
 | 
						|
#define DEBUG_AGENT_INIT_EXIT_SMI                6
 | 
						|
#define DEBUG_AGENT_INIT_S3                      7
 | 
						|
#define DEBUG_AGENT_INIT_DXE_AP                  8
 | 
						|
#define DEBUG_AGENT_INIT_PEI                     9
 | 
						|
#define DEBUG_AGENT_INIT_DXE_LOAD               10
 | 
						|
#define DEBUG_AGENT_INIT_DXE_UNLOAD             11
 | 
						|
#define DEBUG_AGENT_INIT_THUNK_PEI_IA32TOX64    12
 | 
						|
 | 
						|
//
 | 
						|
// Context for DEBUG_AGENT_INIT_POSTMEM_SEC
 | 
						|
//
 | 
						|
typedef struct {
 | 
						|
  UINTN          HeapMigrateOffset;
 | 
						|
  UINTN          StackMigrateOffset;
 | 
						|
} DEBUG_AGENT_CONTEXT_POSTMEM_SEC;
 | 
						|
 | 
						|
/**
 | 
						|
  Caller provided function to be invoked at the end of InitializeDebugAgent().
 | 
						|
 | 
						|
  Refer to the description for InitializeDebugAgent() for more details.
 | 
						|
 | 
						|
  @param[in] Context    The first input parameter of InitializeDebugAgent().
 | 
						|
 | 
						|
**/
 | 
						|
typedef
 | 
						|
VOID
 | 
						|
(EFIAPI * DEBUG_AGENT_CONTINUE)(
 | 
						|
  IN VOID        *Context
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Initialize debug agent.
 | 
						|
 | 
						|
  This function is used to set up debug environment to support source level debugging.
 | 
						|
  If certain Debug Agent Library instance has to save some private data in the stack,
 | 
						|
  this function must work on the mode that doesn't return to the caller, then
 | 
						|
  the caller needs to wrap up all rest of logic after InitializeDebugAgent() into one
 | 
						|
  function and pass it into InitializeDebugAgent(). InitializeDebugAgent() is
 | 
						|
  responsible to invoke the passing-in function at the end of InitializeDebugAgent().
 | 
						|
 | 
						|
  If the parameter Function is not NULL, Debug Agent Library instance will invoke it by
 | 
						|
  passing in the Context to be its parameter.
 | 
						|
 | 
						|
  If Function() is NULL, Debug Agent Library instance will return after setup debug
 | 
						|
  environment.
 | 
						|
 | 
						|
  @param[in] InitFlag     Init flag is used to decide the initialize process.
 | 
						|
  @param[in] Context      Context needed according to InitFlag; it was optional.
 | 
						|
  @param[in] Function     Continue function called by debug agent library; it was
 | 
						|
                          optional.
 | 
						|
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
InitializeDebugAgent (
 | 
						|
  IN UINT32                InitFlag,
 | 
						|
  IN VOID                  *Context, OPTIONAL
 | 
						|
  IN DEBUG_AGENT_CONTINUE  Function  OPTIONAL
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  Enable/Disable the interrupt of debug timer and return the interrupt state
 | 
						|
  prior to the operation.
 | 
						|
 | 
						|
  If EnableStatus is TRUE, enable the interrupt of debug timer.
 | 
						|
  If EnableStatus is FALSE, disable the interrupt of debug timer.
 | 
						|
 | 
						|
  @param[in] EnableStatus    Enable/Disable.
 | 
						|
 | 
						|
  @retval TRUE  Debug timer interrupt were enabled on entry to this call.
 | 
						|
  @retval FALSE Debug timer interrupt were disabled on entry to this call.
 | 
						|
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
SaveAndSetDebugTimerInterrupt (
 | 
						|
  IN BOOLEAN                EnableStatus
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 |