@@ -1314,6 +1314,12 @@ extern "C"
13141314 uint8_t confidence;
13151315 } BNRegisterValueWithConfidence;
13161316
1317+ typedef struct BNRegisterValueWithConfidenceAndRegister
1318+ {
1319+ uint32_t reg;
1320+ BNRegisterValueWithConfidence value;
1321+ } BNRegisterValueWithConfidenceAndRegister;
1322+
13171323 typedef struct BNValueRange
13181324 {
13191325 uint64_t start, end, step;
@@ -2875,6 +2881,7 @@ extern "C"
28752881 uint32_t (*getHighIntegerReturnValueRegister)(void* ctxt);
28762882 uint32_t (*getFloatReturnValueRegister)(void* ctxt);
28772883 uint32_t (*getGlobalPointerRegister)(void* ctxt);
2884+ uint32_t* (*getGlobalPointerRegisters)(void* ctxt, size_t* count);
28782885
28792886 uint32_t* (*getImplicitlyDefinedRegisters)(void* ctxt, size_t* count);
28802887 void (*getIncomingRegisterValue)(void* ctxt, uint32_t reg, BNFunction* func, BNRegisterValue* result);
@@ -4778,9 +4785,14 @@ extern "C"
47784785 BINARYNINJACOREAPI void BNFreeNameSpace(BNNameSpace* name);
47794786
47804787 BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetGlobalPointerValue(BNBinaryView* view);
4788+ BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetGlobalPointerValues(BNBinaryView* view, size_t* count);
4789+ BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetDefaultGlobalPointerValues(BNBinaryView* view, size_t* count);
4790+ BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetUserGlobalPointerValues(BNBinaryView* view, size_t* count);
4791+ BINARYNINJACOREAPI void BNFreeRegisterValueWithConfidenceAndRegisterList(BNRegisterValueWithConfidenceAndRegister* values);
47814792 BINARYNINJACOREAPI bool BNUserGlobalPointerValueSet(BNBinaryView* view);
47824793 BINARYNINJACOREAPI void BNClearUserGlobalPointerValue(BNBinaryView* view);
47834794 BINARYNINJACOREAPI void BNSetUserGlobalPointerValue(BNBinaryView* view, BNRegisterValueWithConfidence value);
4795+ BINARYNINJACOREAPI void BNSetUserGlobalPointerValues(BNBinaryView* view, const BNRegisterValueWithConfidenceAndRegister* values, size_t count);
47844796
47854797 BINARYNINJACOREAPI bool BNStringifyUnicodeData(BNBinaryView* data, BNArchitecture* arch, const BNDataBuffer* buffer, bool nullTerminates, bool allowShortStrings, char** string, BNStringType* type);
47864798
@@ -5320,6 +5332,7 @@ extern "C"
53205332 BNFunction* func, BNDisassemblySettings* settings, size_t* count);
53215333
53225334 BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionGlobalPointerValue(BNFunction* func);
5335+ BINARYNINJACOREAPI BNRegisterValueWithConfidenceAndRegister* BNGetFunctionGlobalPointerValues(BNFunction* func, size_t* count);
53235336 BINARYNINJACOREAPI bool BNFunctionUsesIncomingGlobalPointer(BNFunction* func);
53245337 BINARYNINJACOREAPI BNRegisterValueWithConfidence BNGetFunctionRegisterValueAtExit(BNFunction* func, uint32_t reg);
53255338
@@ -7623,6 +7636,7 @@ extern "C"
76237636 BINARYNINJACOREAPI uint32_t BNGetHighIntegerReturnValueRegister(BNCallingConvention* cc);
76247637 BINARYNINJACOREAPI uint32_t BNGetFloatReturnValueRegister(BNCallingConvention* cc);
76257638 BINARYNINJACOREAPI uint32_t BNGetGlobalPointerRegister(BNCallingConvention* cc);
7639+ BINARYNINJACOREAPI uint32_t* BNGetGlobalPointerRegisters(BNCallingConvention* cc, size_t* count);
76267640
76277641 BINARYNINJACOREAPI uint32_t* BNGetImplicitlyDefinedRegisters(BNCallingConvention* cc, size_t* count);
76287642 BINARYNINJACOREAPI BNRegisterValue BNGetIncomingRegisterValue(
0 commit comments