]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkUnixPkg/Library/UnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
Split UnixOemHookStatusCodeLib to PEI/DXE instances
[mirror_edk2.git] / EdkUnixPkg / Library / UnixOemHookStatusCodeLib / UnixOemHookStatusCodeLib.c
diff --git a/EdkUnixPkg/Library/UnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c b/EdkUnixPkg/Library/UnixOemHookStatusCodeLib/UnixOemHookStatusCodeLib.c
deleted file mode 100644 (file)
index 34f5e0d..0000000
+++ /dev/null
@@ -1,246 +0,0 @@
-/** @file\r
-  OEM hook status code library functions with no library constructor/destructor\r
-\r
-  Copyright (c) 2006, 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
-  http://opensource.org/licenses/bsd-license.php\r
-\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:  UnixOemHookStatusCodeLib.c\r
-\r
-**/\r
-\r
-//\r
-// Cache of UnixThunk protocol \r
-//\r
-STATIC\r
-EFI_UNIX_THUNK_PROTOCOL   *mUnix;\r
-\r
-//\r
-// Cache of standard output handle . \r
-//\r
-STATIC\r
-int                      mStdOut;\r
-\r
-/**\r
-\r
-  Initialize OEM status code device .\r
-\r
-  @return    Always return EFI_SUCCESS.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OemHookStatusCodeInitialize (\r
-  VOID\r
-  )\r
-{\r
-  PEI_UNIX_THUNK_PPI  *UnixThunkPpi;\r
-  EFI_STATUS        Status;\r
-\r
-  if (FeaturePcdGet (PcdUnixStatusCodeLibUseForPei)) {\r
-    //\r
-    // Locate NtThunkPpi for retrieving standard output handle\r
-    //\r
-    Status = PeiServicesLocatePpi (\r
-               &gPeiUnixThunkPpiGuid,\r
-               0,\r
-               NULL,\r
-               (VOID **) &UnixThunkPpi\r
-               );\r
-\r
-    ASSERT_EFI_ERROR (Status);\r
-\r
-    mUnix  = (EFI_UNIX_THUNK_PROTOCOL *) UnixThunkPpi->UnixThunk ();\r
-  } else {\r
-    EFI_HOB_GUID_TYPE        *GuidHob;\r
-\r
-    //\r
-    // Retrieve UnixThunkProtocol from GUID'ed HOB\r
-    //\r
-    GuidHob = GetFirstGuidHob (&gEfiUnixThunkProtocolGuid);\r
-    ASSERT (GuidHob != NULL);\r
-    mUnix = (EFI_UNIX_THUNK_PROTOCOL *)(*(UINTN *)(GET_GUID_HOB_DATA (GuidHob)));\r
-    ASSERT (mUnix != NULL);\r
-  }\r
-\r
-  //\r
-  // Cache standard output handle.\r
-  //\r
-  mStdOut = 1;
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Report status code to OEM device.\r
\r
-  @param  CodeType      Indicates the type of status code being reported.  Type EFI_STATUS_CODE_TYPE is defined in "Related Definitions" below.\r
\r
-  @param  Value         Describes the current status of a hardware or software entity.  \r
-                        This included information about the class and subclass that is used to classify the entity \r
-                        as well as an operation.  For progress codes, the operation is the current activity. \r
-                        For error codes, it is the exception.  For debug codes, it is not defined at this time. \r
-                        Type EFI_STATUS_CODE_VALUE is defined in "Related Definitions" below.  \r
-                        Specific values are discussed in the Intel? Platform Innovation Framework for EFI Status Code Specification.\r
\r
-  @param  Instance      The enumeration of a hardware or software entity within the system.  \r
-                        A system may contain multiple entities that match a class/subclass pairing. \r
-                        The instance differentiates between them.  An instance of 0 indicates that instance information is unavailable, \r
-                        not meaningful, or not relevant.  Valid instance numbers start with 1.\r
-\r
-\r
-  @param  CallerId      This optional parameter may be used to identify the caller. \r
-                        This parameter allows the status code driver to apply different rules to different callers. \r
-                        Type EFI_GUID is defined in InstallProtocolInterface() in the EFI 1.10 Specification.\r
-\r
-\r
-  @param  Data          This optional parameter may be used to pass additional data\r
\r
-  @return               The function always return EFI_SUCCESS.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OemHookStatusCodeReport (\r
-  IN EFI_STATUS_CODE_TYPE     CodeType,\r
-  IN EFI_STATUS_CODE_VALUE    Value,\r
-  IN UINT32                   Instance,\r
-  IN EFI_GUID                 *CallerId, OPTIONAL\r
-  IN EFI_STATUS_CODE_DATA     *Data      OPTIONAL\r
-  )\r
-{\r
-  CHAR8           *Filename;\r
-  CHAR8           *Description;\r
-  CHAR8           *Format;\r
-  CHAR8           Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];\r
-  UINT32          ErrorLevel;\r
-  UINT32          LineNumber;\r
-  UINTN           CharCount;\r
-  VA_LIST         Marker;\r
-  EFI_DEBUG_INFO  *DebugInfo;\r
-\r
-  Buffer[0] = '\0';\r
-\r
-  if (Data != NULL &&\r
-      ReportStatusCodeExtractAssertInfo (CodeType, Value, Data, &Filename, &Description, &LineNumber)) {\r
-    //\r
-    // Print ASSERT() information into output buffer.\r
-    //\r
-    CharCount = AsciiSPrint (\r
-                  Buffer,\r
-                  EFI_STATUS_CODE_DATA_MAX_SIZE,\r
-                  "\n\rASSERT!: %a (%d): %a\n\r",\r
-                  Filename,\r
-                  LineNumber,\r
-                  Description\r
-                  );\r
-\r
-    //\r
-    // Callout to standard output.\r
-    //\r
-    mUnix->Write (\r
-              mStdOut,\r
-              Buffer,\r
-              CharCount\r
-             );
-\r
-    return EFI_SUCCESS;\r
-\r
-  } else if (Data != NULL &&\r
-             ReportStatusCodeExtractDebugInfo (Data, &ErrorLevel, &Marker, &Format)) {\r
-    //\r
-    // Print DEBUG() information into output buffer.\r
-    //\r
-    CharCount = AsciiVSPrint (\r
-                  Buffer, \r
-                  EFI_STATUS_CODE_DATA_MAX_SIZE, \r
-                  Format, \r
-                  Marker\r
-                  );\r
-  } else if (Data != NULL && \r
-             CompareGuid (&Data->Type, &gEfiStatusCodeSpecificDataGuid) &&\r
-             (CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE) {\r
-    //\r
-    // Print specific data into output buffer.\r
-    //\r
-    DebugInfo = (EFI_DEBUG_INFO *) (Data + 1);\r
-    Marker    = (VA_LIST) (DebugInfo + 1);\r
-    Format    = (CHAR8 *) (((UINT64 *) Marker) + 12);\r
-\r
-    CharCount = AsciiVSPrint (Buffer, EFI_STATUS_CODE_DATA_MAX_SIZE, Format, Marker);\r
-  } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) {\r
-    //\r
-    // Print ERROR information into output buffer.\r
-    //\r
-    CharCount = AsciiSPrint (\r
-                  Buffer, \r
-                  EFI_STATUS_CODE_DATA_MAX_SIZE, \r
-                  "ERROR: C%x:V%x I%x", \r
-                  CodeType, \r
-                  Value, \r
-                  Instance\r
-                  );\r
-\r
-    //\r
-    // Make sure we don't try to print values that weren't intended to be printed, especially NULL GUID pointers.\r
-    //\r
-    \r
-    if (CallerId != NULL) {\r
-      CharCount += AsciiSPrint (\r
-                     &Buffer[CharCount - 1],\r
-                     (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),\r
-                     " %g",\r
-                     CallerId\r
-                     );\r
-    }\r
-\r
-    if (Data != NULL) {\r
-      CharCount += AsciiSPrint (\r
-                     &Buffer[CharCount - 1],\r
-                     (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),\r
-                     " %x",\r
-                     Data\r
-                     );\r
-    }\r
-\r
-    CharCount += AsciiSPrint (\r
-                   &Buffer[CharCount - 1],\r
-                   (EFI_STATUS_CODE_DATA_MAX_SIZE - (sizeof (Buffer[0]) * CharCount)),\r
-                   "\n\r"\r
-                   );\r
-  } else if ((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) {\r
-    CharCount = AsciiSPrint (\r
-                  Buffer, \r
-                  EFI_STATUS_CODE_DATA_MAX_SIZE, \r
-                  "PROGRESS CODE: V%x I%x\n\r", \r
-                  Value, \r
-                  Instance\r
-                  );\r
-  } else {\r
-    CharCount = AsciiSPrint (\r
-                  Buffer, \r
-                  EFI_STATUS_CODE_DATA_MAX_SIZE, \r
-                  "Undefined: C%x:V%x I%x\n\r", \r
-                  CodeType, \r
-                  Value, \r
-                  Instance\r
-                  );\r
-  }\r
-\r
-  //\r
-  // Callout to standard output.\r
-  //\r
-  mUnix->Write (\r
-            mStdOut,\r
-            Buffer,\r
-            CharCount\r
-            );\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r