summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2016-08-18 19:28:22 -0400
committerRusty Wagner <rusty@vector35.com>2016-08-18 19:28:22 -0400
commite29b88a95e41aeb579b4d3bbfc0869acf1282c8b (patch)
treede03cadfa51fa0d38852e36640aa20a3abea9ae7 /binaryninjacore.h
parent228ee0e979268afab31b66efb357f2236238751d (diff)
Add API to execute code on the main thread
Diffstat (limited to 'binaryninjacore.h')
-rw-r--r--binaryninjacore.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h
index 61ecb235..2ba6f7e6 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -101,6 +101,7 @@ extern "C"
struct BNDisassemblySettings;
struct BNScriptingProvider;
struct BNScriptingInstance;
+ struct BNMainThreadAction;
//! Console log levels
enum BNLogLevel
@@ -1006,6 +1007,12 @@ extern "C"
void (*inputReadyStateChanged)(void* ctxt, BNScriptingProviderInputReadyState state);
};
+ struct BNMainThreadCallbacks
+ {
+ void* context;
+ void (*addAction)(void* ctxt, BNMainThreadAction* action);
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
@@ -1922,6 +1929,17 @@ extern "C"
BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentAddress(BNScriptingInstance* instance, uint64_t addr);
BINARYNINJACOREAPI void BNSetScriptingInstanceCurrentSelection(BNScriptingInstance* instance,
uint64_t begin, uint64_t end);
+
+ // Main thread actions
+ BINARYNINJACOREAPI void BNRegisterMainThread(BNMainThreadCallbacks* callbacks);
+ BINARYNINJACOREAPI BNMainThreadAction* BNNewMainThreadActionReference(BNMainThreadAction* action);
+ BINARYNINJACOREAPI void BNFreeMainThreadAction(BNMainThreadAction* action);
+ BINARYNINJACOREAPI void BNExecuteMainThreadAction(BNMainThreadAction* action);
+ BINARYNINJACOREAPI bool BNIsMainThreadActionDone(BNMainThreadAction* action);
+ BINARYNINJACOREAPI void BNWaitForMainThreadAction(BNMainThreadAction* action);
+ BINARYNINJACOREAPI BNMainThreadAction* BNExecuteOnMainThread(void* ctxt, void (*func)(void* ctxt));
+ BINARYNINJACOREAPI void BNExecuteOnMainThreadAndWait(void* ctxt, void (*func)(void* ctxt));
+
#ifdef __cplusplus
}
#endif