/*++ Copyright (c) 2006, 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: plDebugSupport.h Abstract: IA32 specific debug support macros, typedefs and prototypes. Revision History --*/ #ifndef _PLDEBUG_SUPPORT_H #define _PLDEBUG_SUPPORT_H #define NUM_IDT_ENTRIES 0x78 #define SYSTEM_TIMER_VECTOR 0x68 #define VECTOR_ENTRY_PAGES 1 #define CopyDescriptor(Dest, Src) CopyMem ((Dest), (Src), sizeof (DESCRIPTOR)) #define ZeroDescriptor(Dest) CopyDescriptor ((Dest), &NullDesc) #define ReadIdt(Vector, Dest) CopyDescriptor ((Dest), &((GetIdtr ())[(Vector)])) #define WriteIdt(Vector, Src) CopyDescriptor (&((GetIdtr ())[(Vector)]), (Src)) #define CompareDescriptor(Desc1, Desc2) CompareMem ((Desc1), (Desc2), sizeof (DESCRIPTOR)) #define EFI_ISA IsaIa32 #define FF_FXSR (1 << 24) typedef UINT64 DESCRIPTOR; typedef struct { DESCRIPTOR OrigDesc; VOID (*OrigVector) (VOID); DESCRIPTOR NewDesc; VOID (*StubEntry) (VOID); VOID (*RegisteredCallback) (); } IDT_ENTRY; extern EFI_SYSTEM_CONTEXT SystemContext; extern UINT8 InterruptEntryStub[]; extern UINT32 StubSize; extern VOID (*OrigVector) (VOID); VOID CommonIdtEntry ( VOID ) /*++ Routine Description: TODO: Add function description Arguments: None Returns: TODO: add return values --*/ ; BOOLEAN FxStorSupport ( VOID ) /*++ Routine Description: TODO: Add function description Arguments: None Returns: TODO: add return values --*/ ; DESCRIPTOR * GetIdtr ( VOID ) /*++ Routine Description: TODO: Add function description Arguments: None Returns: TODO: add return values --*/ ; VOID Vect2Desc ( DESCRIPTOR * DestDesc, VOID (*Vector) (VOID) ) /*++ Routine Description: TODO: Add function description Arguments: DestDesc - TODO: add argument description ) - TODO: add argument description Returns: TODO: add return values --*/ ; BOOLEAN WriteInterruptFlag ( BOOLEAN NewState ) /*++ Routine Description: TODO: Add function description Arguments: NewState - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS plInitializeDebugSupportDriver ( VOID ) /*++ Routine Description: TODO: Add function description Arguments: None Returns: TODO: add return values --*/ ; EFI_STATUS EFIAPI plUnloadDebugSupportDriver ( IN EFI_HANDLE ImageHandle ) /*++ Routine Description: TODO: Add function description Arguments: ImageHandle - TODO: add argument description Returns: TODO: add return values --*/ ; // // DebugSupport protocol member functions // EFI_STATUS EFIAPI GetMaximumProcessorIndex ( IN EFI_DEBUG_SUPPORT_PROTOCOL *This, OUT UINTN *MaxProcessorIndex ) /*++ Routine Description: TODO: Add function description Arguments: This - TODO: add argument description MaxProcessorIndex - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS EFIAPI RegisterPeriodicCallback ( IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN EFI_PERIODIC_CALLBACK PeriodicCallback ) /*++ Routine Description: TODO: Add function description Arguments: This - TODO: add argument description ProcessorIndex - TODO: add argument description PeriodicCallback - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS EFIAPI RegisterExceptionCallback ( IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN EFI_EXCEPTION_CALLBACK NewCallback, IN EFI_EXCEPTION_TYPE ExceptionType ) /*++ Routine Description: TODO: Add function description Arguments: This - TODO: add argument description ProcessorIndex - TODO: add argument description NewCallback - TODO: add argument description ExceptionType - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS EFIAPI InvalidateInstructionCache ( IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN VOID *Start, IN UINT64 Length ) /*++ Routine Description: TODO: Add function description Arguments: This - TODO: add argument description ProcessorIndex - TODO: add argument description Start - TODO: add argument description Length - TODO: add argument description Returns: TODO: add return values --*/ ; #endif