Add syscall getrlimit and setrlimit support
This commit is contained in:
parent
ab14a3e479
commit
d34d54a821
@ -190,7 +190,7 @@ macro_rules! process_syscall_table_with_callback {
|
|||||||
(Lchown = 94) => do_lchown(path: *const i8, uid: u32, gid: u32),
|
(Lchown = 94) => do_lchown(path: *const i8, uid: u32, gid: u32),
|
||||||
(Umask = 95) => do_umask(mask: u16),
|
(Umask = 95) => do_umask(mask: u16),
|
||||||
(Gettimeofday = 96) => do_gettimeofday(tv_u: *mut timeval_t),
|
(Gettimeofday = 96) => do_gettimeofday(tv_u: *mut timeval_t),
|
||||||
(Getrlimit = 97) => handle_unsupported(),
|
(Getrlimit = 97) => do_gettrlimit(resource: u32, rlim: *mut rlimit_t),
|
||||||
(Getrusage = 98) => handle_unsupported(),
|
(Getrusage = 98) => handle_unsupported(),
|
||||||
(SysInfo = 99) => do_sysinfo(info: *mut sysinfo_t),
|
(SysInfo = 99) => do_sysinfo(info: *mut sysinfo_t),
|
||||||
(Times = 100) => handle_unsupported(),
|
(Times = 100) => handle_unsupported(),
|
||||||
@ -253,7 +253,7 @@ macro_rules! process_syscall_table_with_callback {
|
|||||||
(Prctl = 157) => do_prctl(option: i32, arg2: u64, arg3: u64, arg4: u64, arg5: u64),
|
(Prctl = 157) => do_prctl(option: i32, arg2: u64, arg3: u64, arg4: u64, arg5: u64),
|
||||||
(ArchPrctl = 158) => do_arch_prctl(code: u32, addr: *mut usize),
|
(ArchPrctl = 158) => do_arch_prctl(code: u32, addr: *mut usize),
|
||||||
(Adjtimex = 159) => handle_unsupported(),
|
(Adjtimex = 159) => handle_unsupported(),
|
||||||
(Setrlimit = 160) => handle_unsupported(),
|
(Setrlimit = 160) => do_settrlimit(resource: u32, rlim: *const rlimit_t),
|
||||||
(Chroot = 161) => handle_unsupported(),
|
(Chroot = 161) => handle_unsupported(),
|
||||||
(Sync = 162) => do_sync(),
|
(Sync = 162) => do_sync(),
|
||||||
(Acct = 163) => handle_unsupported(),
|
(Acct = 163) => handle_unsupported(),
|
||||||
@ -935,6 +935,14 @@ fn do_uname(name: *mut utsname_t) -> Result<isize> {
|
|||||||
misc::do_uname(name).map(|_| 0)
|
misc::do_uname(name).map(|_| 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn do_gettrlimit(resource: u32, rlim: *mut rlimit_t) -> Result<isize> {
|
||||||
|
do_prlimit(0, resource, ptr::null(), rlim)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn do_settrlimit(resource: u32, rlim: *const rlimit_t) -> Result<isize> {
|
||||||
|
do_prlimit(0, resource, rlim, ptr::null_mut())
|
||||||
|
}
|
||||||
|
|
||||||
fn do_prlimit(
|
fn do_prlimit(
|
||||||
pid: pid_t,
|
pid: pid_t,
|
||||||
resource: u32,
|
resource: u32,
|
||||||
|
Loading…
Reference in New Issue
Block a user