]>
Commit | Line | Data |
---|---|---|
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 | |
28 | typedef 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 | 58 | typedef\r |
59 | EFI_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 |