summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2018-02-07 17:18:27 -0500
committerPeter LaFosse <peter@vector35.com>2018-03-23 17:10:06 -0400
commiteb2a6a07df889537e25c647d9b3c71c30c836961 (patch)
tree07854f577cadc9df169c4cfd52cde12a97108436 /binaryninjaapi.h
parent2f6d0dbc9fa98f44468791d81d72ffe300879775 (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 fb7ac178..27ac4dc1 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -2336,6 +2336,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,