diff options
author | Nate DeSimone <nathaniel.l.desimone@intel.com> | 2023-09-29 14:40:34 -0700 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2024-01-05 20:32:08 +0000 |
commit | 9cf1d03ebe076b3e3825dfebbc19fd6b52b5f336 (patch) | |
tree | b2a61e0eb81e716b55ce0307113d9421f1146e66 | |
parent | 5a2490df0e6753928a1322436a96e01ffb000f3a (diff) | |
download | edk2-9cf1d03ebe076b3e3825dfebbc19fd6b52b5f336.tar.gz |
Add EFI_STATUS return to EMU_THUNK_PROTOCOL.SetTime()
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 <afish@apple.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
-rw-r--r-- | EmulatorPkg/Include/Protocol/EmuThunk.h | 5 | ||||
-rw-r--r-- | 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
|