22 #ifndef OTAWA_PROGRAM_PROCESS_H
23 #define OTAWA_PROGRAM_PROCESS_H
25 #include <elm/string.h>
26 #include <elm/system/Path.h>
27 #include <elm/util/AutoPtr.h>
28 #include <elm/genstruct/Vector.h>
32 #include <elm/stree/Tree.h>
34 namespace elm {
namespace xom {
40 using namespace elm::genstruct;
46 class CacheConfiguration;
63 { ASSERTP(process,
"null process passed"); }
65 { ASSERTP(process,
"null process passed"); }
67 virtual String message(
void);
87 virtual String message(
void);
99 virtual String message(
void);
121 virtual void setSP(
const Address& addr);
126 virtual Address lowerRead(
void);
127 virtual Address upperRead(
void);
128 virtual Address lowerWrite(
void);
129 virtual Address upperWrite(
void);
145 virtual Inst *start(
void) = 0;
147 virtual address_t findLabel(
const string& label);
148 virtual Inst *findInstAt(
const string& label);
150 virtual int instSize(
void)
const = 0;
152 virtual Loader *loader(
void)
const;
155 virtual Address initialSP(
void)
const;
158 virtual int maxTemp(
void)
const;
170 virtual void get(
Address at,
float& val);
171 virtual void get(
Address at,
double& val);
172 virtual void get(
Address at,
long double& val);
173 virtual void get(
Address at,
string& str);
179 virtual void getAddresses(
cstring file,
int line,
185 virtual sim::Simulator *simulator(
void);
192 virtual
Address defaultStack(
void) const;
193 virtual
void semInit(sem::Block& block) const;
199 :
Vector<
File *>::Iterator(process->files) { }
206 void addFile(
File *file);
225 #endif // OTAWA_PROG_PROCESS_H
struct otawa::sem::inst inst
UnsupportedFeatureException(Process *proc, const AbstractFeature &feature)
Definition: Process.h:78
ProcessException(Process *process, const string &message)
Build a process exception with a message.
Definition: Process.h:64
FileIter(const Process *process)
Definition: Process.h:198
Manager * manager(void)
Get the manager owning this process.
Definition: Process.h:143
Definition: Process.h:196
const AbstractFeature & f
Definition: Process.h:89
stree::Tree< Address::offset_t, Symbol * > * smap
Definition: Process.h:216
Definition: Process.h:113
Process * process(void) const
Definition: Process.h:117
const int provide
Definition: Registration.h:44
elm::io::Output & operator<<(elm::io::Output &out, Address addr)
Definition: base.cpp:188
StringOption proc(command, 'p',"processor","used processor","path","")
Vector< AbstractFeature * > provided
Definition: Process.h:213
elm::io::IntFormat address(Address addr)
Build a format to display addresses.
Definition: base.cpp:213
The manager class providesfacilities for storing, grouping and retrieving shared resources like loade...
Definition: Manager.h:58
Process * proc
Definition: Process.h:132
Process * proc
Definition: Process.h:70
This class represents a file involved in the building of a process.
Definition: File.h:43
The processor class is implemented by all code processor.
Definition: Processor.h:49
UnsupportedFeatureException(const AbstractFeature &feature)
Definition: Process.h:83
File * program(void) const
Get the program file, that is, the startup executable of the process.
Definition: Process.h:149
elm::StringBuffer buf
Definition: util_fft_lexer.cc:640
Vector< File * > files
Get the list of files used in this process.
Definition: Process.h:212
const AbstractFeature & feature(void) const
Definition: Process.h:86
An exception generated from a process.
Definition: Process.h:60
A workspace represents a program, its run-time and all information about WCET computation or any othe...
Definition: WorkSpace.h:67
A process is the realization of a program on a platform.
Definition: Process.h:136
The representation of an address in OTAWA.
Definition: base.h:54
File * prog
Definition: Process.h:214
Manager * man
Definition: Process.h:215
StringOption cache(command, 'c',"cache","used cache","path","")
sys::SystemOutStream & out
IntFormat f(signed char value)
ProcessException(Process *process)
Definition: Process.h:62
This exception is thrown when a memory access is performed on process with an address that does not p...
Definition: Process.h:94
static Address null
Null address.
Definition: base.h:58
This interface is implemented by all objects that may build and provide a process.
Definition: Loader.h:31
cstring name
Definition: odisasm.cpp:107
FileIter(const FileIter &iter)
Definition: Process.h:200
This class represents assembly instruction of a piece of code.
Definition: Inst.h:62
OutOfSegmentException(Process *proc, Address address)
Definition: Process.h:96
See Feature.
Definition: AbstractFeature.h:36
This a list of properties.
Definition: PropList.h:63
This exception is thrown by a loader to inform about problems during decoding.
Definition: Process.h:106
Objects of this class are simple machine register, more accurately unbreakable atomic registers...
Definition: Register.h:38
Address addr
Definition: Process.h:101
Address address(void) const
Definition: Process.h:98
This class represents the full configuration of caches of a processor.
Definition: CacheConfiguration.h:37
This class is used to throw an exception when a process does not support an invoked feature...
Definition: Process.h:75
A symbol is a name of a location in a program.
Definition: Symbol.h:21
Process * process(void) const
Get the process where the exception was thrown.
Definition: Process.h:66