From cbe3ded641a0ce4b50ae447a4426b71f3e0f0119 Mon Sep 17 00:00:00 2001 From: Xusheng Date: Fri, 18 Sep 2020 18:35:27 +0800 Subject: edit current line in linear view add CanAssemble() to architectures --- binaryninjaapi.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'binaryninjaapi.h') 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 CreateAutoDataTag(uint64_t addr, Ref tagType, const std::string& data, bool unique = false); Ref CreateUserDataTag(uint64_t addr, Ref 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 GetIntrinsicInputs(uint32_t intrinsic); virtual std::vector>> 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 GetIntrinsicInputs(uint32_t intrinsic) override; virtual std::vector>> 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 GetIntrinsicInputs(uint32_t intrinsic) override; virtual std::vector>> 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; -- cgit v1.3.1