diff options
| author | Rich Felker <dalias@aerifal.cx> | 2011-02-15 05:42:27 -0500 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2011-02-15 05:42:27 -0500 | 
| commit | f7eb91e7952553dc24a734030a6c78f8dc6ed455 (patch) | |
| tree | 15e212fa4214ba919d02f733c5b266ad1afb71b6 | |
| parent | 13a026bd79f0024d57b7edf8305d625599d10810 (diff) | |
| download | musl-f7eb91e7952553dc24a734030a6c78f8dc6ed455.tar.gz | |
fix getrlimit handling on 32-bit systems, and ease porting to 64-bit
| -rw-r--r-- | arch/i386/syscall.h | 2 | ||||
| -rw-r--r-- | src/misc/getrlimit.c | 6 | 
2 files changed, 5 insertions, 3 deletions
| diff --git a/arch/i386/syscall.h b/arch/i386/syscall.h index fcdae241..8df9b1b9 100644 --- a/arch/i386/syscall.h +++ b/arch/i386/syscall.h @@ -500,6 +500,8 @@ static inline long syscall6(long n, long a1, long a2, long a3, long a4, long a5,  #define __NR_fstatat __NR_fstatat64  #define __NR_pread __NR_pread64  #define __NR_pwrite __NR_pwrite64 +#undef __NR_getrlimit +#define __NR_getrlimit __NR_ugetrlimit  #define __SC_socket      1  #define __SC_bind        2 diff --git a/src/misc/getrlimit.c b/src/misc/getrlimit.c index db25943b..84a659d4 100644 --- a/src/misc/getrlimit.c +++ b/src/misc/getrlimit.c @@ -5,10 +5,10 @@  int getrlimit(int resource, struct rlimit *rlim)  {  	long k_rlim[2]; -	if (syscall2(__NR_ugetrlimit, resource, (long)k_rlim) < 0) +	if (syscall2(__NR_getrlimit, resource, (long)k_rlim) < 0)  		return -1; -	rlim->rlim_cur = k_rlim[0]; -	rlim->rlim_max = k_rlim[1]; +	rlim->rlim_cur = k_rlim[0] == -1 ? -1 : (unsigned long)k_rlim[0]; +	rlim->rlim_max = k_rlim[1] == -1 ? -1 : (unsigned long)k_rlim[1];  	return 0;  } | 
