]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c
MdeModulePkg: Apply uncrustify changes
[mirror_edk2.git] / MdeModulePkg / Universal / Acpi / S3SaveStateDxe / S3SaveState.c
index 60cd9b1b3be678cc9449a910dd3f5d3ac7dc24b1..c6e328d875173736f945f97056bcbe06e3734217 100644 (file)
@@ -1,27 +1,21 @@
 /** @file\r
   Implementation for S3 Boot Script Saver state driver.\r
 \r
-  Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
 \r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions\r
-  of the BSD License which accompanies this distribution.  The\r
-  full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 #include "InternalS3SaveState.h"\r
 \r
-EFI_HANDLE                    mHandle = NULL;\r
-EFI_S3_SAVE_STATE_PROTOCOL    mS3SaveState = {\r
+EFI_HANDLE                  mHandle      = NULL;\r
+EFI_S3_SAVE_STATE_PROTOCOL  mS3SaveState = {\r
   BootScriptWrite,\r
   BootScriptInsert,\r
   BootScriptLabel,\r
   BootScriptCompare\r
-  };\r
+};\r
+\r
 /**\r
   Internal function to add IO write opcode to the table.\r
 \r
@@ -34,21 +28,22 @@ EFI_S3_SAVE_STATE_PROTOCOL    mS3SaveState = {
 **/\r
 EFI_STATUS\r
 BootScriptWriteIoWrite (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT64                Address;\r
-  UINTN                 Count;\r
-  UINT8                 *Buffer;\r
-\r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Count       = VA_ARG (Marker, UINTN);\r
-  Buffer      = VA_ARG (Marker, UINT8 *);\r
-  \r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  UINTN                     Count;\r
+  UINT8                     *Buffer;\r
+\r
+  Width   = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address = VA_ARG (Marker, UINT64);\r
+  Count   = VA_ARG (Marker, UINTN);\r
+  Buffer  = VA_ARG (Marker, UINT8 *);\r
+\r
   return S3BootScriptSaveIoWrite (Width, Address, Count, Buffer);\r
 }\r
+\r
 /**\r
   Internal function to add IO read/write opcode to the table.\r
 \r
@@ -61,19 +56,19 @@ BootScriptWriteIoWrite (
 **/\r
 EFI_STATUS\r
 BootScriptWriteIoReadWrite (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT64                Address;\r
-  UINT8                 *Data;\r
-  UINT8                 *DataMask;\r
\r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Data        = VA_ARG (Marker, UINT8 *);\r
-  DataMask    = VA_ARG (Marker, UINT8 *);\r
-  \r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  UINT8                     *Data;\r
+  UINT8                     *DataMask;\r
+\r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, UINT8 *);\r
+  DataMask = VA_ARG (Marker, UINT8 *);\r
+\r
   return S3BootScriptSaveIoReadWrite (Width, Address, Data, DataMask);\r
 }\r
 \r
