REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in PrmPkg. Cc: Andrew Fish <afish@apple.com> Cc: Kang Gao <kang.gao@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Michael Kubacki <michael.kubacki@microsoft.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Benjamin You <benjamin.you@intel.com> Cc: Liu Yun <yun.y.liu@intel.com> Cc: Ankit Sinha <ankit.sinha@intel.com> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Acked-by: Michael D Kinney <michael.d.kinney@intel.com> Acked-by: Liming Gao <gaoliming@byosoft.com.cn> Acked-by: Leif Lindholm <quic_llindhol@quicinc.com> Reviewed-by: Ankit Sinha <ankit.sinha@intel.com>
		
			
				
	
	
		
			128 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
 | 
						|
  The boot services environment configuration library for the ACPI Parameter Buffer Sample PRM module.
 | 
						|
 | 
						|
  Copyright (c) Microsoft Corporation
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <Library/BaseLib.h>
 | 
						|
#include <Library/BaseMemoryLib.h>
 | 
						|
#include <Library/DebugLib.h>
 | 
						|
#include <Library/MemoryAllocationLib.h>
 | 
						|
#include <Library/UefiBootServicesTableLib.h>
 | 
						|
#include <Protocol/PrmConfig.h>
 | 
						|
 | 
						|
STATIC EFI_HANDLE  mPrmConfigProtocolHandle;
 | 
						|
 | 
						|
// {dc2a58a6-5927-4776-b995-d118a27335a2}
 | 
						|
STATIC CONST EFI_GUID  mPrmModuleGuid = {
 | 
						|
  0xdc2a58a6, 0x5927, 0x4776, { 0xb9, 0x95, 0xd1, 0x18, 0xa2, 0x73, 0x35, 0xa2 }
 | 
						|
};
 | 
						|
 | 
						|
// {2e4f2d13-6240-4ed0-a401-c723fbdc34e8}
 | 
						|
STATIC CONST EFI_GUID  mCheckParamBufferPrmHandlerGuid = {
 | 
						|
  0x2e4f2d13, 0x6240, 0x4ed0, { 0xa4, 0x01, 0xc7, 0x23, 0xfb, 0xdc, 0x34, 0xe8 }
 | 
						|
};
 | 
						|
 | 
						|
