REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the OvmfPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Andrew Fish <afish@apple.com>
		
			
				
	
	
		
			219 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			219 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Shared code for the Base Null and PEI fw_cfg instances of the QemuFwCfgS3Lib
 | |
|   class.
 | |
| 
 | |
|   Copyright (C) 2017, Red Hat, Inc.
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| **/
 | |
| 
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/QemuFwCfgS3Lib.h>
 | |
| 
 | |
| /**
 | |
|   Produce ACPI S3 Boot Script opcodes that (optionally) select an fw_cfg item,
 | |
|   and transfer data to it.
 | |
| 
 | |
|   The opcodes produced by QemuFwCfgS3ScriptWriteBytes() will first restore
 | |
|   NumberOfBytes bytes in ScratchBuffer in-place, in reserved memory, then write
 | |
|   them to fw_cfg using DMA.
 | |
| 
 | |
|   If the operation fails during S3 resume, the boot script will hang.
 | |
| 
 | |
|   This function may only be called from the client module's
 | |
|   FW_CFG_BOOT_SCRIPT_CALLBACK_FUNCTION, which was passed to
 | |
|   QemuFwCfgS3CallWhenBootScriptReady() as Callback.
 | |
| 
 | |
|   @param[in] FirmwareConfigItem  The UINT16 selector key of the firmware config
 | |
|                                  item to write, expressed as INT32. If
 | |
|                                  FirmwareConfigItem is -1, no selection is
 | |
|                                  made, the write will occur to the currently
 | |
|                                  selected item, at its currently selected
 | |
|                                  offset. Otherwise, the specified item will be
 | |
|                                  selected, and the write will occur at offset
 | |
|                                  0.
 | |
| 
 | |
|   @param[in] NumberOfBytes       Size of the data to restore in ScratchBuffer,
 | |
|                                  and to write from ScratchBuffer, during S3
 | |
|                                  resume. NumberOfBytes must not exceed
 | |
|                                  ScratchBufferSize, which was passed to
 | |
|                                  QemuFwCfgS3CallWhenBootScriptReady().
 | |
| 
 | |
|   @retval RETURN_SUCCESS            The opcodes were appended to the ACPI S3
 | |
|                                     Boot Script successfully. There is no way
 | |
|                                     to undo this action.
 | |
| 
 | |
|   @retval RETURN_INVALID_PARAMETER  FirmwareConfigItem is invalid.
 | |
| 
 | |
|   @retval RETURN_BAD_BUFFER_SIZE    NumberOfBytes is larger than
 | |
|                                     ScratchBufferSize.
 | |
| 
 | |
|   @return                           Error codes from underlying functions.
 | |
| **/
 | |
| RETURN_STATUS
 | |
| EFIAPI
 | |
| QemuFwCfgS3ScriptWriteBytes (
 | |
|   IN INT32  FirmwareConfigItem,
 | |
|   IN UINTN  NumberOfBytes
 | |
|   )
 | |
