2 #include <sys/resource.h>
6 #define FIX(x) do{ if ((x)>=SYSCALL_RLIM_INFINITY) (x)=RLIM_INFINITY; }while(0)
8 int prlimit(pid_t pid
, int resource
, const struct rlimit
*new_limit
, struct rlimit
*old_limit
)
12 if (new_limit
&& SYSCALL_RLIM_INFINITY
!= RLIM_INFINITY
) {
18 r
= syscall(SYS_prlimit64
, pid
, resource
, new_limit
, old_limit
);
19 if (!r
&& old_limit
&& SYSCALL_RLIM_INFINITY
!= RLIM_INFINITY
) {
20 FIX(old_limit
->rlim_cur
);
21 FIX(old_limit
->rlim_max
);