There is an inconsistency between the UNIX and Windows implementations of EMU_THUNK_PROTOCOL.SetTime(). The Windows version returns an EFI_STATUS value whereas the the UNIX implementation is VOID. However, the UNIX implementation is an unimplemented stub whereas the Windows version is implementated.
The current EMU_THUNK_PROTOCOL function pointer definition specifies a VOID return type. However, EMU_THUNK_PROTOCOL.SetTime() is close to the spec defined gRT->SetTime() except for missing the EFI_STATUS return type. Therefore, I conclude that the most sensible reconciliation is to add the EFI_STATUS return type to the protocol definition. Cc: Andrew Fish <af...@apple.com> Cc: Ray Ni <ray...@intel.com> Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Chasel Chiu <chasel.c...@intel.com> Signed-off-by: Nate DeSimone <nathaniel.l.desim...@intel.com> --- EmulatorPkg/Include/Protocol/EmuThunk.h | 5 +++-- EmulatorPkg/Unix/Host/EmuThunk.c | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/EmulatorPkg/Include/Protocol/EmuThunk.h b/EmulatorPkg/Include/Protocol/EmuThunk.h index c419d0a677..bdd57f410b 100644 --- a/EmulatorPkg/Include/Protocol/EmuThunk.h +++ b/EmulatorPkg/Include/Protocol/EmuThunk.h @@ -2,6 +2,7 @@ Emulator Thunk to abstract OS services from pure EFI code Copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR> + Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> SPDX-License-Identifier: BSD-2-Clause-Patent @@ -148,12 +149,12 @@ VOID typedef VOID (EFIAPI *EMU_GET_TIME)( - OUT EFI_TIME *Time, + OUT EFI_TIME *Time, OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL ); typedef -VOID +EFI_STATUS (EFIAPI *EMU_SET_TIME)( IN EFI_TIME *Time ); diff --git a/EmulatorPkg/Unix/Host/EmuThunk.c b/EmulatorPkg/Unix/Host/EmuThunk.c index ee0843eebf..c57c105a53 100644 --- a/EmulatorPkg/Unix/Host/EmuThunk.c +++ b/EmulatorPkg/Unix/Host/EmuThunk.c @@ -387,14 +387,14 @@ SecGetTime ( } } -VOID +EFI_STATUS SecSetTime ( IN EFI_TIME *Time ) { // Don't change the time on the system // We could save delta to localtime() and have SecGetTime adjust return values? - return; + return EFI_UNSUPPORTED; } EFI_STATUS -- 2.39.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109228): https://edk2.groups.io/g/devel/message/109228 Mute This Topic: https://groups.io/mt/101667678/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-