Class encapsulates architecture-, OS- and compiler-specific function call semantics in a virtual "bind argument parameters from left
to right and then call" interface allowing programmers to call C functions in a completely dynamic manner. In other words, instead of calling a function directly, class provides a mechanism to push the function parameters manually and to issue the call afterwards.
More...
#include <call.hpp>
|
enum class | WaitType { None
, Breakpoint
, Wait_Keypress
} |
|
using | CallingFunc = void(*)(const uint64_t *params, const Return *) |
|
using | HiddenParam = bool(*)(ValueType) |
| HiddenParam is a predicate function pointer to determine if a ValueType should be passed as a hidden parameter. Use for return structs on x86 and arm arch.
|
|
|
PLUGIFY_ACCESS | : struct Impl |
|
Class encapsulates architecture-, OS- and compiler-specific function call semantics in a virtual "bind argument parameters from left
to right and then call" interface allowing programmers to call C functions in a completely dynamic manner. In other words, instead of calling a function directly, class provides a mechanism to push the function parameters manually and to issue the call afterwards.
Definition at line 35 of file call.hpp.
◆ CallingFunc
using plugify::JitCall::CallingFunc = void (*)(const uint64_t* params, const Return*) |
◆ HiddenParam
HiddenParam is a predicate function pointer to determine if a ValueType should be passed as a hidden parameter. Use for return structs on x86 and arm arch.
Definition at line 68 of file call.hpp.
◆ WaitType
enum class plugify::JitCall::WaitType |
|
strong |
◆ JitCall() [1/2]
plugify::JitCall::JitCall |
( |
const JitCall & |
other | ) |
|
|
delete |
Copy constructor.
- Parameters
-
◆ JitCall() [2/2]
plugify::JitCall::JitCall |
( |
JitCall && |
other | ) |
|
|
noexcept |
Move constructor.
- Parameters
-
◆ GetError()
std::string_view plugify::JitCall::GetError |
( |
| ) |
|
|
noexcept |
Get the error message, if any.
- Returns
- Error message.
◆ GetFunction()
MemAddr plugify::JitCall::GetFunction |
( |
| ) |
const |
|
noexcept |
Get a dynamically created function.
- Returns
- Pointer to the already generated function.
- Note
- The returned pointer can be nullptr if function is not generate.
◆ GetJitFunc() [1/2]
Get a dynamically created function based on the method reference.
- Parameters
-
method | Reference to the method. |
target | Target function to call. |
waitType | Optionally insert a breakpoint before the call. |
hidden | If true, return will be pass as hidden argument. |
- Returns
- Pointer to the generated function.
◆ GetJitFunc() [2/2]
Get a dynamically created function based on the raw signature.
- Parameters
-
sig | Function signature. |
target | Target function to call. |
waitType | Optionally insert a breakpoint before the call. |
hidden | If true, return will be pass as hidden argument. |
- Returns
- Pointer to the generated function.
◆ GetTargetFunc()
MemAddr plugify::JitCall::GetTargetFunc |
( |
| ) |
const |
|
noexcept |
Get the target associated with the object.
This function returns a pointer to the target function associated with the object.
- Returns
- A void pointer to the target function.
- Note
- The returned pointer can be nullptr if no target is set.
◆ operator=() [1/2]
Copy assignment operator for JitCall.
- Parameters
-
other | The other JitCall instance to copy from. |
- Returns
- A reference to this instance after copying.
◆ operator=() [2/2]
Move assignment operator for JitCall.
- Parameters
-
other | The other JitCall instance to move from. |
- Returns
- A reference to this instance after moving.
- Note
- This operator is marked noexcept to indicate it does not throw exceptions.
◆ __pad0__
PLUGIFY_ACCESS plugify::JitCall::__pad0__ |
The documentation for this class was generated from the following file: