diff --git a/src/arch/alpha/linux/linux.hh b/src/arch/alpha/linux/linux.hh --- a/src/arch/alpha/linux/linux.hh +++ b/src/arch/alpha/linux/linux.hh @@ -84,13 +84,6 @@ //@} //@{ - /// For getrusage(). - static const int TGT_RUSAGE_SELF = 0; - static const int TGT_RUSAGE_CHILDREN = -1; - static const int TGT_RUSAGE_BOTH = -2; - //@} - - //@{ /// For setsysinfo(). static const unsigned SSI_IEEE_FP_CONTROL = 14; //!< ieee_set_fp_control() //@} @@ -133,21 +126,11 @@ /// For table(). static const int TBL_SYSINFO = 12; - /// Resource enumeration for getrlimit(). - enum rlimit_resources { - TGT_RLIMIT_CPU = 0, - TGT_RLIMIT_FSIZE = 1, - TGT_RLIMIT_DATA = 2, - TGT_RLIMIT_STACK = 3, - TGT_RLIMIT_CORE = 4, - TGT_RLIMIT_RSS = 5, - TGT_RLIMIT_NOFILE = 6, - TGT_RLIMIT_AS = 7, - TGT_RLIMIT_VMEM = 7, - TGT_RLIMIT_NPROC = 8, - TGT_RLIMIT_MEMLOCK = 9, - TGT_RLIMIT_LOCKS = 10 - }; + /// Resource constants for getrlimit() (overide some generics). + static const unsigned TGT_RLIMIT_NPROC = 8; + static const unsigned TGT_RLIMIT_AS = 7; + static const unsigned TGT_RLIMIT_NOFILE = 6; + static const unsigned TGT_RLIMIT_MEMLOCK = 9; typedef struct { int64_t uptime; /* Seconds since boot */ diff --git a/src/arch/arm/linux/linux.hh b/src/arch/arm/linux/linux.hh --- a/src/arch/arm/linux/linux.hh +++ b/src/arch/arm/linux/linux.hh @@ -94,13 +94,6 @@ static const unsigned TGT_MAP_FIXED = 0x10; //@{ - /// For getrusage(). - static const int TGT_RUSAGE_SELF = 0; - static const int TGT_RUSAGE_CHILDREN = -1; - static const int TGT_RUSAGE_BOTH = -2; - //@} - - //@{ /// ioctl() command codes. static const unsigned TIOCGETP_ = 0x5401; static const unsigned TIOCSETP_ = 0x80067409; @@ -138,21 +131,6 @@ /// For table(). static const int TBL_SYSINFO = 12; - /// Resource enumeration for getrlimit(). - enum rlimit_resources { - TGT_RLIMIT_CPU = 0, - TGT_RLIMIT_FSIZE = 1, - TGT_RLIMIT_DATA = 2, - TGT_RLIMIT_STACK = 3, - TGT_RLIMIT_CORE = 4, - TGT_RLIMIT_RSS = 5, - TGT_RLIMIT_NPROC = 6, - TGT_RLIMIT_NOFILE = 7, - TGT_RLIMIT_MEMLOCK = 8, - TGT_RLIMIT_AS = 9, - TGT_RLIMIT_LOCKS = 10 - }; - /// Limit struct for getrlimit/setrlimit. struct rlimit { uint32_t rlim_cur; //!< soft limit diff --git a/src/arch/arm/linux/process.cc b/src/arch/arm/linux/process.cc --- a/src/arch/arm/linux/process.cc +++ b/src/arch/arm/linux/process.cc @@ -151,7 +151,7 @@ /* 73 */ SyscallDesc("sigpending", unimplementedFunc), /* 74 */ SyscallDesc("sethostname", ignoreFunc), /* 75 */ SyscallDesc("setrlimit", ignoreFunc), - /* 76 */ SyscallDesc("getrlimit", unimplementedFunc), + /* 76 */ SyscallDesc("getrlimit", getrlimitFunc), /* 77 */ SyscallDesc("getrusage", getrusageFunc), /* 78 */ SyscallDesc("gettimeofday", gettimeofdayFunc), /* 79 */ SyscallDesc("settimeofday", unimplementedFunc), diff --git a/src/arch/mips/linux/linux.hh b/src/arch/mips/linux/linux.hh --- a/src/arch/mips/linux/linux.hh +++ b/src/arch/mips/linux/linux.hh @@ -79,13 +79,6 @@ //@} //@{ - /// For getrusage(). - static const int TGT_RUSAGE_SELF = 0; - static const int TGT_RUSAGE_CHILDREN = -1; - static const int TGT_RUSAGE_BOTH = -2; - //@} - - //@{ /// For setsysinfo(). static const unsigned SSI_IEEE_FP_CONTROL = 14; //!< ieee_set_fp_control() //@} @@ -128,22 +121,12 @@ /// For table(). static const int TBL_SYSINFO = 12; - /// Resource enumeration for getrlimit()/setrlimit(). - enum rlimit_resources { - TGT_RLIMIT_CPU = 0, - TGT_RLIMIT_FSIZE = 1, - TGT_RLIMIT_DATA = 2, - TGT_RLIMIT_STACK = 3, - TGT_RLIMIT_CORE = 4, - TGT_RLIMIT_NOFILE = 5, - TGT_RLIMIT_AS = 6, - TGT_RLIMIT_RSS = 7, - TGT_RLIMIT_VMEM = 7, - TGT_RLIMIT_NPROC = 8, - TGT_RLIMIT_MEMLOCK = 9, - TGT_RLIMIT_LOCKS = 10, - NUM_RLIMIT_RESOURCES - }; + /// Resource constants for getrlimit() (overide some generics). + static const unsigned TGT_RLIMIT_NPROC = 8; + static const unsigned TGT_RLIMIT_AS = 6; + static const unsigned RLIMIT_RSS = 7; + static const unsigned TGT_RLIMIT_NOFILE = 5; + static const unsigned TGT_RLIMIT_MEMLOCK = 9; /// Offset used to make sure that processes don't /// assign themselves to process IDs reserved for diff --git a/src/arch/sparc/linux/linux.hh b/src/arch/sparc/linux/linux.hh --- a/src/arch/sparc/linux/linux.hh +++ b/src/arch/sparc/linux/linux.hh @@ -138,6 +138,9 @@ uint32_t mem_unit; /* Memory unit size in bytes */ } tgt_sysinfo; + /// Resource constants for getrlimit() (overide some generics). + static const unsigned TGT_RLIMIT_NPROC = 7; + static const unsigned TGT_RLIMIT_NOFILE = 6; }; #endif diff --git a/src/arch/x86/linux/syscalls.cc b/src/arch/x86/linux/syscalls.cc --- a/src/arch/x86/linux/syscalls.cc +++ b/src/arch/x86/linux/syscalls.cc @@ -310,8 +310,8 @@ /* 94 */ SyscallDesc("lchown", unimplementedFunc), /* 95 */ SyscallDesc("umask", unimplementedFunc), /* 96 */ SyscallDesc("gettimeofday", unimplementedFunc), - /* 97 */ SyscallDesc("getrlimit", unimplementedFunc), - /* 98 */ SyscallDesc("getrusage", unimplementedFunc), + /* 97 */ SyscallDesc("getrlimit", getrlimitFunc), + /* 98 */ SyscallDesc("getrusage", getrusageFunc), /* 99 */ SyscallDesc("sysinfo", sysinfoFunc), /* 100 */ SyscallDesc("times", timesFunc), /* 101 */ SyscallDesc("ptrace", unimplementedFunc), @@ -568,8 +568,8 @@ /* 73 */ SyscallDesc("sigpending", unimplementedFunc), /* 74 */ SyscallDesc("sethostname", unimplementedFunc), /* 75 */ SyscallDesc("setrlimit", ignoreFunc), - /* 76 */ SyscallDesc("getrlimit", unimplementedFunc), - /* 77 */ SyscallDesc("getrusage", unimplementedFunc), + /* 76 */ SyscallDesc("getrlimit", getrlimitFunc), + /* 77 */ SyscallDesc("getrusage", getrusageFunc), /* 78 */ SyscallDesc("gettimeofday", unimplementedFunc), /* 79 */ SyscallDesc("settimeofday", unimplementedFunc), /* 80 */ SyscallDesc("getgroups", unimplementedFunc), diff --git a/src/kern/linux/linux.hh b/src/kern/linux/linux.hh --- a/src/kern/linux/linux.hh +++ b/src/kern/linux/linux.hh @@ -148,7 +148,30 @@ }; + /// Resource constants for getrlimit(). + static const unsigned TGT_RLIMIT_CPU = 0; + 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; + /// For getrusage(). + static const int TGT_RUSAGE_SELF = 0; + static const int TGT_RUSAGE_CHILDREN = -1; + static const int TGT_RUSAGE_BOTH = -2; + struct rusage { struct timeval ru_utime; //!< user time used struct timeval ru_stime; //!< system time used