mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-10 14:00:18 +02:00
It is not an external component, and it makes paths needlessly long. Ryan seemed amenable to this when we discussed on IRC earlier. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
39 lines
792 B
C++
39 lines
792 B
C++
/*
|
|
$info$
|
|
tags: glue|thunks
|
|
$end_info$
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <FEXCore/IR/IR.h>
|
|
#include <FEXCore/fextl/memory.h>
|
|
#include <FEXCore/fextl/vector.h>
|
|
|
|
namespace FEXCore::Context {
|
|
class ContextImpl;
|
|
}
|
|
|
|
namespace FEXCore::Core {
|
|
struct InternalThreadState;
|
|
}
|
|
|
|
namespace FEXCore::IR {
|
|
struct SHA256Sum;
|
|
}
|
|
|
|
namespace FEXCore {
|
|
typedef void ThunkedFunction(void* ArgsRv);
|
|
|
|
class ThunkHandler {
|
|
public:
|
|
virtual ThunkedFunction* LookupThunk(const IR::SHA256Sum &sha256) = 0;
|
|
virtual void RegisterTLSState(FEXCore::Core::InternalThreadState *Thread) = 0;
|
|
virtual ~ThunkHandler() { }
|
|
|
|
static fextl::unique_ptr<ThunkHandler> Create();
|
|
|
|
virtual void AppendThunkDefinitions(fextl::vector<FEXCore::IR::ThunkDefinition> const& Definitions) = 0;
|
|
};
|
|
};
|