summaryrefslogtreecommitdiff
path: root/binaryninjacore.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2017-02-09 21:17:36 -0500
committerRusty Wagner <rusty@vector35.com>2017-02-09 21:17:36 -0500
commit3f08a3c209adba9de44f871e2a4cf358a71f59cd (patch)
tree13b66c5a4a3af8c74342f7eaa1c4ff8220b16294 /binaryninjacore.h
parent898ec98d9858ddec7fb431ba304d996cec12ff68 (diff)
API for accessing platform-specific types and function definitions
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 4b810002..7c4b6db0 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -1220,6 +1220,13 @@ extern "C"
uint64_t end;
};
+ struct BNSystemCallInfo
+ {
+ uint32_t number;
+ BNQualifiedName name;
+ BNType* type;
+ };
+
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
BINARYNINJACOREAPI void BNFreeString(char* str);
BINARYNINJACOREAPI void BNFreeStringList(char** strs, size_t count);
@@ -2202,6 +2209,17 @@ extern "C"
BINARYNINJACOREAPI void BNAddRelatedPlatform(BNPlatform* platform, BNArchitecture* arch, BNPlatform* related);
BINARYNINJACOREAPI BNPlatform* BNGetAssociatedPlatformByAddress(BNPlatform* platform, uint64_t* addr);
+ BINARYNINJACOREAPI BNQualifiedNameAndType* BNGetPlatformTypes(BNPlatform* platform, size_t* count);
+ BINARYNINJACOREAPI BNQualifiedNameAndType* BNGetPlatformVariables(BNPlatform* platform, size_t* count);
+ BINARYNINJACOREAPI BNQualifiedNameAndType* BNGetPlatformFunctions(BNPlatform* platform, size_t* count);
+ BINARYNINJACOREAPI BNSystemCallInfo* BNGetPlatformSystemCalls(BNPlatform* platform, size_t* count);
+ BINARYNINJACOREAPI void BNFreeSystemCallList(BNSystemCallInfo* syscalls, size_t count);
+ BINARYNINJACOREAPI BNType* BNGetPlatformTypeByName(BNPlatform* platform, BNQualifiedName* name);
+ BINARYNINJACOREAPI BNType* BNGetPlatformVariableByName(BNPlatform* platform, BNQualifiedName* name);
+ BINARYNINJACOREAPI BNType* BNGetPlatformFunctionByName(BNPlatform* platform, BNQualifiedName* name);
+ BINARYNINJACOREAPI char* BNGetPlatformSystemCallName(BNPlatform* platform, uint32_t number);
+ BINARYNINJACOREAPI BNType* BNGetPlatformSystemCallType(BNPlatform* platform, uint32_t number);
+
//Demangler
BINARYNINJACOREAPI bool BNDemangleMS(BNArchitecture* arch,
const char* mangledName,