summaryrefslogtreecommitdiff
path: root/binaryninjacore.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 /binaryninjacore.h
parent331bfd4e4a648de8aba4fefd8301703a6a3440c9 (diff)
Add APIs for overriding stack adjustments on calls
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 945badce..a9c38ed6 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -2383,6 +2383,25 @@ extern "C"
uint64_t addr, size_t* count);
BINARYNINJACOREAPI void BNFreeIndirectBranchList(BNIndirectBranchInfo* branches);
+ BINARYNINJACOREAPI void BNSetAutoCallStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
+ size_t adjust, uint8_t confidence);
+ BINARYNINJACOREAPI void BNSetUserCallStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
+ size_t adjust, uint8_t confidence);
+ BINARYNINJACOREAPI void BNSetAutoCallRegisterStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
+ BNRegisterStackAdjustment* adjust, size_t count);
+ BINARYNINJACOREAPI void BNSetUserCallRegisterStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr,
+ BNRegisterStackAdjustment* adjust, size_t count);
+ BINARYNINJACOREAPI void BNSetAutoCallRegisterStackAdjustmentForRegisterStack(BNFunction* func,
+ BNArchitecture* arch, uint64_t addr, uint32_t regStack, int32_t adjust, uint8_t confidence);
+ BINARYNINJACOREAPI void BNSetUserCallRegisterStackAdjustmentForRegisterStack(BNFunction* func,
+ BNArchitecture* arch, uint64_t addr, uint32_t regStack, int32_t adjust, uint8_t confidence);
+
+ BINARYNINJACOREAPI BNSizeWithConfidence BNGetCallStackAdjustment(BNFunction* func, BNArchitecture* arch, uint64_t addr);
+ BINARYNINJACOREAPI BNRegisterStackAdjustment* BNGetCallRegisterStackAdjustment(BNFunction* func,
+ BNArchitecture* arch, uint64_t addr, size_t* count);
+ BINARYNINJACOREAPI BNRegisterStackAdjustment BNGetCallRegisterStackAdjustmentForRegisterStack(BNFunction* func,
+ BNArchitecture* arch, uint64_t addr, uint32_t regStack);
+
BINARYNINJACOREAPI BNInstructionTextLine* BNGetFunctionBlockAnnotations(BNFunction* func, BNArchitecture* arch,
uint64_t addr, size_t* count);
BINARYNINJACOREAPI void BNFreeInstructionTextLines(BNInstructionTextLine* lines, size_t count);