diff options
| author | Xusheng <xusheng@vector35.com> | 2020-09-18 18:35:27 +0800 |
|---|---|---|
| committer | Xusheng <xusheng@vector35.com> | 2020-10-15 12:50:02 +0800 |
| commit | cbe3ded641a0ce4b50ae447a4426b71f3e0f0119 (patch) | |
| tree | 339cff6f061f89a49a78f82626dd5601c448bf05 /binaryninjaapi.h | |
| parent | d77c63efc16070868bf6eb87d274bf846f4440f7 (diff) | |
edit current line in linear view
add CanAssemble() to architectures
Diffstat (limited to 'binaryninjaapi.h')
| -rw-r--r-- | binaryninjaapi.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 0e281baa..930bfe4e 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -1637,6 +1637,8 @@ __attribute__ ((format (printf, 1, 2))) Ref<Tag> CreateAutoDataTag(uint64_t addr, Ref<TagType> tagType, const std::string& data, bool unique = false); Ref<Tag> CreateUserDataTag(uint64_t addr, Ref<TagType> tagType, const std::string& data, bool unique = false); + bool CanAssemble(Architecture* arch); + bool IsNeverBranchPatchAvailable(Architecture* arch, uint64_t addr); bool IsAlwaysBranchPatchAvailable(Architecture* arch, uint64_t addr); bool IsInvertBranchPatchAvailable(Architecture* arch, uint64_t addr); @@ -2102,6 +2104,7 @@ __attribute__ ((format (printf, 1, 2))) static BNTypeWithConfidence* GetIntrinsicOutputsCallback(void* ctxt, uint32_t intrinsic, size_t* count); static void FreeTypeListCallback(void* ctxt, BNTypeWithConfidence* types, size_t count); + static bool CanAssembleCallback(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); static bool IsAlwaysBranchPatchAvailableCallback(void* ctxt, const uint8_t* data, uint64_t addr, size_t len); @@ -2192,6 +2195,7 @@ __attribute__ ((format (printf, 1, 2))) virtual std::vector<NameAndType> GetIntrinsicInputs(uint32_t intrinsic); virtual std::vector<Confidence<Ref<Type>>> GetIntrinsicOutputs(uint32_t intrinsic); + virtual bool CanAssemble(); virtual bool Assemble(const std::string& code, uint64_t addr, DataBuffer& result, std::string& errors); /*! IsNeverBranchPatchAvailable returns true if the instruction at addr can be patched to never branch. @@ -2342,6 +2346,7 @@ __attribute__ ((format (printf, 1, 2))) virtual std::vector<NameAndType> GetIntrinsicInputs(uint32_t intrinsic) override; virtual std::vector<Confidence<Ref<Type>>> GetIntrinsicOutputs(uint32_t intrinsic) override; + virtual bool CanAssemble() 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; @@ -2417,6 +2422,7 @@ __attribute__ ((format (printf, 1, 2))) virtual std::vector<NameAndType> GetIntrinsicInputs(uint32_t intrinsic) override; virtual std::vector<Confidence<Ref<Type>>> GetIntrinsicOutputs(uint32_t intrinsic) override; + virtual bool CanAssemble() 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; |
