gem5
|
#include <process.hh>
Public Member Functions | |
Process (ProcessParams *params, ObjectFile *obj_file) | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
void | initState () override |
initState() is called on each SimObject when not restoring from a checkpoint. More... | |
DrainState | drain () override |
Notify an object that it needs to drain its state. More... | |
virtual void | syscall (int64_t callnum, ThreadContext *tc, Fault *fault) |
virtual TheISA::IntReg | getSyscallArg (ThreadContext *tc, int &i)=0 |
virtual TheISA::IntReg | getSyscallArg (ThreadContext *tc, int &i, int width) |
virtual void | setSyscallArg (ThreadContext *tc, int i, TheISA::IntReg val)=0 |
virtual void | setSyscallReturn (ThreadContext *tc, SyscallReturn return_value)=0 |
virtual SyscallDesc * | getDesc (int callnum)=0 |
uint64_t | uid () |
uint64_t | euid () |
uint64_t | gid () |
uint64_t | egid () |
uint64_t | pid () |
uint64_t | ppid () |
uint64_t | pgid () |
uint64_t | tgid () |
void | setpgid (uint64_t pgid) |
const char * | progName () const |
std::string | fullPath (const std::string &filename) |
std::string | getcwd () const |
EmulatedDriver * | findDriver (std::string filename) |
Find an emulated device driver. More... | |
void | updateBias () |
Addr | getBias () |
Addr | getStartPC () |
ObjectFile * | getInterpreter () |
void | regStats () override |
Register statistics for this object. More... | |
void | allocateMem (Addr vaddr, int64_t size, bool clobber=false) |
bool | fixupStackFault (Addr vaddr) |
Attempt to fix up a fault at vaddr by allocating a page on the stack. More... | |
void | assignThreadContext (ContextID context_id) |
ThreadContext * | findFreeContext () |
void | revokeThreadContext (int context_id) |
After delegating a thread context to a child process no longer should relate to the ThreadContext. More... | |
virtual bool | mmapGrowsDown () const |
Does mmap region grow upward or downward from mmapEnd? Most platforms grow downward, but a few (such as Alpha) grow upward instead, so they can override this method to return false. More... | |
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 physical addresses. More... | |
void | replicatePage (Addr vaddr, Addr new_paddr, ThreadContext *old_tc, ThreadContext *new_tc, bool alloc_page) |
void | clone (ThreadContext *old_tc, ThreadContext *new_tc, Process *new_p, TheISA::IntReg flags) |
Public Member Functions inherited from SimObject | |
const Params * | params () const |
SimObject (const Params *_params) | |
virtual | ~SimObject () |
virtual const std::string | name () const |
virtual void | init () |
init() is called after all C++ SimObjects have been created and all ports are connected. More... | |
virtual void | loadState (CheckpointIn &cp) |
loadState() is called on each SimObject when restoring from a checkpoint. More... | |
virtual void | resetStats () |
Reset statistics associated with this object. More... | |
virtual void | regProbePoints () |
Register probe points for this object. More... | |
virtual void | regProbeListeners () |
Register probe listeners for this object. More... | |
ProbeManager * | getProbeManager () |
Get the probe manager for this object. More... | |
virtual void | startup () |
startup() is the final initialization call before simulation. More... | |
DrainState | drain () override |
Provide a default implementation of the drain interface for objects that don't need draining. More... | |
virtual void | memWriteback () |
Write back dirty buffers to memory using functional writes. More... | |
virtual void | memInvalidate () |
Invalidate the contents of memory buffers. More... | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
Public Member Functions inherited from EventManager | |
EventManager (EventManager &em) | |
EventManager (EventManager *em) | |
EventManager (EventQueue *eq) | |
EventQueue * | eventQueue () const |
void | schedule (Event &event, Tick when) |
void | deschedule (Event &event) |
void | reschedule (Event &event, Tick when, bool always=false) |
void | schedule (Event *event, Tick when) |
void | deschedule (Event *event) |
void | reschedule (Event *event, Tick when, bool always=false) |
void | wakeupEventQueue (Tick when=(Tick)-1) |
void | setCurTick (Tick newVal) |
Public Member Functions inherited from Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Public Member Functions inherited from Drainable | |
DrainState | drainState () const |
Return the current drain state of an object. More... | |
virtual void | notifyFork () |
Notify a child process of a fork. More... | |
Public Attributes | |
std::vector< ContextID > | contextIds |
System * | system |
Stats::Scalar | numSyscalls |
bool | useArchPT |
bool | kvmInSE |
PageTableBase * | pTable |
SETranslatingPortProxy | initVirtMem |
ObjectFile * | objFile |
std::vector< std::string > | argv |
std::vector< std::string > | envp |
std::string | cwd |
std::string | executable |
uint64_t | _uid |
uint64_t | _euid |
uint64_t | _gid |
uint64_t | _egid |
uint64_t | _pid |
uint64_t | _ppid |
uint64_t | _pgid |
uint64_t | _tgid |
std::vector< EmulatedDriver * > | drivers |
std::shared_ptr< FDArray > | fds |
bool * | exitGroup |
std::shared_ptr< MemState > | memState |
uint64_t | childClearTID |
Calls a futex wakeup at the address specified by this pointer when this process exits. More... | |
bool * | sigchld |
Additional Inherited Members | |
Public Types inherited from SimObject | |
typedef SimObjectParams | Params |
Static Public Member Functions inherited from SimObject | |
static void | serializeAll (CheckpointOut &cp) |
Serialize all SimObjects in the system. More... | |
static SimObject * | find (const char *name) |
Find the SimObject with the given name and return a pointer to it. More... | |
Static Public Member Functions inherited from Serializable | |
static const std::string & | currentSection () |
Get the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
static void | unserializeGlobals (CheckpointIn &cp) |
Static Public Attributes inherited from Serializable | |
static int | ckptCount = 0 |
static int | ckptMaxCount = 0 |
static int | ckptPrevCount = -1 |
Protected Member Functions inherited from Drainable | |
Drainable () | |
virtual | ~Drainable () |
virtual void | drainResume () |
Resume execution after a successful drain. More... | |
void | signalDrainDone () const |
Signal that an object is drained. More... | |
Protected Attributes inherited from SimObject | |
const SimObjectParams * | _params |
Cached copy of the object parameters. More... | |
Protected Attributes inherited from EventManager | |
EventQueue * | eventq |
A pointer to this object's event queue. More... | |
Definition at line 63 of file process.hh.
Process::Process | ( | ProcessParams * | params, |
ObjectFile * | obj_file | ||
) |
Linux bundles together processes into this concept called a thread group. The thread group is responsible for recording which processes behave as threads within a process context. The thread group leader is the process who's tgid is equal to its pid. Other processes which belong to the thread group, but do not lead the thread group, are treated as child threads. These threads are created by the clone system call with options specified to create threads (differing from the options used to implement a fork). By default, set up the tgid/pid with a new, equivalent value. If CLONE_THREAD is specified, patch the tgid value with the old process' value.
Definition at line 104 of file process.cc.
References _pid, _tgid, debugSymbolTable, exitGroup, fatal, ObjectFile::loadGlobalSymbols(), ObjectFile::loadLocalSymbols(), ObjectFile::loadWeakSymbols(), System::maxPID, objFile, System::PIDs, sigchld, and system.
void Process::allocateMem | ( | Addr | vaddr, |
int64_t | size, | ||
bool | clobber = false |
||
) |
Definition at line 310 of file process.cc.
References System::allocPhysPages(), PageTableBase::Clobber, divCeil(), PageTableBase::map(), AlphaISA::PageBytes, pTable, system, and PageTableBase::Zero.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), brkFunc(), fixupStackFault(), X86ISA::X86_64Process::initState(), X86ISA::I386Process::initState(), Shader::mmap(), mmapImpl(), mremapFunc(), SETranslatingPortProxy::tryMemsetBlob(), and SETranslatingPortProxy::tryWriteBlob().
|
inline |
Definition at line 125 of file process.hh.
References contextIds.
Referenced by cloneFunc(), and execveFunc().
void Process::clone | ( | ThreadContext * | old_tc, |
ThreadContext * | new_tc, | ||
Process * | new_p, | ||
TheISA::IntReg | flags | ||
) |
Share the process memory address space between the new process and the old process. Changes in one will be visible in the other due to the pointer use.
Duplicate the process memory address space. The state needs to be copied over (rather than using pointers to share everything).
The parent and child file descriptors are shared because the two FDArray pointers are pointing to the same FDArray. Opening and closing file descriptors will be visible to both processes.
Copy the file descriptors from the old process into the new child process. The file descriptors entry can be opened and closed independently of the other process being considered. The host file descriptors are also dup'd so that the flags for the host file descriptor is independent of the other process.
Definition at line 160 of file process.cc.
References _tgid, argv, CLONE_FILES, CLONE_THREAD, CLONE_VM, envp, exitGroup, fds, PageTableBase::getMappings(), ThreadContext::getMemProxy(), HBFDEntry::getSimFD(), map(), memState, pTable, replicatePage(), SETranslatingPortProxy::setPageTable(), HBFDEntry::setSimFD(), PageTableBase::translate(), and MipsISA::vaddr.
Referenced by X86ISA::X86Process::clone(), and cloneFunc().
|
overridevirtual |
Notify an object that it needs to drain its state.
If the object does not need further simulation to drain internal buffers, it returns DrainState::Drained and automatically switches to the Drained state. If the object needs more simulation, it returns DrainState::Draining and automatically enters the Draining state. Other return values are invalid.
Implements Drainable.
Definition at line 303 of file process.cc.
|
inline |
Definition at line 86 of file process.hh.
References _egid.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), cloneFunc(), execveFunc(), getegidFunc(), and getgidPseudoFunc().
|
inline |
Definition at line 84 of file process.hh.
References _euid.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), cloneFunc(), execveFunc(), geteuidFunc(), and getuidPseudoFunc().
EmulatedDriver * Process::findDriver | ( | std::string | filename | ) |
Find an emulated device driver.
filename | Name of the device (under /dev) |
Definition at line 431 of file process.cc.
References ArmISA::d, and drivers.
Referenced by openImpl().
ThreadContext * Process::findFreeContext | ( | ) |
Definition at line 265 of file process.cc.
References ThreadContext::Halted, system, and System::threadContexts.
Referenced by cloneFunc().
bool Process::fixupStackFault | ( | Addr | vaddr | ) |
Attempt to fix up a fault at vaddr by allocating a page on the stack.
Definition at line 338 of file process.cc.
References allocateMem(), fatal, inform, memState, AlphaISA::PageBytes, and roundDown().
Referenced by GenericPageTableFault::invoke(), AlphaISA::NDtbMissFault::invoke(), SparcISA::FastDataAccessMMUMiss::invoke(), X86ISA::m5PageFault(), X86ISA::GpuTLB::CpuSidePort::recvFunctional(), ComputeUnit::sendRequest(), and SETranslatingPortProxy::tryWriteBlob().
std::string Process::fullPath | ( | const std::string & | filename | ) |
Definition at line 646 of file process.cc.
References cwd.
Referenced by accessFunc(), chmodFunc(), chownFunc(), fstatat64Func(), lstat64Func(), lstatFunc(), mkdirFunc(), openImpl(), readlinkFunc(), renameatFunc(), renameFunc(), stat64Func(), statfsFunc(), statFunc(), truncate64Func(), truncateFunc(), unlinkHelper(), and utimesFunc().
Addr Process::getBias | ( | ) |
Definition at line 474 of file process.cc.
References ObjectFile::bias(), getInterpreter(), and objFile.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), and X86ISA::X86Process::argsInit().
|
inline |
Definition at line 95 of file process.hh.
References cwd.
Referenced by cloneFunc(), Linux::etcPasswd(), execveFunc(), and getcwdFunc().
|
pure virtual |
Implemented in ArmLinuxProcess64, SparcISA::Sparc64LinuxProcess, ArmFreebsdProcess64, ArmLinuxProcess32, X86ISA::X86Process, ArmFreebsdProcess32, SparcISA::Sparc32LinuxProcess, RiscvLinuxProcess, SparcISA::SparcSolarisProcess, MipsLinuxProcess, AlphaISA::AlphaLinuxProcess, and PowerLinuxProcess.
Referenced by syscall().
ObjectFile * Process::getInterpreter | ( | ) |
Definition at line 468 of file process.cc.
References ObjectFile::getInterpreter(), and objFile.
Referenced by getBias(), getStartPC(), and mmapImpl().
Addr Process::getStartPC | ( | ) |
Definition at line 482 of file process.cc.
References ObjectFile::entryPoint(), getInterpreter(), and objFile.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), and X86ISA::X86Process::argsInit().
|
pure virtual |
Implemented in X86ISA::I386Process, Sparc64Process, X86ISA::X86_64Process, Sparc32Process, ArmProcess64, ArmProcess32, RiscvProcess, MipsProcess, PowerProcess, AlphaProcess, and PowerLinuxProcess.
Referenced by _llseekFunc(), accessFunc(), archPrctlFunc(), brkFunc(), chmodFunc(), chownFunc(), clock_getresFunc(), clock_gettimeFunc(), cloneFunc(), closeFunc(), SyscallDesc::doSyscall(), dup2Func(), dupFunc(), execveFunc(), exitImpl(), faccessatFunc(), fallocateFunc(), fchmodFunc(), fchownFunc(), fcntl64Func(), fcntlFunc(), fstat64Func(), fstatat64Func(), fstatfsFunc(), fstatFunc(), ftruncate64Func(), ftruncateFunc(), futexFunc(), getcwdFunc(), gethostnameFunc(), SparcISA::getresuidFunc(), getrlimitFunc(), getrusageFunc(), getSyscallArg(), gettimeofdayFunc(), ClDriver::ioctl(), ioctlFunc(), lseekFunc(), lstat64Func(), lstatFunc(), mkdirFunc(), mmapImpl(), mremapFunc(), openImpl(), osf_getsysinfoFunc(), osf_setsysinfoFunc(), pipeImpl(), pwrite64Func(), readFunc(), readlinkatFunc(), readlinkFunc(), renameatFunc(), renameFunc(), setpgidFunc(), setThreadArea32Func(), setThreadAreaFunc(), setTidAddressFunc(), setTLSFunc32(), setTLSFunc64(), setuidFunc(), stat64Func(), statfsFunc(), statFunc(), sys_getsysinfoFunc(), sys_setsysinfoFunc(), sysctlFunc(), sysinfoFunc(), tgkillFunc(), timeFunc(), timesFunc(), truncate64Func(), truncateFunc(), SparcISA::unameFunc(), unameFunc(), unameFunc32(), unameFunc64(), unlinkatFunc(), unlinkHelper(), utimesFunc(), writeFunc(), and writevFunc().
|
virtual |
Reimplemented in X86ISA::I386Process, ArmProcess64, and ArmProcess32.
Definition at line 425 of file process.cc.
References getSyscallArg().
|
inline |
Definition at line 85 of file process.hh.
References _gid.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), cloneFunc(), execveFunc(), getgidFunc(), and getgidPseudoFunc().
|
overridevirtual |
initState() is called on each SimObject when not restoring from a checkpoint.
This provides a hook for state initializations that are only required for a "cold start".
Reimplemented from SimObject.
Definition at line 288 of file process.cc.
References ThreadContext::activate(), contextIds, fatal, System::getThreadContext(), PageTableBase::initState(), SimObject::name(), pTable, and system.
Referenced by cloneFunc(), execveFunc(), AlphaProcess::initState(), MipsProcess::initState(), PowerProcess::initState(), RiscvProcess::initState(), SparcProcess::initState(), ArmProcess32::initState(), ArmProcess64::initState(), X86ISA::X86_64Process::initState(), and X86ISA::I386Process::initState().
Maps a contiguous range of virtual addresses in this process's address space to a contiguous range of physical addresses.
This function exists primarily to expose the map operation to python, so that configuration scripts can set up mappings in SE mode.
vaddr | The starting virtual address of the range. |
paddr | The starting physical address of the range. |
size | The length of the range in bytes. |
cacheable | Specifies whether accesses are cacheable. |
Definition at line 405 of file process.cc.
References PageTableBase::map(), pTable, PageTableBase::Uncacheable, and PageTableBase::Zero.
Referenced by clone().
|
inlinevirtual |
Does mmap region grow upward or downward from mmapEnd? Most platforms grow downward, but a few (such as Alpha) grow upward instead, so they can override this method to return false.
Reimplemented in RiscvProcess, and AlphaProcess.
Definition at line 144 of file process.hh.
Referenced by Shader::mmap(), mmapImpl(), and updateBias().
|
inline |
|
inline |
Definition at line 87 of file process.hh.
References _pid.
Referenced by cloneFunc(), execveFunc(), exitImpl(), getpidPseudoFunc(), gettidFunc(), setpgidFunc(), setTidAddressFunc(), and tgkillFunc().
|
inline |
Definition at line 88 of file process.hh.
References _ppid.
Referenced by cloneFunc(), execveFunc(), exitImpl(), getpidPseudoFunc(), and getppidFunc().
|
inline |
Definition at line 93 of file process.hh.
References executable.
Referenced by cloneFunc(), and readlinkFunc().
|
overridevirtual |
Register statistics for this object.
Reimplemented from SimObject.
Definition at line 252 of file process.cc.
References Stats::DataWrap< Derived, InfoProxyType >::desc(), SimObject::name(), Stats::DataWrap< Derived, InfoProxyType >::name(), numSyscalls, and SimObject::regStats().
void Process::replicatePage | ( | Addr | vaddr, |
Addr | new_paddr, | ||
ThreadContext * | old_tc, | ||
ThreadContext * | new_tc, | ||
bool | alloc_page | ||
) |
Definition at line 319 of file process.cc.
References System::allocPhysPages(), ThreadContext::getMemProxy(), PageTableBase::map(), AlphaISA::PageBytes, pTable, SETranslatingPortProxy::readBlob(), system, and SETranslatingPortProxy::writeBlob().
Referenced by clone().
void Process::revokeThreadContext | ( | int | context_id | ) |
After delegating a thread context to a child process no longer should relate to the ThreadContext.
Definition at line 275 of file process.cc.
References contextIds, and warn.
Referenced by cloneFunc().
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Checkpoints for file descriptors currently do not work. Need to come back and fix them at a later date.
Implements Serializable.
Definition at line 368 of file process.cc.
References csprintf(), fds, pTable, Serializable::serialize(), warn, and X86ISA::x.
|
inline |
Definition at line 91 of file process.hh.
Referenced by setpgidFunc().
|
pure virtual |
|
pure virtual |
Implemented in ArmProcess64, X86ISA::X86Process, ArmProcess32, SparcProcess, RiscvProcess, MipsProcess, PowerProcess, and AlphaProcess.
Referenced by cloneFunc().
|
virtual |
Reimplemented in X86ISA::I386Process.
Definition at line 413 of file process.cc.
References SyscallDesc::doSyscall(), fatal, getDesc(), and numSyscalls.
Referenced by O3ThreadState< Impl >::syscall(), X86ISA::I386Process::syscall(), and SimpleThread::syscall().
|
inline |
Definition at line 90 of file process.hh.
References _tgid.
Referenced by exitImpl(), futexFunc(), getpidFunc(), and tgkillFunc().
|
inline |
Definition at line 83 of file process.hh.
References _uid.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), cloneFunc(), execveFunc(), getuidFunc(), and getuidPseudoFunc().
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Checkpoints for file descriptors currently do not work. Need to come back and fix them at a later date.
Implements Serializable.
Definition at line 385 of file process.cc.
References csprintf(), fds, pTable, Serializable::unserialize(), warn, and X86ISA::x.
void Process::updateBias | ( | ) |
Definition at line 442 of file process.cc.
References ObjectFile::getInterpreter(), ObjectFile::mapSize(), memState, mmapGrowsDown(), objFile, AlphaISA::PageBytes, ObjectFile::relocatable(), roundUp(), and ObjectFile::updateBias().
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), and X86ISA::X86Process::argsInit().
uint64_t Process::_egid |
Definition at line 192 of file process.hh.
Referenced by egid().
uint64_t Process::_euid |
Definition at line 190 of file process.hh.
Referenced by euid().
uint64_t Process::_gid |
Definition at line 191 of file process.hh.
Referenced by gid().
uint64_t Process::_pgid |
Definition at line 197 of file process.hh.
uint64_t Process::_pid |
Definition at line 195 of file process.hh.
Referenced by SparcProcess::initState(), pid(), Process(), and AlphaProcess::setupASNReg().
uint64_t Process::_ppid |
Definition at line 196 of file process.hh.
Referenced by ppid().
uint64_t Process::_tgid |
Definition at line 198 of file process.hh.
uint64_t Process::_uid |
Definition at line 189 of file process.hh.
Referenced by uid().
std::vector<std::string> Process::argv |
Definition at line 183 of file process.hh.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), and clone().
uint64_t Process::childClearTID |
Calls a futex wakeup at the address specified by this pointer when this process exits.
Definition at line 212 of file process.hh.
Referenced by cloneFunc(), exitImpl(), and setTidAddressFunc().
std::vector<ContextID> Process::contextIds |
Definition at line 168 of file process.hh.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), assignThreadContext(), AlphaProcess::initState(), SparcProcess::initState(), initState(), ArmProcess32::initState(), ArmProcess64::initState(), Sparc32Process::initState(), X86ISA::X86_64Process::initState(), Sparc64Process::initState(), X86ISA::I386Process::initState(), revokeThreadContext(), and AlphaProcess::setupASNReg().
std::string Process::cwd |
Definition at line 185 of file process.hh.
Referenced by fullPath(), and getcwd().
std::vector<EmulatedDriver *> Process::drivers |
Definition at line 201 of file process.hh.
Referenced by findDriver().
std::vector<std::string> Process::envp |
Definition at line 184 of file process.hh.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), and clone().
std::string Process::executable |
Definition at line 186 of file process.hh.
Referenced by progName().
bool* Process::exitGroup |
Definition at line 205 of file process.hh.
Referenced by clone(), exitImpl(), and Process().
std::shared_ptr<FDArray> Process::fds |
Definition at line 203 of file process.hh.
Referenced by _llseekFunc(), clone(), closeFunc(), drain(), dup2Func(), dupFunc(), execveFunc(), exitImpl(), fallocateFunc(), fchmodFunc(), fchownFunc(), fcntl64Func(), fcntlFunc(), fstat64Func(), fstatfsFunc(), fstatFunc(), ftruncate64Func(), ftruncateFunc(), ioctlFunc(), lseekFunc(), mmapImpl(), ClDriver::open(), openImpl(), pipeImpl(), pwrite64Func(), readFunc(), serialize(), unserialize(), writeFunc(), and writevFunc().
SETranslatingPortProxy Process::initVirtMem |
Definition at line 180 of file process.hh.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), Sparc32Process::argsInit(), Sparc64Process::argsInit(), X86ISA::X86_64Process::initState(), and X86ISA::I386Process::initState().
bool Process::kvmInSE |
Definition at line 176 of file process.hh.
Referenced by X86ISA::X86_64Process::initState().
std::shared_ptr<MemState> Process::memState |
Definition at line 206 of file process.hh.
Referenced by AlphaProcess::AlphaProcess(), AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), ArmProcess32::ArmProcess32(), ArmProcess64::ArmProcess64(), brkFunc(), clone(), fixupStackFault(), X86ISA::I386Process::I386Process(), MipsProcess::MipsProcess(), Shader::mmap(), mmapImpl(), mremapFunc(), PowerProcess::PowerProcess(), RiscvProcess::RiscvProcess(), Sparc32Process::Sparc32Process(), Sparc64Process::Sparc64Process(), updateBias(), and X86ISA::X86_64Process::X86_64Process().
Stats::Scalar Process::numSyscalls |
Definition at line 173 of file process.hh.
Referenced by regStats(), and syscall().
ObjectFile* Process::objFile |
Definition at line 182 of file process.hh.
Referenced by AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), getBias(), getInterpreter(), getStartPC(), AlphaProcess::initState(), Process(), ArmProcess32::setSyscallReturn(), ArmProcess64::setSyscallReturn(), and updateBias().
PageTableBase* Process::pTable |
Definition at line 178 of file process.hh.
Referenced by SparcISA::RemoteGDB::acc(), MipsISA::RemoteGDB::acc(), PowerISA::RemoteGDB::acc(), RiscvISA::RemoteGDB::acc(), X86ISA::RemoteGDB::acc(), ArmISA::RemoteGDB::acc(), allocateMem(), brkFunc(), clone(), initState(), X86ISA::X86_64Process::initState(), AlphaISA::NDtbMissFault::invoke(), SparcISA::FastInstructionAccessMMUMiss::invoke(), SparcISA::FastDataAccessMMUMiss::invoke(), AlphaISA::ItbPageFault::invoke(), map(), mremapFunc(), X86ISA::GpuTLB::CpuSidePort::recvFunctional(), replicatePage(), ComputeUnit::sendRequest(), serialize(), GenericTLB::translateAtomic(), RiscvISA::TLB::translateData(), MipsISA::TLB::translateData(), PowerISA::TLB::translateData(), RiscvISA::TLB::translateInst(), MipsISA::TLB::translateInst(), PowerISA::TLB::translateInst(), ArmISA::TLB::translateSe(), and unserialize().
bool* Process::sigchld |
Definition at line 215 of file process.hh.
Referenced by cloneFunc(), execveFunc(), exitImpl(), and Process().
System* Process::system |
Definition at line 171 of file process.hh.
Referenced by allocateMem(), AlphaProcess::argsInit(), MipsProcess::argsInit(), PowerProcess::argsInit(), RiscvProcess::argsInit(), SparcProcess::argsInit(), ArmProcess::argsInit(), X86ISA::X86Process::argsInit(), cloneFunc(), execveFunc(), findFreeContext(), AlphaProcess::initState(), SparcProcess::initState(), initState(), ArmProcess32::initState(), ArmProcess64::initState(), Sparc32Process::initState(), X86ISA::X86_64Process::initState(), Sparc64Process::initState(), X86ISA::I386Process::initState(), mmapImpl(), Process(), Linux::procMeminfo(), replicatePage(), AlphaProcess::setupASNReg(), and sysinfoFunc().
bool Process::useArchPT |
Definition at line 175 of file process.hh.