Ghidra Decompiler Analysis Engine
|
A record describing how logical values are split. More...
#include <translate.hh>
Public Member Functions | |
Address | getEquivalentAddress (uintb offset, int4 &pos) const |
Given offset in join space, get equivalent address of piece. More... | |
bool | operator< (const JoinRecord &op2) const |
Compare records lexigraphically by pieces. More... | |
Friends | |
class | AddrSpaceManager |
A record describing how logical values are split.
The decompiler can describe a logical value that is stored split across multiple physical memory locations. This record describes such a split. The pieces must be listed from most significant to least significant.
Address JoinRecord::getEquivalentAddress | ( | uintb | offset, |
int4 & | pos | ||
) | const |
Given offset in join space, get equivalent address of piece.
The join space range maps to the underlying pieces in a natural endian aware way. Given an offset in the range, figure out what address it is mapping to. The particular piece is passed back as an index, and the Address is returned.
offset | is the offset within this range to map |
pos | will hold the passed back piece index |
bool JoinRecord::operator< | ( | const JoinRecord & | op2 | ) | const |
Compare records lexigraphically by pieces.
Allow sorting on JoinRecords so that a collection of pieces can be quickly mapped to its logical whole, specified with a join address