ROSE
0.9.6a
|
Callback to add unassigned addresses to a function. More...
#include <Partitioner.h>
Public Member Functions | |
FindData () | |
~FindData () | |
virtual bool | operator() (bool enabled, const Args &args) |
The actual callback function. More... | |
Public Member Functions inherited from Partitioner::ByteRangeCallback | |
virtual | ~ByteRangeCallback () |
Public Attributes | |
unsigned | excluded_reasons |
Bit mask of function reasons to be avoided. More... | |
DataRangeMap * | padding_ranges |
Padding ranges created on demand and cached. More... | |
size_t | nfound |
Number of data blocks added by this callback. More... | |
Callback to add unassigned addresses to a function.
Any unassigned addresses are added as data blocks to the preceding normal function. Normal functions are anything but FUNC_INTERPAD or FUNC_THUNK. This callback is generally used as a final pass over the over the address space to vacuum up anything that couldn't be assigned in previous passes. It should be invoked after padding is detected, or else the padding will end up as part of the same data block.
Definition at line 1228 of file Partitioner.h.
|
inline |
Definition at line 1233 of file Partitioner.h.
|
inline |
Definition at line 1234 of file Partitioner.h.
References padding_ranges.
|
virtual |
The actual callback function.
This needs to be defined in subclasses.
Implements Partitioner::ByteRangeCallback.
Definition at line 1916 of file Partitioner.C.
References Partitioner::append(), SgAsmBlock::BLK_FINDDATA, Partitioner::debug, RangeMap< R, T >::end(), Partitioner::Function::entry_va, RangeMap< R, T >::find(), Partitioner::find_db_starting(), Range< T >::first(), Range< rose_addr_t >::minimum(), Partitioner::padding_extent(), Partitioner::ByteRangeCallback::Args::partitioner, Partitioner::ByteRangeCallback::Args::range, Partitioner::ByteRangeCallback::Args::ranges, Partitioner::Function::reason, and Range< T >::size().
unsigned Partitioner::FindData::excluded_reasons |
Bit mask of function reasons to be avoided.
Definition at line 1229 of file Partitioner.h.
DataRangeMap* Partitioner::FindData::padding_ranges |
Padding ranges created on demand and cached.
Definition at line 1230 of file Partitioner.h.
Referenced by ~FindData().
size_t Partitioner::FindData::nfound |
Number of data blocks added by this callback.
Definition at line 1231 of file Partitioner.h.