diff options
| author | Rusty Wagner <rusty@vector35.com> | 2016-07-23 21:29:52 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2016-07-23 21:29:52 -0400 |
| commit | 11cf9f176f45f03df16bf69c5ca33789ba0ded22 (patch) | |
| tree | 8545794dfdef1fec42d481c12a55da6645540308 | |
| parent | 13491e5eb8d50c242cf6858b111e404ea9f79239 (diff) | |
Add endian argument to registering archs with views
| -rw-r--r-- | binaryninjaapi.h | 6 | ||||
| -rw-r--r-- | binaryninjacore.h | 6 | ||||
| -rw-r--r-- | binaryviewtype.cpp | 12 | ||||
| -rw-r--r-- | python/__init__.py | 8 |
4 files changed, 17 insertions, 15 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 85a0fc41..1bdaab13 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -924,9 +924,9 @@ namespace BinaryNinja static std::vector<Ref<BinaryViewType>> GetViewTypes(); static std::vector<Ref<BinaryViewType>> GetViewTypesForData(BinaryView* data); - static void RegisterArchitecture(const std::string& name, uint32_t id, Architecture* arch); - void RegisterArchitecture(uint32_t id, Architecture* arch); - Ref<Architecture> GetArchitecture(uint32_t id); + static void RegisterArchitecture(const std::string& name, uint32_t id, BNEndianness endian, Architecture* arch); + void RegisterArchitecture(uint32_t id, BNEndianness endian, Architecture* arch); + Ref<Architecture> GetArchitecture(uint32_t id, BNEndianness endian); static void RegisterPlatform(const std::string& name, uint32_t id, Architecture* arch, Platform* platform); static void RegisterDefaultPlatform(const std::string& name, Architecture* arch, Platform* platform); diff --git a/binaryninjacore.h b/binaryninjacore.h index 837a99e1..241f1f3d 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -1139,8 +1139,10 @@ extern "C" BINARYNINJACOREAPI BNBinaryViewType* BNRegisterBinaryViewType(const char* name, const char* longName, BNCustomBinaryViewType* type); - BINARYNINJACOREAPI void BNRegisterArchitectureForViewType(BNBinaryViewType* type, uint32_t id, BNArchitecture* arch); - BINARYNINJACOREAPI BNArchitecture* BNGetArchitectureForViewType(BNBinaryViewType* type, uint32_t id); + BINARYNINJACOREAPI void BNRegisterArchitectureForViewType(BNBinaryViewType* type, uint32_t id, + BNEndianness endian, BNArchitecture* arch); + BINARYNINJACOREAPI BNArchitecture* BNGetArchitectureForViewType(BNBinaryViewType* type, uint32_t id, + BNEndianness endian); BINARYNINJACOREAPI void BNRegisterPlatformForViewType(BNBinaryViewType* type, uint32_t id, BNArchitecture* arch, BNPlatform* platform); diff --git a/binaryviewtype.cpp b/binaryviewtype.cpp index 12883bd6..e7feb68c 100644 --- a/binaryviewtype.cpp +++ b/binaryviewtype.cpp @@ -106,24 +106,24 @@ vector<Ref<BinaryViewType>> BinaryViewType::GetViewTypesForData(BinaryView* data } -void BinaryViewType::RegisterArchitecture(const string& name, uint32_t id, Architecture* arch) +void BinaryViewType::RegisterArchitecture(const string& name, uint32_t id, BNEndianness endian, Architecture* arch) { Ref<BinaryViewType> type = BinaryViewType::GetByName(name); if (!type) return; - type->RegisterArchitecture(id, arch); + type->RegisterArchitecture(id, endian, arch); } -void BinaryViewType::RegisterArchitecture(uint32_t id, Architecture* arch) +void BinaryViewType::RegisterArchitecture(uint32_t id, BNEndianness endian, Architecture* arch) { - BNRegisterArchitectureForViewType(m_object, id, arch->GetObject()); + BNRegisterArchitectureForViewType(m_object, id, endian, arch->GetObject()); } -Ref<Architecture> BinaryViewType::GetArchitecture(uint32_t id) +Ref<Architecture> BinaryViewType::GetArchitecture(uint32_t id, BNEndianness endian) { - BNArchitecture* arch = BNGetArchitectureForViewType(m_object, id); + BNArchitecture* arch = BNGetArchitectureForViewType(m_object, id, endian); if (!arch) return nullptr; return new CoreArchitecture(arch); diff --git a/python/__init__.py b/python/__init__.py index 9f090c2f..4d7e7fb8 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -649,11 +649,11 @@ class BinaryViewType(object): def is_valid_for_data(self, data): return core.BNIsBinaryViewTypeValidForData(self.handle, data.handle) - def register_arch(self, ident, arch): - core.BNRegisterArchitectureForViewType(self.handle, ident, arch.handle) + def register_arch(self, ident, endian, arch): + core.BNRegisterArchitectureForViewType(self.handle, ident, endian, arch.handle) - def get_arch(self, ident): - arch = core.BNGetArchitectureForViewType(self.handle, ident) + def get_arch(self, ident, endian): + arch = core.BNGetArchitectureForViewType(self.handle, ident, endian) if arch is None: return None return Architecture(arch) |