@@ -89,18 +84,18 @@ BootScriptWriteIoReadWrite (
 **/\r
 EFI_STATUS\r
 BootScriptWriteMemWrite (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT64                Address;\r
-  UINTN                 Count;\r
-  UINT8                 *Buffer;\r
\r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Count       = VA_ARG (Marker, UINTN);\r
-  Buffer      = VA_ARG (Marker, UINT8 *);\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  UINTN                     Count;\r
+  UINT8                     *Buffer;\r
+\r
+  Width   = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address = VA_ARG (Marker, UINT64);\r
+  Count   = VA_ARG (Marker, UINTN);\r
+  Buffer  = VA_ARG (Marker, UINT8 *);\r
 \r
   return S3BootScriptSaveMemWrite (Width, Address, Count, Buffer);\r
 }\r
@@ -117,18 +112,18 @@ BootScriptWriteMemWrite (
 **/\r
 EFI_STATUS\r
 BootScriptWriteMemReadWrite (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT64                Address;\r
-  UINT8                 *Data;\r
-  UINT8                 *DataMask;\r
-  \r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Data        = VA_ARG (Marker, UINT8 *);\r
-  DataMask    = VA_ARG (Marker, UINT8 *);\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  UINT8                     *Data;\r
+  UINT8                     *DataMask;\r
+\r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, UINT8 *);\r
+  DataMask = VA_ARG (Marker, UINT8 *);\r
 \r
   return S3BootScriptSaveMemReadWrite (Width, Address, Data, DataMask);\r
 }\r
@@ -145,18 +140,18 @@ BootScriptWriteMemReadWrite (
 **/\r
 EFI_STATUS\r
 BootScriptWritePciCfgWrite (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT64                Address;\r
-  UINTN                 Count;\r
-  UINT8                 *Buffer;\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  UINTN                     Count;\r
+  UINT8                     *Buffer;\r
 \r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Count       = VA_ARG (Marker, UINTN);\r
-  Buffer      = VA_ARG (Marker, UINT8 *);\r
+  Width   = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address = VA_ARG (Marker, UINT64);\r
+  Count   = VA_ARG (Marker, UINTN);\r
+  Buffer  = VA_ARG (Marker, UINT8 *);\r
 \r
   return S3BootScriptSavePciCfgWrite (Width, Address, Count, Buffer);\r
 }\r
@@ -173,21 +168,22 @@ BootScriptWritePciCfgWrite (
 **/\r
 EFI_STATUS\r
 BootScriptWritePciCfgReadWrite (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT64                Address;\r
-  UINT8                 *Data;\r
-  UINT8                 *DataMask;\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  UINT8                     *Data;\r
+  UINT8                     *DataMask;\r
 \r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Data        = VA_ARG (Marker, UINT8 *);\r
-  DataMask    = VA_ARG (Marker, UINT8 *);\r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, UINT8 *);\r
+  DataMask = VA_ARG (Marker, UINT8 *);\r
 \r
   return S3BootScriptSavePciCfgReadWrite (Width, Address, Data, DataMask);\r
 }\r
+\r
 /**\r
   Internal function to add PciCfg2 write opcode to the table.\r
 \r
@@ -200,20 +196,20 @@ BootScriptWritePciCfgReadWrite (
 **/\r
 EFI_STATUS\r
 BootScriptWritePciCfg2Write (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT64                Address;\r
-  UINTN                 Count;\r
-  UINT8                 *Buffer;\r
-  UINT16                Segment;\r
-\r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Count       = VA_ARG (Marker, UINTN);\r
-  Buffer      = VA_ARG (Marker, UINT8 *);\r
-  Segment     = VA_ARG (Marker, UINT16);\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  UINTN                     Count;\r
+  UINT8                     *Buffer;\r
+  UINT16                    Segment;\r
+\r
+  Width   = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Segment = VA_ARG (Marker, UINT16);\r
+  Address = VA_ARG (Marker, UINT64);\r
+  Count   = VA_ARG (Marker, UINTN);\r
+  Buffer  = VA_ARG (Marker, UINT8 *);\r
 \r
   return S3BootScriptSavePciCfg2Write (Width, Segment, Address, Count, Buffer);\r
 }\r
@@ -230,25 +226,26 @@ BootScriptWritePciCfg2Write (
 **/\r
 EFI_STATUS\r
 BootScriptWritePciCfg2ReadWrite (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH Width;\r
-  UINT16                Segment;\r
-  UINT64                Address;\r
-  UINT8                 *Data;\r
-  UINT8                 *DataMask;\r
\r
-  Width       = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
-  Address     = VA_ARG (Marker, UINT64);\r
-  Segment     = VA_ARG (Marker, UINT16);\r
-  Data        = VA_ARG (Marker, UINT8 *);\r
-  DataMask    = VA_ARG (Marker, UINT8 *);\r
\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT16                    Segment;\r
+  UINT64                    Address;\r
+  UINT8                     *Data;\r
+  UINT8                     *DataMask;\r
+\r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Segment  = VA_ARG (Marker, UINT16);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, UINT8 *);\r
+  DataMask = VA_ARG (Marker, UINT8 *);\r
+\r
   return S3BootScriptSavePciCfg2ReadWrite (Width, Segment, Address, Data, DataMask);\r
 }\r
+\r
 /**\r
-  Internal function to add smbus excute opcode to the table.\r
+  Internal function to add smbus execute opcode to the table.\r
 \r
   @param  Marker                The variable argument list to get the opcode\r
                                 and associated attributes.\r
@@ -259,27 +256,28 @@ BootScriptWritePciCfg2ReadWrite (
 **/\r
 EFI_STATUS\r
 BootScriptWriteSmbusExecute (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
   EFI_SMBUS_DEVICE_ADDRESS  SlaveAddress;\r
   EFI_SMBUS_DEVICE_COMMAND  Command;\r
   EFI_SMBUS_OPERATION       Operation;\r
   BOOLEAN                   PecCheck;\r
-  VOID                     *Buffer;\r
-  UINTN                    *DataSize;\r
+  VOID                      *Buffer;\r
+  UINTN                     *DataSize;\r
   UINTN                     SmBusAddress;\r
-  \r
+\r
   SlaveAddress.SmbusDeviceAddress = VA_ARG (Marker, UINTN);\r
   Command                         = VA_ARG (Marker, EFI_SMBUS_DEVICE_COMMAND);\r
   Operation                       = VA_ARG (Marker, EFI_SMBUS_OPERATION);\r
   PecCheck                        = VA_ARG (Marker, BOOLEAN);\r
-  SmBusAddress                    = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress,Command,0,PecCheck);\r
-  DataSize                        = VA_ARG (Marker, UINTN *);    \r
+  SmBusAddress                    = SMBUS_LIB_ADDRESS (SlaveAddress.SmbusDeviceAddress, Command, 0, PecCheck);\r
+  DataSize                        = VA_ARG (Marker, UINTN *);\r
   Buffer                          = VA_ARG (Marker, VOID *);\r
\r
+\r
   return S3BootScriptSaveSmbusExecute (SmBusAddress, Operation, DataSize, Buffer);\r
 }\r
+\r
 /**\r
   Internal function to add stall opcode to the table.\r
 \r
@@ -292,18 +290,18 @@ BootScriptWriteSmbusExecute (
 **/\r
 EFI_STATUS\r
 BootScriptWriteStall (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  UINT32                Duration;\r
+  UINT32  Duration;\r
 \r
-  Duration    = VA_ARG (Marker, UINT32);\r
+  Duration = VA_ARG (Marker, UINT32);\r
 \r
   return S3BootScriptSaveStall (Duration);\r
 }\r
 \r
 /**\r
-  Internal function to add Save jmp address according to DISPATCH_OPCODE. \r
+  Internal function to add Save jmp address according to DISPATCH_OPCODE.\r
   We ignore "Context" parameter\r
 \r
   @param  Marker                The variable argument list to get the opcode\r
@@ -315,18 +313,18 @@ BootScriptWriteStall (
 **/\r
 EFI_STATUS\r
 BootScriptWriteDispatch (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  VOID        *EntryPoint;\r
+  VOID  *EntryPoint;\r
 \r
-  EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+  EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
   return S3BootScriptSaveDispatch (EntryPoint);\r
 }\r
 \r
 /**\r
-  Internal function to add memory pool operation to the table. \r
\r
+  Internal function to add memory pool operation to the table.\r
+\r
   @param  Marker                The variable argument list to get the opcode\r
                                 and associated attributes.\r
 \r
@@ -336,22 +334,22 @@ BootScriptWriteDispatch (
 **/\r
 EFI_STATUS\r
 BootScriptWriteMemPoll (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  S3_BOOT_SCRIPT_LIB_WIDTH   Width;                                    \r
-  UINT64                     Address;                                    \r
-  VOID                      *Data;                                    \r
-  VOID                      *DataMask;                                  \r
-  UINTN                     Delay;                                   \r
-  UINT                    LoopTimes;\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  VOID                      *Data;\r
+  VOID                      *DataMask;\r
+  UINT64                    Delay;\r
+  UINT64                    LoopTimes;\r
   UINT32                    Remainder;\r
 \r
-  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);                  \r
-  Address  = VA_ARG (Marker, UINT64);                                    \r
-  Data     = VA_ARG (Marker, VOID *);                                    \r
-  DataMask = VA_ARG (Marker, VOID *);                                    \r
-  Delay    = (UINTN)VA_ARG (Marker, UINT64);                            \r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, VOID *);\r
+  DataMask = VA_ARG (Marker, VOID *);\r
+  Delay    = VA_ARG (Marker, UINT64);\r
   //\r
   // According to the spec, the interval between 2 polls is 100ns,\r
   // but the unit of Duration for S3BootScriptSaveMemPoll() is microsecond(1000ns).\r
