|
37 | 37 | // Current ABI version for linking to the core. This is incremented any time |
38 | 38 | // there are changes to the API that affect linking, including new functions, |
39 | 39 | // new types, or modifications to existing functions or types. |
40 | | -#define BN_CURRENT_CORE_ABI_VERSION 171 |
| 40 | +#define BN_CURRENT_CORE_ABI_VERSION 172 |
41 | 41 |
|
42 | 42 | // Minimum ABI version that is supported for loading of plugins. Plugins that |
43 | 43 | // are linked to an ABI version less than this will not be able to load and |
44 | 44 | // will require rebuilding. The minimum version is increased when there are |
45 | 45 | // incompatible changes that break binary compatibility, such as changes to |
46 | 46 | // existing types or functions. |
47 | | -#define BN_MINIMUM_CORE_ABI_VERSION 171 |
| 47 | +#define BN_MINIMUM_CORE_ABI_VERSION 172 |
48 | 48 |
|
49 | 49 | #ifdef __GNUC__ |
50 | 50 | #ifdef BINARYNINJACORE_LIBRARY |
@@ -1323,6 +1323,12 @@ extern "C" |
1323 | 1323 | uint8_t confidence; |
1324 | 1324 | } BNRegisterValueWithConfidence; |
1325 | 1325 |
|
| 1326 | + typedef struct BNRegisterValueWithConfidenceAndRegister |
| 1327 | + { |
| 1328 | + uint32_t reg; |
| 1329 | + BNRegisterValueWithConfidence value; |
| 1330 | + } BNRegisterValueWithConfidenceAndRegister; |
| 1331 | + |
1326 | 1332 | typedef struct BNValueRange |
1327 | 1333 | { |
1328 | 1334 | uint64_t start, end, step; |
@@ -2956,7 +2962,7 @@ extern "C" |
2956 | 2962 | uint32_t (*getIntegerReturnValueRegister)(void* ctxt); |
2957 | 2963 | uint32_t (*getHighIntegerReturnValueRegister)(void* ctxt); |
2958 | 2964 | uint32_t (*getFloatReturnValueRegister)(void* ctxt); |
2959 | | - uint32_t (*getGlobalPointerRegister)(void* ctxt); |
| 2965 | + uint32_t* (*getGlobalPointerRegisters)(void* ctxt, size_t* count); |
2960 | 2966 |
|
2961 | 2967 | uint32_t* (*getImplicitlyDefinedRegisters)(void* ctxt, size_t* count); |
2962 | 2968 | void (*getIncomingRegisterValue)(void* ctxt, uint32_t reg, BNFunction* func, BNRegisterValue* result); |
@@ -4889,10 +4895,13 @@ extern "C" |
4889 | 4895 | BINARYNINJACOREAPI BNNameSpace BNGetInternalNameSpace(void); |
4890 | 4896 | BINARYNINJACOREAPI void BNFreeNameSpace(BNNameSpace* name); |
4891 | 4897 |
|
4892 | | - BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetGlobalPointerValue(BNBinaryView* view); |
4893 | | - BINARYNINJACOREAPI bool BNUserGlobalPointerValueSet(BNBinaryView* view); |
4894 | | - BINARYNINJACOREAPI void BNClearUserGlobalPointerValue(BNBinaryView* view); |
4895 | | - BINARYNINJACOREAPI void BNSetUserGlobalPointerValue(BNBinaryView* view, BNRegisterValueWithConfidence value); |
| 4898 | + BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetGlobalPointerValues(BNBinaryView* view, size_t* count); |
| 4899 | + BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetDefaultGlobalPointerValues(BNBinaryView* view, size_t* count); |
| 4900 | + BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetUserGlobalPointerValues(BNBinaryView* view, size_t* count); |
| 4901 | + BINARYNINJACOREAPI void BNFreeRegisterValueWithConfidenceAndRegisterList(BNRegisterValueWithConfidenceAndRegister* values); |
| 4902 | + BINARYNINJACOREAPI bool BNUserGlobalPointerValuesSet(BNBinaryView* view); |
| 4903 | + BINARYNINJACOREAPI void BNClearUserGlobalPointerValues(BNBinaryView* view); |
| 4904 | + BINARYNINJACOREAPI void BNSetUserGlobalPointerValues(BNBinaryView* view, const BNRegisterValueWithConfidenceAndRegister* values, size_t count); |
4896 | 4905 |
|
4897 | 4906 | BINARYNINJACOREAPI bool BNStringifyUnicodeData(BNBinaryView* data, BNArchitecture* arch, const BNDataBuffer* buffer, bool nullTerminates, bool allowShortStrings, char** string, BNStringType* type); |
4898 | 4907 |
|
@@ -5446,7 +5455,7 @@ extern "C" |
5446 | 5455 | BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetFunctionTypeTokens( |
5447 | 5456 | BNFunction* func, BNDisassemblySettings* settings, size_t* count); |
5448 | 5457 |
|
5449 | | - BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionGlobalPointerValue(BNFunction* func); |
| 5458 | + BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetFunctionGlobalPointerValues(BNFunction* func, size_t* count); |
5450 | 5459 | BINARYNINJACOREAPI bool BNFunctionUsesIncomingGlobalPointer(BNFunction* func); |
5451 | 5460 | BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionRegisterValueAtExit(BNFunction* func, uint32_t reg); |
5452 | 5461 |
|
@@ -7764,7 +7773,7 @@ extern "C" |
7764 | 7773 | BINARYNINJACOREAPI uint32_t BNGetIntegerReturnValueRegister(BNCallingConvention* cc); |
7765 | 7774 | BINARYNINJACOREAPI uint32_t BNGetHighIntegerReturnValueRegister(BNCallingConvention* cc); |
7766 | 7775 | BINARYNINJACOREAPI uint32_t BNGetFloatReturnValueRegister(BNCallingConvention* cc); |
7767 | | - BINARYNINJACOREAPI uint32_t BNGetGlobalPointerRegister(BNCallingConvention* cc); |
| 7776 | + BINARYNINJACOREAPI uint32_t* BNGetGlobalPointerRegisters(BNCallingConvention* cc, size_t* count); |
7768 | 7777 |
|
7769 | 7778 | BINARYNINJACOREAPI uint32_t* BNGetImplicitlyDefinedRegisters(BNCallingConvention* cc, size_t* count); |
7770 | 7779 | BINARYNINJACOREAPI BNRegisterValue BNGetIncomingRegisterValue( |
|
0 commit comments