mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/S3SaveState: Extract arguments in correct order
EFI_BOOT_SCRIPT_WRITE() interface is a var-arg interface. Spec defines the order of parameters for EFI_BOOT_SCRIPT_PCI_CONFIG2_WRITE_OPCODE as below: typedef EFI_STATUS (EFIAPI *EFI_BOOT_SCRIPT_WRITE) ( IN CONST EFI_S3_SAVE_STATE_PROTOCOL *This, IN UINT16 OpCode, IN EFI_BOOT_SCRIPT_WIDTH Width, IN UINT16 Segment, IN UINT64 Address, IN UINTN Count, IN VOID *Buffer ); But implementation assumes Segment is in the very end, after Buffer. Similar spec/implementation gaps are also found for EFI_BOOT_SCRIPT_PCI_CONFIG2_READ_WRITE_OPCODE. The patch fixes the implementation to extract the arguments in correct order. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
parent
fbe538450f
commit
0a274516ff
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Implementation for S3 Boot Script Saver state driver.
|
||||
|
||||
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions
|
||||
|
@ -210,10 +210,10 @@ BootScriptWritePciCfg2Write (
|
|||
UINT16 Segment;
|
||||
|
||||
Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
|
||||
Segment = VA_ARG (Marker, UINT16);
|
||||
Address = VA_ARG (Marker, UINT64);
|
||||
Count = VA_ARG (Marker, UINTN);
|
||||
Buffer = VA_ARG (Marker, UINT8 *);
|
||||
Segment = VA_ARG (Marker, UINT16);
|
||||
|
||||
return S3BootScriptSavePciCfg2Write (Width, Segment, Address, Count, Buffer);
|
||||
}
|
||||
|
@ -240,8 +240,8 @@ BootScriptWritePciCfg2ReadWrite (
|
|||
UINT8 *DataMask;
|
||||
|
||||
Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
|
||||
Address = VA_ARG (Marker, UINT64);
|
||||
Segment = VA_ARG (Marker, UINT16);
|
||||
Address = VA_ARG (Marker, UINT64);
|
||||
Data = VA_ARG (Marker, UINT8 *);
|
||||
DataMask = VA_ARG (Marker, UINT8 *);
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/** @file
|
||||
Implementation for S3 SMM Boot Script Saver state driver.
|
||||
|
||||
Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions
|
||||
|
@ -209,10 +209,10 @@ BootScriptWritePciCfg2Write (
|
|||
UINT16 Segment;
|
||||
|
||||
Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
|
||||
Segment = VA_ARG (Marker, UINT16);
|
||||
Address = VA_ARG (Marker, UINT64);
|
||||
Count = VA_ARG (Marker, UINTN);
|
||||
Buffer = VA_ARG (Marker, UINT8 *);
|
||||
Segment = VA_ARG (Marker, UINT16);
|
||||
|
||||
return S3BootScriptSavePciCfg2Write (Width, Segment, Address, Count, Buffer);
|
||||
}
|
||||
|
@ -239,8 +239,8 @@ BootScriptWritePciCfg2ReadWrite (
|
|||
UINT8 *DataMask;
|
||||
|
||||
Width = VA_ARG (Marker, S3_BOOT_SCRIPT_LIB_WIDTH);
|
||||
Address = VA_ARG (Marker, UINT64);
|
||||
Segment = VA_ARG (Marker, UINT16);
|
||||
Address = VA_ARG (Marker, UINT64);
|
||||
Data = VA_ARG (Marker, UINT8 *);
|
||||
DataMask = VA_ARG (Marker, UINT8 *);
|
||||
|
||||
|
|
Loading…
Reference in New Issue