]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/DebugSupportDxe/Ipf/PlDebugSupport.c
code scrub:
[mirror_edk2.git] / MdeModulePkg / Universal / DebugSupportDxe / Ipf / PlDebugSupport.c
index d358b425deeb02a7ea945bcf6b4c4fb15c384508..1e1c89d5de9a62c150302e550f8e904da490e85d 100644 (file)
@@ -1,5 +1,5 @@
 /** @file\r
-  IPF specific debug support functions\r
+  IPF specific functions to support Debug Support protocol.\r
 \r
 Copyright (c) 2006 - 2008, Intel Corporation                                                         \r
 All rights reserved. This program and the accompanying materials                          \r
@@ -12,9 +12,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 **/\r
 \r
-//\r
-// private header files\r
-//\r
 #include "PlDebugSupport.h"\r
 \r
 BOOLEAN  mInHandler = FALSE;\r
@@ -66,7 +63,9 @@ PlInitializeDebugSupportDriver (
 \r
 /**\r
   Unload handler that is called during UnloadImage() - deallocates pool memory\r
-  used by the driver.  Must be public because it's referenced from DebugSuport.c\r
+  used by the driver. \r
+\r
+  Must be public because it's referenced from DebugSuport.c\r
 \r
   @param  ImageHandle    The firmware allocated handle for the EFI image.\r
 \r
@@ -90,10 +89,12 @@ PlUnloadDebugSupportDriver (
 \r
 /**\r
   C routine that is called for all registered exceptions.  This is the main\r
-  exception dispatcher.  Must be public because it's referenced from AsmFuncs.s.\r
+  exception dispatcher. \r
+\r
+  Must be public because it's referenced from AsmFuncs.s.\r
 \r
-  @param  ExceptionType        Exception Type\r
-  @param  Context              System Context\r
+  @param  ExceptionType        Specifies which processor exception.\r
+  @param  Context              System Context.\r
 **/\r
 VOID\r
 CommonHandler (\r
@@ -170,12 +171,11 @@ GetHandlerEntryPoint (
 /**\r
   This is the worker function that uninstalls and removes all handlers.\r
 \r
-  @param  ExceptionType     Exception Type\r
-  @param  NewBundles        New Boundles\r
-  @param  NewCallback       New Callback\r
+  @param  ExceptionType     Specifies which processor exception.\r
+  @param  NewBundles        New Boundles.\r
+  @param  NewCallback       A pointer to the new function to be registered.\r
 \r
   @retval EFI_ALEADY_STARTED Ivt already hooked.\r
-  @retval others             Indicates the request was not satisfied.\r
   @retval EFI_SUCCESS        Successfully uninstalled.\r
 \r
 **/\r
@@ -248,9 +248,9 @@ ManageIvtEntryTable (
   Saves original IVT contents and inserts a few new bundles which are fixed up\r
   to store the ExceptionType and then call the common handler.\r
 \r
-  @param  ExceptionType      Exception Type\r
-  @param  NewBundles         New Boundles\r
-  @param  NewCallback        New Callback\r
+  @param  ExceptionType      Specifies which processor exception.\r
+  @param  NewBundles         New Boundles.\r
+  @param  NewCallback        A pointer to the new function to be hooked.\r
 \r
 **/\r
 VOID\r
@@ -294,7 +294,7 @@ HookEntry (
 /**\r
   Restores original IVT contents when unregistering a callback function.\r
 \r
-  @param  ExceptionType     Exception Type\r
+  @param  ExceptionType     Specifies which processor exception.\r
 \r
 **/\r
 VOID\r
@@ -324,7 +324,7 @@ UnhookEntry (
 \r
   Records new callback in IvtEntryTable.\r
 \r
-  @param  NewCallback     New Callback\r
+  @param  NewCallback     A pointer to the interrupt handle.\r
 \r
 **/\r
 VOID\r
@@ -358,19 +358,17 @@ UnchainExternalInterrupt (
   IvtEntryTable[EXCEPT_IPF_EXTERNAL_INTERRUPT].RegisteredCallback = NULL;\r
 }\r
 \r
-//\r
-// The rest of the functions in this file are all member functions for the\r
-// DebugSupport protocol\r
-//\r
-\r
 /**\r
-  This is a DebugSupport protocol member function, hard\r
-  coded to support only 1 processor for now.\r
-\r
-  @param  This                The DebugSupport instance\r
-  @param  MaxProcessorIndex   The maximuim supported processor index\r
+  Returns the maximum value that may be used for the ProcessorIndex parameter in\r
+  RegisterPeriodicCallback() and RegisterExceptionCallback().                   \r
+    \r
+  Hard coded to support only 1 processor for now.\r
 \r
-  @retval EFI_SUCCESS         Always returned with **MaxProcessorIndex set to 0.\r
+  @param  This                  A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.\r
+  @param  MaxProcessorIndex     Pointer to a caller-allocated UINTN in which the maximum supported\r
+                                processor index is returned. Always 0 returned.                                     \r
+                                \r
+  @retval EFI_SUCCESS           Always returned with **MaxProcessorIndex set to 0.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -385,15 +383,18 @@ GetMaximumProcessorIndex (
 }\r
 \r
 /**\r
-  DebugSupport protocol member function.\r
-\r
-  @param  This               The DebugSupport instance\r
-  @param  ProcessorIndex     Which processor the callback applies to.\r
-  @param  PeriodicCallback   Callback function\r
-\r
-  @retval EFI_SUCCESS        Indicates the callback was registered.\r
-  @retval others             Callback was not registered.\r
-\r
+  Registers a function to be called back periodically in interrupt context.\r
+    \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 PERIODIC_CALLBACK that is the main\r
+                                periodic entry point of the debug agent.\r
+                                \r
+  @retval EFI_SUCCESS           The function completed successfully.  \r
+  @retval EFI_ALREADY_STARTED   Non-NULL PeriodicCallback parameter when a callback\r
+                                function was previously registered.                \r
+  @retval EFI_OUT_OF_RESOURCES  System has insufficient memory resources to register new callback                               \r
+                                function. \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
@@ -407,16 +408,21 @@ RegisterPeriodicCallback (
 }\r
 \r
 /**\r
-  DebugSupport protocol member function.\r
-\r
-  @param  This              The DebugSupport instance\r
-  @param  ProcessorIndex    Which processor the callback applies to.\r
-  @param  NewCallback       Callback function\r
-  @param  ExceptionType     Which exception to hook\r
-\r
-  @retval EFI_SUCCESS        Indicates the callback was registered.\r
-  @retval others             Callback was not registered.\r
-\r
+  Registers a function to be called when a given processor exception occurs.\r
+\r
+  This code executes in boot services context.\r
+    \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  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
+  @retval EFI_SUCCESS           The function completed successfully.  \r
+  @retval EFI_ALREADY_STARTED   Non-NULL PeriodicCallback parameter when a callback\r
+                                function was previously registered.                \r
+  @retval EFI_OUT_OF_RESOURCES  System has insufficient memory resources to register new callback                               \r
+                                function.\r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
@@ -435,14 +441,16 @@ RegisterExceptionCallback (
 }\r
 \r
 /**\r
-  DebugSupport protocol member function.  Calls assembly routine to flush cache.\r
-\r
-  @param  This              The DebugSupport instance\r
-  @param  ProcessorIndex    Which processor the callback applies to.\r
-  @param  Start             Physical base of the memory range to be invalidated\r
-  @param  Length            mininum number of bytes in instruction cache to invalidate\r
-\r
-  @retval EFI_SUCCESS       Always returned.\r
+  Invalidates processor instruction cache for a memory range. Subsequent execution in this range\r
+  causes a fresh memory fetch to retrieve code to be executed.                                  \r
+    \r
+  @param  This                  A pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.\r
+  @param  ProcessorIndex        Specifies which processor's instruction cache is to be invalidated.\r
+  @param  Start                 Specifies the physical base of the memory range to be invalidated.                                \r
+  @param  Length                Specifies the minimum number of bytes in the processor's instruction\r
+                                cache to invalidate.                                                 \r
+                                \r
+  @retval EFI_SUCCESS           Always returned.\r
 \r
 **/\r
 EFI_STATUS\r