diff options
| author | Rusty Wagner <rusty@vector35.com> | 2016-08-18 19:28:22 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2016-08-18 19:28:22 -0400 |
| commit | e29b88a95e41aeb579b4d3bbfc0869acf1282c8b (patch) | |
| tree | de03cadfa51fa0d38852e36640aa20a3abea9ae7 /binaryninjacore.h | |
| parent | 228ee0e979268afab31b66efb357f2236238751d (diff) | |
Add API to execute code on the main thread
Diffstat (limited to 'binaryninjacore.h')
| -rw-r--r-- | binaryninjacore.h | 18 |
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 |
