Talvos  0.1
SPIR-V interpreter and dynamic analysis framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | List of all members
talvos::Plugin Class Reference

Base class for Talvos plugins. More...

#include <talvos/Plugin.h>

Public Member Functions

virtual ~Plugin ()=default
 
virtual bool isThreadSafe () const
 Returns true if the plugin is thread-safe. More...
 
virtual void atomicAccess (const Memory *Mem, uint64_t Address, uint64_t NumBytes, uint32_t Opcode, uint32_t Scope, uint32_t Semantics, const Invocation *Invoc)
 Called when memory is atomically accessed by an instruction. More...
 
virtual void commandBegin (const Command *Cmd)
 Called when a command has begun executing. More...
 
virtual void commandComplete (const Command *Cmd)
 Called when a command has completed. More...
 
virtual void hostMemoryLoad (const Memory *Mem, uint64_t Address, uint64_t NumBytes)
 Called when the host loads data from memory. More...
 
virtual void hostMemoryStore (const Memory *Mem, uint64_t Address, uint64_t NumBytes, const uint8_t *Data)
 Called when the host stores data to memory. More...
 
virtual void instructionExecuted (const Invocation *Invoc, const Instruction *Inst)
 Called when an instruction has been executed by an invocation. More...
 
virtual void invocationBegin (const Invocation *Invoc)
 Called when an invocation has begun executing. More...
 
virtual void invocationComplete (const Invocation *Invoc)
 Called when an invocation has completed. More...
 
virtual void memoryLoad (const Memory *Mem, uint64_t Address, uint64_t NumBytes, const Invocation *Invoc)
 Called when an invocation loads data from memory. More...
 
virtual void memoryMap (const Memory *Mem, uint64_t Base, uint64_t Offset, uint64_t NumBytes)
 Called when a memory region is mapped by the host. More...
 
virtual void memoryStore (const Memory *Mem, uint64_t Address, uint64_t NumBytes, const uint8_t *Data, const Invocation *Invoc)
 Called when an invocation stores data to memory. More...
 
virtual void memoryUnmap (const Memory *Mem, uint64_t Base)
 Called when a memory region is unmapped by the host. More...
 
virtual void workgroupBegin (const Workgroup *Group)
 Called when a workgroup has begun executing. More...
 
virtual void workgroupBarrier (const Workgroup *Group)
 Called when a workgroup barrier is cleared. More...
 
virtual void workgroupComplete (const Workgroup *Group)
 Called when a workgroup has completed. More...
 

Detailed Description

Base class for Talvos plugins.

Plugins should extend this class and override the callbacks that they are interested in.

Definition at line 26 of file Plugin.h.

Constructor & Destructor Documentation

virtual talvos::Plugin::~Plugin ( )
virtualdefault

Member Function Documentation

virtual void talvos::Plugin::atomicAccess ( const Memory Mem,
uint64_t  Address,
uint64_t  NumBytes,
uint32_t  Opcode,
uint32_t  Scope,
uint32_t  Semantics,
const Invocation Invoc 
)
inlinevirtual

Called when memory is atomically accessed by an instruction.

Definition at line 35 of file Plugin.h.

virtual void talvos::Plugin::commandBegin ( const Command Cmd)
inlinevirtual

Called when a command has begun executing.

Definition at line 41 of file Plugin.h.

virtual void talvos::Plugin::commandComplete ( const Command Cmd)
inlinevirtual

Called when a command has completed.

Definition at line 44 of file Plugin.h.

virtual void talvos::Plugin::hostMemoryLoad ( const Memory Mem,
uint64_t  Address,
uint64_t  NumBytes 
)
inlinevirtual

Called when the host loads data from memory.

Definition at line 47 of file Plugin.h.

virtual void talvos::Plugin::hostMemoryStore ( const Memory Mem,
uint64_t  Address,
uint64_t  NumBytes,
const uint8_t *  Data 
)
inlinevirtual

Called when the host stores data to memory.

Definition at line 52 of file Plugin.h.

virtual void talvos::Plugin::instructionExecuted ( const Invocation Invoc,
const Instruction Inst 
)
inlinevirtual

Called when an instruction has been executed by an invocation.

Definition at line 57 of file Plugin.h.

virtual void talvos::Plugin::invocationBegin ( const Invocation Invoc)
inlinevirtual

Called when an invocation has begun executing.

Definition at line 62 of file Plugin.h.

virtual void talvos::Plugin::invocationComplete ( const Invocation Invoc)
inlinevirtual

Called when an invocation has completed.

Definition at line 65 of file Plugin.h.

virtual bool talvos::Plugin::isThreadSafe ( ) const
inlinevirtual

Returns true if the plugin is thread-safe.

Definition at line 32 of file Plugin.h.

virtual void talvos::Plugin::memoryLoad ( const Memory Mem,
uint64_t  Address,
uint64_t  NumBytes,
const Invocation Invoc 
)
inlinevirtual

Called when an invocation loads data from memory.

Definition at line 68 of file Plugin.h.

virtual void talvos::Plugin::memoryMap ( const Memory Mem,
uint64_t  Base,
uint64_t  Offset,
uint64_t  NumBytes 
)
inlinevirtual

Called when a memory region is mapped by the host.

Definition at line 73 of file Plugin.h.

virtual void talvos::Plugin::memoryStore ( const Memory Mem,
uint64_t  Address,
uint64_t  NumBytes,
const uint8_t *  Data,
const Invocation Invoc 
)
inlinevirtual

Called when an invocation stores data to memory.

Definition at line 78 of file Plugin.h.

virtual void talvos::Plugin::memoryUnmap ( const Memory Mem,
uint64_t  Base 
)
inlinevirtual

Called when a memory region is unmapped by the host.

Definition at line 84 of file Plugin.h.

virtual void talvos::Plugin::workgroupBarrier ( const Workgroup Group)
inlinevirtual

Called when a workgroup barrier is cleared.

Definition at line 90 of file Plugin.h.

virtual void talvos::Plugin::workgroupBegin ( const Workgroup Group)
inlinevirtual

Called when a workgroup has begun executing.

Definition at line 87 of file Plugin.h.

virtual void talvos::Plugin::workgroupComplete ( const Workgroup Group)
inlinevirtual

Called when a workgroup has completed.

Definition at line 93 of file Plugin.h.