diff options
| author | Rusty Wagner <rusty@vector35.com> | 2015-04-06 14:29:51 -0700 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2015-04-06 14:29:51 -0700 |
| commit | a641c5266ad2a55af2bdd277a2b889ced4eb7235 (patch) | |
| tree | e30a13162d29641d285951df10030c95e73ebef7 /architecture.cpp | |
| parent | d5dc1c2e3169760156ac54c976bbe1ea3d9a8441 (diff) | |
Implement follow pointer in hex view
Diffstat (limited to 'architecture.cpp')
| -rw-r--r-- | architecture.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/architecture.cpp b/architecture.cpp index fc5b0466..268fcece 100644 --- a/architecture.cpp +++ b/architecture.cpp @@ -42,6 +42,20 @@ Architecture::Architecture(const string& name): m_nameForRegister(name) } +BNEndianness Architecture::GetEndiannessCallback(void* ctxt) +{ + Architecture* arch = (Architecture*)ctxt; + return arch->GetEndianness(); +} + + +size_t Architecture::GetAddressSizeCallback(void* ctxt) +{ + Architecture* arch = (Architecture*)ctxt; + return arch->GetAddressSize(); +} + + bool Architecture::GetInstructionInfoCallback(void* ctxt, const uint8_t* data, uint64_t addr, size_t maxLen, BNInstructionInfo* result) { @@ -105,6 +119,8 @@ void Architecture::Register(Architecture* arch) { BNCustomArchitecture callbacks; callbacks.context = arch; + callbacks.getEndianness = GetEndiannessCallback; + callbacks.getAddressSize = GetAddressSizeCallback; callbacks.getInstructionInfo = GetInstructionInfoCallback; callbacks.getInstructionText = GetInstructionTextCallback; callbacks.freeInstructionText = FreeInstructionTextCallback; @@ -151,6 +167,18 @@ CoreArchitecture::CoreArchitecture(BNArchitecture* arch): Architecture(arch) } +BNEndianness CoreArchitecture::GetEndianness() const +{ + return BNGetArchitectureEndianness(m_arch); +} + + +size_t CoreArchitecture::GetAddressSize() const +{ + return BNGetArchitectureAddressSize(m_arch); +} + + bool CoreArchitecture::GetInstructionInfo(const uint8_t* data, uint64_t addr, size_t maxLen, InstructionInfo& result) { return BNGetInstructionInfo(m_arch, data, addr, maxLen, &result); |
