decompiler  1.0.0
Public Member Functions | Private Attributes | Friends | List of all members
ghidra::Range Class Reference

A contiguous range of bytes in some address space. More...

#include <address.hh>

Public Member Functions

 Range (AddrSpace *s, uintb f, uintb l)
 Construct a Range from offsets. More...
 
 Range (void)
 Constructor for use with decode.
 
 Range (const RangeProperties &properties, const AddrSpaceManager *manage)
 Construct range out of basic properties.
 
AddrSpacegetSpace (void) const
 Get the address space containing this Range.
 
uintb getFirst (void) const
 Get the offset of the first byte in this Range.
 
uintb getLast (void) const
 Get the offset of the last byte in this Range.
 
Address getFirstAddr (void) const
 Get the address of the first byte.
 
Address getLastAddr (void) const
 Get the address of the last byte.
 
Address getLastAddrOpen (const AddrSpaceManager *manage) const
 Get address of first byte after this. More...
 
bool contains (const Address &addr) const
 Determine if the address is in this Range. More...
 
bool operator< (const Range &op2) const
 Sorting operator for Ranges. More...
 
void printBounds (ostream &s) const
 Print this Range to a stream. More...
 
void encode (Encoder &encoder) const
 Encode this Range to a stream. More...
 
void decode (Decoder &decoder)
 Restore this from a stream. More...
 
void decodeFromAttributes (Decoder &decoder)
 Read from attributes on another tag. More...
 

Private Attributes

AddrSpacespc
 Space containing range.
 
uintb first
 Offset of first byte in this Range.
 
uintb last
 Offset of last byte in this Range.
 

Friends

class RangeList
 

Detailed Description

A contiguous range of bytes in some address space.

Constructor & Destructor Documentation

◆ Range()

ghidra::Range::Range ( AddrSpace s,
uintb  f,
uintb  l 
)
inline

Construct a Range from offsets.

Offsets must expressed in bytes as opposed to addressable words

Parameters
sis the address space containing the range
fis the offset of the first byte in the range
lis the offset of the last byte in the range

Member Function Documentation

◆ contains()

bool ghidra::Range::contains ( const Address addr) const
inline

Determine if the address is in this Range.

Parameters
addris the Address to test for containment
Returns
true if addr is in this Range

References ghidra::Address::getOffset(), and ghidra::Address::getSpace().

◆ decode()

void ghidra::Range::decode ( Decoder decoder)

◆ decodeFromAttributes()

void ghidra::Range::decodeFromAttributes ( Decoder decoder)

◆ encode()

void ghidra::Range::encode ( Encoder encoder) const

Encode this Range to a stream.

Encode this to a stream as a <range> element.

Parameters
encoderis the stream encoder

References ghidra::Encoder::closeElement(), ghidra::Encoder::openElement(), ghidra::Encoder::writeSpace(), and ghidra::Encoder::writeUnsignedInteger().

◆ getLastAddrOpen()

Address ghidra::Range::getLastAddrOpen ( const AddrSpaceManager manage) const

Get address of first byte after this.

Get the last address +1, updating the space, or returning the extremal address if necessary

Parameters
manageis used to fetch the next address space

References ghidra::AddrSpace::getHighest(), ghidra::AddrSpaceManager::getNextSpaceInOrder(), and ghidra::Address::m_maximal.

Referenced by ghidra::Database::clearPropertyRange(), ghidra::ContextInternal::decodeFromSpec(), and ghidra::Database::setPropertyRange().

◆ operator<()

bool ghidra::Range::operator< ( const Range op2) const
inline

Sorting operator for Ranges.

Compare based on address space, then the starting offset

Parameters
op2is the Range to compare with this
Returns
true if this comes before op2

References ghidra::Address::decode(), ghidra::Address::encode(), first, ghidra::AddrSpace::getIndex(), and spc.

◆ printBounds()

void ghidra::Range::printBounds ( ostream &  s) const

Print this Range to a stream.

Output a description of this Range like: ram: 7f-9c

Parameters
sis the output stream

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