gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
linux.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010, 2011-2012, 2015 ARM Limited
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  * Copyright (c) 2003-2005 The Regents of The University of Michigan
15  * Copyright (c) 2007-2008 The Florida State University
16  * All rights reserved.
17  *
18  * Redistribution and use in source and binary forms, with or without
19  * modification, are permitted provided that the following conditions are
20  * met: redistributions of source code must retain the above copyright
21  * notice, this list of conditions and the following disclaimer;
22  * redistributions in binary form must reproduce the above copyright
23  * notice, this list of conditions and the following disclaimer in the
24  * documentation and/or other materials provided with the distribution;
25  * neither the name of the copyright holders nor the names of its
26  * contributors may be used to endorse or promote products derived from
27  * this software without specific prior written permission.
28  *
29  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
32  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Authors: Ali Saidi
42  * Stephen Hines
43  */
44 
45 #ifndef __ARCH_ARM_LINUX_LINUX_HH__
46 #define __ARCH_ARM_LINUX_LINUX_HH__
47 
48 #include "kern/linux/linux.hh"
49 
50 class ArmLinux32 : public Linux
51 {
52  public:
53 
54  static const int TGT_SIGHUP = 0x000001;
55  static const int TGT_SIGINT = 0x000002;
56  static const int TGT_SIGQUIT = 0x000003;
57  static const int TGT_SIGILL = 0x000004;
58  static const int TGT_SIGTRAP = 0x000005;
59  static const int TGT_SIGABRT = 0x000006;
60  static const int TGT_SIGIOT = 0x000006;
61  static const int TGT_SIGBUS = 0x000007;
62  static const int TGT_SIGFPE = 0x000008;
63  static const int TGT_SIGKILL = 0x000009;
64  static const int TGT_SIGUSR1 = 0x00000a;
65  static const int TGT_SIGSEGV = 0x00000b;
66  static const int TGT_SIGUSR2 = 0x00000c;
67  static const int TGT_SIGPIPE = 0x00000d;
68  static const int TGT_SIGALRM = 0x00000e;
69  static const int TGT_SIGTERM = 0x00000f;
70  static const int TGT_SIGSTKFLT = 0x000010;
71  static const int TGT_SIGCHLD = 0x000011;
72  static const int TGT_SIGCONT = 0x000012;
73  static const int TGT_SIGSTOP = 0x000013;
74  static const int TGT_SIGTSTP = 0x000014;
75  static const int TGT_SIGTTIN = 0x000015;
76  static const int TGT_SIGTTOU = 0x000016;
77  static const int TGT_SIGURG = 0x000017;
78  static const int TGT_SIGXCPU = 0x000018;
79  static const int TGT_SIGXFSZ = 0x000019;
80  static const int TGT_SIGVTALRM = 0x00001a;
81  static const int TGT_SIGPROF = 0x00001b;
82  static const int TGT_SIGWINCH = 0x00001c;
83  static const int TGT_SIGIO = 0x00001d;
84  static const int TGT_SIGPOLL = 0x00001d;
85  static const int TGT_SIGPWR = 0x00001e;
86  static const int TGT_SIGSYS = 0x00001f;
87  static const int TGT_SIGUNUSED = 0x00001f;
88 
92 
94  static const int NUM_OPEN_FLAGS;
95 
97  typedef uint32_t size_t;
99  typedef uint32_t off_t;
100  typedef int32_t time_t;
101  typedef int32_t clock_t;
103 
105  static const int TGT_O_RDONLY = 000000000;
107  static const int TGT_O_WRONLY = 000000001;
108  static const int TGT_O_RDWR = 000000002;
109  static const int TGT_O_CREAT = 000000100;
110  static const int TGT_O_EXCL = 000000200;
111  static const int TGT_O_NOCTTY = 000000400;
112  static const int TGT_O_TRUNC = 000001000;
113  static const int TGT_O_APPEND = 000002000;
114  static const int TGT_O_NONBLOCK = 000004000;
115  static const int TGT_O_DSYNC = 000010000;
116  static const int TGT_FASYNC = 000020000;
117  static const int TGT_O_DIRECT = 000200000;
118  static const int TGT_O_LARGEFILE = 000400000;
119  static const int TGT_O_DIRECTORY = 000040000;
120  static const int TGT_O_NOFOLLOW = 000100000;
121  static const int TGT_O_NOATIME = 001000000;
122  static const int TGT_O_CLOEXEC = 002000000;
123  static const int TGT_O_SYNC = 004010000;
124  static const int TGT_O_PATH = 010000000;
125 
126 
127  static const unsigned TGT_MAP_SHARED = 0x00001;
128  static const unsigned TGT_MAP_PRIVATE = 0x00002;
129  static const unsigned TGT_MAP_ANON = 0x00020;
130  static const unsigned TGT_MAP_DENYWRITE = 0x00800;
131  static const unsigned TGT_MAP_EXECUTABLE = 0x01000;
132  static const unsigned TGT_MAP_FILE = 0x00000;
133  static const unsigned TGT_MAP_GROWSDOWN = 0x00100;
134  static const unsigned TGT_MAP_HUGETLB = 0x40000;
135  static const unsigned TGT_MAP_LOCKED = 0x02000;
136  static const unsigned TGT_MAP_NONBLOCK = 0x10000;
137  static const unsigned TGT_MAP_NORESERVE = 0x04000;
138  static const unsigned TGT_MAP_POPULATE = 0x08000;
139  static const unsigned TGT_MAP_STACK = 0x20000;
140  static const unsigned TGT_MAP_ANONYMOUS = 0x00020;
141  static const unsigned TGT_MAP_FIXED = 0x00010;
142 
143  static const unsigned NUM_MMAP_FLAGS;
144 
146  static const int TBL_SYSINFO = 12;
147 
149  struct rlimit {
150  uint32_t rlim_cur;
151  uint32_t rlim_max;
152  };
153 
155  struct timeval {
156  int32_t tv_sec;
157  int32_t tv_usec;
158  };
159 
160  struct timespec {
161  int32_t tv_sec;
162  int32_t tv_nsec;
163  };
164 
165  // For writev/readv
166  struct tgt_iovec {
167  uint32_t iov_base; // void *
168  uint32_t iov_len;
169  };
170 
171 
172  typedef struct {
173  uint32_t st_dev;
174  uint32_t st_ino;
175  uint16_t st_mode;
176  uint16_t st_nlink;
177  uint16_t st_uid;
178  uint16_t st_gid;
179  uint32_t st_rdev;
180  uint32_t __pad1;
181  uint32_t st_size;
182  uint32_t st_blksize;
183  uint32_t __pad2;
184  uint32_t st_blocks;
185  uint32_t st_atimeX;
186  uint32_t st_atime_nsec;
187  uint32_t st_mtimeX;
188  uint32_t st_mtime_nsec;
189  uint32_t st_ctimeX;
190  uint32_t st_ctime_nsec;
191  } tgt_stat;
192 
193  typedef struct {
194  uint64_t st_dev;
195  uint8_t __pad0[4];
196  uint32_t __st_ino;
197  uint32_t st_mode;
198  uint32_t st_nlink;
199  uint32_t st_uid;
200  uint32_t st_gid;
201  uint64_t st_rdev;
202  uint8_t __pad3[4];
203  int64_t __attribute__ ((aligned (8))) st_size;
204  uint32_t st_blksize;
205  uint64_t __attribute__ ((aligned (8))) st_blocks;
206  uint32_t st_atimeX;
207  uint32_t st_atime_nsec;
208  uint32_t st_mtimeX;
209  uint32_t st_mtime_nsec;
210  uint32_t st_ctimeX;
211  uint32_t st_ctime_nsec;
212  uint64_t st_ino;
213  } tgt_stat64;
214 
215  typedef struct {
216  int32_t uptime; /* Seconds since boot */
217  uint32_t loads[3]; /* 1, 5, and 15 minute load averages */
218  uint32_t totalram; /* Total usable main memory size */
219  uint32_t freeram; /* Available memory size */
220  uint32_t sharedram; /* Amount of shared memory */
221  uint32_t bufferram; /* Memory used by buffers */
222  uint32_t totalswap; /* Total swap space size */
223  uint32_t freeswap; /* swap space still available */
224  uint16_t procs; /* Number of current processes */
225  uint32_t totalhigh; /* Total high memory size */
226  uint32_t freehigh; /* Available high memory size */
227  uint32_t mem_unit; /* Memory unit size in bytes */
228  } tgt_sysinfo;
229 
231  struct rusage {
232  struct timeval ru_utime;
233  struct timeval ru_stime;
234  int32_t ru_maxrss;
235  int32_t ru_ixrss;
236  int32_t ru_idrss;
237  int32_t ru_isrss;
238  int32_t ru_minflt;
239  int32_t ru_majflt;
240  int32_t ru_nswap;
241  int32_t ru_inblock;
242  int32_t ru_oublock;
243  int32_t ru_msgsnd;
244  int32_t ru_msgrcv;
245  int32_t ru_nsignals;
246  int32_t ru_nvcsw;
247  int32_t ru_nivcsw;
248  };
249 
251  struct tms {
252  int32_t tms_utime;
253  int32_t tms_stime;
254  int32_t tms_cutime;
255  int32_t tms_cstime;
256  };
257 };
258 
259 class ArmLinux64 : public Linux
260 {
261  public:
262 
263  static const int TGT_SIGHUP = 0x000001;
264  static const int TGT_SIGINT = 0x000002;
265  static const int TGT_SIGQUIT = 0x000003;
266  static const int TGT_SIGILL = 0x000004;
267  static const int TGT_SIGTRAP = 0x000005;
268  static const int TGT_SIGABRT = 0x000006;
269  static const int TGT_SIGIOT = 0x000006;
270  static const int TGT_SIGBUS = 0x000007;
271  static const int TGT_SIGFPE = 0x000008;
272  static const int TGT_SIGKILL = 0x000009;
273  static const int TGT_SIGUSR1 = 0x00000a;
274  static const int TGT_SIGSEGV = 0x00000b;
275  static const int TGT_SIGUSR2 = 0x00000c;
276  static const int TGT_SIGPIPE = 0x00000d;
277  static const int TGT_SIGALRM = 0x00000e;
278  static const int TGT_SIGTERM = 0x00000f;
279  static const int TGT_SIGSTKFLT = 0x000010;
280  static const int TGT_SIGCHLD = 0x000011;
281  static const int TGT_SIGCONT = 0x000012;
282  static const int TGT_SIGSTOP = 0x000013;
283  static const int TGT_SIGTSTP = 0x000014;
284  static const int TGT_SIGTTIN = 0x000015;
285  static const int TGT_SIGTTOU = 0x000016;
286  static const int TGT_SIGURG = 0x000017;
287  static const int TGT_SIGXCPU = 0x000018;
288  static const int TGT_SIGXFSZ = 0x000019;
289  static const int TGT_SIGVTALRM = 0x00001a;
290  static const int TGT_SIGPROF = 0x00001b;
291  static const int TGT_SIGWINCH = 0x00001c;
292  static const int TGT_SIGIO = 0x00001d;
293  static const int TGT_SIGPOLL = 0x00001d;
294  static const int TGT_SIGPWR = 0x00001e;
295  static const int TGT_SIGSYS = 0x00001f;
296  static const int TGT_SIGUNUSED = 0x00001f;
297 
301 
303  static const int NUM_OPEN_FLAGS;
304 
306  typedef uint64_t size_t;
308  typedef uint64_t off_t;
309  typedef int64_t time_t;
310  typedef int64_t clock_t;
312 
314  static const int TGT_O_RDONLY = 000000000;
316  static const int TGT_O_WRONLY = 000000001;
317  static const int TGT_O_RDWR = 000000002;
318  static const int TGT_O_CREAT = 000000100;
319  static const int TGT_O_EXCL = 000000200;
320  static const int TGT_O_NOCTTY = 000000400;
321  static const int TGT_O_TRUNC = 000001000;
322  static const int TGT_O_APPEND = 000002000;
323  static const int TGT_O_NONBLOCK = 000004000;
324  static const int TGT_O_DSYNC = 000010000;
325  static const int TGT_FASYNC = 000020000;
326  static const int TGT_O_DIRECT = 000200000;
327  static const int TGT_O_LARGEFILE = 000400000;
328  static const int TGT_O_DIRECTORY = 000040000;
329  static const int TGT_O_NOFOLLOW = 000100000;
330  static const int TGT_O_NOATIME = 001000000;
331  static const int TGT_O_CLOEXEC = 002000000;
332  static const int TGT_O_SYNC = 004010000;
333  static const int TGT_O_PATH = 010000000;
334 
335 
337  static SyscallFlagTransTable mmapFlagTable[];
338 
339  static const unsigned TGT_MAP_SHARED = 0x00001;
340  static const unsigned TGT_MAP_PRIVATE = 0x00002;
341  static const unsigned TGT_MAP_ANON = 0x00020;
342  static const unsigned TGT_MAP_DENYWRITE = 0x00800;
343  static const unsigned TGT_MAP_EXECUTABLE = 0x01000;
344  static const unsigned TGT_MAP_FILE = 0x00000;
345  static const unsigned TGT_MAP_GROWSDOWN = 0x00100;
346  static const unsigned TGT_MAP_HUGETLB = 0x40000;
347  static const unsigned TGT_MAP_LOCKED = 0x02000;
348  static const unsigned TGT_MAP_NONBLOCK = 0x10000;
349  static const unsigned TGT_MAP_NORESERVE = 0x04000;
350  static const unsigned TGT_MAP_POPULATE = 0x08000;
351  static const unsigned TGT_MAP_STACK = 0x20000;
352  static const unsigned TGT_MAP_ANONYMOUS = 0x00020;
353  static const unsigned TGT_MAP_FIXED = 0x00010;
354 
355  static const unsigned NUM_MMAP_FLAGS;
356 
358  static const int TGT_RUSAGE_SELF = 0;
360  static const int TGT_RUSAGE_CHILDREN = -1;
361  static const int TGT_RUSAGE_BOTH = -2;
363 
365  static const unsigned TIOCGETP_ = 0x5401;
367  static const unsigned TIOCSETP_ = 0x80067409;
368  static const unsigned TIOCSETN_ = 0x8006740a;
369  static const unsigned TIOCSETC_ = 0x80067411;
370  static const unsigned TIOCGETC_ = 0x40067412;
371  static const unsigned FIONREAD_ = 0x4004667f;
372  static const unsigned TIOCISATTY_ = 0x2000745e;
373  static const unsigned TIOCGETS_ = 0x402c7413;
374  static const unsigned TIOCGETA_ = 0x5405;
375  static const unsigned TCSETAW_ = 0x5407; // 2.6.15 kernel
377 
379  static const int TBL_SYSINFO = 12;
380 
394  };
395 
397  struct rlimit {
398  uint64_t rlim_cur;
399  uint64_t rlim_max;
400  };
401 
403  struct timeval {
404  int64_t tv_sec;
405  int64_t tv_usec;
406  };
407 
408  struct timespec {
409  int64_t tv_sec;
410  int64_t tv_nsec;
411  };
412 
413  // For writev/readv
414  struct tgt_iovec {
415  uint64_t iov_base; // void *
416  uint64_t iov_len;
417  };
418 
419  typedef struct {
420  uint64_t st_dev;
421  uint64_t st_ino;
422  uint64_t st_nlink;
423  uint32_t st_mode;
424  uint32_t st_uid;
425  uint32_t st_gid;
426  uint32_t __pad0;
427  uint64_t st_rdev;
428  uint64_t st_size;
429  uint64_t st_blksize;
430  uint64_t st_blocks;
431  uint64_t st_atimeX;
432  uint64_t st_atime_nsec;
433  uint64_t st_mtimeX;
434  uint64_t st_mtime_nsec;
435  uint64_t st_ctimeX;
436  uint64_t st_ctime_nsec;
437  } tgt_stat;
438 
439  typedef struct {
440  uint64_t st_dev;
441  uint64_t st_ino;
442  uint32_t st_mode;
443  uint32_t st_nlink;
444  uint32_t st_uid;
445  uint32_t st_gid;
446  uint32_t __pad0;
447  uint64_t st_rdev;
448  uint64_t st_size;
449  uint64_t st_blksize;
450  uint64_t st_blocks;
451  uint64_t st_atimeX;
452  uint64_t st_atime_nsec;
453  uint64_t st_mtimeX;
454  uint64_t st_mtime_nsec;
455  uint64_t st_ctimeX;
456  uint64_t st_ctime_nsec;
457  } tgt_stat64;
458 
459  typedef struct {
460  int64_t uptime; /* Seconds since boot */
461  uint64_t loads[3]; /* 1, 5, and 15 minute load averages */
462  uint64_t totalram; /* Total usable main memory size */
463  uint64_t freeram; /* Available memory size */
464  uint64_t sharedram; /* Amount of shared memory */
465  uint64_t bufferram; /* Memory used by buffers */
466  uint64_t totalswap; /* Total swap space size */
467  uint64_t freeswap; /* swap space still available */
468  uint16_t procs; /* Number of current processes */
469  uint16_t pad;
470  uint64_t totalhigh; /* Total high memory size */
471  uint64_t freehigh; /* Available high memory size */
472  uint32_t mem_unit; /* Memory unit size in bytes */
473  } tgt_sysinfo;
474 
476  struct rusage {
477  struct timeval ru_utime;
478  struct timeval ru_stime;
479  int64_t ru_maxrss;
480  int64_t ru_ixrss;
481  int64_t ru_idrss;
482  int64_t ru_isrss;
483  int64_t ru_minflt;
484  int64_t ru_majflt;
485  int64_t ru_nswap;
486  int64_t ru_inblock;
487  int64_t ru_oublock;
488  int64_t ru_msgsnd;
489  int64_t ru_msgrcv;
490  int64_t ru_nsignals;
491  int64_t ru_nvcsw;
492  int64_t ru_nivcsw;
493  };
494 
496  struct tms {
497  int64_t tms_utime;
498  int64_t tms_stime;
499  int64_t tms_cutime;
500  int64_t tms_cstime;
501  };
502 };
503 
504 #endif
static const int TGT_SIGWINCH
Definition: linux.hh:82
static const int TGT_SIGUSR2
Definition: linux.hh:66
int32_t tv_sec
seconds
Definition: linux.hh:161
uint32_t off_t
Definition: linux.hh:99
uint32_t __pad0
Definition: linux.hh:426
int32_t ru_msgrcv
messages received
Definition: linux.hh:244
static const unsigned TGT_MAP_HUGETLB
Definition: linux.hh:134
For gettimeofday().
Definition: linux.hh:403
Limit struct for getrlimit/setrlimit.
Definition: linux.hh:397
static const int TGT_SIGCONT
Definition: linux.hh:72
uint64_t rlim_max
hard limit
Definition: linux.hh:399
int64_t ru_idrss
integral unshared data "
Definition: linux.hh:481
static const int TGT_SIGSEGV
Definition: linux.hh:65
static const unsigned TGT_RLIMIT_FSIZE
Definition: linux.hh:185
static const int TGT_O_NOFOLLOW
O_NOFOLLOW.
Definition: linux.hh:120
uint32_t iov_len
Definition: linux.hh:168
static const int TGT_FASYNC
FASYNC.
Definition: linux.hh:116
int32_t ru_ixrss
integral shared memory size
Definition: linux.hh:235
uint32_t size_t
Basic ARM Linux types.
Definition: linux.hh:98
int32_t tms_cstime
system time of children
Definition: linux.hh:255
int64_t ru_maxrss
max rss
Definition: linux.hh:479
uint16_t st_nlink
Definition: linux.hh:176
int64_t tv_nsec
nanoseconds
Definition: linux.hh:410
int32_t ru_nswap
swaps
Definition: linux.hh:240
uint64_t iov_len
Definition: linux.hh:416
int64_t ru_nsignals
signals received
Definition: linux.hh:490
int64_t ru_nswap
swaps
Definition: linux.hh:485
int32_t ru_idrss
integral unshared data "
Definition: linux.hh:236
int32_t tv_nsec
nanoseconds
Definition: linux.hh:162
int32_t ru_nvcsw
voluntary context switches
Definition: linux.hh:246
static const int TGT_SIGSTKFLT
Definition: linux.hh:70
static const unsigned TGT_MAP_NONBLOCK
Definition: linux.hh:136
static const unsigned NUM_MMAP_FLAGS
Definition: linux.hh:355
uint64_t st_atimeX
Definition: linux.hh:431
uint32_t st_blksize
Definition: linux.hh:182
int32_t ru_minflt
page reclaims - total vmfaults
Definition: linux.hh:238
const char * __attribute__((weak)) m5MainCommands[]
static const unsigned TGT_RLIMIT_DATA
Definition: linux.hh:186
static const int TGT_O_WRONLY
O_WRONLY.
Definition: linux.hh:107
uint32_t st_gid
Definition: linux.hh:425
uint64_t st_mtime_nsec
Definition: linux.hh:434
For getrusage().
Definition: linux.hh:476
int64_t ru_msgrcv
messages received
Definition: linux.hh:489
uint64_t off_t
Definition: linux.hh:308
uint32_t st_ctimeX
Definition: linux.hh:189
uint32_t st_mtime_nsec
Definition: linux.hh:188
uint64_t st_atime_nsec
Definition: linux.hh:452
uint16_t st_uid
Definition: linux.hh:177
static const unsigned TGT_RLIMIT_RSS
Definition: linux.hh:189
static const int TGT_O_PATH
O_PATH.
Definition: linux.hh:124
static const unsigned TGT_MAP_ANONYMOUS
Definition: linux.hh:140
uint64_t st_mtime_nsec
Definition: linux.hh:454
int64_t tms_cstime
system time of children
Definition: linux.hh:500
For times().
Definition: linux.hh:251
int32_t ru_nsignals
signals received
Definition: linux.hh:245
static const int TGT_O_CREAT
O_CREAT.
Definition: linux.hh:109
int32_t ru_oublock
block output operations
Definition: linux.hh:242
struct timeval ru_stime
system time used
Definition: linux.hh:233
int64_t time_t
Definition: linux.hh:309
For gettimeofday().
Definition: linux.hh:155
static const unsigned TGT_MAP_EXECUTABLE
Definition: linux.hh:131
static const int NUM_OPEN_FLAGS
Number of entries in openFlagTable[].
Definition: linux.hh:303
int64_t clock_t
Definition: linux.hh:310
uint64_t st_ctime_nsec
Definition: linux.hh:456
static const int TGT_O_RDONLY
open(2) flag values.
Definition: linux.hh:106
uint64_t st_blocks
Definition: linux.hh:430
static const unsigned NUM_MMAP_FLAGS
Definition: linux.hh:143
int32_t clock_t
Definition: linux.hh:101
int32_t ru_majflt
page faults
Definition: linux.hh:239
For getrusage().
Definition: linux.hh:231
int64_t ru_ixrss
integral shared memory size
Definition: linux.hh:480
uint16_t st_gid
Definition: linux.hh:178
static const int TGT_SIGTTOU
Definition: linux.hh:76
uint32_t iov_base
Definition: linux.hh:167
static const unsigned TGT_RLIMIT_MEMLOCK
Definition: linux.hh:192
int64_t ru_isrss
integral unshared stack "
Definition: linux.hh:482
uint32_t st_blocks
Definition: linux.hh:184
uint32_t rlim_cur
soft limit
Definition: linux.hh:150
uint32_t rlim_max
hard limit
Definition: linux.hh:151
static const unsigned TGT_MAP_GROWSDOWN
Definition: linux.hh:133
static const unsigned TGT_RLIMIT_AS
Definition: linux.hh:193
static const unsigned TGT_MAP_FIXED
Definition: linux.hh:141
static const int TGT_O_APPEND
O_APPEND.
Definition: linux.hh:113
int64_t tms_utime
user time
Definition: linux.hh:497
uint64_t st_blksize
Definition: linux.hh:429
int64_t tv_sec
seconds
Definition: linux.hh:404
uint64_t st_mtimeX
Definition: linux.hh:453
static const int TGT_O_EXCL
O_EXCL.
Definition: linux.hh:110
uint64_t st_nlink
Definition: linux.hh:422
static const unsigned TGT_MAP_FILE
Definition: linux.hh:132
static const int TGT_SIGXCPU
Definition: linux.hh:78
static const int TGT_O_CLOEXEC
O_NOATIME.
Definition: linux.hh:122
uint64_t st_ctimeX
Definition: linux.hh:455
static const int TGT_SIGIO
Definition: linux.hh:83
static const int TGT_SIGPROF
Definition: linux.hh:81
static const int TGT_SIGSYS
Definition: linux.hh:86
static const int TGT_SIGBUS
Definition: linux.hh:61
static const int TGT_RUSAGE_SELF
For getrusage().
Definition: linux.hh:203
This class encapsulates the types, structures, constants, functions, and syscall-number mappings spec...
Definition: linux.hh:48
struct timeval ru_utime
user time used
Definition: linux.hh:232
static const int TGT_SIGPOLL
Definition: linux.hh:84
static const unsigned TGT_RLIMIT_NOFILE
Definition: linux.hh:191
int64_t ru_oublock
block output operations
Definition: linux.hh:487
static const int TGT_SIGALRM
Definition: linux.hh:68
int32_t ru_inblock
block input operations
Definition: linux.hh:241
int64_t ru_nivcsw
involuntary "
Definition: linux.hh:492
uint64_t st_blocks
Definition: linux.hh:450
uint32_t st_mode
Definition: linux.hh:423
static const int TGT_SIGTSTP
Definition: linux.hh:74
static const int TGT_O_SYNC
O_SYNC.
Definition: linux.hh:123
int32_t tv_usec
microseconds
Definition: linux.hh:157
int32_t ru_nivcsw
involuntary "
Definition: linux.hh:247
Limit struct for getrlimit/setrlimit.
Definition: linux.hh:149
int32_t time_t
Definition: linux.hh:100
uint64_t st_atimeX
Definition: linux.hh:451
void tgt_stat
Stat buffer.
uint64_t st_rdev
Definition: linux.hh:427
static const unsigned TGT_MAP_LOCKED
Definition: linux.hh:135
uint32_t st_rdev
Definition: linux.hh:179
int64_t tv_usec
microseconds
Definition: linux.hh:405
static const unsigned TGT_RLIMIT_CORE
Definition: linux.hh:188
static const int TGT_SIGPWR
Definition: linux.hh:85
static const unsigned TGT_MAP_ANON
Definition: linux.hh:129
uint64_t iov_base
Definition: linux.hh:415
static const unsigned TGT_MAP_POPULATE
Definition: linux.hh:138
static const unsigned TGT_RLIMIT_NPROC
Definition: linux.hh:190
int64_t ru_nvcsw
voluntary context switches
Definition: linux.hh:491
static const int TGT_SIGIOT
Definition: linux.hh:60
static const int TGT_O_RDWR
O_RDWR.
Definition: linux.hh:108
uint64_t st_size
Definition: linux.hh:428
uint64_t st_blksize
Definition: linux.hh:449
rlimit_resources
Resource enumeration for getrlimit().
Definition: linux.hh:382
static const int TGT_O_NOCTTY
O_NOCTTY.
Definition: linux.hh:111
int64_t tms_cutime
user time of children
Definition: linux.hh:499
static const unsigned TGT_RLIMIT_CPU
Resource constants for getrlimit().
Definition: linux.hh:184
static const unsigned TGT_RLIMIT_STACK
Definition: linux.hh:187
int64_t ru_msgsnd
messages sent
Definition: linux.hh:488
uint32_t st_size
Definition: linux.hh:181
static const int TGT_SIGTTIN
Definition: linux.hh:75
uint32_t st_ino
Definition: linux.hh:174
static const int TGT_SIGQUIT
Definition: linux.hh:56
static const unsigned TGT_MAP_DENYWRITE
Definition: linux.hh:130
static const int TGT_SIGABRT
Definition: linux.hh:59
uint64_t st_ctimeX
Definition: linux.hh:435
uint32_t st_dev
Definition: linux.hh:173
int64_t ru_majflt
page faults
Definition: linux.hh:484
static const int TGT_O_DIRECT
O_DIRECT.
Definition: linux.hh:117
static const int TGT_SIGUNUSED
Definition: linux.hh:87
This struct is used to build target-OS-dependent tables that map the target's flags to the host's fla...
static const int TGT_SIGILL
Definition: linux.hh:57
static SyscallFlagTransTable openFlagTable[]
This table maps the target open() flags to the corresponding host open() flags.
Definition: linux.hh:91
static const int TGT_SIGURG
Definition: linux.hh:77
static const int TGT_O_NOATIME
O_NOATIME.
Definition: linux.hh:121
static const int TGT_SIGKILL
Definition: linux.hh:63
static const int TGT_SIGTRAP
Definition: linux.hh:58
uint64_t rlim_cur
soft limit
Definition: linux.hh:398
static const int TGT_SIGSTOP
Definition: linux.hh:73
static const int TGT_SIGINT
Definition: linux.hh:55
int64_t ru_inblock
block input operations
Definition: linux.hh:486
static const int TGT_O_NONBLOCK
O_NONBLOCK.
Definition: linux.hh:114
static const int TGT_O_DSYNC
O_DSYNC.
Definition: linux.hh:115
int64_t tms_stime
system time
Definition: linux.hh:498
static const int TGT_SIGHUP
Definition: linux.hh:54
uint32_t st_atime_nsec
Definition: linux.hh:186
static const unsigned TGT_MAP_STACK
Definition: linux.hh:139
uint64_t st_dev
Definition: linux.hh:420
static const unsigned TGT_MAP_PRIVATE
Definition: linux.hh:128
static const unsigned TGT_MAP_SHARED
Definition: linux.hh:127
int32_t ru_isrss
integral unshared stack "
Definition: linux.hh:237
static const int TGT_O_TRUNC
O_TRUNC.
Definition: linux.hh:112
int32_t ru_maxrss
max rss
Definition: linux.hh:234
int32_t tms_stime
system time
Definition: linux.hh:253
static const int TGT_SIGCHLD
Definition: linux.hh:71
static const int TGT_RUSAGE_BOTH
Definition: linux.hh:205
static const int TGT_SIGFPE
Definition: linux.hh:62
int32_t tms_utime
user time
Definition: linux.hh:252
int64_t tv_sec
seconds
Definition: linux.hh:409
uint32_t __pad1
Definition: linux.hh:180
static const unsigned TGT_RLIMIT_LOCKS
Definition: linux.hh:194
uint16_t st_mode
Definition: linux.hh:175
uint32_t st_atimeX
Definition: linux.hh:185
int32_t ru_msgsnd
messages sent
Definition: linux.hh:243
static const int TGT_RUSAGE_CHILDREN
Definition: linux.hh:204
int32_t tms_cutime
user time of children
Definition: linux.hh:254
uint32_t st_mtimeX
Definition: linux.hh:187
uint32_t __pad2
Definition: linux.hh:183
static const unsigned TGT_MAP_NORESERVE
Definition: linux.hh:137
static const int TBL_SYSINFO
For table().
Definition: linux.hh:146
uint64_t st_mtimeX
Definition: linux.hh:433
uint32_t st_uid
Definition: linux.hh:424
static const int TGT_O_LARGEFILE
O_LARGEFILE.
Definition: linux.hh:118
static const int TGT_SIGPIPE
Definition: linux.hh:67
static const int NUM_OPEN_FLAGS
Number of entries in openFlagTable[].
Definition: linux.hh:94
static const int TGT_SIGUSR1
Definition: linux.hh:64
static const int TGT_SIGVTALRM
Definition: linux.hh:80
uint64_t st_ctime_nsec
Definition: linux.hh:436
static const int TGT_SIGXFSZ
Definition: linux.hh:79
static const int TGT_O_DIRECTORY
O_DIRECTORY.
Definition: linux.hh:119
For times().
Definition: linux.hh:496
uint64_t st_atime_nsec
Definition: linux.hh:432
int32_t tv_sec
seconds
Definition: linux.hh:156
uint32_t st_ctime_nsec
Definition: linux.hh:190
int64_t ru_minflt
page reclaims - total vmfaults
Definition: linux.hh:483
static const int TGT_SIGTERM
Definition: linux.hh:69
uint64_t st_ino
Definition: linux.hh:421

Generated on Fri Jun 9 2017 13:03:35 for gem5 by doxygen 1.8.6