@@ -359,7 +357,7 @@ BootScriptWriteMemPoll (
   // Duration will be minimum 1(microsecond) to be minimum deviation,\r
   // so LoopTimes = Delay / 10.\r
   //\r
-  LoopTimes = (UINTN) DivU64x32Remainder (\r
+  LoopTimes = DivU64x32Remainder (\r
                 Delay,\r
                 10,\r
                 &Remainder\r
@@ -368,14 +366,14 @@ BootScriptWriteMemPoll (
     //\r
     // If Remainder is not zero, LoopTimes will be rounded up by 1.\r
     //\r
-    LoopTimes +=1;\r
+    LoopTimes += 1;\r
   }\r
-  return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);\r
 \r
+  return S3BootScriptSaveMemPoll (Width, Address, DataMask, Data, 1, LoopTimes);\r
 }\r
 \r
 /**\r
-  Internal function to add Save jmp address according to DISPATCH_OPCODE2. \r
+  Internal function to add Save jmp address according to DISPATCH_OPCODE2.\r
   The "Context" parameter is not ignored.\r
 \r
   @param  Marker                The variable argument list to get the opcode\r
@@ -387,17 +385,18 @@ BootScriptWriteMemPoll (
 **/\r
 EFI_STATUS\r
 BootScriptWriteDispatch2 (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-  VOID                  *EntryPoint;\r
-  VOID                  *Context;  \r
+  VOID  *EntryPoint;\r
+  VOID  *Context;\r
 \r
-  EntryPoint = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
-  Context    = (VOID*)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+  EntryPoint = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+  Context    = (VOID *)(UINTN)VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
 \r
   return S3BootScriptSaveDispatch2 (EntryPoint, Context);\r
 }\r
+\r
 /**\r
   Internal function to add INFORAMTION opcode node to the table\r
   list.\r
@@ -410,16 +409,17 @@ BootScriptWriteDispatch2 (
 **/\r
 EFI_STATUS\r
 BootScriptWriteInformation (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
   UINT32                InformationLength;\r
-  EFI_PHYSICAL_ADDRESS  Information;  \r
+  EFI_PHYSICAL_ADDRESS  Information;\r
 \r
   InformationLength = VA_ARG (Marker, UINT32);\r
-  Information = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
-  return S3BootScriptSaveInformation (InformationLength, (VOID*)(UINTN)Information);\r
+  Information       = VA_ARG (Marker, EFI_PHYSICAL_ADDRESS);\r
+  return S3BootScriptSaveInformation (InformationLength, (VOID *)(UINTN)Information);\r
 }\r
+\r
 /**\r
   Internal function to add IO poll opcode node  to the table\r
   @param  Marker                The variable argument list to get the opcode\r
@@ -431,23 +431,24 @@ BootScriptWriteInformation (
 **/\r
 EFI_STATUS\r
 BootScriptWriteIoPoll (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-   S3_BOOT_SCRIPT_LIB_WIDTH     Width;\r
-   UINT64                     Address;    \r
-   VOID                      *Data;    \r
-   VOID                      *DataMask;   \r
-   UINT64                     Delay;   \r
-   \r
-   Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);  \r
-   Address  = VA_ARG (Marker, UINT64);                    \r
-   Data     = VA_ARG (Marker, VOID *);                   \r
-   DataMask = VA_ARG (Marker, VOID *);                   \r
-   Delay    = (UINT64)VA_ARG (Marker, UINT64);             \r
-   \r
-   return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  VOID                      *Data;\r
+  VOID                      *DataMask;\r
+  UINT64                    Delay;\r
+\r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, VOID *);\r
+  DataMask = VA_ARG (Marker, VOID *);\r
+  Delay    = (UINT64)VA_ARG (Marker, UINT64);\r
+\r
+  return S3BootScriptSaveIoPoll (Width, Address, Data, DataMask, Delay);\r
 }\r
