gem5  v22.1.0.0
linux.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2007 The Hewlett-Packard Development Company
3  * All rights reserved.
4  *
5  * The license below extends only to copyright in the software and shall
6  * not be construed as granting a license to any other intellectual
7  * property including but not limited to intellectual property relating
8  * to a hardware implementation of the functionality of the software
9  * licensed hereunder. You may use the software subject to the license
10  * terms below provided that you ensure that this notice is replicated
11  * unmodified and in its entirety in all distributions of the software,
12  * modified or unmodified, in source code or in binary form.
13  *
14  * Redistribution and use in source and binary forms, with or without
15  * modification, are permitted provided that the following conditions are
16  * met: redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer;
18  * redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution;
21  * neither the name of the copyright holders nor the names of its
22  * contributors may be used to endorse or promote products derived from
23  * this software without specific prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 #ifndef __ARCH_X86_LINUX_LINUX_HH__
39 #define __ARCH_X86_LINUX_LINUX_HH__
40 
41 #include <map>
42 
43 #include "arch/x86/regs/int.hh"
44 #include "arch/x86/regs/misc.hh"
45 #include "arch/x86/utility.hh"
46 #include "base/compiler.hh"
48 #include "kern/linux/linux.hh"
49 #include "sim/guest_abi.hh"
50 #include "sim/syscall_return.hh"
51 
52 namespace gem5
53 {
54 
55 class X86Linux : public Linux
56 {
57  public:
58  static const ByteOrder byteOrder = ByteOrder::little;
59 
60  static void
61  archClone(uint64_t flags,
62  Process *pp, Process *cp,
64  uint64_t stack, uint64_t tls)
65  {
66  ctc->getIsaPtr()->copyRegsFrom(ptc);
67 
68  if (flags & TGT_CLONE_SETTLS) {
71  }
72 
73  if (stack)
75  }
76 
77  class SyscallABI {};
78 };
79 
80 GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi);
81 namespace guest_abi
82 {
83 
84 template <typename ABI>
85 struct Result<ABI, SyscallReturn,
86  typename std::enable_if_t<std::is_base_of_v<X86Linux::SyscallABI, ABI>>>
87 {
88  static void
90  {
92  }
93 };
94 
95 } // namespace guest_abi
96 
97 class X86Linux64 : public X86Linux, public OpenFlagTable<X86Linux64>
98 {
99  public:
100 
101  struct tgt_stat64
102  {
103  uint64_t st_dev;
104  uint64_t st_ino;
105  uint64_t st_nlink;
106  uint32_t st_mode;
107  uint32_t st_uid;
108  uint32_t st_gid;
109  uint32_t __pad0;
110  uint64_t st_rdev;
111  int64_t st_size;
112  int64_t st_blksize;
113  int64_t st_blocks;
114  uint64_t st_atimeX;
115  uint64_t st_atime_nsec;
116  uint64_t st_mtimeX;
117  uint64_t st_mtime_nsec;
118  uint64_t st_ctimeX;
119  uint64_t st_ctime_nsec;
120  int64_t unused0[3];
121  };
122 
123  struct tgt_fsid
124  {
125  long val[2];
126  };
127 
128  struct tgt_statfs
129  {
130  long f_type;
131  long f_bsize;
132  long f_blocks;
133  long f_bfree;
134  long f_bavail;
135  long f_files;
136  long f_ffree;
138  long f_namelen;
139  long f_frsize;
140  long f_spare[5];
141  };
142 
143  static const int TGT_SIGHUP = 0x000001;
144  static const int TGT_SIGINT = 0x000002;
145  static const int TGT_SIGQUIT = 0x000003;
146  static const int TGT_SIGILL = 0x000004;
147  static const int TGT_SIGTRAP = 0x000005;
148  static const int TGT_SIGABRT = 0x000006;
149  static const int TGT_SIGIOT = 0x000006;
150  static const int TGT_SIGBUS = 0x000007;
151  static const int TGT_SIGFPE = 0x000008;
152  static const int TGT_SIGKILL = 0x000009;
153  static const int TGT_SIGUSR1 = 0x00000a;
154  static const int TGT_SIGSEGV = 0x00000b;
155  static const int TGT_SIGUSR2 = 0x00000c;
156  static const int TGT_SIGPIPE = 0x00000d;
157  static const int TGT_SIGALRM = 0x00000e;
158  static const int TGT_SIGTERM = 0x00000f;
159  static const int TGT_SIGSTKFLT = 0x000010;
160  static const int TGT_SIGCHLD = 0x000011;
161  static const int TGT_SIGCONT = 0x000012;
162  static const int TGT_SIGSTOP = 0x000013;
163  static const int TGT_SIGTSTP = 0x000014;
164  static const int TGT_SIGTTIN = 0x000015;
165  static const int TGT_SIGTTOU = 0x000016;
166  static const int TGT_SIGURG = 0x000017;
167  static const int TGT_SIGXCPU = 0x000018;
168  static const int TGT_SIGXFSZ = 0x000019;
169  static const int TGT_SIGVTALRM = 0x00001a;
170  static const int TGT_SIGPROF = 0x00001b;
171  static const int TGT_SIGWINCH = 0x00001c;
172  static const int TGT_SIGIO = 0x00001d;
173  static const int TGT_SIGPOLL = 0x00001d;
174  static const int TGT_SIGPWR = 0x00001e;
175  static const int TGT_SIGSYS = 0x00001f;
176  static const int TGT_SIGUNUSED = 0x00001f;
177 
178  static constexpr int TGT_O_RDONLY = 000000000;
179  static constexpr int TGT_O_WRONLY = 000000001;
180  static constexpr int TGT_O_RDWR = 000000002;
181  static constexpr int TGT_O_CREAT = 000000100;
182  static constexpr int TGT_O_EXCL = 000000200;
183  static constexpr int TGT_O_NOCTTY = 000000400;
184  static constexpr int TGT_O_TRUNC = 000001000;
185  static constexpr int TGT_O_APPEND = 000002000;
186  static constexpr int TGT_O_NONBLOCK = 000004000;
187  static constexpr int TGT_O_DSYNC = 000010000;
188  static constexpr int TGT_FASYNC = 000020000;
189  static constexpr int TGT_O_DIRECT = 000040000;
190  static constexpr int TGT_O_LARGEFILE = 000100000;
191  static constexpr int TGT_O_DIRECTORY = 000200000;
192  static constexpr int TGT_O_NOFOLLOW = 000400000;
193  static constexpr int TGT_O_NOATIME = 001000000;
194  static constexpr int TGT_O_CLOEXEC = 002000000;
195  static constexpr int TGT_O_SYNC = 004010000;
196  static constexpr int TGT_O_PATH = 010000000;
197 
199  typedef uint64_t size_t;
201  typedef uint64_t off_t;
202  typedef int64_t time_t;
203  typedef int64_t clock_t;
205 
206  static constexpr unsigned TGT_MAP_SHARED = 0x00001;
207  static constexpr unsigned TGT_MAP_PRIVATE = 0x00002;
208  static constexpr unsigned TGT_MAP_32BIT = 0x00040;
209  static constexpr unsigned TGT_MAP_ANON = 0x00020;
210  static constexpr unsigned TGT_MAP_DENYWRITE = 0x00800;
211  static constexpr unsigned TGT_MAP_EXECUTABLE = 0x01000;
212  static constexpr unsigned TGT_MAP_FILE = 0x00000;
213  static constexpr unsigned TGT_MAP_GROWSDOWN = 0x00100;
214  static constexpr unsigned TGT_MAP_HUGETLB = 0x40000;
215  static constexpr unsigned TGT_MAP_LOCKED = 0x02000;
216  static constexpr unsigned TGT_MAP_NONBLOCK = 0x10000;
217  static constexpr unsigned TGT_MAP_NORESERVE = 0x04000;
218  static constexpr unsigned TGT_MAP_POPULATE = 0x08000;
219  static constexpr unsigned TGT_MAP_STACK = 0x20000;
220  static constexpr unsigned TGT_MAP_ANONYMOUS = 0x00020;
221  static constexpr unsigned TGT_MAP_FIXED = 0x00010;
222 
223  struct tgt_iovec
224  {
225  uint64_t iov_base; // void *
226  uint64_t iov_len; // size_t
227  };
228 
229  struct tgt_sysinfo
230  {
231  int64_t uptime; /* Seconds since boot */
232  uint64_t loads[3]; /* 1, 5, and 15 minute load averages */
233  uint64_t totalram; /* Total usable main memory size */
234  uint64_t freeram; /* Available memory size */
235  uint64_t sharedram; /* Amount of shared memory */
236  uint64_t bufferram; /* Memory used by buffers */
237  uint64_t totalswap; /* Total swap space size */
238  uint64_t freeswap; /* swap space still available */
239  uint16_t procs; /* Number of current processes */
240  uint64_t totalhigh; /* Total high memory size */
241  uint64_t freehigh; /* Available high memory size */
242  uint64_t mem_unit; /* Memory unit size in bytes */
243  };
244 
246  {
247  uint64_t flags;
248  uint64_t pidfd;
249  uint64_t child_tid;
250  uint64_t parent_tid;
251  uint64_t exit_signal;
252  uint64_t stack;
253  uint64_t stack_size;
254  uint64_t tls;
255  uint64_t set_tid;
256  uint64_t set_tid_size;
257  uint64_t cgroup;
258  };
259 
260 };
261 
262 class X86Linux32 : public X86Linux, public OpenFlagTable<X86Linux32>
263 {
264  public:
266  {
267  uint64_t st_dev;
268  uint8_t __pad0[4];
269  uint32_t __st_ino;
270  uint32_t st_mode;
271  uint32_t st_nlink;
272  uint32_t st_uid;
273  uint32_t st_gid;
274  uint64_t st_rdev;
275  uint8_t __pad3[4];
276  int64_t st_size;
277  uint32_t st_blksize;
278  uint64_t st_blocks;
279  uint32_t st_atimeX;
280  uint32_t st_atime_nsec;
281  uint32_t st_mtimeX;
282  uint32_t st_mtime_nsec;
283  uint32_t st_ctimeX;
284  uint32_t st_ctime_nsec;
285  uint64_t st_ino;
286  };
287 
288  static const int TGT_SIGHUP = 0x000001;
289  static const int TGT_SIGINT = 0x000002;
290  static const int TGT_SIGQUIT = 0x000003;
291  static const int TGT_SIGILL = 0x000004;
292  static const int TGT_SIGTRAP = 0x000005;
293  static const int TGT_SIGABRT = 0x000006;
294  static const int TGT_SIGIOT = 0x000006;
295  static const int TGT_SIGBUS = 0x000007;
296  static const int TGT_SIGFPE = 0x000008;
297  static const int TGT_SIGKILL = 0x000009;
298  static const int TGT_SIGUSR1 = 0x00000a;
299  static const int TGT_SIGSEGV = 0x00000b;
300  static const int TGT_SIGUSR2 = 0x00000c;
301  static const int TGT_SIGPIPE = 0x00000d;
302  static const int TGT_SIGALRM = 0x00000e;
303  static const int TGT_SIGTERM = 0x00000f;
304  static const int TGT_SIGSTKFLT = 0x000010;
305  static const int TGT_SIGCHLD = 0x000011;
306  static const int TGT_SIGCONT = 0x000012;
307  static const int TGT_SIGSTOP = 0x000013;
308  static const int TGT_SIGTSTP = 0x000014;
309  static const int TGT_SIGTTIN = 0x000015;
310  static const int TGT_SIGTTOU = 0x000016;
311  static const int TGT_SIGURG = 0x000017;
312  static const int TGT_SIGXCPU = 0x000018;
313  static const int TGT_SIGXFSZ = 0x000019;
314  static const int TGT_SIGVTALRM = 0x00001a;
315  static const int TGT_SIGPROF = 0x00001b;
316  static const int TGT_SIGWINCH = 0x00001c;
317  static const int TGT_SIGIO = 0x00001d;
318  static const int TGT_SIGPOLL = 0x00001d;
319  static const int TGT_SIGPWR = 0x00001e;
320  static const int TGT_SIGSYS = 0x00001f;
321  static const int TGT_SIGUNUSED = 0x00001f;
322 
323  static constexpr int TGT_O_RDONLY = 000000000;
324  static constexpr int TGT_O_WRONLY = 000000001;
325  static constexpr int TGT_O_RDWR = 000000002;
326  static constexpr int TGT_O_CREAT = 000000100;
327  static constexpr int TGT_O_EXCL = 000000200;
328  static constexpr int TGT_O_NOCTTY = 000000400;
329  static constexpr int TGT_O_TRUNC = 000001000;
330  static constexpr int TGT_O_APPEND = 000002000;
331  static constexpr int TGT_O_NONBLOCK = 000004000;
332  static constexpr int TGT_O_DSYNC = 000010000;
333  static constexpr int TGT_FASYNC = 000020000;
334  static constexpr int TGT_O_DIRECT = 000040000;
335  static constexpr int TGT_O_LARGEFILE = 000100000;
336  static constexpr int TGT_O_DIRECTORY = 000200000;
337  static constexpr int TGT_O_NOFOLLOW = 000400000;
338  static constexpr int TGT_O_NOATIME = 001000000;
339  static constexpr int TGT_O_CLOEXEC = 002000000;
340  static constexpr int TGT_O_SYNC = 004010000;
341  static constexpr int TGT_O_PATH = 010000000;
342 
343  static const std::map<int, int> mmapFlagTable;
344 
346  typedef uint32_t size_t;
348  typedef uint32_t off_t;
349  typedef int32_t time_t;
350  typedef int32_t clock_t;
352 
353  static constexpr unsigned TGT_MAP_SHARED = 0x00001;
354  static constexpr unsigned TGT_MAP_PRIVATE = 0x00002;
355  static constexpr unsigned TGT_MAP_32BIT = 0x00040;
356  static constexpr unsigned TGT_MAP_ANON = 0x00020;
357  static constexpr unsigned TGT_MAP_DENYWRITE = 0x00800;
358  static constexpr unsigned TGT_MAP_EXECUTABLE = 0x01000;
359  static constexpr unsigned TGT_MAP_FILE = 0x00000;
360  static constexpr unsigned TGT_MAP_GROWSDOWN = 0x00100;
361  static constexpr unsigned TGT_MAP_HUGETLB = 0x40000;
362  static constexpr unsigned TGT_MAP_LOCKED = 0x02000;
363  static constexpr unsigned TGT_MAP_NONBLOCK = 0x10000;
364  static constexpr unsigned TGT_MAP_NORESERVE = 0x04000;
365  static constexpr unsigned TGT_MAP_POPULATE = 0x08000;
366  static constexpr unsigned TGT_MAP_STACK = 0x20000;
367  static constexpr unsigned TGT_MAP_ANONYMOUS = 0x00020;
368  static constexpr unsigned TGT_MAP_FIXED = 0x00010;
369 
370  struct tgt_sysinfo
371  {
372  int32_t uptime; /* Seconds since boot */
373  uint32_t loads[3]; /* 1, 5, and 15 minute load averages */
374  uint32_t totalram; /* Total usable main memory size */
375  uint32_t freeram; /* Available memory size */
376  uint32_t sharedram; /* Amount of shared memory */
377  uint32_t bufferram; /* Memory used by buffers */
378  uint32_t totalswap; /* Total swap space size */
379  uint32_t freeswap; /* swap space still available */
380  uint16_t procs; /* Number of current processes */
381  uint32_t totalhigh; /* Total high memory size */
382  uint32_t freehigh; /* Available high memory size */
383  uint32_t mem_unit; /* Memory unit size in bytes */
384  };
385 };
386 
387 } // namespace gem5
388 
389 #endif
virtual void copyRegsFrom(ThreadContext *src)=0
This class encapsulates the types, structures, constants, functions, and syscall-number mappings spec...
Definition: linux.hh:62
static const unsigned TGT_CLONE_SETTLS
Definition: linux.hh:319
This class represents the return value from an emulated system call, including any errno setting.
int64_t encodedValue() const
The encoded value (as described above)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual void setMiscRegNoEffect(RegIndex misc_reg, RegVal val)=0
virtual BaseISA * getIsaPtr() const =0
virtual void setReg(const RegId &reg, RegVal val)
static const int TGT_SIGTTOU
Definition: linux.hh:310
static constexpr unsigned TGT_MAP_NORESERVE
Definition: linux.hh:364
static constexpr int TGT_O_CLOEXEC
Definition: linux.hh:339
static constexpr int TGT_O_DIRECT
O_DIRECTIO.
Definition: linux.hh:334
static constexpr int TGT_O_DIRECTORY
Definition: linux.hh:336
static constexpr unsigned TGT_MAP_POPULATE
Definition: linux.hh:365
static constexpr int TGT_O_NONBLOCK
O_NONBLOCK.
Definition: linux.hh:331
static const int TGT_SIGVTALRM
Definition: linux.hh:314
static const int TGT_SIGILL
Definition: linux.hh:291
static const int TGT_SIGKILL
Definition: linux.hh:297
static constexpr int TGT_O_EXCL
O_EXCL.
Definition: linux.hh:327
static const int TGT_SIGTERM
Definition: linux.hh:303
static constexpr unsigned TGT_MAP_FILE
Definition: linux.hh:359
static const int TGT_SIGXFSZ
Definition: linux.hh:313
static const int TGT_SIGFPE
Definition: linux.hh:296
static constexpr int TGT_O_CREAT
O_CREAT.
Definition: linux.hh:326
static constexpr unsigned TGT_MAP_PRIVATE
Definition: linux.hh:354
static constexpr unsigned TGT_MAP_STACK
Definition: linux.hh:366
static constexpr unsigned TGT_MAP_32BIT
Definition: linux.hh:355
uint32_t off_t
Definition: linux.hh:348
static const int TGT_SIGSTKFLT
Definition: linux.hh:304
static constexpr unsigned TGT_MAP_ANONYMOUS
Definition: linux.hh:367
static constexpr int TGT_O_RDONLY
O_RDONLY.
Definition: linux.hh:323
static constexpr int TGT_O_RDWR
O_RDWR.
Definition: linux.hh:325
static constexpr unsigned TGT_MAP_FIXED
Definition: linux.hh:368
static const int TGT_SIGTRAP
Definition: linux.hh:292
static const int TGT_SIGIO
Definition: linux.hh:317
static constexpr int TGT_O_WRONLY
O_WRONLY.
Definition: linux.hh:324
static const int TGT_SIGXCPU
Definition: linux.hh:312
static const int TGT_SIGHUP
Definition: linux.hh:288
static const int TGT_SIGPOLL
Definition: linux.hh:318
static constexpr int TGT_O_PATH
Definition: linux.hh:341
static constexpr int TGT_O_TRUNC
O_TRUNC.
Definition: linux.hh:329
static constexpr int TGT_O_LARGEFILE
Definition: linux.hh:335
static constexpr int TGT_O_NOATIME
Definition: linux.hh:338
static const int TGT_SIGSYS
Definition: linux.hh:320
int32_t clock_t
Definition: linux.hh:350
static const int TGT_SIGURG
Definition: linux.hh:311
static const int TGT_SIGPWR
Definition: linux.hh:319
static constexpr int TGT_O_DSYNC
O_DSYNC.
Definition: linux.hh:332
static const int TGT_SIGTSTP
Definition: linux.hh:308
static const int TGT_SIGSEGV
Definition: linux.hh:299
static const int TGT_SIGBUS
Definition: linux.hh:295
uint32_t size_t
Basic X86 Linux types.
Definition: linux.hh:347
static const int TGT_SIGUSR2
Definition: linux.hh:300
static constexpr unsigned TGT_MAP_GROWSDOWN
Definition: linux.hh:360
static const int TGT_SIGQUIT
Definition: linux.hh:290
static constexpr unsigned TGT_MAP_ANON
Definition: linux.hh:356
static const int TGT_SIGTTIN
Definition: linux.hh:309
static constexpr unsigned TGT_MAP_DENYWRITE
Definition: linux.hh:357
static constexpr unsigned TGT_MAP_NONBLOCK
Definition: linux.hh:363
static constexpr int TGT_O_SYNC
O_SYNC.
Definition: linux.hh:340
static constexpr unsigned TGT_MAP_HUGETLB
Definition: linux.hh:361
static const int TGT_SIGUNUSED
Definition: linux.hh:321
static constexpr unsigned TGT_MAP_LOCKED
Definition: linux.hh:362
static const int TGT_SIGINT
Definition: linux.hh:289
int32_t time_t
Definition: linux.hh:349
static constexpr int TGT_O_NOCTTY
O_NOCTTY.
Definition: linux.hh:328
static constexpr int TGT_O_APPEND
O_APPEND.
Definition: linux.hh:330
static const int TGT_SIGABRT
Definition: linux.hh:293
static const int TGT_SIGALRM
Definition: linux.hh:302
static const int TGT_SIGPROF
Definition: linux.hh:315
static constexpr int TGT_O_NOFOLLOW
Definition: linux.hh:337
static const int TGT_SIGPIPE
Definition: linux.hh:301
static const int TGT_SIGUSR1
Definition: linux.hh:298
static const int TGT_SIGWINCH
Definition: linux.hh:316
static constexpr unsigned TGT_MAP_EXECUTABLE
Definition: linux.hh:358
static const int TGT_SIGCHLD
Definition: linux.hh:305
static constexpr unsigned TGT_MAP_SHARED
Definition: linux.hh:353
static constexpr int TGT_FASYNC
Definition: linux.hh:333
static const int TGT_SIGSTOP
Definition: linux.hh:307
static const int TGT_SIGCONT
Definition: linux.hh:306
static const std::map< int, int > mmapFlagTable
Definition: linux.hh:343
static const int TGT_SIGIOT
Definition: linux.hh:294
static const int TGT_SIGSYS
Definition: linux.hh:175
static constexpr int TGT_O_DSYNC
Definition: linux.hh:187
static constexpr unsigned TGT_MAP_ANONYMOUS
Definition: linux.hh:220
static const int TGT_SIGUNUSED
Definition: linux.hh:176
static constexpr int TGT_O_DIRECTORY
Definition: linux.hh:191
static const int TGT_SIGQUIT
Definition: linux.hh:145
static const int TGT_SIGABRT
Definition: linux.hh:148
uint64_t off_t
Definition: linux.hh:201
static constexpr unsigned TGT_MAP_EXECUTABLE
Definition: linux.hh:211
static const int TGT_SIGTRAP
Definition: linux.hh:147
static constexpr int TGT_O_EXCL
O_EXCL.
Definition: linux.hh:182
static constexpr int TGT_O_RDWR
O_RDWR.
Definition: linux.hh:180
static const int TGT_SIGALRM
Definition: linux.hh:157
static constexpr int TGT_O_NOFOLLOW
Definition: linux.hh:192
static const int TGT_SIGSTKFLT
Definition: linux.hh:159
static const int TGT_SIGUSR2
Definition: linux.hh:155
static const int TGT_SIGILL
Definition: linux.hh:146
static const int TGT_SIGSTOP
Definition: linux.hh:162
static const int TGT_SIGFPE
Definition: linux.hh:151
static constexpr unsigned TGT_MAP_HUGETLB
Definition: linux.hh:214
static constexpr int TGT_O_CLOEXEC
Definition: linux.hh:194
static constexpr int TGT_O_NOATIME
Definition: linux.hh:193
int64_t clock_t
Definition: linux.hh:203
static const int TGT_SIGURG
Definition: linux.hh:166
static const int TGT_SIGSEGV
Definition: linux.hh:154
static const int TGT_SIGUSR1
Definition: linux.hh:153
static const int TGT_SIGTSTP
Definition: linux.hh:163
static const int TGT_SIGPOLL
Definition: linux.hh:173
static const int TGT_SIGPROF
Definition: linux.hh:170
static constexpr int TGT_O_LARGEFILE
Definition: linux.hh:190
static const int TGT_SIGCONT
Definition: linux.hh:161
uint64_t size_t
Basic X86_64 Linux types.
Definition: linux.hh:200
static constexpr int TGT_O_CREAT
O_CREAT.
Definition: linux.hh:181
static constexpr int TGT_O_APPEND
O_APPEND.
Definition: linux.hh:185
static const int TGT_SIGPIPE
Definition: linux.hh:156
static const int TGT_SIGINT
Definition: linux.hh:144
static constexpr int TGT_O_SYNC
O_SYNC.
Definition: linux.hh:195
static constexpr int TGT_O_NONBLOCK
O_NONBLOCK.
Definition: linux.hh:186
static constexpr int TGT_O_RDONLY
O_RDONLY.
Definition: linux.hh:178
int64_t time_t
Definition: linux.hh:202
static const int TGT_SIGHUP
Definition: linux.hh:143
static const int TGT_SIGXFSZ
Definition: linux.hh:168
static constexpr unsigned TGT_MAP_SHARED
Definition: linux.hh:206
static const int TGT_SIGXCPU
Definition: linux.hh:167
static const int TGT_SIGTTOU
Definition: linux.hh:165
static const int TGT_SIGPWR
Definition: linux.hh:174
static constexpr unsigned TGT_MAP_STACK
Definition: linux.hh:219
static const int TGT_SIGVTALRM
Definition: linux.hh:169
static constexpr unsigned TGT_MAP_NONBLOCK
Definition: linux.hh:216
static constexpr unsigned TGT_MAP_FILE
Definition: linux.hh:212
static const int TGT_SIGTERM
Definition: linux.hh:158
static constexpr unsigned TGT_MAP_GROWSDOWN
Definition: linux.hh:213
static constexpr unsigned TGT_MAP_FIXED
Definition: linux.hh:221
static const int TGT_SIGCHLD
Definition: linux.hh:160
static const int TGT_SIGKILL
Definition: linux.hh:152
static constexpr int TGT_O_WRONLY
O_WRONLY.
Definition: linux.hh:179
static const int TGT_SIGWINCH
Definition: linux.hh:171
static constexpr unsigned TGT_MAP_POPULATE
Definition: linux.hh:218
static constexpr unsigned TGT_MAP_LOCKED
Definition: linux.hh:215
static constexpr int TGT_FASYNC
Definition: linux.hh:188
static const int TGT_SIGIO
Definition: linux.hh:172
static constexpr unsigned TGT_MAP_DENYWRITE
Definition: linux.hh:210
static constexpr int TGT_O_PATH
Definition: linux.hh:196
static const int TGT_SIGBUS
Definition: linux.hh:150
static constexpr unsigned TGT_MAP_ANON
Definition: linux.hh:209
static const int TGT_SIGTTIN
Definition: linux.hh:164
static constexpr unsigned TGT_MAP_32BIT
Definition: linux.hh:208
static constexpr unsigned TGT_MAP_NORESERVE
Definition: linux.hh:217
static constexpr int TGT_O_NOCTTY
O_NOCTTY.
Definition: linux.hh:183
static constexpr int TGT_O_TRUNC
O_TRUNC.
Definition: linux.hh:184
static constexpr unsigned TGT_MAP_PRIVATE
Definition: linux.hh:207
static constexpr int TGT_O_DIRECT
O_DIRECTIO.
Definition: linux.hh:189
static const int TGT_SIGIOT
Definition: linux.hh:149
static const ByteOrder byteOrder
Definition: linux.hh:58
static void archClone(uint64_t flags, Process *pp, Process *cp, ThreadContext *ptc, ThreadContext *ctc, uint64_t stack, uint64_t tls)
Definition: linux.hh:61
uint8_t flags
Definition: helpers.cc:66
Bitfield< 7, 0 > ptc
Definition: mt_constants.hh:56
constexpr RegId Rax
Definition: int.hh:132
constexpr RegId Rsp
Definition: int.hh:136
Bitfield< 17, 16 > stack
Definition: misc.hh:592
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
Overload hash function for BasicBlockRange type.
Definition: misc.hh:2826
PM4 packets.
Definition: pm4_defines.hh:78

Generated on Wed Dec 21 2022 10:22:26 for gem5 by doxygen 1.9.1