mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 15:00:17 +02:00
Merge pull request #4848 from lioncash/thread
InternalThreadState: Remove unused includes
This commit is contained in:
7 files changed
+51
-27
No files matched your search
@@ -1,15 +1,14 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
#pragma once
|
||||
#include <FEXCore/Core/Context.h>
|
||||
|
||||
#include <FEXCore/Core/CoreState.h>
|
||||
#include <FEXCore/Core/SignalDelegator.h>
|
||||
#include <FEXCore/Utils/Event.h>
|
||||
#include <FEXCore/Utils/InterruptableConditionVariable.h>
|
||||
#include <FEXCore/Utils/Threads.h>
|
||||
#include <FEXCore/Utils/AllocatorHooks.h>
|
||||
#include <FEXCore/Utils/TypeDefines.h>
|
||||
#include <FEXCore/fextl/memory.h>
|
||||
#include <FEXCore/fextl/vector.h>
|
||||
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <shared_mutex>
|
||||
#include <type_traits>
|
||||
|
||||
|
||||
@@ -300,7 +300,8 @@ void SeccompEmulator::DeserializeFilters(FEXCore::Core::CpuStateFrame* Frame, in
|
||||
|
||||
::mprotect(Ptr, SFilter.CodeSize, PROT_READ | PROT_EXEC);
|
||||
|
||||
auto& it = Filters.emplace_back(FilterInformation {(FilterFunc)Ptr, 1, SFilter.CodeSize, SFilter.FilterInstructions, SFilter.ShouldLog});
|
||||
auto& it =
|
||||
Filters.emplace_back(SeccompFilterInfo {(SeccompFilterFunc)Ptr, 1, SFilter.CodeSize, SFilter.FilterInstructions, SFilter.ShouldLog});
|
||||
TotalFilterInstructions += SFilter.FilterInstructions;
|
||||
|
||||
// Append the filter to the thread.
|
||||
@@ -663,8 +664,7 @@ uint64_t SeccompEmulator::SetModeFilter(FEXCore::Core::CpuStateFrame* Frame, uin
|
||||
const bool LoggingEnabled = flags & SECCOMP_FILTER_FLAG_LOG;
|
||||
auto Result = emit.JITFilter(flags, prog);
|
||||
if (Result == 0) {
|
||||
|
||||
auto& it = Filters.emplace_back(FilterInformation {(FilterFunc)emit.GetFunc(), 1, emit.AllocationSize(), prog->len, LoggingEnabled});
|
||||
auto& it = Filters.emplace_back(SeccompFilterInfo {(SeccompFilterFunc)emit.GetFunc(), 1, emit.AllocationSize(), prog->len, LoggingEnabled});
|
||||
TotalFilterInstructions += prog->len;
|
||||
|
||||
// Append the filter to the thread.
|
||||
|
||||
@@ -7,10 +7,14 @@ $end_info$
|
||||
#pragma once
|
||||
|
||||
#include <FEXCore/Config/Config.h>
|
||||
#include <FEXCore/fextl/vector.h>
|
||||
#include <FEXCore/fextl/list.h>
|
||||
#include <FEXCore/Utils/SignalScopeGuards.h>
|
||||
|
||||
#include <signal.h>
|
||||
#include <atomic>
|
||||
#include <csignal>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <optional>
|
||||
|
||||
struct sock_fprog;
|
||||
struct seccomp_data;
|
||||
@@ -30,10 +34,19 @@ namespace HLE {
|
||||
|
||||
namespace FEX::HLE {
|
||||
|
||||
class SyscallHandler;
|
||||
class SignalDelegator;
|
||||
class SyscallHandler;
|
||||
struct ThreadStateObject;
|
||||
|
||||
using SeccompFilterFunc = uint64_t (*)(uint32_t Acc, uint32_t Index, uint32_t Tmp, uint32_t Tmp2, void* Data);
|
||||
struct SeccompFilterInfo final {
|
||||
SeccompFilterFunc Func;
|
||||
uint64_t RefCount;
|
||||
size_t MappedSize;
|
||||
uint32_t FilterInstructions;
|
||||
bool ShouldLog;
|
||||
};
|
||||
|
||||
class SeccompEmulator final {
|
||||
public:
|
||||
SeccompEmulator(FEX::HLE::SyscallHandler* SyscallHandler, FEX::HLE::SignalDelegator* SignalDelegation)
|
||||
@@ -60,15 +73,6 @@ public:
|
||||
std::optional<int> SerializeFilters(FEXCore::Core::CpuStateFrame* Frame);
|
||||
void DeserializeFilters(FEXCore::Core::CpuStateFrame* Frame, int FD);
|
||||
|
||||
using FilterFunc = uint64_t (*)(uint32_t Acc, uint32_t Index, uint32_t Tmp, uint32_t Tmp2, void* Data);
|
||||
struct FilterInformation final {
|
||||
FilterFunc Func;
|
||||
uint64_t RefCount;
|
||||
size_t MappedSize;
|
||||
uint32_t FilterInstructions;
|
||||
bool ShouldLog;
|
||||
};
|
||||
|
||||
private:
|
||||
FEX_CONFIG_OPT(Is64BitMode, IS64BIT_MODE);
|
||||
FEX_CONFIG_OPT(NeedsSeccomp, NEEDSSECCOMP);
|
||||
@@ -102,7 +106,7 @@ private:
|
||||
uint64_t TotalFilterInstructions {};
|
||||
|
||||
FEXCore::ForkableUniqueMutex FilterMutex;
|
||||
fextl::list<FilterInformation> Filters {};
|
||||
fextl::list<SeccompFilterInfo> Filters {};
|
||||
|
||||
uint64_t AuditSerialIncrement() {
|
||||
return AuditSerial.fetch_add(1);
|
||||
|
||||
@@ -20,6 +20,7 @@ $end_info$
|
||||
#include <FEXCore/Core/X86Enums.h>
|
||||
#include <FEXCore/Debug/InternalThreadState.h>
|
||||
#include <FEXCore/IR/IR.h>
|
||||
#include <FEXCore/Utils/Event.h>
|
||||
|
||||
#include <FEXHeaderUtils/Syscalls.h>
|
||||
|
||||
|
||||
@@ -6,15 +6,21 @@ $end_info$
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
#include <cstdint>
|
||||
#include <sys/types.h>
|
||||
|
||||
namespace FEXCore::Context {
|
||||
class Context;
|
||||
}
|
||||
|
||||
namespace FEXCore::Core {
|
||||
struct CpuStateFrame;
|
||||
struct InternalThreadState;
|
||||
struct CPUState;
|
||||
} // namespace FEXCore::Core
|
||||
|
||||
namespace FEX::HLE {
|
||||
struct clone3_args;
|
||||
struct ThreadStateObject;
|
||||
|
||||
FEX::HLE::ThreadStateObject* CreateNewThread(FEXCore::Context::Context* CTX, FEXCore::Core::CpuStateFrame* Frame, FEX::HLE::clone3_args* args);
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "LinuxSyscalls/ThreadManager.h"
|
||||
|
||||
#include "LinuxSyscalls/Syscalls.h"
|
||||
#include "LinuxSyscalls/SignalDelegator.h"
|
||||
#include "LinuxSyscalls/Seccomp/SeccompEmulator.h"
|
||||
|
||||
#include <FEXHeaderUtils/Syscalls.h>
|
||||
#include <FEXCore/Utils/Profiler.h>
|
||||
|
||||
@@ -11,20 +11,31 @@ $end_info$
|
||||
#include "Common/SHMStats.h"
|
||||
|
||||
#include "LinuxSyscalls/Types.h"
|
||||
#include "LinuxSyscalls/Seccomp/SeccompEmulator.h"
|
||||
|
||||
#include <FEXCore/Config/Config.h>
|
||||
#include <FEXCore/Core/Context.h>
|
||||
#include <FEXCore/fextl/vector.h>
|
||||
#include <FEXCore/Utils/InterruptableConditionVariable.h>
|
||||
#include <FEXCore/Utils/Profiler.h>
|
||||
#include <FEXCore/Utils/SignalScopeGuards.h>
|
||||
#include <FEXCore/Utils/Threads.h>
|
||||
#include <FEXCore/Utils/TypeDefines.h>
|
||||
|
||||
#include <atomic>
|
||||
#include <condition_variable>
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
#include <mutex>
|
||||
#include <optional>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <bits/types/sigset_t.h>
|
||||
#include <cstdint>
|
||||
#include <linux/seccomp.h>
|
||||
|
||||
namespace FEX::HLE {
|
||||
class SyscallHandler;
|
||||
class SignalDelegator;
|
||||
class SyscallHandler;
|
||||
struct SeccompFilterInfo;
|
||||
|
||||
enum class SignalEvent : uint32_t {
|
||||
Nothing, // If the guest uses our signal we need to know it was errant on our end
|
||||
@@ -75,7 +86,7 @@ struct ThreadStateObject : public FEXCore::Allocator::FEXAllocOperators {
|
||||
|
||||
// Seccomp thread specific data.
|
||||
uint32_t SeccompMode {SECCOMP_MODE_DISABLED};
|
||||
fextl::vector<FEX::HLE::SeccompEmulator::FilterInformation*> Filters {};
|
||||
fextl::vector<FEX::HLE::SeccompFilterInfo*> Filters {};
|
||||
|
||||
// personality emulation.
|
||||
uint32_t persona {};
|
||||
|
||||
Reference in new issue
Block a user