gem5 v24.0.0.0
Loading...
Searching...
No Matches
linux.hh
Go to the documentation of this file.
1/*
2 * Copyright (c) 2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;
9 * redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution;
12 * neither the name of the copyright holders nor the names of its
13 * contributors may be used to endorse or promote products derived from
14 * this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef __ARCH_MIPS_LINUX_LINUX_HH__
30#define __ARCH_MIPS_LINUX_LINUX_HH__
31
32#include <map>
33
35#include "kern/linux/linux.hh"
36
37namespace gem5
38{
39
40class MipsLinux : public Linux, public OpenFlagTable<MipsLinux>
41{
42 public:
43
44 static const ByteOrder byteOrder = ByteOrder::little;
45
46 static const int TGT_SIGHUP = 0x000001;
47 static const int TGT_SIGINT = 0x000002;
48 static const int TGT_SIGQUIT = 0x000003;
49 static const int TGT_SIGILL = 0x000004;
50 static const int TGT_SIGTRAP = 0x000005;
51 static const int TGT_SIGIOT = 0x000006;
52 static const int TGT_SIGABRT = 0x000006;
53 static const int TGT_SIGEMT = 0x000007;
54 static const int TGT_SIGFPE = 0x000008;
55 static const int TGT_SIGKILL = 0x000009;
56 static const int TGT_SIGBUS = 0x00000a;
57 static const int TGT_SIGSEGV = 0x00000b;
58 static const int TGT_SIGSYS = 0x00000c;
59 static const int TGT_SIGPIPE = 0x00000d;
60 static const int TGT_SIGALRM = 0x00000e;
61 static const int TGT_SIGTERM = 0x00000f;
62 static const int TGT_SIGUSR1 = 0x000010;
63 static const int TGT_SIGUSR2 = 0x000011;
64 static const int TGT_SIGCHLD = 0x000012;
65 static const int TGT_SIGCLD = 0x000012;
66 static const int TGT_SIGPWR = 0x000013;
67 static const int TGT_SIGWINCH = 0x000014;
68 static const int TGT_SIGURG = 0x000015;
69 static const int TGT_SIGIO = 0x000016;
70 static const int TGT_SIGPOLL = 0x000016;
71 static const int TGT_SIGSTOP = 0x000017;
72 static const int TGT_SIGTSTP = 0x000018;
73 static const int TGT_SIGCONT = 0x000019;
74 static const int TGT_SIGTTIN = 0x00001a;
75 static const int TGT_SIGTTOU = 0x00001b;
76 static const int TGT_SIGVTALRM = 0x00001c;
77 static const int TGT_SIGPROF = 0x00001d;
78 static const int TGT_SIGXCPU = 0x00001e;
79 static const int TGT_SIGXFSZ = 0x00001f;
80
82
83 static constexpr int TGT_O_RDONLY = 0x00000000;
84 static constexpr int TGT_O_WRONLY = 0x00000001;
85 static constexpr int TGT_O_RDWR = 0x00000002;
86 static constexpr int TGT_O_CREAT = 0x00000100;
87 static constexpr int TGT_O_EXCL = 0x00000400;
88 static constexpr int TGT_O_NOCTTY = 0x00000800;
89 static constexpr int TGT_O_TRUNC = 0x00000200;
90 static constexpr int TGT_O_APPEND = 0x00000008;
91 static constexpr int TGT_O_NONBLOCK = 0x00000080;
92 static constexpr int TGT_O_DSYNC = 0x00000010;
93 static constexpr int TGT_FASYNC = 0x00001000;
94 static constexpr int TGT_O_DIRECT = 0x00008000;
95 static constexpr int TGT_O_LARGEFILE = 0x00002000;
96 static constexpr int TGT_O_DIRECTORY = 0x00010000;
97 static constexpr int TGT_O_NOFOLLOW = 0x00020000;
98 static constexpr int TGT_O_NOATIME = 0x00040000;
99 static constexpr int TGT_O_CLOEXEC = 0x00080000;
100 static constexpr int TGT_O_SYNC = 0x00004010;
101 static constexpr int TGT_O_PATH = 0x00200000;
103
104 static constexpr unsigned TGT_MAP_SHARED = 0x00001;
105 static constexpr unsigned TGT_MAP_PRIVATE = 0x00002;
106 static constexpr unsigned TGT_MAP_ANON = 0x00800;
107 static constexpr unsigned TGT_MAP_DENYWRITE = 0x02000;
108 static constexpr unsigned TGT_MAP_EXECUTABLE = 0x04000;
109 static constexpr unsigned TGT_MAP_FILE = 0x00000;
110 static constexpr unsigned TGT_MAP_GROWSDOWN = 0x01000;
111 static constexpr unsigned TGT_MAP_HUGETLB = 0x80000;
112 static constexpr unsigned TGT_MAP_LOCKED = 0x08000;
113 static constexpr unsigned TGT_MAP_NONBLOCK = 0x20000;
114 static constexpr unsigned TGT_MAP_NORESERVE = 0x00400;
115 static constexpr unsigned TGT_MAP_POPULATE = 0x10000;
116 static constexpr unsigned TGT_MAP_STACK = 0x40000;
117 static constexpr unsigned TGT_MAP_ANONYMOUS = 0x00800;
118 static constexpr unsigned TGT_MAP_FIXED = 0x00010;
119
121
122 static const unsigned GSI_PLATFORM_NAME = 103;
123 static const unsigned GSI_CPU_INFO = 59;
124 static const unsigned GSI_PROC_TYPE = 60;
125 static const unsigned GSI_MAX_CPU = 30;
126 static const unsigned GSI_CPUS_IN_BOX = 55;
127 static const unsigned GSI_PHYSMEM = 19;
128 static const unsigned GSI_CLK_TCK = 42;
130
132
133 static const unsigned SSI_IEEE_FP_CONTROL = 14;
135
137
138 static const unsigned TGT_TCGETA = 0x5401;
139 static const unsigned TGT_TCSETAW = 0x5403;
140 static const unsigned TGT_TCGETS = 0x540d;
141 static const unsigned TGT_FIONREAD = 0x467f;
142 static const unsigned TGT_TIOCGETP = 0x7408;
143 static const unsigned TGT_TIOCSETP = 0x7409;
144 static const unsigned TGT_TIOCSETN = 0x740a;
146
147 static bool
148 isTtyReq(unsigned req)
149 {
150 switch (req) {
151 case TGT_TIOCGETP:
152 case TGT_TIOCSETP:
153 case TGT_TIOCSETN:
154 case TGT_FIONREAD:
155 case TGT_TCGETS:
156 case TGT_TCGETA:
157 case TGT_TCSETAW:
158 return true;
159 default:
160 return false;
161 }
162 }
163
165 static const int TBL_SYSINFO = 12;
166
168 static const unsigned TGT_RLIMIT_NPROC = 8;
169 static const unsigned TGT_RLIMIT_AS = 6;
170 static const unsigned TGT_RLIMIT_RSS = 7;
171 static const unsigned TGT_RLIMIT_NOFILE = 5;
172 static const unsigned TGT_RLIMIT_MEMLOCK = 9;
173
177 static const int NUM_ROOT_PROCS = 2;
178
180 {
181 int32_t uptime; /* Seconds since boot */
182 uint32_t loads[3]; /* 1, 5, and 15 minute load averages */
183 uint32_t totalram; /* Total usable main memory size */
184 uint32_t freeram; /* Available memory size */
185 uint32_t sharedram; /* Amount of shared memory */
186 uint32_t bufferram; /* Memory used by buffers */
187 uint32_t totalswap; /* Total swap space size */
188 uint32_t freeswap; /* swap space still available */
189 uint16_t procs; /* Number of current processes */
190 uint32_t totalhigh; /* Total high memory size */
191 uint32_t freehigh; /* Available high memory size */
192 uint32_t mem_unit; /* Memory unit size in bytes */
193 };
194
195};
196
197} // namespace gem5
198
199#endif
This class encapsulates the types, structures, constants, functions, and syscall-number mappings spec...
Definition linux.hh:62
static const unsigned TGT_RLIMIT_NOFILE
Definition linux.hh:171
static const unsigned TGT_RLIMIT_NPROC
Resource constants for getrlimit() (overide some generics).
Definition linux.hh:168
static bool isTtyReq(unsigned req)
Definition linux.hh:148
static constexpr unsigned TGT_MAP_ANON
Definition linux.hh:106
static constexpr unsigned TGT_MAP_LOCKED
Definition linux.hh:112
static const int TGT_SIGXCPU
Definition linux.hh:78
static const unsigned TGT_RLIMIT_MEMLOCK
Definition linux.hh:172
static const int TGT_SIGPIPE
Definition linux.hh:59
static const int TGT_SIGCONT
Definition linux.hh:73
static constexpr int TGT_O_WRONLY
O_WRONLY.
Definition linux.hh:84
static const int TGT_SIGTTIN
Definition linux.hh:74
static constexpr unsigned TGT_MAP_GROWSDOWN
Definition linux.hh:110
static constexpr unsigned TGT_MAP_SHARED
Definition linux.hh:104
static constexpr int TGT_O_CLOEXEC
O_CLOEXEC.
Definition linux.hh:99
static const int TGT_SIGFPE
Definition linux.hh:54
static const unsigned GSI_MAX_CPU
max # cpu's on this machine
Definition linux.hh:125
static constexpr unsigned TGT_MAP_NONBLOCK
Definition linux.hh:113
static const int TGT_SIGEMT
Definition linux.hh:53
static const unsigned GSI_PHYSMEM
Physical memory in KB.
Definition linux.hh:127
static const int TGT_SIGTERM
Definition linux.hh:61
static const int TGT_SIGBUS
Definition linux.hh:56
static constexpr unsigned TGT_MAP_PRIVATE
Definition linux.hh:105
static const unsigned TGT_RLIMIT_AS
Definition linux.hh:169
static constexpr unsigned TGT_MAP_NORESERVE
Definition linux.hh:114
static const int TGT_SIGSEGV
Definition linux.hh:57
static const int TGT_SIGABRT
Definition linux.hh:52
static constexpr int TGT_O_DSYNC
O_DSYNC.
Definition linux.hh:92
static const int TBL_SYSINFO
For table().
Definition linux.hh:165
static constexpr int TGT_FASYNC
O_FASYNC.
Definition linux.hh:93
static const unsigned GSI_PLATFORM_NAME
For getsysinfo().
Definition linux.hh:122
static const int TGT_SIGTRAP
Definition linux.hh:50
static const int TGT_SIGIO
Definition linux.hh:69
static const unsigned SSI_IEEE_FP_CONTROL
For setsysinfo().
Definition linux.hh:133
static const unsigned GSI_CPUS_IN_BOX
number of CPUs in system
Definition linux.hh:126
static const int TGT_SIGTTOU
Definition linux.hh:75
static const unsigned TGT_FIONREAD
Definition linux.hh:141
static constexpr int TGT_O_LARGEFILE
O_LARGEFILE.
Definition linux.hh:95
static const int TGT_SIGSYS
Definition linux.hh:58
static const int TGT_SIGURG
Definition linux.hh:68
static const int TGT_SIGPOLL
Definition linux.hh:70
static const int TGT_SIGWINCH
Definition linux.hh:67
static const int NUM_ROOT_PROCS
Offset used to make sure that processes don't assign themselves to process IDs reserved for the root ...
Definition linux.hh:177
static const int TGT_SIGVTALRM
Definition linux.hh:76
static const int TGT_SIGCHLD
Definition linux.hh:64
static const int TGT_SIGPWR
Definition linux.hh:66
static const int TGT_SIGUSR2
Definition linux.hh:63
static const unsigned TGT_RLIMIT_RSS
Definition linux.hh:170
static const int TGT_SIGALRM
Definition linux.hh:60
static constexpr int TGT_O_NOFOLLOW
O_NOFOLLOW.
Definition linux.hh:97
static constexpr int TGT_O_NOATIME
O_NOATIME.
Definition linux.hh:98
static constexpr int TGT_O_TRUNC
O_TRUNC.
Definition linux.hh:89
static const int TGT_SIGILL
Definition linux.hh:49
static const unsigned TGT_TIOCSETN
Definition linux.hh:144
static constexpr int TGT_O_NONBLOCK
O_NONBLOCK.
Definition linux.hh:91
static constexpr int TGT_O_PATH
O_PATH.
Definition linux.hh:101
static constexpr unsigned TGT_MAP_FILE
Definition linux.hh:109
static const unsigned TGT_TIOCSETP
Definition linux.hh:143
static const unsigned TGT_TCSETAW
Definition linux.hh:139
static constexpr int TGT_O_RDONLY
open(2) flag values.
Definition linux.hh:83
static constexpr unsigned TGT_MAP_STACK
Definition linux.hh:116
static const int TGT_SIGXFSZ
Definition linux.hh:79
static constexpr int TGT_O_EXCL
O_EXCL.
Definition linux.hh:87
static constexpr unsigned TGT_MAP_EXECUTABLE
Definition linux.hh:108
static constexpr int TGT_O_APPEND
O_APPEND.
Definition linux.hh:90
static constexpr int TGT_O_NOCTTY
O_NOCTTY.
Definition linux.hh:88
static constexpr int TGT_O_DIRECT
O_DIRECT.
Definition linux.hh:94
static const int TGT_SIGHUP
Definition linux.hh:46
static const int TGT_SIGIOT
Definition linux.hh:51
static const ByteOrder byteOrder
Definition linux.hh:44
static const int TGT_SIGQUIT
Definition linux.hh:48
static const unsigned TGT_TCGETA
ioctl() command codes.
Definition linux.hh:138
static constexpr unsigned TGT_MAP_DENYWRITE
Definition linux.hh:107
static const int TGT_SIGUSR1
Definition linux.hh:62
static constexpr unsigned TGT_MAP_FIXED
Definition linux.hh:118
static constexpr int TGT_O_DIRECTORY
O_DIRECTORY.
Definition linux.hh:96
static const int TGT_SIGCLD
Definition linux.hh:65
static const int TGT_SIGKILL
Definition linux.hh:55
static constexpr int TGT_O_RDWR
O_RDWR.
Definition linux.hh:85
static const unsigned TGT_TCGETS
Definition linux.hh:140
static const int TGT_SIGPROF
Definition linux.hh:77
static const int TGT_SIGTSTP
Definition linux.hh:72
static const int TGT_SIGSTOP
Definition linux.hh:71
static const unsigned GSI_PROC_TYPE
get proc_type
Definition linux.hh:124
static constexpr unsigned TGT_MAP_POPULATE
Definition linux.hh:115
static const int TGT_SIGINT
Definition linux.hh:47
static const unsigned GSI_CLK_TCK
clock freq in Hz
Definition linux.hh:128
static constexpr int TGT_O_SYNC
O_SYNC.
Definition linux.hh:100
static constexpr unsigned TGT_MAP_ANONYMOUS
Definition linux.hh:117
static const unsigned TGT_TIOCGETP
Definition linux.hh:142
static const unsigned GSI_CPU_INFO
CPU information.
Definition linux.hh:123
static constexpr unsigned TGT_MAP_HUGETLB
Definition linux.hh:111
static constexpr int TGT_O_CREAT
O_CREAT.
Definition linux.hh:86
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition binary32.hh:36

Generated on Tue Jun 18 2024 16:24:04 for gem5 by doxygen 1.11.0