summaryrefslogtreecommitdiffstats
path: root/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
diff options
context:
space:
mode:
authorvanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>2012-03-15 05:24:07 +0000
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>2012-03-15 05:24:07 +0000
commit8f07f895fb03800e54c23225639116f34d2ce7b1 (patch)
tree36fd4e2235cba7e6f55574e1b8dd8f60a0919e9d /UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
parent1e172d6bbfeb75d3a5d9f0066eee97789fc617b7 (diff)
downloadedk2-8f07f895fb03800e54c23225639116f34d2ce7b1.tar.gz
edk2-8f07f895fb03800e54c23225639116f34d2ce7b1.tar.bz2
edk2-8f07f895fb03800e54c23225639116f34d2ce7b1.zip
Import two CPU Exception Handler Library instances: SecPeiCpuExceptionHandler.inf and DxeSmmCpuExceptionHandler.inf.
Signed-off-by: vanjeff Reviewed-by: jyao1 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13098 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h')
-rw-r--r--UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h b/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
new file mode 100644
index 0000000000..fa245e2ac8
--- /dev/null
+++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/CpuExceptionCommon.h
@@ -0,0 +1,96 @@
+/** @file
+ Common header file for CPU Exception Handler Library.
+
+ Copyright (c) 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
+ 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 <Library/BaseLib.h>
+#include <Library/SerialPortLib.h>
+#include <Library/PrintLib.h>
+#include <Library/LocalApicLib.h>
+#include <Library/PeCoffGetEntryPointLib.h>
+
+#define CPU_EXCEPTION_NUM 32
+//
+// Record exception handler information
+//
+typedef struct {
+ UINTN ExceptionStart;
+ UINTN ExceptionStubHeaderSize;
+} EXCEPTION_HANDLER_TEMPLATE_MAP;
+
+extern UINT32 mErrorCodeFlag;
+extern CONST UINTN mImageAlignSize;
+
+/**
+ 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
+GetTemplateAddressMap (
+ OUT EXCEPTION_HANDLER_TEMPLATE_MAP *AddressMap
+ );
+
+/**
+ Internal function to setup CPU exception handlers.
+
+**/
+VOID
+InternalSetupCpuExceptionHandlers (
+ VOID
+ );
+
+/**
+ 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.
+
+ @return EFI_SUCCESS Image base address.
+ @return 0 Image header cannot be found.
+**/
+UINTN
+FindModuleImageBase (
+ IN UINTN CurrentEip,
+ OUT UINTN *EntryPoint
+ );
+
+/**
+ Display CPU information.
+
+ @param InterruptType Exception type.
+ @param SystemContext Pointer to EFI_SYSTEM_CONTEXT.
+**/
+VOID
+DumpCpuContent (
+ IN UINTN InterruptType,
+ IN EFI_SYSTEM_CONTEXT SystemContext
+ );
+
+#endif