summaryrefslogtreecommitdiff
path: root/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
diff options
context:
space:
mode:
authorGuo Mang <mang.guo@intel.com>2016-12-22 17:11:19 +0800
committerGuo Mang <mang.guo@intel.com>2016-12-26 19:14:50 +0800
commit2cc68ed95f4e6a5b6256a6cc1e9f6a585a7d2ba7 (patch)
treee6f0cc497ee0f06782388ab114fd2f3d37bddcc5 /UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
parenta6747ab91782ba4309b5f12301c8b43b1b4702dd (diff)
downloadedk2-platforms-2cc68ed95f4e6a5b6256a6cc1e9f6a585a7d2ba7.tar.xz
UefiCpuPkg: Move to new location
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang <mang.guo@intel.com>
Diffstat (limited to 'UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h')
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h284
1 files changed, 0 insertions, 284 deletions
diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h b/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
deleted file mode 100644
index 9c88012e0b..0000000000
--- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
+++ /dev/null
@@ -1,284 +0,0 @@
-/** @file
- Common header file for CPU Exception Handler Library.
-
- Copyright (c) 2012 - 2016, 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
- 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.
-
-**/
-
-#ifndef _CPU_EXCEPTION_COMMON_H_
-#define _CPU_EXCEPTION_COMMON_H_
-
-#include <Ppi/VectorHandoffInfo.h>
-#include <Protocol/Cpu.h>
-#include <Library/BaseLib.h>
-#include <Library/SerialPortLib.h>
-#include <Library/PrintLib.h>
-#include <Library/LocalApicLib.h>
-#include <Library/PeCoffGetEntryPointLib.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/SynchronizationLib.h>
-
-#define CPU_EXCEPTION_NUM 32
-#define CPU_INTERRUPT_NUM 256
-#define HOOKAFTER_STUB_SIZE 16
-
-#include "ArchInterruptDefs.h"
-
-#define CPU_EXCEPTION_HANDLER_LIB_HOB_GUID \
- { \
- 0xb21d9148, 0x9211, 0x4d8f, { 0xad, 0xd3, 0x66, 0xb1, 0x89, 0xc9, 0x2c, 0x83 } \
- }
-
-//
-// Record exception handler information
-//
-typedef struct {
- UINTN ExceptionStart;
- UINTN ExceptionStubHeaderSize;
- UINTN HookAfterStubHeaderStart;
-} EXCEPTION_HANDLER_TEMPLATE_MAP;
-
-typedef struct {
- UINTN IdtEntryCount;
- SPIN_LOCK DisplayMessageSpinLock;
- RESERVED_VECTORS_DATA *ReservedVectors;
- EFI_CPU_INTERRUPT_HANDLER *ExternalInterruptHandler;
-} EXCEPTION_HANDLER_DATA;
-
-extern CONST UINT32 mErrorCodeFlag;
-extern CONST UINTN mImageAlignSize;
-extern CONST UINTN mDoFarReturnFlag;
-extern RESERVED_VECTORS_DATA *mReservedVectors;
-
-/**
- Return address map of exception handler template so that C code can generate
- exception tables.
-
- @param AddressMap Pointer to a buffer where the address map is returned.
-**/
-VOID
-EFIAPI
-AsmGetTemplateAddressMap (
- OUT EXCEPTION_HANDLER_TEMPLATE_MAP *AddressMap
- );
-
-/**
- Return address map of exception handler template so that C code can generate
- exception tables.
-
- @param IdtEntry Pointer to IDT entry to be updated.
- @param InterruptHandler IDT handler value.
-
-**/
-VOID
-ArchUpdateIdtEntry (
- IN IA32_IDT_GATE_DESCRIPTOR *IdtEntry,
- IN UINTN InterruptHandler
- );
-
-/**
- Read IDT handler value from IDT entry.
-
- @param IdtEntry Pointer to IDT entry to be read.
-
-**/
-UINTN
-ArchGetIdtHandler (
- IN IA32_IDT_GATE_DESCRIPTOR *IdtEntry
- );
-
-/**
- Prints a message to the serial port.
-
- @param Format Format string for the message to print.
- @param ... Variable argument list whose contents are accessed
- based on the format string specified by Format.
-
-**/
-VOID
-EFIAPI
-InternalPrintMessage (
- IN CONST CHAR8 *Format,
- ...
- );
-
-/**
- Find and display image base address and return image base and its entry point.
-
- @param CurrentEip Current instruction pointer.
- @param EntryPoint Return module entry point if module header is found.
-
- @return !0 Image base address.
- @return 0 Image header cannot be found.
-**/
-UINTN
-FindModuleImageBase (
- IN UINTN CurrentEip,
- OUT UINTN *EntryPoint
- );
-
-/**
- Display CPU information.
-
- @param ExceptionType Exception type.
- @param SystemContext Pointer to EFI_SYSTEM_CONTEXT.
-**/
-VOID
-DumpCpuContent (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN EFI_SYSTEM_CONTEXT SystemContext
- );
-
-/**
- Internal worker function to initialize exception handler.
-
- @param[in] VectorInfo Pointer to reserved vector list.
- @param[in, out] ExceptionHandlerData Pointer to exception handler data.
-
- @retval EFI_SUCCESS CPU Exception Entries have been successfully initialized
- with default exception handlers.
- @retval EFI_INVALID_PARAMETER VectorInfo includes the invalid content if VectorInfo is not NULL.
- @retval EFI_UNSUPPORTED This function is not supported.
-
-**/
-EFI_STATUS
-InitializeCpuExceptionHandlersWorker (
- IN EFI_VECTOR_HANDOFF_INFO *VectorInfo OPTIONAL,
- IN OUT EXCEPTION_HANDLER_DATA *ExceptionHandlerData
- );
-
-/**
- Registers a function to be called from the processor interrupt handler.
-
- @param[in] InterruptType Defines which interrupt or exception to hook.
- @param[in] InterruptHandler A pointer to a function of type EFI_CPU_INTERRUPT_HANDLER that is called
- when a processor interrupt occurs. If this parameter is NULL, then the handler
- will be uninstalled
- @param[in] ExceptionHandlerData Pointer to exception handler data.
-
- @retval EFI_SUCCESS The handler for the processor interrupt was successfully installed or uninstalled.
- @retval EFI_ALREADY_STARTED InterruptHandler is not NULL, and a handler for InterruptType was
- previously installed.
- @retval EFI_INVALID_PARAMETER InterruptHandler is NULL, and a handler for InterruptType was not
- previously installed.
- @retval EFI_UNSUPPORTED The interrupt specified by InterruptType is not supported,
- or this function is not supported.
-**/
-EFI_STATUS
-RegisterCpuInterruptHandlerWorker (
- IN EFI_EXCEPTION_TYPE InterruptType,
- IN EFI_CPU_INTERRUPT_HANDLER InterruptHandler,
- IN EXCEPTION_HANDLER_DATA *ExceptionHandlerData
- );
-
-/**
- Internal worker function to update IDT entries accordling to vector attributes.
-
- @param[in] IdtTable Pointer to IDT table.
- @param[in] TemplateMap Pointer to a buffer where the address map is
- returned.
- @param[in] ExceptionHandlerData Pointer to exception handler data.
-
-**/
-VOID
-UpdateIdtTable (
- IN IA32_IDT_GATE_DESCRIPTOR *IdtTable,
- IN EXCEPTION_HANDLER_TEMPLATE_MAP *TemplateMap,
- IN EXCEPTION_HANDLER_DATA *ExceptionHandlerData
- );
-
-/**
- Save CPU exception context when handling EFI_VECTOR_HANDOFF_HOOK_AFTER case.
-
- @param[in] ExceptionType Exception type.
- @param[in] SystemContext Pointer to EFI_SYSTEM_CONTEXT.
-
-**/
-VOID
-ArchSaveExceptionContext (
- IN UINTN ExceptionType,
- IN EFI_SYSTEM_CONTEXT SystemContext
- );
-
-/**
- Restore CPU exception context when handling EFI_VECTOR_HANDOFF_HOOK_AFTER case.
-
- @param[in] ExceptionType Exception type.
- @param[in] SystemContext Pointer to EFI_SYSTEM_CONTEXT.
-
-**/
-VOID
-ArchRestoreExceptionContext (
- IN UINTN ExceptionType,
- IN EFI_SYSTEM_CONTEXT SystemContext
- );
-
-/**
- Fix up the vector number and function address in the vector code.
-
- @param[in] NewVectorAddr New vector handler address.
- @param[in] VectorNum Index of vector.
- @param[in] OldVectorAddr Old vector handler address.
-
-**/
-VOID
-EFIAPI
-AsmVectorNumFixup (
- IN VOID *NewVectorAddr,
- IN UINT8 VectorNum,
- IN VOID *OldVectorAddr
- );
-
-/**
- Read and save reserved vector information
-
- @param[in] VectorInfo Pointer to reserved vector list.
- @param[out] ReservedVector Pointer to reserved vector data buffer.
- @param[in] VectorCount Vector number to be updated.
-
- @return EFI_SUCCESS Read and save vector info successfully.
- @retval EFI_INVALID_PARAMETER VectorInfo includes the invalid content if VectorInfo is not NULL.
-
-**/
-EFI_STATUS
-ReadAndVerifyVectorInfo (
- IN EFI_VECTOR_HANDOFF_INFO *VectorInfo,
- OUT RESERVED_VECTORS_DATA *ReservedVector,
- IN UINTN VectorCount
- );
-
-/**
- Get ASCII format string exception name by exception type.
-
- @param ExceptionType Exception type.
-
- @return ASCII format string exception name.
-**/
-CONST CHAR8 *
-GetExceptionNameStr (
- IN EFI_EXCEPTION_TYPE ExceptionType
- );
-
-/**
- Internal worker function for common exception handler.
-
- @param ExceptionType Exception type.
- @param SystemContext Pointer to EFI_SYSTEM_CONTEXT.
- @param ExceptionHandlerData Pointer to exception handler data.
-**/
-VOID
-CommonExceptionHandlerWorker (
- IN EFI_EXCEPTION_TYPE ExceptionType,
- IN EFI_SYSTEM_CONTEXT SystemContext,
- IN EXCEPTION_HANDLER_DATA *ExceptionHandlerData
- );
-
-#endif
-