summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2015-07-15 02:27:11 -0400
committerRusty Wagner <rusty@vector35.com>2015-07-15 02:27:11 -0400
commit94793dfb57b1defa2a7ab5e67edf5f5f043d598c (patch)
tree7d4706918f643192e203d510ac062e899e910cad /binaryninjaapi.h
parent4c161e6d4ca3ec23fb1e3fadded579f065312b38 (diff)
Starting implementation of register analysis
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index a27ac261..de1855a0 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -811,6 +811,12 @@ namespace BinaryNinja
static char* GetRegisterNameCallback(void* ctxt, uint32_t reg);
static char* GetFlagNameCallback(void* ctxt, uint32_t flag);
static char* GetFlagWriteTypeNameCallback(void* ctxt, uint32_t flags);
+ static uint32_t* GetFullWidthRegistersCallback(void* ctxt, size_t* count);
+ static uint32_t* GetAllRegistersCallback(void* ctxt, size_t* count);
+ static void FreeRegisterListCallback(void* ctxt, uint32_t* regs);
+ static BNRegisterInfo GetRegisterInfoCallback(void* ctxt, uint32_t reg);
+ static uint32_t GetStackPointerRegisterCallback(void* ctxt);
+
static bool AssembleCallback(void* ctxt, const char* code, uint64_t addr, BNDataBuffer* result, char** errors);
static bool IsNeverBranchPatchAvailableCallback(void* ctxt, const uint8_t* data, uint64_t addr, size_t len);
@@ -846,6 +852,11 @@ namespace BinaryNinja
virtual std::string GetRegisterName(uint32_t reg);
virtual std::string GetFlagName(uint32_t flag);
virtual std::string GetFlagWriteTypeName(uint32_t flags);
+ virtual std::vector<uint32_t> GetFullWidthRegisters();
+ virtual std::vector<uint32_t> GetAllRegisters();
+ virtual BNRegisterInfo GetRegisterInfo(uint32_t reg);
+ virtual uint32_t GetStackPointerRegister();
+ std::vector<uint32_t> GetModifiedRegistersOnWrite(uint32_t reg);
virtual bool Assemble(const std::string& code, uint64_t addr, DataBuffer& result, std::string& errors);
@@ -874,6 +885,11 @@ namespace BinaryNinja
virtual std::string GetRegisterName(uint32_t reg) override;
virtual std::string GetFlagName(uint32_t flag) override;
virtual std::string GetFlagWriteTypeName(uint32_t flags) override;
+ virtual std::vector<uint32_t> GetFullWidthRegisters() override;
+ virtual std::vector<uint32_t> GetAllRegisters() override;
+ virtual BNRegisterInfo GetRegisterInfo(uint32_t reg) override;
+ virtual uint32_t GetStackPointerRegister() override;
+
virtual bool Assemble(const std::string& code, uint64_t addr, DataBuffer& result, std::string& errors) override;
virtual bool IsNeverBranchPatchAvailable(const uint8_t* data, uint64_t addr, size_t len) override;