]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/DebugSupport.h
Fix various 'EFIAPI' inconsistencies found while building MdeModulePkg.
[mirror_edk2.git] / MdePkg / Include / Protocol / DebugSupport.h
index 8313bf5b5d93dd4b43b9ae5a0fda7967af83b4a8..deb9c29016038ae9f2971b68ef612e69bb909dc2 100644 (file)
@@ -5,7 +5,7 @@
   The DebugSupport protocol is used by source level debuggers to abstract the\r
   processor and handle context save and restore operations.\r
 \r
-  Copyright (c) 2006, Intel Corporation                                                         \r
+  Copyright (c) 2006 - 2009, Intel Corporation                                                         \r
   All rights reserved. This program and the accompanying materials                          \r
   are licensed and made available under the terms and conditions of the BSD License         \r
   which accompanies this distribution.  The full text of the license may be found at        \r
   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
 \r
-  Module Name:  DebugSupport.h\r
-\r
 **/\r
 \r
 #ifndef __DEBUG_SUPPORT_H__\r
 #define __DEBUG_SUPPORT_H__\r
 \r
+#include <ProcessorBind.h>\r
+#include <IndustryStandard/PeImage.h>\r
+\r
 typedef struct _EFI_DEBUG_SUPPORT_PROTOCOL EFI_DEBUG_SUPPORT_PROTOCOL;\r
 \r
-//\r
-// Debug Support protocol {2755590C-6F3C-42FA-9EA4-A3BA543CDA25}\r
-//\r
+///\r
+/// Debug Support protocol {2755590C-6F3C-42FA-9EA4-A3BA543CDA25}\r
+///\r
 #define EFI_DEBUG_SUPPORT_PROTOCOL_GUID \\r
   { \\r
     0x2755590C, 0x6F3C, 0x42FA, {0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 } \\r
   }\r
 \r
-//\r
-// Debug Support definitions\r
-//\r
+///\r
+/// Processor exception to be hooked.\r
+/// All exception types for IA32, X64, Itanium and EBC processors are defined.\r
+///\r
 typedef INTN  EFI_EXCEPTION_TYPE;\r
 \r
-//\r
-//  IA-32 processor exception types\r
-//\r
+///\r
+///  IA-32 processor exception types\r
+///\r
 #define EXCEPT_IA32_DIVIDE_ERROR    0\r
 #define EXCEPT_IA32_DEBUG           1\r
 #define EXCEPT_IA32_NMI             2\r
@@ -57,13 +59,10 @@ typedef INTN  EFI_EXCEPTION_TYPE;
 #define EXCEPT_IA32_MACHINE_CHECK   18\r
 #define EXCEPT_IA32_SIMD            19\r
 \r
