gem5
v20.1.0.0
|
This class encapsulates the types, structures, constants, functions, and syscall-number mappings specific to the Alpha Linux syscall interface. More...
#include <linux.hh>
Classes | |
struct | fd_set |
struct | rlimit |
Limit struct for getrlimit/setrlimit. More... | |
struct | rusage |
struct | tgt_iovec |
struct | tgt_stat |
Stat buffer. More... | |
struct | tgt_stat64 |
struct | timespec |
For clock_gettime(). More... | |
struct | timeval |
For gettimeofday(). More... | |
struct | tms |
For times(). More... | |
struct | utsname |
Interface struct for uname(). More... | |
Public Types | |
typedef uint64_t | size_t |
Basic Linux types. More... | |
typedef uint64_t | off_t |
typedef int64_t | time_t |
typedef int64_t | clock_t |
typedef uint32_t | uid_t |
typedef uint32_t | gid_t |
using | PrintkVarArgs = GuestABI::VarArgs< Addr, int32_t, uint32_t, int64_t, uint64_t > |
Public Types inherited from OperatingSystem | |
typedef void | tgt_stat |
Stat buffer. More... | |
typedef void | tgt_stat64 |
Static Public Member Functions | |
static bool | isTtyReq (unsigned req) |
Return true for the ioctl codes for which we return ENOTTY without printing a warning, since we know that ENOTTY is the correct thing to return (and not just a sign that we don't recognize the ioctl code. More... | |
static int | openSpecialFile (std::string path, Process *process, ThreadContext *tc) |
static std::string | procMeminfo (Process *process, ThreadContext *tc) |
static std::string | etcPasswd (Process *process, ThreadContext *tc) |
static std::string | procSelfMaps (Process *process, ThreadContext *tc) |
static std::string | cpuOnline (Process *process, ThreadContext *tc) |
static std::string | devRandom (Process *process, ThreadContext *tc) |
Static Public Member Functions inherited from OperatingSystem | |
static int | openSpecialFile (std::string path, Process *process, ThreadContext *tc) |
Static Public Attributes | |
static const int | _SYS_NMLN = 65 |
Length of strings in struct utsname (plus 1 for null char). More... | |
static const int | M5_SC_CLK_TCK = 100 |
Clock ticks per second, for times(). More... | |
static const unsigned | TGT_TCGETS = 0x5401 |
ioctl() command codes. More... | |
static const unsigned | TGT_TCGETA = 0x5405 |
static const unsigned | TGT_TCSETAW = 0x5407 |
static const unsigned | TGT_FIONREAD = 0x541B |
static const unsigned | TGT_RLIMIT_CPU = 0 |
Resource constants for getrlimit(). More... | |
static const unsigned | TGT_RLIMIT_FSIZE = 1 |
static const unsigned | TGT_RLIMIT_DATA = 2 |
static const unsigned | TGT_RLIMIT_STACK = 3 |
static const unsigned | TGT_RLIMIT_CORE = 4 |
static const unsigned | TGT_RLIMIT_RSS = 5 |
static const unsigned | TGT_RLIMIT_NPROC = 6 |
static const unsigned | TGT_RLIMIT_NOFILE = 7 |
static const unsigned | TGT_RLIMIT_MEMLOCK = 8 |
static const unsigned | TGT_RLIMIT_AS = 9 |
static const unsigned | TGT_RLIMIT_LOCKS = 10 |
static const unsigned | TGT_RLIMIT_SIGPENDING = 11 |
static const unsigned | TGT_RLIMIT_MSGQUEUE = 12 |
static const unsigned | TGT_RLIMIT_NICE = 13 |
static const unsigned | TGT_RLIMIT_RTPRIO = 14 |
static const unsigned | TGT_RLIMIT_RTTIME = 15 |
static const unsigned | TGT_RLIM_NLIMITS = 16 |
static const int | TGT_RUSAGE_SELF = 0 |
For getrusage(). More... | |
static const int | TGT_RUSAGE_CHILDREN = -1 |
static const int | TGT_RUSAGE_BOTH = -2 |
static Random | random |
static const unsigned | TGT_FUTEX_WAIT = 0 |
static const unsigned | TGT_FUTEX_WAKE = 1 |
static const unsigned | TGT_FUTEX_REQUEUE = 3 |
static const unsigned | TGT_FUTEX_CMP_REQUEUE = 4 |
static const unsigned | TGT_FUTEX_WAKE_OP = 5 |
static const unsigned | TGT_FUTEX_WAIT_BITSET = 9 |
static const unsigned | TGT_FUTEX_WAKE_BITSET = 10 |
static const unsigned | TGT_EAGAIN = 11 |
static const unsigned | TGT_EWOULDBLOCK = TGT_EAGAIN |
static const unsigned | TGT_FUTEX_PRIVATE_FLAG = 128 |
static const unsigned | TGT_FUTEX_CLOCK_REALTIME_FLAG = 256 |
static const unsigned | TGT_FUTEX_OP_SET = 0 |
static const unsigned | TGT_FUTEX_OP_ADD = 1 |
static const unsigned | TGT_FUTEX_OP_OR = 2 |
static const unsigned | TGT_FUTEX_OP_ANDN = 3 |
static const unsigned | TGT_FUTEX_OP_XOR = 4 |
static const unsigned | TGT_FUTEX_OP_ARG_SHIFT = 8 |
static const unsigned | TGT_FUTEX_OP_CMP_EQ = 0 |
static const unsigned | TGT_FUTEX_OP_CMP_NE = 1 |
static const unsigned | TGT_FUTEX_OP_CMP_LT = 2 |
static const unsigned | TGT_FUTEX_OP_CMP_LE = 3 |
static const unsigned | TGT_FUTEX_OP_CMP_GT = 4 |
static const unsigned | TGT_FUTEX_OP_CMP_GE = 5 |
static const int | TGT_AT_FDCWD = -100 |
static const unsigned | TGT_MREMAP_MAYMOVE = 0x1 |
static const unsigned | TGT_MREMAP_FIXED = 0x2 |
static const unsigned | TGT_CLONE_VM = 0x00000100 |
static const unsigned | TGT_CLONE_FS = 0x00000200 |
static const unsigned | TGT_CLONE_FILES = 0x00000400 |
static const unsigned | TGT_CLONE_SIGHAND = 0x00000800 |
static const unsigned | TGT_CLONE_PTRACE = 0x00002000 |
static const unsigned | TGT_CLONE_VFORK = 0x00004000 |
static const unsigned | TGT_CLONE_PARENT = 0x00008000 |
static const unsigned | TGT_CLONE_THREAD = 0x00010000 |
static const unsigned | TGT_CLONE_NEWNS = 0x00020000 |
static const unsigned | TGT_CLONE_SYSVSEM = 0x00040000 |
static const unsigned | TGT_CLONE_SETTLS = 0x00080000 |
static const unsigned | TGT_CLONE_PARENT_SETTID = 0x00100000 |
static const unsigned | TGT_CLONE_CHILD_CLEARTID = 0x00200000 |
static const unsigned | TGT_CLONE_DETACHED = 0x00400000 |
static const unsigned | TGT_CLONE_UNTRACED = 0x00800000 |
static const unsigned | TGT_CLONE_CHILD_SETTID = 0x01000000 |
static const unsigned | TGT_CLONE_NEWUTS = 0x04000000 |
static const unsigned | TGT_CLONE_NEWIPC = 0x08000000 |
static const unsigned | TGT_CLONE_NEWUSER = 0x10000000 |
static const unsigned | TGT_CLONE_NEWPID = 0x20000000 |
static const unsigned | TGT_CLONE_NEWNET = 0x40000000 |
static const unsigned | TGT_CLONE_IO = 0x80000000 |
static const unsigned | TGT_WNOHANG = 0x00000001 |
static const unsigned | TGT_WUNTRACED = 0x00000002 |
static const unsigned | TGT_WSTOPPED = TGT_WUNTRACED |
static const unsigned | TGT_WEXITED = 0x00000004 |
static const unsigned | TGT_WCONTINUED = 0x00000008 |
static const unsigned | TGT_WNOWAIT = 0x01000000 |
Static Public Attributes inherited from OperatingSystem | |
static const int | _SYS_NMLN = 65 |
Length of strings in struct utsname (plus 1 for null char). More... | |
This class encapsulates the types, structures, constants, functions, and syscall-number mappings specific to the Alpha Linux syscall interface.
typedef int64_t Linux::clock_t |
typedef uint32_t Linux::gid_t |
typedef uint64_t Linux::off_t |
using Linux::PrintkVarArgs = GuestABI::VarArgs<Addr, int32_t, uint32_t, int64_t, uint64_t> |
typedef uint64_t Linux::size_t |
typedef int64_t Linux::time_t |
typedef uint32_t Linux::uid_t |
|
static |
Definition at line 111 of file linux.cc.
References csprintf(), ThreadContext::getSystemPtr(), System::Threads::size(), and System::threads.
Referenced by openSpecialFile().
|
static |
Definition at line 117 of file linux.cc.
References curTick(), DPRINTFR, ThreadContext::getCpuPtr(), ArmISA::i, Random::random(), and random.
Referenced by openSpecialFile().
|
static |
Definition at line 98 of file linux.cc.
References csprintf(), and Process::tgtCwd.
Referenced by openSpecialFile().
|
inlinestatic |
Return true for the ioctl codes for which we return ENOTTY without printing a warning, since we know that ENOTTY is the correct thing to return (and not just a sign that we don't recognize the ioctl code.
Definition at line 176 of file linux.hh.
References TGT_FIONREAD, TGT_TCGETA, TGT_TCGETS, and TGT_TCSETAW.
|
static |
Definition at line 46 of file linux.cc.
References cpuOnline(), curTick(), data, devRandom(), DPRINTFR, etcPasswd(), ArmISA::f, ArmISA::fd, ThreadContext::getCpuPtr(), procMeminfo(), procSelfMaps(), and warn.
|
static |
Definition at line 90 of file linux.cc.
References csprintf(), System::freeMemSize(), System::memSize(), and Process::system.
Referenced by openSpecialFile().
|
static |
Definition at line 105 of file linux.cc.
References Process::memState.
Referenced by openSpecialFile().
|
static |
|
static |
|
static |
Definition at line 234 of file linux.hh.
Referenced by devRandom().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 289 of file linux.hh.
Referenced by X86Linux::archClone(), ArmLinux::archClone(), and RiscvLinux64::archClone().
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 168 of file linux.hh.
Referenced by isTtyReq().
|
static |
|
static |
|
static |
|
static |
Definition at line 166 of file linux.hh.
Referenced by isTtyReq().
|
static |
|
static |
Definition at line 167 of file linux.hh.
Referenced by isTtyReq().
|
static |