+\r
 /**\r
   Internal function to add PCI config poll opcode node to the table\r
 \r
@@ -460,24 +461,24 @@ BootScriptWriteIoPoll (
 **/\r
 EFI_STATUS\r
 BootScriptWritePciConfigPoll (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-   S3_BOOT_SCRIPT_LIB_WIDTH   Width;\r
-   UINT64                     Address;\r
-   VOID                      *Data;\r
-   VOID                      *DataMask;\r
-   UINT64                     Delay;\r
-\r
-   \r
-   Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);  \r
-   Address  = VA_ARG (Marker, UINT64);                    \r
-   Data     = VA_ARG (Marker, VOID *);                   \r
-   DataMask = VA_ARG (Marker, VOID *);                   \r
-   Delay    = (UINT64)VA_ARG (Marker, UINT64);             \r
-   \r
-   return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT64                    Address;\r
+  VOID                      *Data;\r
+  VOID                      *DataMask;\r
+  UINT64                    Delay;\r
+\r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, VOID *);\r
+  DataMask = VA_ARG (Marker, VOID *);\r
+  Delay    = (UINT64)VA_ARG (Marker, UINT64);\r
+\r
+  return S3BootScriptSavePciPoll (Width, Address, Data, DataMask, Delay);\r
 }\r
+\r
 /**\r
   Internal function to add PCI config 2 poll opcode node to the table\r
 \r
@@ -490,50 +491,49 @@ BootScriptWritePciConfigPoll (
 **/\r
 EFI_STATUS\r
 BootScriptWritePciConfig2Poll (\r
-  IN VA_LIST                       Marker\r
+  IN VA_LIST  Marker\r
   )\r
 {\r
-   S3_BOOT_SCRIPT_LIB_WIDTH      Width;\r
-   UINT16                        Segment;\r
-   UINT64                        Address;\r
-   VOID                         *Data;\r
-   VOID                         *DataMask;\r
-   UINT64                        Delay;\r
-  \r
-   Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);  \r
-   Segment  = VA_ARG (Marker, UINT16);      \r
-   Address  = VA_ARG (Marker, UINT64);                    \r
-   Data     = VA_ARG (Marker, VOID *);                   \r
-   DataMask = VA_ARG (Marker, VOID *);                   \r
-   Delay    = (UINT64)VA_ARG (Marker, UINT64);             \r
-   \r
-   return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);\r
+  S3_BOOT_SCRIPT_LIB_WIDTH  Width;\r
+  UINT16                    Segment;\r
+  UINT64                    Address;\r
+  VOID                      *Data;\r
+  VOID                      *DataMask;\r
+  UINT64                    Delay;\r
+\r
+  Width    = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);\r
+  Segment  = VA_ARG (Marker, UINT16);\r
+  Address  = VA_ARG (Marker, UINT64);\r
+  Data     = VA_ARG (Marker, VOID *);\r
+  DataMask = VA_ARG (Marker, VOID *);\r
+  Delay    = (UINT64)VA_ARG (Marker, UINT64);\r
+\r
+  return S3BootScriptSavePci2Poll (Width, Segment, Address, Data, DataMask, Delay);\r
 }\r
 \r
