1#ifndef ROSE_BinaryAnalysis_Partitioner2_Configuration_H 
    2#define ROSE_BinaryAnalysis_Partitioner2_Configuration_H 
    3#include <featureTests.h> 
    4#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
    5#include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h> 
    7#include <Rose/FileSystem.h> 
    9#include <Sawyer/Optional.h> 
   10#include <Rose/SourceLocation.h> 
   15namespace BinaryAnalysis {
 
   16namespace Partitioner2 {
 
   23    std::set<Address> successorVas_;
 
   43    const std::string& 
comment()
 const { 
return comment_; }
 
   72    const std::set<Address>& 
successorVas()
 const { 
return successorVas_; }
 
 
  105    const std::string &
name()
 const { 
return name_; }
 
  114    const std::string& 
comment()
 const { 
return comment_; }
 
 
  130    std::string name_, defaultName_, comment_;
 
  172    const std::string& 
name()
 const { 
return name_; }
 
  190    const std::string& 
comment()
 const { 
return comment_; }
 
 
  242    std::string comment_;
 
  261    const std::string &
name()
 const { 
return name_; }
 
  268    const std::string &
comment()
 const { 
return comment_; }
 
 
Configuration for individual addresses.
 
Address address() const
Property: address.
 
AddressConfiguration & comment(const std::string &s)
Property: comment string.
 
AddressConfiguration & name(const std::string &s)
Property: name.
 
AddressConfiguration & sourceLocation(const SourceLocation &loc)
Property: Location of address within source code.
 
AddressConfiguration(Address va)
Construct a new address configuration object.
 
const std::string & comment() const
Property: comment string.
 
const std::string & name() const
Property: name.
 
const SourceLocation & sourceLocation() const
Property: Location of address within source code.
 
Configuration information for a basic block.
 
Address address() const
Property: starting address.
 
BasicBlockConfiguration & successorVas(const std::set< Address > &vas)
Property: control flow successors.
 
const std::string & comment() const
Property: comment.
 
BasicBlockConfiguration & clearSuccessorVas()
Property: control flow successors.
 
BasicBlockConfiguration & sourceLocation(const SourceLocation &loc)
Property: location of basic block in source code.
 
BasicBlockConfiguration & finalInstructionVa(const Sawyer::Optional< Address > &va)
Property: last instruction.
 
BasicBlockConfiguration & insertSuccessorVa(Address va)
Property: control flow successors.
 
Sawyer::Optional< Address > finalInstructionVa() const
Property: last instruction.
 
BasicBlockConfiguration(Address va)
Configuration information for a basic block.
 
BasicBlockConfiguration & comment(const std::string &s)
Property: comment.
 
const std::set< Address > & successorVas() const
Property: control flow successors.
 
std::set< Address > & successorVas()
Property: control flow successors.
 
const SourceLocation & sourceLocation() const
Property: location of basic block in source code.
 
Holds configuration information.
 
const BasicBlockConfiguration & basicBlock(Address) const
Configuration for a particular basic block.
 
bool insertConfiguration(const BasicBlockConfiguration &)
Insert basic block configuration information.
 
std::string basicBlockComment(Address bblockVa) const
Basic block comment.
 
Sawyer::Optional< bool > functionMayReturn(Address functionVa) const
Function may-return status.
 
Sawyer::Optional< int64_t > functionStackDelta(const std::string &functionName) const
Function stack delta.
 
Sawyer::Optional< Address > basicBlockFinalInstructionVa(Address bblockVa) const
Basic block final instruction address.
 
const FunctionConfigurationsByName & functionConfigurationsByName() const
All function configuration details for configs that have no address.
 
const AddressConfiguration & address(Address) const
Configuration for a particular address.
 
FunctionConfigurationsByName & functionConfigurationsByName()
All function configuration details for configs that have no address.
 
bool insertConfiguration(const AddressConfiguration &)
Insert address configuration information.
 
std::string functionDefaultName(Address functionVa) const
Function default name.
 
DataBlockConfiguration & insertMaybeDataBlock(Address va)
Lookup or insert a data block.
 
const FunctionConfigurationsByAddress & functionConfigurationsByAddress() const
All function configuration details for function configs that have addresses.
 
const AddressConfigurations & addresses() const
All address configuration details.
 
FunctionConfiguration & insertMaybeFunction(Address va, const std::string &name="")
Lookup or insert a function.
 
std::set< Address > basicBlockSuccessorVas(Address bblockVa) const
Basic block successor addresses.
 
BasicBlockConfigurations & basicBlocks()
All basic block configuration details.
 
DataBlockConfigurations & dataBlocks()
All data block configuration details.
 
std::string functionName(Address functionVa) const
Function name.
 
bool insertConfiguration(const FunctionConfiguration &)
Insert function configuration information.
 
std::string dataBlockComment(Address dblockVa) const
Data block comment.
 
void loadFromFile(const FileSystem::Path &fileName)
Loads configuration from a file.
 
BasicBlockConfiguration & insertMaybeBasicBlock(Address va)
Lookup or insert a basic block.
 
AddressConfigurations & addresses()
All address configuration details.
 
std::string functionComment(const std::string &functionName) const
Function comment.
 
std::string functionComment(Address functionVa) const
Function comment.
 
FunctionConfigurationsByAddress & functionConfigurationsByAddress()
All function configuration details for function configs that have addresses.
 
Sawyer::Optional< int64_t > functionStackDelta(Address functionVa) const
Function stack delta.
 
const FunctionConfiguration & function(Address) const
Configuration for a particular function.
 
const DataBlockConfigurations & dataBlocks() const
All data block configuration details.
 
Sawyer::Optional< bool > functionMayReturn(const FunctionPtr &) const
Function may-return status.
 
AddressConfiguration & insertMaybeAddress(Address va)
Lookup or insert address details.
 
std::string comment(Address va) const
Address comment.
 
static std::string fileFormatDoc()
Documentation string describing the file format.
 
bool insertConfiguration(const DataBlockConfiguration &)
Insert data block configuration information.
 
const DataBlockConfiguration & dataBlock(Address) const
Configuration for a particular data block.
 
std::string addressComment(Address va) const
Address comment.
 
Sawyer::Optional< int64_t > functionStackDelta(const FunctionPtr &) const
Function stack delta.
 
const BasicBlockConfigurations & basicBlocks() const
All basic block configuration details.
 
std::string functionComment(const FunctionPtr &) const
Function comment.
 
std::string dataBlockName(Address dblockVa) const
Data block name.
 
void print(std::ostream &) const
Generate a YAML file.
 
const FunctionConfiguration & function(const std::string &name) const
Configuration for a particular function.
 
FunctionConfiguration & insertMaybeFunction(const std::string &name)
Lookup or insert a function.
 
Sawyer::Optional< bool > functionMayReturn(const std::string &functionName) const
Function may-return status.
 
Configuration information for a data block.
 
const SourceLocation & sourceLocation() const
Property: Location of data block in source code.
 
Address address() const
Property: starting address.
 
DataBlockConfiguration & name(const std::string &s)
Property: name.
 
DataBlockConfiguration(Address va)
Configuration information for a data block.
 
const std::string & name() const
Property: name.
 
DataBlockConfiguration & sourceLocation(const SourceLocation &loc)
Property: Location of data block in source code.
 
const std::string & comment() const
Property: comment.
 
DataBlockConfiguration & comment(const std::string &s)
Property: comment.
 
Configuration information for a function.
 
FunctionConfiguration & defaultName(const std::string &s)
Property: default name.
 
const SourceLocation & sourceLocation() const
Property: Location of function in source code.
 
FunctionConfiguration & stackDelta(const Sawyer::Optional< int64_t > &n)
Property: stack delta.
 
const std::string & name() const
Property: name.
 
FunctionConfiguration(const Sawyer::Optional< Address > &va, const std::string &name)
Configuration information for a function.
 
Sawyer::Optional< Address > address() const
Property: address.
 
FunctionConfiguration(const std::string &name)
Configuration information for a function.
 
FunctionConfiguration & name(const std::string &s)
Property: name.
 
const std::string & defaultName() const
Property: default name.
 
const std::string & comment() const
Property: comment.
 
FunctionConfiguration & comment(const std::string &s)
Property: comment.
 
FunctionConfiguration & mayReturn(const Sawyer::Optional< bool > &b)
Property: may-return.
 
FunctionConfiguration & sourceLocation(const SourceLocation &loc)
Property: Location of function in source code.
 
FunctionConfiguration(Address va, const std::string &name="")
Configuration information for a function.
 
Sawyer::Optional< bool > mayReturn() const
Property: may-return.
 
Sawyer::Optional< int64_t > stackDelta() const
Property: stack delta.
 
Information about a source location.
 
Container associating values with keys.
 
Holds a value or nothing.
 
std::uint64_t Address
Address.
 
boost::filesystem::path Path
Name of entities in a filesystem.