]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Protocol/AcpiS3Save.h
Update comment in SMM Library class include file.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / AcpiS3Save.h
CommitLineData
cf7e50f8 1/** @file\r
4a71b21a 2 This protocol is used to prepare all information that is needed for the S3 resume boot path. This\r
3 protocol is not required for all platforms.\r
4a71b21a 4 \r
534b8251 5 Copyright (c) 2006 - 2009, Intel Corporation\r
6 All rights reserved. This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php\r
8f23e4e6 10\r
534b8251 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
8f23e4e6 13\r
534b8251 14 @par Revision Reference:\r
15 This Protocol is defined in Framework of S3 Resume Boot Path Spec.\r
16 Version 0.9.\r
17 \r
cf7e50f8 18**/\r
8f23e4e6 19\r
4ebb0d9e 20#ifndef _ACPI_S3_SAVE_PROTOCOL_H_\r
21#define _ACPI_S3_SAVE_PROTOCOL_H_\r
8f23e4e6 22\r
23#include <PiDxe.h>\r
24\r
25//\r
26// Forward reference for pure ANSI compatability\r
27//\r
28typedef struct _EFI_ACPI_S3_SAVE_PROTOCOL EFI_ACPI_S3_SAVE_PROTOCOL;\r
29\r
30//\r
31// S3 Save Protocol GUID\r
32//\r
33#define EFI_ACPI_S3_SAVE_GUID \\r
34 { \\r
35 0x125f2de1, 0xfb85, 0x440c, {0xa5, 0x4c, 0x4d, 0x99, 0x35, 0x8a, 0x8d, 0x38 } \\r
36 }\r
37\r
38//\r
39// Protocol Data Structures\r
40//\r
534b8251 41\r
42/**\r
43 This function returns the size of the legacy memory below 1 MB that is required during an S3\r
44 resume. Before the Framework-based firmware transfers control to the OS, it has to transition from\r
45 flat mode into real mode in case the OS supplies only a real-mode waking vector. This transition\r
46 requires a certain amount of legacy memory below 1 MB. After getting the size of legacy memory\r
47 below 1 MB, the caller is responsible for allocating the legacy memory below 1 MB according to\r
48 the size that is returned. The specific implementation of allocating the legacy memory is out of the\r
49 scope of this specification.\r
50\r
51 @param This A pointer to the EFI_ACPI_S3_SAVE_PROTOCOL instance.\r
52 @param LegacyMemoryAddress The returned size of legacy memory below 1MB.\r
53\r
54 @retval EFI_SUCCESS Size is successfully returned.\r
55 @retval EFI_INVALID_PARAMETER The pointer Size is NULL.\r
56\r
57**/\r
8f23e4e6 58typedef\r
59EFI_STATUS\r
69686d56 60(EFIAPI *EFI_ACPI_S3_SAVE)(\r
8f23e4e6 61 IN EFI_ACPI_S3_SAVE_PROTOCOL * This,\r
62 IN VOID * LegacyMemoryAddress\r
63 );\r
64\r
534b8251 65/**\r
66 This function is used to do the following:\r
67 \r
68 - Prepare all information that is needed in the S3 resume boot path. This information can include\r
69 the following:\r
70 -- Framework boot script table\r
71 -- RSDT pointer\r
72 -- Reserved memory for the S3 resume\r
73 \r
74 - Get the minimum memory length below 1 MB that is required for the S3 resume boot path.\r
75 If LegacyMemoryAddress is NULL, the firmware will be unable to jump into a real-mode\r
76 waking vector. However, it might still be able to jump into a flat-mode waking vector as long as the\r
77