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"
271 std::shared_ptr<FDArray>
fds;
288 #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
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.
static Process * tryLoaders(const ProcessParams ¶ms, ::Loader::ObjectFile *obj_file)
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
::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
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.
virtual Process * load(const ProcessParams ¶ms, ::Loader::ObjectFile *obj_file)=0
Each subclass needs to implement this method.
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.
const Params & params() const
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...
Process(const ProcessParams ¶ms, EmulationPageTable *pTable, ::Loader::ObjectFile *obj_file)
void serialize(CheckpointOut &cp) const override
Serialize an object.
Abstract superclass for simulation objects.
Generated on Tue Mar 23 2021 19:41:20 for gem5 by doxygen 1.8.17