Ghidra Decompiler Analysis Engine
Public Member Functions | Friends | List of all members
JoinRecord Class Reference

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
 

Detailed Description

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.

Member Function Documentation

◆ getEquivalentAddress()

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.

Parameters
offsetis the offset within this range to map
poswill hold the passed back piece index
Returns
the Address mapped to

◆ operator<()

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


The documentation for this class was generated from the following files: