Go to the documentation of this file.
30 #ifndef __PROCESS_HH__
31 #define __PROCESS_HH__
40 #include "arch/registers.hh"
44 #include "config/the_isa.hh"
276 std::shared_ptr<FDArray>
fds;
291 #endif // __PROCESS_HH__
std::string tgtCwd
The cwd members are used to track changes to the current working directory for the purpose of executi...
std::vector< std::string > envp
std::shared_ptr< FDArray > fds
void assignThreadContext(ContextID context_id)
int ContextID
Globally unique thread context ID.
std::vector< std::string > argv
EmulationPageTable * pTable
std::unique_ptr< SETranslatingPortProxy > initVirtMem
virtual void syscall(ThreadContext *tc)
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Stats::Scalar numSyscalls
virtual Process * load(ProcessParams *params, ::Loader::ObjectFile *obj_file)=0
Each subclass needs to implement this method.
DrainState
Object drain/handover states.
This is a simple scalar statistic, like a counter.
::Loader::ObjectFile * getInterpreter()
void revokeThreadContext(int context_id)
After delegating a thread context to a child process no longer should relate to the ThreadContext.
EmulatedDriver is an abstract base class for fake SE-mode device drivers.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual void clone(ThreadContext *old_tc, ThreadContext *new_tc, Process *new_p, RegVal flags)
std::string checkPathRedirect(const std::string &filename)
Redirect file path if it matches any keys initialized by system object.
void allocateMem(Addr vaddr, int64_t size, bool clobber=false)
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
void operator=(const Loader &)=delete
static Process * tryLoaders(ProcessParams *params, ::Loader::ObjectFile *obj_file)
::Loader::MemoryImage image
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
::Loader::ObjectFile * objFile
This class represents the return value from an emulated system call, including any errno setting.
const char * progName() const
const Params * params() const
std::vector< ContextID > contextIds
::Loader::MemoryImage interpImage
std::vector< EmulatedDriver * > drivers
DrainState drain() override
Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are pa...
virtual bool mmapGrowsDown() const
Does mmap region grow upward or downward from mmapEnd? Most platforms grow downward,...
std::string absolutePath(const std::string &path, bool host_fs)
Return an absolute path given a relative path paired with the current working directory of the proces...
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
bool map(Addr vaddr, Addr paddr, int size, bool cacheable=true)
Maps a contiguous range of virtual addresses in this process's address space to a contiguous range of...
std::ostream CheckpointOut
void replicatePage(Addr vaddr, Addr new_paddr, ThreadContext *old_tc, ThreadContext *new_tc, bool alloc_page)
bool fixupFault(Addr vaddr)
Attempt to fix up a fault at vaddr by allocating a page on the stack.
void regStats() override
Callback to set stat parameters.
Process(ProcessParams *params, EmulationPageTable *pTable, ::Loader::ObjectFile *obj_file)
EmulatedDriver * findDriver(std::string filename)
Find an emulated device driver.
static std::stack< std::string > path
uint64_t childClearTID
Calls a futex wakeup at the address specified by this pointer when this process exits.
std::shared_ptr< MemState > memState
This class provides the wrapper interface for the system call implementations which are defined in th...
void serialize(CheckpointOut &cp) const override
Serialize an object.
Abstract superclass for simulation objects.
Generated on Wed Sep 30 2020 14:02:00 for gem5 by doxygen 1.8.17