IntelFrameworkPkg/Include/Protocol/AcpiS3Save.h File Reference


Data Structures

struct  _EFI_ACPI_S3_SAVE_PROTOCOL

Defines

#define EFI_ACPI_S3_SAVE_GUID

Typedefs

typedef struct
_EFI_ACPI_S3_SAVE_PROTOCOL 
EFI_ACPI_S3_SAVE_PROTOCOL
typedef EFI_STATUS(EFIAPI * EFI_ACPI_S3_SAVE )(IN EFI_ACPI_S3_SAVE_PROTOCOL *This, IN VOID *LegacyMemoryAddress)
typedef EFI_STATUS(EFIAPI * EFI_ACPI_GET_LEGACY_MEMORY_SIZE )(IN EFI_ACPI_S3_SAVE_PROTOCOL *This, OUT UINTN *Size)

Variables

EFI_GUID gEfiAcpiS3SaveProtocolGuid

Detailed Description

This protocol is used to prepare all information that is needed for the S3 resume boot path. This protocol is not required for all platforms.

Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Revision Reference:
This Protocol is defined in Framework of S3 Resume Boot Path Spec. Version 0.9.

Define Documentation

#define EFI_ACPI_S3_SAVE_GUID

Value:

{ \
    0x125f2de1, 0xfb85, 0x440c, {0xa5, 0x4c, 0x4d, 0x99, 0x35, 0x8a, 0x8d, 0x38 } \
  }


Typedef Documentation

typedef EFI_STATUS(EFIAPI * EFI_ACPI_GET_LEGACY_MEMORY_SIZE)(IN EFI_ACPI_S3_SAVE_PROTOCOL *This, OUT UINTN *Size)

This function returns the size of the legacy memory (meaning below 1 MB) that is required during an S3 resume. Before the Framework-based firmware transfers control to the OS, it has to transition from flat mode into real mode in case the OS supplies only a real-mode waking vector. This transition requires a certain amount of legacy memory. After getting the size of legacy memory below, the caller is responsible for allocating the legacy memory below 1 MB according to the size that is returned. The specific implementation of allocating the legacy memory is out of the scope of this specification.

Parameters:
This A pointer to the EFI_ACPI_S3_SAVE_PROTOCOL instance.
Size The returned size of legacy memory below 1MB.
Return values:
EFI_SUCCESS Size was successfully returned.
EFI_INVALID_PARAMETER The pointer Size is NULL.

typedef EFI_STATUS(EFIAPI * EFI_ACPI_S3_SAVE)(IN EFI_ACPI_S3_SAVE_PROTOCOL *This, IN VOID *LegacyMemoryAddress)

This function is used to:

  • Prepare all information that is needed in the S3 resume boot path. This information can include the following: -- Framework boot script table -- RSDT pointer -- Reserved memory for the S3 resume

  • Get the minimum legacy memory length (meaning below 1 MB) that is required for the S3 resume boot path. If LegacyMemoryAddress is NULL, the firmware will be unable to jump into a real-mode waking vector. However, it might still be able to jump into a flat-mode waking vector as long as the OS provides a flat-mode waking vector. It is the caller's responsibility to ensure the LegacyMemoryAddress is valid. If the LegacyMemoryAddress is higher than 1 MB, EFI_INVALID_PARAMETER will be returned.

Parameters:
This A pointer to the EFI_ACPI_S3_SAVE_PROTOCOL instance.
LegacyMemoryAddress The base of legacy memory.
Return values:
EFI_SUCCESS All information was saved successfully.
EFI_INVALID_PARAMETER The memory range is not located below 1 MB.
EFI_OUT_OF_RESOURCES Resources were insufficient to save all the information.
EFI_NOT_FOUND Some necessary information cannot be found.


Variable Documentation


Generated on Wed Sep 2 13:08:33 2015 for IntelFrameworkPkg[ALL] by  doxygen 1.5.7.1