summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-02-07 17:18:27 -0500
committerRusty Wagner <rusty@vector35.com>2018-02-07 17:18:27 -0500
commit83c9c2bceeb354dcf53e338e9411c6636f418123 (patch)
tree2d16cf9e46a08590f27cc59b5f9fcb9631b6a007 /binaryninjaapi.h
parent331bfd4e4a648de8aba4fefd8301703a6a3440c9 (diff)
Add APIs for overriding stack adjustments on calls
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 650299ed..d7535184 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -2329,6 +2329,21 @@ namespace BinaryNinja
std::vector<IndirectBranchInfo> GetIndirectBranches();
std::vector<IndirectBranchInfo> GetIndirectBranchesAt(Architecture* arch, uint64_t addr);
+ void SetAutoCallStackAdjustment(Architecture* arch, uint64_t addr, const Confidence<size_t>& adjust);
+ void SetAutoCallRegisterStackAdjustment(Architecture* arch, uint64_t addr,
+ const std::map<uint32_t, Confidence<int32_t>>& adjust);
+ void SetAutoCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, uint32_t regStack,
+ const Confidence<int32_t>& adjust);
+ void SetUserCallStackAdjustment(Architecture* arch, uint64_t addr, const Confidence<size_t>& adjust);
+ void SetUserCallRegisterStackAdjustment(Architecture* arch, uint64_t addr,
+ const std::map<uint32_t, Confidence<int32_t>>& adjust);
+ void SetUserCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, uint32_t regStack,
+ const Confidence<int32_t>& adjust);
+
+ Confidence<size_t> GetCallStackAdjustment(Architecture* arch, uint64_t addr);
+ std::map<uint32_t, Confidence<int32_t>> GetCallRegisterStackAdjustment(Architecture* arch, uint64_t addr);
+ Confidence<int32_t> GetCallRegisterStackAdjustment(Architecture* arch, uint64_t addr, uint32_t regStack);
+
std::vector<std::vector<InstructionTextToken>> GetBlockAnnotations(Architecture* arch, uint64_t addr);
BNIntegerDisplayType GetIntegerConstantDisplayType(Architecture* arch, uint64_t instrAddr, uint64_t value,