8#ifndef TRITON_CALLBACKS_H
9#define TRITON_CALLBACKS_H
85 std::atomic<bool> mget;
88 std::atomic<bool> mload;
91 std::atomic<bool> mput;
94 std::atomic<bool> mstore;
97 std::atomic<bool> defined;
177 TRITON_EXPORT
bool isDefined(
void)
const;
This is the main Triton Context class.
This class is used to represent a memory access.
This class is used when an instruction has a register operand.
TRITON_EXPORT void removeCallback(triton::callbacks::callback_e kind, ComparableFunctor< void(triton::Context &, const triton::arch::MemoryAccess &)> cb)
Deletes a GET_CONCRETE_MEMORY_VALUE callback.
std::list< triton::callbacks::symbolicSimplificationCallback > symbolicSimplificationCallbacks
[c++] Callbacks for all symbolic simplifications.
TRITON_EXPORT void clearCallbacks(void)
Clears recorded callbacks.
TRITON_EXPORT void addCallback(triton::callbacks::callback_e kind, ComparableFunctor< void(triton::Context &, const triton::arch::MemoryAccess &)> cb)
Adds a GET_CONCRETE_MEMORY_VALUE callback.
std::list< triton::callbacks::setConcreteMemoryValueCallback > setConcreteMemoryValueCallbacks
[c++] Callbacks for all concrete memory needs (STORE).
triton::usize countCallbacks(void) const
Returns the number of callbacks recorded.
std::list< triton::callbacks::getConcreteMemoryValueCallback > getConcreteMemoryValueCallbacks
[c++] Callbacks for all concrete memory needs (LOAD).
std::list< triton::callbacks::setConcreteRegisterValueCallback > setConcreteRegisterValueCallbacks
[c++] Callbacks for all concrete register needs (PUT).
TRITON_EXPORT Callbacks(triton::Context &ctx)
Constructor.
TRITON_EXPORT bool isDefined(void) const
Returns true if at least one callback is defined.
void removeSingleCallback(std::list< T > &container, T cb)
Trys to find and remove the callback, raises an exception if not able.
std::list< triton::callbacks::getConcreteRegisterValueCallback > getConcreteRegisterValueCallbacks
[c++] Callbacks for all concrete register needs (GET).
TRITON_EXPORT triton::ast::SharedAbstractNode processCallbacks(triton::callbacks::callback_e kind, triton::ast::SharedAbstractNode node)
Processes callbacks according to the kind and the C++ polymorphism.
std::shared_ptr< triton::ast::AbstractNode > SharedAbstractNode
Shared Abstract Node.
std::size_t usize
unsigned MAX_INT 32 or 64 bits according to the CPU.