-\r
 /**\r
   Adds a record into S3 boot script table.\r
 \r
   This function is used to store a boot script record into a given boot\r
-  script table. If the table specified by TableName is nonexistent in the \r
-  system, a new table will automatically be created and then the script record \r
-  will be added into the new table. This function is responsible for allocating \r
+  script table. If the table specified by TableName is nonexistent in the\r
+  system, a new table will automatically be created and then the script record\r
+  will be added into the new table. This function is responsible for allocating\r
   necessary memory for the script.\r
 \r
-  This function has a variable parameter list. The exact parameter list depends on \r
-  the OpCode that is passed into the function. If an unsupported OpCode or illegal \r
+  This function has a variable parameter list. The exact parameter list depends on\r
+  the OpCode that is passed into the function. If an unsupported OpCode or illegal\r
   parameter list is passed in, this function returns EFI_INVALID_PARAMETER.\r
   If there are not enough resources available for storing more scripts, this function returns\r
   EFI_OUT_OF_RESOURCES.\r
 \r
   @param  This                  A pointer to the EFI_S3_SAVE_STATE_PROTOCOL instance.\r
   @param  OpCode                The operation code (opcode) number.\r
-  @param  ...                   Argument list that is specific to each opcode. \r
-                                \r
+  @param  ...                   Argument list that is specific to each opcode.\r
+\r
   @retval EFI_SUCCESS           The operation succeeded. A record was added into the\r
                                 specified script table.\r
   @retval EFI_INVALID_PARAMETER The parameter is illegal or the given boot script is not supported.\r
-                                If the opcode is unknow or not supported because of the PCD \r
+                                If the opcode is unknow or not supported because of the PCD\r
                                 Feature Flags.\r
   @retval EFI_OUT_OF_RESOURCES  There is insufficient memory to store the boot script.\r
 \r
@@ -541,128 +541,129 @@ BootScriptWritePciConfig2Poll (
 EFI_STATUS\r
 EFIAPI\r
 BootScriptWrite (\r
-  IN CONST EFI_S3_SAVE_STATE_PROTOCOL      *This,\r
-  IN       UINT16                           OpCode,\r
+  IN CONST EFI_S3_SAVE_STATE_PROTOCOL  *This,\r
+  IN       UINTN                       OpCode,\r
   ...\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  VA_LIST                   Marker;  \r
+  EFI_STATUS  Status;\r
+  VA_LIST     Marker;\r
+\r
   //\r
   // Build script according to opcode\r
   //\r
   switch (OpCode) {\r
-\r
-  case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteIoWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteIoReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteMemWrite (Marker);\r
-    VA_END (Marker); \r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteMemReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfgWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfgReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteSmbusExecute (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteStall (Marker);\r
-    VA_END (Marker);\r
-  \r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteDispatch (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteDispatch2 (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteInformation (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteMemPoll (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfg2Write (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:  \r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteIoPoll (Marker);\r
-    VA_END (Marker);\r
-    break;    \r
-  \r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE: \r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciConfigPoll (Marker);\r
-    VA_END (Marker);\r
-    break;    \r
-  \r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciConfig2Poll (Marker);\r
-    VA_END (Marker);\r
-    break;    \r
-\r
-  default:\r
-    Status = EFI_INVALID_PARAMETER;\r
-    break;\r
+    case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteIoWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteIoReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteMemWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteMemReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfgWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfgReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteSmbusExecute (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteStall (Marker);\r
+      VA_END (Marker);\r
+\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteDispatch (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteDispatch2 (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteInformation (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteMemPoll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfg2Write (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteIoPoll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciConfigPoll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciConfig2Poll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    default:\r
+      Status = EFI_INVALID_PARAMETER;\r
+      break;\r
   }\r
 \r
   return Status;\r
 }\r
+\r
 /**\r
   Insert a record into a specified Framework boot script table.\r
 \r
@@ -683,7 +684,7 @@ BootScriptWrite (
                                 inserted, either before or after, depending on BeforeOrAfter. On exit, specifies\r
                                 the position of the inserted opcode in the boot script table.\r
   @param  OpCode                The operation code (opcode) number.\r
-  @param  ...                   Argument list that is specific to each opcode. \r
+  @param  ...                   Argument list that is specific to each opcode.\r
 \r
   @retval EFI_SUCCESS           The operation succeeded. A record was added into the\r
                                 specified script table.\r
@@ -694,133 +695,135 @@ BootScriptWrite (
 EFI_STATUS\r
 EFIAPI\r
 BootScriptInsert (\r
-  IN CONST EFI_S3_SAVE_STATE_PROTOCOL     *This,\r
-  IN       BOOLEAN                        BeforeOrAfter,\r
-  IN OUT   EFI_S3_BOOT_SCRIPT_POSITION    *Position OPTIONAL,\r
-  IN       UINT16                         OpCode,\r
+  IN CONST EFI_S3_SAVE_STATE_PROTOCOL   *This,\r
+  IN       BOOLEAN                      BeforeOrAfter,\r
+  IN OUT   EFI_S3_BOOT_SCRIPT_POSITION  *Position OPTIONAL,\r
+  IN       UINTN                        OpCode,\r
   ...\r
   )\r
 {\r
-  EFI_STATUS                Status;\r
-  VA_LIST                   Marker;  \r
+  EFI_STATUS  Status;\r
+  VA_LIST     Marker;\r
+\r
   //\r
   // Build script according to opcode\r
   //\r
   switch (OpCode) {\r
-\r
-  case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteIoWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteIoReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteMemWrite (Marker);\r
-    VA_END (Marker); \r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteMemReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfgWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfgReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteSmbusExecute (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteStall (Marker);\r
-    VA_END (Marker);\r
-  \r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteDispatch (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteDispatch2 (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteInformation (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteMemPoll (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfg2Write (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-\r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
-    VA_END (Marker);\r
-    break;\r
-    \r
-  case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:  \r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWriteIoPoll (Marker);\r
-    VA_END (Marker);\r
-    break;    \r
-  \r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE: \r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciConfigPoll (Marker);\r
-    VA_END (Marker);\r
-    break;    \r
-  \r
-  case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
-    VA_START (Marker, OpCode);\r
-    Status = BootScriptWritePciConfig2Poll (Marker);\r
-    VA_END (Marker);\r
-    break;    \r
-\r
-  default:\r
-    Status = EFI_INVALID_PARAMETER;\r
-    break;\r
+    case EFI_BOOT_SCRIPT_IO_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteIoWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_IO_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteIoReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_MEM_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteMemWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_MEM_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteMemReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfgWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfgReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_SMBUS_EXECUTE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteSmbusExecute (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_STALL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteStall (Marker);\r
+      VA_END (Marker);\r
+\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_DISPATCH_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteDispatch (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_DISPATCH_2_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteDispatch2 (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_INFORMATION_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteInformation (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_MEM_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteMemPoll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfg2Write (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciCfg2ReadWrite (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_IO_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWriteIoPoll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciConfigPoll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    case EFI_BOOT_SCRIPT_PCI_CONFIG2_POLL_OPCODE:\r
+      VA_START (Marker, OpCode);\r
+      Status = BootScriptWritePciConfig2Poll (Marker);\r
+      VA_END (Marker);\r
+      break;\r
+\r
+    default:\r
+      Status = EFI_INVALID_PARAMETER;\r
+      break;\r
   }\r
-  \r
+\r
   if (!EFI_ERROR (Status)) {\r
-   Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, Position);\r
+    Status = S3BootScriptMoveLastOpcode (BeforeOrAfter, (VOID **)Position);\r
   }\r
+\r
   return Status;\r
 }\r
+\r
 /**\r
   Find a label within the boot script table and, if not present, optionally create it.\r
 \r
@@ -846,48 +849,50 @@ BootScriptInsert (
   @retval EFI_SUCCESS           The label already exists or was inserted.\r
   @retval EFI_INVALID_PARAMETER The Label is NULL or points to an empty string.\r
   @retval EFI_INVALID_PARAMETER The Position is not a valid position in the boot script table.\r
-  \r
+\r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 BootScriptLabel (\r
-  IN CONST EFI_S3_SAVE_STATE_PROTOCOL           *This,\r
-  IN       BOOLEAN                              BeforeOrAfter,\r
-  IN       BOOLEAN                              CreateIfNotFound,\r
-  IN OUT   EFI_S3_BOOT_SCRIPT_POSITION          *Position OPTIONAL,\r
-  IN CONST CHAR8                                *Label\r
+  IN CONST EFI_S3_SAVE_STATE_PROTOCOL   *This,\r
+  IN       BOOLEAN                      BeforeOrAfter,\r
+  IN       BOOLEAN                      CreateIfNotFound,\r
+  IN OUT   EFI_S3_BOOT_SCRIPT_POSITION  *Position OPTIONAL,\r
+  IN CONST CHAR8                        *Label\r
   )\r
 {\r
-       return S3BootScriptLabel (BeforeOrAfter, CreateIfNotFound, Position, Label);\r
+  return S3BootScriptLabel (BeforeOrAfter, CreateIfNotFound, (VOID **)Position, Label);\r
 }\r
+\r
 /**\r
   Compare two positions in the boot script table and return their relative position.\r
-  \r
+\r
   This function compares two positions in the boot script table and returns their relative positions. If\r
   Position1 is before Position2, then -1 is returned. If Position1 is equal to Position2,\r
   then 0 is returned. If Position1 is after Position2, then 1 is returned.\r
-  \r
+\r
   @param  This                  A pointer to the EFI_S3_SAVE_STATE_PROTOCOL instance.\r
   @param  Position1             The positions in the boot script table to compare\r
   @param  Position2             The positions in the boot script table to compare\r
   @param  RelativePosition      On return, points to the result of the comparison\r
 \r
-  @retval EFI_SUCCESS           The operation succeeded. \r
+  @retval EFI_SUCCESS           The operation succeeded.\r
   @retval EFI_INVALID_PARAMETER The Position1 or Position2 is not a valid position in the boot script table.\r
   @retval EFI_INVALID_PARAMETER The RelativePosition is NULL.\r
 \r
 **/\r
 EFI_STATUS\r
