summaryrefslogtreecommitdiff
path: root/binaryninjaapi.h
diff options
context:
space:
mode:
Diffstat (limited to 'binaryninjaapi.h')
-rw-r--r--binaryninjaapi.h43
1 files changed, 41 insertions, 2 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 34a45160..a364e5d9 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -2017,7 +2017,8 @@ namespace BinaryNinja {
void* ctxt, BNBinaryView* data, BNComponent* formerParent, BNComponent* newParent, BNComponent* component);
static void ComponentFunctionAddedCallback(void* ctxt, BNBinaryView* data, BNComponent* component, BNFunction* function);
static void ComponentFunctionRemovedCallback(void* ctxt, BNBinaryView* data, BNComponent* component, BNFunction* function);
-
+ static void ComponentDataVariableAddedCallback(void* ctxt, BNBinaryView* data, BNComponent* component, BNDataVariable* var);
+ static void ComponentDataVariableRemovedCallback(void* ctxt, BNBinaryView* data, BNComponent* component, BNDataVariable* var);
public:
BinaryDataNotification();
@@ -2271,6 +2272,32 @@ namespace BinaryNinja {
(void)component;
(void)function;
}
+
+ /*! This notification is posted whenever a DataVariable is added to a Component
+
+ \param data BinaryView containing the Component and DataVariable
+ \param component Component the DataVariable was added to
+ \param var The DataVariable which was added
+ */
+ virtual void OnComponentDataVariableAdded(BinaryView* data, Component* component, const DataVariable& var)
+ {
+ (void)data;
+ (void)component;
+ (void)var;
+ }
+
+ /*! This notification is posted whenever a DataVariable is removed from a Component
+
+ \param data BinaryView containing the Component and DataVariable
+ \param component Component the DataVariable was removed from
+ \param var The DataVariable which was removed
+ */
+ virtual void OnComponentDataVariableRemoved(BinaryView* data, Component* component, const DataVariable& var)
+ {
+ (void)data;
+ (void)component;
+ (void)var;
+ }
};
/*!
@@ -4279,6 +4306,9 @@ namespace BinaryNinja {
*/
bool RemoveComponent(std::string guid);
+ std::vector<Ref<Component>> GetFunctionParentComponents(Ref<Function> function) const;
+ std::vector<Ref<Component>> GetDataVariableParentComponents(DataVariable var) const;
+
/*! Check whether the given architecture supports assembling instructions
\param arch Architecture to check
@@ -8483,7 +8513,6 @@ namespace BinaryNinja {
\return Whether this function needs update
*/
bool NeedsUpdate() const;
- std::vector<Ref<Component>> GetParentComponents() const;
/*! Get a list of Basic Blocks for this function
@@ -14723,6 +14752,8 @@ namespace BinaryNinja {
*/
bool AddComponent(Ref<Component> component);
+ bool AddDataVariable(DataVariable dataVariable);
+
/*! Remove a Component from this Component, moving it to the root component.
This will not remove a component from the tree entirely.
@@ -14741,6 +14772,8 @@ namespace BinaryNinja {
*/
bool RemoveFunction(Ref<Function> func);
+ bool RemoveDataVariable(DataVariable dataVariable);
+
/*! Get a list of types referenced by the functions in this Component.
\return vector of Type objects
@@ -14759,6 +14792,12 @@ namespace BinaryNinja {
*/
std::vector<Ref<Function>> GetContainedFunctions();
+ /*! Get a list of datavariables added to this component
+
+ \return list of DataVariables
+ */
+ std::vector<DataVariable> GetContainedDataVariables();
+
/*! Get a list of DataVariables referenced by the functions in this Component.
\return vector of DataVariable objects