-//\r
-//  IA-32 processor context definition\r
-//\r
-//\r
-// FXSAVE_STATE\r
-// FP / MMX / XMM registers (see fxrstor instruction definition)\r
-//\r
+///\r
+/// FXSAVE_STATE\r
+/// FP / MMX / XMM registers (see fxrstor instruction definition)\r
+///\r
 typedef struct {\r
   UINT16  Fcw;\r
   UINT16  Fsw;\r
@@ -75,7 +74,6 @@ typedef struct {
   UINT32  DataOffset;\r
   UINT16  Ds;\r
   UINT8   Reserved2[10];\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   UINT8   St0Mm0[10], Reserved3[6];\r
   UINT8   St1Mm1[10], Reserved4[6];\r
   UINT8   St2Mm2[10], Reserved5[6];\r
@@ -94,26 +92,13 @@ typedef struct {
   UINT8   Xmm7[16];\r
   UINT8   Reserved11[14 * 16];\r
 } EFI_FX_SAVE_STATE_IA32;\r
-#else\r
-  UINT8   St0Mm0[10], Reserved3[6];\r
-  UINT8   St0Mm1[10], Reserved4[6];\r
-  UINT8   St0Mm2[10], Reserved5[6];\r
-  UINT8   St0Mm3[10], Reserved6[6];\r
-  UINT8   St0Mm4[10], Reserved7[6];\r
-  UINT8   St0Mm5[10], Reserved8[6];\r
-  UINT8   St0Mm6[10], Reserved9[6];\r
-  UINT8   St0Mm7[10], Reserved10[6];\r
-  UINT8   Reserved11[22 * 16];\r
-} EFI_FX_SAVE_STATE;\r
-#endif\r
 \r
+///\r
+///  IA-32 processor context definition\r
+///\r
 typedef struct {\r
   UINT32                 ExceptionData;\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   EFI_FX_SAVE_STATE_IA32 FxSaveState;\r
-#else\r
-  EFI_FX_SAVE_STATE      FxSaveState;\r
-#endif\r
   UINT32                 Dr0;\r
   UINT32                 Dr1;\r
   UINT32                 Dr2;\r
@@ -147,9 +132,9 @@ typedef struct {
   UINT32                 Eax;\r
 } EFI_SYSTEM_CONTEXT_IA32;\r
 \r
-//\r
-//  X64 processor exception types\r
-//\r
+///\r
+///  x64 processor exception types\r
+///\r
 #define EXCEPT_X64_DIVIDE_ERROR    0\r
 #define EXCEPT_X64_DEBUG           1\r
 #define EXCEPT_X64_NMI             2\r
@@ -168,12 +153,10 @@ typedef struct {
 #define EXCEPT_X64_MACHINE_CHECK   18\r
 #define EXCEPT_X64_SIMD            19\r
 \r
-//\r
-//  X64 processor context definition\r
-//\r
-// FXSAVE_STATE\r
-// FP / MMX / XMM registers (see fxrstor instruction definition)\r
-//\r
+///\r
+/// FXSAVE_STATE\r
+/// FP / MMX / XMM registers (see fxrstor instruction definition)\r
+///\r
 typedef struct {\r
   UINT16  Fcw;\r
   UINT16  Fsw;\r
@@ -198,25 +181,15 @@ typedef struct {
   UINT8   Xmm5[16];\r
   UINT8   Xmm6[16];\r
   UINT8   Xmm7[16];\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   //\r
-  // NOTE: UEFI 2.0 spec definition as follows. It should be updated \r
-  // after spec update.\r
+  // NOTE: UEFI 2.0 spec definition as follows. \r
   //\r
   UINT8   Reserved11[14 * 16];\r
-#else\r
-  UINT8   Xmm8[16];\r
-  UINT8   Xmm9[16];\r
-  UINT8   Xmm10[16];\r
-  UINT8   Xmm11[16];\r
-  UINT8   Xmm12[16];\r
-  UINT8   Xmm13[16];\r
-  UINT8   Xmm14[16];\r
-  UINT8   Xmm15[16];\r
-  UINT8   Reserved10[6 * 16];\r
-#endif\r
 } EFI_FX_SAVE_STATE_X64;\r
 \r
+///\r
+///  x64 processor context definition\r
+///\r
 typedef struct {\r
   UINT64                ExceptionData;\r
   EFI_FX_SAVE_STATE_X64 FxSaveState;\r
@@ -262,9 +235,9 @@ typedef struct {
   UINT64                R15;\r
 } EFI_SYSTEM_CONTEXT_X64;\r
 \r
-//\r
-//  IPF processor exception types\r
-//\r
+///\r
+///  Itanium Processor Family Exception types\r
+///\r
 #define EXCEPT_IPF_VHTP_TRANSLATION       0\r
 #define EXCEPT_IPF_INSTRUCTION_TLB        1\r
 #define EXCEPT_IPF_DATA_TLB               2\r
@@ -307,9 +280,9 @@ typedef struct {
 #define EXCEPT_IPF_IA32_INTERCEPT 46\r
 #define EXCEPT_IPF_IA32_INTERRUPT 47\r
 \r
-//\r
-//  IPF processor context definition\r
-//\r
+///\r
+///  IPF processor context definition\r
+///\r
 typedef struct {\r
   //\r
   // The first reserved field is necessary to preserve alignment for the correct\r
@@ -463,28 +436,28 @@ typedef struct {
 \r
 } EFI_SYSTEM_CONTEXT_IPF;\r
 \r
-//\r
-//  EBC processor exception types\r
-//\r
+///\r
+///  EBC processor exception types\r
+///\r
 #define EXCEPT_EBC_UNDEFINED            0\r
 #define EXCEPT_EBC_DIVIDE_ERROR         1\r
 #define EXCEPT_EBC_DEBUG                2\r
 #define EXCEPT_EBC_BREAKPOINT           3\r
 #define EXCEPT_EBC_OVERFLOW             4\r
-#define EXCEPT_EBC_INVALID_OPCODE       5   // opcode out of range\r
+#define EXCEPT_EBC_INVALID_OPCODE       5   ///< opcode out of range\r
 #define EXCEPT_EBC_STACK_FAULT          6\r
 #define EXCEPT_EBC_ALIGNMENT_CHECK      7\r
-#define EXCEPT_EBC_INSTRUCTION_ENCODING 8   // malformed instruction\r
-#define EXCEPT_EBC_BAD_BREAK            9   // BREAK 0 or undefined BREAK\r
-#define EXCEPT_EBC_STEP                 10  // to support debug stepping\r
-//\r
-// For coding convenience, define the maximum valid EBC exception.\r
-//\r
+#define EXCEPT_EBC_INSTRUCTION_ENCODING 8   ///< malformed instruction\r
+#define EXCEPT_EBC_BAD_BREAK            9   ///< BREAK 0 or undefined BREAK\r
+#define EXCEPT_EBC_STEP                 10  ///< to support debug stepping\r
+///\r
+/// For coding convenience, define the maximum valid EBC exception.\r
+///\r
 #define MAX_EBC_EXCEPTION EXCEPT_EBC_STEP\r
 \r
-//\r
-//  EBC processor context definition\r
-//\r
+///\r
+///  EBC processor context definition\r
+///\r
 typedef struct {\r
   UINT64  R0;\r
   UINT64  R1;\r
@@ -499,9 +472,9 @@ typedef struct {
   UINT64  Ip;\r
 } EFI_SYSTEM_CONTEXT_EBC;\r
 \r
-//\r
-// Universal EFI_SYSTEM_CONTEXT definition\r
-//\r
+///\r
+/// Universal EFI_SYSTEM_CONTEXT definition\r
+///\r
 typedef union {\r
   EFI_SYSTEM_CONTEXT_EBC  *SystemContextEbc;\r
   EFI_SYSTEM_CONTEXT_IA32 *SystemContextIa32;\r
@@ -516,13 +489,13 @@ typedef union {
 /**                                                                 \r
   Registers and enables an exception callback function for the specified exception.\r
     \r
-  @param  ExceptionType         Exception types in EBC, IA-32, X64, or IPF\r
+  @param  ExceptionType         Exception types in EBC, IA-32, x64, or IPF\r
   @param  SystemContext         Exception content.\r
                                    \r
 **/\r
 typedef\r
 VOID\r
-(*EFI_EXCEPTION_CALLBACK) (\r
+(EFIAPI *EFI_EXCEPTION_CALLBACK)(\r
   IN     EFI_EXCEPTION_TYPE               ExceptionType,\r
   IN OUT EFI_SYSTEM_CONTEXT               SystemContext\r
   );\r
@@ -535,18 +508,18 @@ VOID
 **/\r
 typedef\r
 VOID\r
-(*EFI_PERIODIC_CALLBACK) (\r
+(EFIAPI *EFI_PERIODIC_CALLBACK)(\r
   IN OUT EFI_SYSTEM_CONTEXT               SystemContext\r
   );\r
 \r
-//\r
-// Machine type definition\r
-//\r
+///\r
+/// Machine type definition\r
+///\r
 typedef enum {\r
-  IsaIa32 = IMAGE_FILE_MACHINE_I386, // 0x014C\r
-  IsaX64  = IMAGE_FILE_MACHINE_X64,   // 0x8664\r
-  IsaIpf  = IMAGE_FILE_MACHINE_IA64,  // 0x0200\r
-  IsaEbc  = IMAGE_FILE_MACHINE_EBC    // 0x0EBC\r
+  IsaIa32 = IMAGE_FILE_MACHINE_I386,  ///< 0x014C\r
+  IsaX64  = IMAGE_FILE_MACHINE_X64,   ///< 0x8664\r
+  IsaIpf  = IMAGE_FILE_MACHINE_IA64,  ///< 0x0200\r
+  IsaEbc  = IMAGE_FILE_MACHINE_EBC    ///< 0x0EBC\r
 } EFI_INSTRUCTION_SET_ARCHITECTURE;\r
 \r
 \r
@@ -567,7 +540,7 @@ typedef enum {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_GET_MAXIMUM_PROCESSOR_INDEX) (\r
+(EFIAPI *EFI_GET_MAXIMUM_PROCESSOR_INDEX)(\r
   IN EFI_DEBUG_SUPPORT_PROTOCOL          *This,\r
   OUT UINTN                              *MaxProcessorIndex\r
   );\r
@@ -589,7 +562,7 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_REGISTER_PERIODIC_CALLBACK) (\r
+(EFIAPI *EFI_REGISTER_PERIODIC_CALLBACK)(\r
   IN EFI_DEBUG_SUPPORT_PROTOCOL          *This,\r
   IN UINTN                               ProcessorIndex,\r
   IN EFI_PERIODIC_CALLBACK               PeriodicCallback\r
@@ -600,7 +573,7 @@ EFI_STATUS
     \r
   @param  This                  A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.\r
   @param  ProcessorIndex        Specifies which processor the callback function applies to.\r
-  @param  PeriodicCallback      A pointer to a function of type EXCEPTION_CALLBACK that is called\r
+  @param  ExceptionCallback     A pointer to a function of type EXCEPTION_CALLBACK that is called\r
                                 when the processor exception specified by ExceptionType occurs.  \r
   @param  ExceptionType         Specifies which processor exception to hook.                       \r
                                 \r
@@ -613,7 +586,7 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_REGISTER_EXCEPTION_CALLBACK) (\r
+(EFIAPI *EFI_REGISTER_EXCEPTION_CALLBACK)(\r
   IN EFI_DEBUG_SUPPORT_PROTOCOL          *This,\r
   IN UINTN                               ProcessorIndex,\r
   IN EFI_EXCEPTION_CALLBACK              ExceptionCallback,\r
@@ -635,17 +608,22 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_INVALIDATE_INSTRUCTION_CACHE) (\r
+(EFIAPI *EFI_INVALIDATE_INSTRUCTION_CACHE)(\r
   IN EFI_DEBUG_SUPPORT_PROTOCOL          *This,\r
   IN UINTN                               ProcessorIndex,\r
   IN VOID                                *Start,\r
   IN UINT64                              Length\r
   );\r
 \r
-//\r
-// DebugSupport protocol definition\r
-//\r
+///\r
+/// This protocol provides the services to allow the debug agent to register \r
+/// callback functions that are called either periodically or when specific \r
+/// processor exceptions occur.\r
+///\r
 struct _EFI_DEBUG_SUPPORT_PROTOCOL {\r
+  ///\r
+  /// Declares the processor architecture for this instance of the EFI Debug Support protocol.\r
+  ///\r
   EFI_INSTRUCTION_SET_ARCHITECTURE  Isa;\r
   EFI_GET_MAXIMUM_PROCESSOR_INDEX   GetMaximumProcessorIndex;\r
   EFI_REGISTER_PERIODIC_CALLBACK    RegisterPeriodicCallback;\r