summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2024-10-21 10:55:45 -0400
committerPeter LaFosse <peter@vector35.com>2024-10-23 20:37:38 -0400
commit9aa54ef6723ad06b019c02c22b574516dca6289b (patch)
treee0b420a8a609f4644607cad7f6170cf36ee26771 /binaryninjaapi.h
parentc446e3acbcb0dc750a840551fa7cb54c184e7acb (diff)
Linear view function regions collapse
Update collapse code to support PseudoC
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 884861bb..bcaf644e 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -4367,6 +4367,7 @@ namespace BinaryNinja {
class TypeLibrary;
class TypeArchive;
class MemoryMap;
+ struct HighLevelILInstruction;
class QueryMetadataException : public ExceptionWithStackTrace
{
@@ -10501,6 +10502,8 @@ namespace BinaryNinja {
{
int m_advancedAnalysisRequests;
+ bool IsRegionCollapsed(uint64_t hash) const;
+
public:
Function(BNFunction* func);
virtual ~Function();
@@ -11094,6 +11097,14 @@ namespace BinaryNinja {
Confidence<bool> IsInlinedDuringAnalysis();
void SetAutoInlinedDuringAnalysis(Confidence<bool> inlined);
void SetUserInlinedDuringAnalysis(Confidence<bool> inlined);
+
+ // TODO: Documentation
+ bool IsInstructionCollapsed(const HighLevelILInstruction& instr, uint64_t designator = 0) const;
+ bool IsCollapsed() const;
+ void ToggleRegion(uint64_t hash);
+ void CollapseRegion(uint64_t hash);
+ void ExpandRegion(uint64_t hash);
+ void ExpandAll();
};
/*!
@@ -18445,6 +18456,12 @@ namespace BinaryNinja {
InstructionTextToken::FreeInstructionTextToken(&converted);
}
+ void PrependCollapseIndicator();
+ void PrependCollapseIndicator(Ref<Function> function, const HighLevelILInstruction& instr, uint64_t designator = 0);
+ void PrependCollapseIndicator(BNInstructionTextTokenContext context, uint64_t hash);
+ bool HasCollapsableRegions();
+ void SetHasCollapsableRegions(bool state);
+
/*! Starts a new line in the output. */
void NewLine();