From a4d5fbae63a37e86eb9ff2495ee558eae7e55b00 Mon Sep 17 00:00:00 2001 From: LC Date: Thu, 16 Jul 2026 07:36:35 -0400 Subject: [PATCH] HostRunner: Tidy up interface We've accumulated a bunch of forward declarations that are no longer necessary. We also don't need to pass the signal delegator as a reference, since we're not modifying the pointer itself, it's just passed in to register a signal handler. --- .../TestHarnessRunner/TestHarnessRunner.cpp | 2 +- .../TestHarnessRunner/HostRunner.cpp | 16 +++++++++------- .../TestHarnessRunner/HostRunner.h | 11 ++--------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/Source/Tools/TestHarnessRunner/TestHarnessRunner.cpp b/Source/Tools/TestHarnessRunner/TestHarnessRunner.cpp index 4a0f85115..d368e30c6 100644 --- a/Source/Tools/TestHarnessRunner/TestHarnessRunner.cpp +++ b/Source/Tools/TestHarnessRunner/TestHarnessRunner.cpp @@ -394,7 +394,7 @@ int main(int argc, char** argv, char** const envp) { return -ENOEXEC; } - RunAsHost(SignalDelegation, Loader.DefaultRIP(), &State); + RunAsHost(SignalDelegation.get(), Loader.DefaultRIP(), &State); SignalDelegation->UninstallTLSState(ParentThread); FEX::HLE::_SyscallHandler->TM.DestroyThread(ParentThread, true); } diff --git a/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp b/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp index 630b4373f..be5a1b687 100644 --- a/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp +++ b/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.cpp @@ -1,4 +1,6 @@ // SPDX-License-Identifier: MIT +#include "HostRunner.h" + #include "ArchHelpers/UContext.h" #include "LinuxSyscalls/SignalDelegator.h" #include @@ -16,12 +18,12 @@ #include #include #endif -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #ifdef ARCHITECTURE_x86_64 static inline int modify_ldt(int func, void* ldt) { @@ -298,7 +300,7 @@ private: } }; -void RunAsHost(fextl::unique_ptr& SignalDelegation, uintptr_t InitialRip, FEXCore::Core::CPUState* OutputState) { +void RunAsHost(FEX::HLE::SignalDelegator* SignalDelegation, uintptr_t InitialRip, FEXCore::Core::CPUState* OutputState) { x86HostRunner runner; SignalDelegation->RegisterHostSignalHandler( SIGSEGV, @@ -310,7 +312,7 @@ void RunAsHost(fextl::unique_ptr& SignalDelegation, u runner.Dispatch(InitialRip); } #else -void RunAsHost(fextl::unique_ptr& SignalDelegation, uintptr_t InitialRip, FEXCore::Core::CPUState* OutputState) { +void RunAsHost(FEX::HLE::SignalDelegator* SignalDelegation, uintptr_t InitialRip, FEXCore::Core::CPUState* OutputState) { LOGMAN_MSG_A_FMT("RunAsHost doesn't exist for this host"); } #endif diff --git a/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.h b/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.h index 8c687f7e5..2433f0ec8 100644 --- a/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.h +++ b/Source/Tools/TestHarnessRunner/TestHarnessRunner/HostRunner.h @@ -1,16 +1,9 @@ // SPDX-License-Identifier: MIT #pragma once -#include +#include -namespace FEXCore::CPU { -class CPUBackend; -} -namespace FEXCore::Context { -class Context; -} namespace FEXCore::Core { -struct InternalThreadState; struct CPUState; } // namespace FEXCore::Core @@ -18,4 +11,4 @@ namespace FEX::HLE { class SignalDelegator; } -void RunAsHost(fextl::unique_ptr& SignalDelegation, uintptr_t InitialRip, FEXCore::Core::CPUState* OutputState); +void RunAsHost(FEX::HLE::SignalDelegator* SignalDelegation, uintptr_t InitialRip, FEXCore::Core::CPUState* OutputState);