/**
 | 
						|
  Constructor of the PRM configuration library.
 | 
						|
 | 
						|
  @param[in] ImageHandle        The image handle of the driver.
 | 
						|
  @param[in] SystemTable        The EFI System Table pointer.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           The shell command handlers were installed successfully.
 | 
						|
  @retval EFI_UNSUPPORTED       The shell level required was not found.
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
EFIAPI
 | 
						|
AcpiParameterBufferModuleConfigLibConstructor (
 | 
						|
  IN  EFI_HANDLE        ImageHandle,
 | 
						|
  IN  EFI_SYSTEM_TABLE  *SystemTable
 | 
						|
  )
 | 
						|
{
 | 
						|
  EFI_STATUS                        Status;
 | 
						|
  VOID                              *AcpiParameterBuffer;
 | 
						|
  ACPI_PARAMETER_BUFFER_DESCRIPTOR  *AcpiParamBufferDescriptor;
 | 
						|
  PRM_CONFIG_PROTOCOL               *PrmConfigProtocol;
 | 
						|
 | 
						|
  AcpiParameterBuffer       = NULL;
 | 
						|
  AcpiParamBufferDescriptor = NULL;
 | 
						|
  PrmConfigProtocol         = NULL;
 | 
						|
 | 
						|
  /*
 | 
						|
    In this sample PRM module, the protocol describing this sample module's resources is simply
 | 
						|
    installed in the constructor.
 | 
						|
 | 
						|
    However, if some data is not available until later, this constructor could register a callback
 | 
						|
    on the dependency for the data to be available (e.g. ability to communicate with some device)
 | 
						|
    and then install the protocol. The requirement is that the protocol is installed before end of DXE.
 | 
						|
  */
 | 
						|
 | 
						|
  // Allocate the ACPI parameter buffer
 | 
						|
 | 
						|
  // A parameter buffer is arbitrary data that is handler specific. This handler buffer is specified
 | 
						|
  // to consist of a UINT32 that represents the test data signature ('T', 'E', 'S', 'T').
 | 
						|
  AcpiParameterBuffer = AllocateRuntimeZeroPool (sizeof (UINT32));
 | 
						|
  ASSERT (AcpiParameterBuffer != NULL);
 | 
						|
  if (AcpiParameterBuffer == NULL) {
 | 
						|
    Status = EFI_OUT_OF_RESOURCES;
 | 
						|
    goto Done;
 | 
						|
  }
 | 
						|
 | 
						|
  // Allocate the ACPI Parameter Buffer Descriptor structure for a single PRM handler
 | 
						|
  AcpiParamBufferDescriptor = AllocateZeroPool (sizeof (*AcpiParamBufferDescriptor));
 | 
						|
  ASSERT (AcpiParamBufferDescriptor != NULL);
 | 
						|
  if (AcpiParamBufferDescriptor == NULL) {
 | 
						|
    Status = EFI_OUT_OF_RESOURCES;
 | 
						|
    goto Done;
 | 
						|
  }
 | 
						|
 | 
						|
  // Allocate the PRM Configuration protocol structure for this PRM module
 | 
						|
  PrmConfigProtocol = AllocateZeroPool (sizeof (*PrmConfigProtocol));
 | 
						|
  ASSERT (PrmConfigProtocol != NULL);
 | 
						|
  if (PrmConfigProtocol == NULL) {
 | 
						|
    Status = EFI_OUT_OF_RESOURCES;
 | 
						|
    goto Done;
 | 
						|
  }
 | 
						|
 | 
						|
  CopyGuid (&PrmConfigProtocol->ModuleContextBuffers.ModuleGuid, &mPrmModuleGuid);
 | 
						|
 | 
						|
  // Populate the ACPI Parameter Buffer Descriptor structure
 | 
						|
  CopyGuid (&AcpiParamBufferDescriptor->HandlerGuid, &mCheckParamBufferPrmHandlerGuid);
 | 
						|
  AcpiParamBufferDescriptor->AcpiParameterBufferAddress = (UINT64)(UINTN)AcpiParameterBuffer;
 | 
						|
 | 
						|
  // Populate the PRM Module Context Buffers structure
 | 
						|
  PrmConfigProtocol->ModuleContextBuffers.AcpiParameterBufferDescriptorCount = 1;
 | 
						|
  PrmConfigProtocol->ModuleContextBuffers.AcpiParameterBufferDescriptors     = AcpiParamBufferDescriptor;
 | 
						|
 | 
						|
  //
 | 
						|
  // Install the PRM Configuration Protocol for this module. This indicates the configuration
 | 
						|
  // library has completed resource initialization for the PRM module.
 | 
						|
  //
 | 
						|
  Status = gBS->InstallProtocolInterface (
 | 
						|
                  &mPrmConfigProtocolHandle,
 | 
						|
                  &gPrmConfigProtocolGuid,
 | 
						|
                  EFI_NATIVE_INTERFACE,
 | 
						|
                  (VOID *)PrmConfigProtocol
 | 
						|
                  );
 | 
						|
 | 
						|
Done:
 | 
						|
  if (EFI_ERROR (Status)) {
 | 
						|
    if (AcpiParameterBuffer != NULL) {
 | 
						|
      FreePool (AcpiParameterBuffer);
 | 
						|
    }
 | 
						|
 | 
						|
    if (AcpiParamBufferDescriptor != NULL) {
 | 
						|
      FreePool (AcpiParamBufferDescriptor);
 | 
						|
    }
 | 
						|
 | 
						|
    if (PrmConfigProtocol != NULL) {
 | 
						|
      FreePool (PrmConfigProtocol);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return Status;
 | 
						|
}
 |