-EFIAPI \r
+EFIAPI\r
 BootScriptCompare (\r
-  IN CONST EFI_S3_SAVE_STATE_PROTOCOL      *This,\r
-  IN       EFI_S3_BOOT_SCRIPT_POSITION      Position1,\r
-  IN       EFI_S3_BOOT_SCRIPT_POSITION      Position2,\r
-  OUT      UINTN                           *RelativePosition\r
+  IN CONST EFI_S3_SAVE_STATE_PROTOCOL   *This,\r
+  IN       EFI_S3_BOOT_SCRIPT_POSITION  Position1,\r
+  IN       EFI_S3_BOOT_SCRIPT_POSITION  Position2,\r
+  OUT      UINTN                        *RelativePosition\r
   )\r
 {\r
-       return S3BootScriptCompare (Position1, Position2, RelativePosition);\r
+  return S3BootScriptCompare (Position1, Position2, RelativePosition);\r
 }\r
+\r
 /**\r
   This routine is entry point of ScriptSave driver.\r
 \r
@@ -896,25 +901,37 @@ BootScriptCompare (
 \r
   @retval EFI_OUT_OF_RESOURCES  No enough resource\r
   @retval EFI_SUCCESS           Succesfully installed the ScriptSave driver.\r
-  @retval other                 Errors occured.\r
+  @retval other                 Errors occurred.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
 InitializeS3SaveState (\r
-  IN EFI_HANDLE           ImageHandle,\r
-  IN EFI_SYSTEM_TABLE     *SystemTable\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
 {\r
+  EFI_STATUS  Status;\r
+  EFI_EVENT   EndOfDxeEvent;\r
 \r
+  if (!PcdGetBool (PcdAcpiS3Enable)) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
 \r
-  return  gBS->InstallProtocolInterface (\r
-                  &mHandle,\r
-                  &gEfiS3SaveStateProtocolGuid,\r
-                  EFI_NATIVE_INTERFACE,\r
-                  &mS3SaveState\r
+  Status = gBS->CreateEventEx (\r
+                  EVT_NOTIFY_SIGNAL,\r
+                  TPL_CALLBACK,\r
+                  AcpiS3ContextSaveOnEndOfDxe,\r
+                  NULL,\r
+                  &gEfiEndOfDxeEventGroupGuid,\r
+                  &EndOfDxeEvent\r
                   );\r
+  ASSERT_EFI_ERROR (Status);\r
 \r
+  return gBS->InstallProtocolInterface (\r
+                &mHandle,\r
+                &gEfiS3SaveStateProtocolGuid,\r
+                EFI_NATIVE_INTERFACE,\r
+                &mS3SaveState\r
+                );\r
 }\r
-\r
-\r