From eb2a6a07df889537e25c647d9b3c71c30c836961 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Wed, 7 Feb 2018 17:18:27 -0500 Subject: Add APIs for overriding stack adjustments on calls --- binaryninjaapi.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'binaryninjaapi.h') diff --git a/binaryninjaapi.h b/binaryninjaapi.h index fb7ac178..27ac4dc1 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -2336,6 +2336,21 @@ namespace BinaryNinja std::vector GetIndirectBranches(); std::vector GetIndirectBranchesAt(Architecture* arch, uint64_t addr); + void SetAutoCallStackAdjustment(Architecture* arch, uint64_t addr, const Confidence& adjust); + void SetAutoCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, + const std::map>& adjust); + void SetAutoCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, uint32_t regStack, + const Confidence& adjust); + void SetUserCallStackAdjustment(Architecture* arch, uint64_t addr, const Confidence& adjust); + void SetUserCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, + const std::map>& adjust); + void SetUserCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, uint32_t regStack, + const Confidence& adjust); + + Confidence GetCallStackAdjustment(Architecture* arch, uint64_t addr); + std::map> GetCallRegisterStackAdjustment(Architecture* arch, uint64_t addr); + Confidence GetCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, uint32_t regStack); + std::vector> GetBlockAnnotations(Architecture* arch, uint64_t addr); BNIntegerDisplayType GetIntegerConstantDisplayType(Architecture* arch, uint64_t instrAddr, uint64_t value, -- cgit v1.3.1