| {
 | |
|   ASSERT (FALSE);
 | |
|   return RETURN_UNSUPPORTED;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Produce ACPI S3 Boot Script opcodes that (optionally) select an fw_cfg item,
 | |
|   and transfer data from it.
 | |
| 
 | |
|   The opcodes produced by QemuFwCfgS3ScriptReadBytes() will read NumberOfBytes
 | |
|   bytes from fw_cfg using DMA, storing the result in ScratchBuffer, in reserved
 | |
|   memory.
 | |
| 
 | |
|   If the operation fails during S3 resume, the boot script will hang.
 | |
| 
 | |
|   This function may only be called from the client module's
 | |
|   FW_CFG_BOOT_SCRIPT_CALLBACK_FUNCTION, which was passed to
 | |
|   QemuFwCfgS3CallWhenBootScriptReady() as Callback.
 | |
| 
 | |
|   @param[in] FirmwareConfigItem  The UINT16 selector key of the firmware config
 | |
|                                  item to read, expressed as INT32. If
 | |
|                                  FirmwareConfigItem is -1, no selection is
 | |
|                                  made, the read will occur from the currently
 | |
|                                  selected item, from its currently selected
 | |
|                                  offset. Otherwise, the specified item will be
 | |
|                                  selected, and the read will occur from offset
 | |
|                                  0.
 | |
| 
 | |
|   @param[in] NumberOfBytes       Size of the data to read during S3 resume.
 | |
|                                  NumberOfBytes must not exceed
 | |
|                                  ScratchBufferSize, which was passed to
 | |
|                                  QemuFwCfgS3CallWhenBootScriptReady().
 | |
| 
 | |
|   @retval RETURN_SUCCESS            The opcodes were appended to the ACPI S3
 | |
|                                     Boot Script successfully. There is no way
 | |
|                                     to undo this action.
 | |
| 
 | |
|   @retval RETURN_INVALID_PARAMETER  FirmwareConfigItem is invalid.
 | |
| 
 | |
|   @retval RETURN_BAD_BUFFER_SIZE    NumberOfBytes is larger than
 | |
|                                     ScratchBufferSize.
 | |
| 
 | |
|   @return                           Error codes from underlying functions.
 | |
| **/
 | |
| RETURN_STATUS
 | |
| EFIAPI
 | |
| QemuFwCfgS3ScriptReadBytes (
 | |
|   IN INT32  FirmwareConfigItem,
 | |
|   IN UINTN  NumberOfBytes
 | |
|   )
 | |
| {
 | |
|   ASSERT (FALSE);
 | |
|   return RETURN_UNSUPPORTED;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Produce ACPI S3 Boot Script opcodes that (optionally) select an fw_cfg item,
 | |
|   and increase its offset.
 | |
| 
 | |
|   If the operation fails during S3 resume, the boot script will hang.
 | |
| 
 | |
|   This function may only be called from the client module's
 | |
|   FW_CFG_BOOT_SCRIPT_CALLBACK_FUNCTION, which was passed to
 | |
|   QemuFwCfgS3CallWhenBootScriptReady() as Callback.
 | |
| 
 | |
|   @param[in] FirmwareConfigItem  The UINT16 selector key of the firmware config
 | |
|                                  item to advance the offset of, expressed as
 | |
|                                  INT32. If FirmwareConfigItem is -1, no
 | |
|                                  selection is made, and the offset for the
 | |
|                                  currently selected item is increased.
 | |
|                                  Otherwise, the specified item will be
 | |
|                                  selected, and the offset increment will occur
 | |
|                                  from offset 0.
 | |
| 
 | |
|   @param[in] NumberOfBytes       The number of bytes to skip in the subject
 | |
|                                  fw_cfg item.
 | |
| 
 | |
|   @retval RETURN_SUCCESS            The opcodes were appended to the ACPI S3
 | |
|                                     Boot Script successfully. There is no way
 | |
|                                     to undo this action.
 | |
| 
 | |
|   @retval RETURN_INVALID_PARAMETER  FirmwareConfigItem is invalid.
 | |
| 
 | |
|   @retval RETURN_BAD_BUFFER_SIZE    NumberOfBytes is too large.
 | |
| 
 | |
|   @return                           Error codes from underlying functions.
 | |
| **/
 | |
| RETURN_STATUS
 | |
| EFIAPI
 | |
| QemuFwCfgS3ScriptSkipBytes (
 | |
|   IN INT32  FirmwareConfigItem,
 | |
|   IN UINTN  NumberOfBytes
 | |
|   )
 | |
| {
 | |
|   ASSERT (FALSE);
 | |
|   return RETURN_UNSUPPORTED;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   Produce ACPI S3 Boot Script opcodes that check a value in ScratchBuffer.
 | |
| 
 | |
|   If the check fails during S3 resume, the boot script will hang.
 | |
| 
 | |
|   This function may only be called from the client module's
 | |
|   FW_CFG_BOOT_SCRIPT_CALLBACK_FUNCTION, which was passed to
 | |
|   QemuFwCfgS3CallWhenBootScriptReady() as Callback.
 | |
| 
 | |
|   @param[in] ScratchData  Pointer to the UINT8, UINT16, UINT32 or UINT64 field
 | |
|                           in ScratchBuffer that should be checked. The caller
 | |
|                           is responsible for populating the field during S3
 | |
|                           resume, by calling QemuFwCfgS3ScriptReadBytes() ahead
 | |
|                           of QemuFwCfgS3ScriptCheckValue().
 | |
| 
 | |
|                           ScratchData must point into ScratchBuffer, which was
 | |
|                           allocated, and passed to Callback(), by
 | |
|                           QemuFwCfgS3CallWhenBootScriptReady().
 | |
| 
 | |
|                           ScratchData must be aligned at ValueSize bytes.
 | |
| 
 | |
|   @param[in] ValueSize    One of 1, 2, 4 or 8, specifying the size of the field
 | |
|                           to check.
 | |
| 
 | |
|   @param[in] ValueMask    The value read from ScratchData is binarily AND-ed
 | |
|                           with ValueMask, and the result is compared against
 | |
|                           Value. If the masked data equals Value, the check
 | |
|                           passes, and the boot script can proceed. Otherwise,
 | |
|                           the check fails, and the boot script hangs.
 | |
| 
 | |
|   @param[in] Value        Refer to ValueMask.
 | |
| 
 | |
|   @retval RETURN_SUCCESS            The opcodes were appended to the ACPI S3
 | |
|                                     Boot Script successfully. There is no way
 | |
|                                     to undo this action.
 | |
| 
 | |
|   @retval RETURN_INVALID_PARAMETER  ValueSize is invalid.
 | |
| 
 | |
|   @retval RETURN_INVALID_PARAMETER  ValueMask or Value cannot be represented in
 | |
|                                     ValueSize bytes.
 | |
| 
 | |
|   @retval RETURN_INVALID_PARAMETER  ScratchData is not aligned at ValueSize
 | |
|                                     bytes.
 | |
| 
 | |
|   @retval RETURN_BAD_BUFFER_SIZE    The ValueSize bytes at ScratchData aren't
 | |
|                                     wholly contained in the ScratchBufferSize
 | |
|                                     bytes at ScratchBuffer.
 | |
| 
 | |
|   @return                           Error codes from underlying functions.
 | |
| **/
 | |
| RETURN_STATUS
 | |
| EFIAPI
 | |
| QemuFwCfgS3ScriptCheckValue (
 | |
|   IN VOID    *ScratchData,
 | |
|   IN UINT8   ValueSize,
 | |
|   IN UINT64  ValueMask,
 | |
|   IN UINT64  Value
 | |
|   )
 | |
| {
 | |
|   ASSERT (FALSE);
 | |
|   return RETURN_UNSUPPORTED;
 | |
| }
 |