diff options
| author | Ian Lance Taylor <iant@golang.org> | 2024-08-28 16:20:44 -0700 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-08-30 19:26:45 +0000 |
| commit | d0baac37e61648c2a9e9299553c863cf7b7eed61 (patch) | |
| tree | a930867938705097c3e0872a2339bda46de086e6 /src/syscall/syscall_linux_arm64.go | |
| parent | c2098929056481d0dc09f5f42b8959f4db8878f2 (diff) | |
| download | go-d0baac37e61648c2a9e9299553c863cf7b7eed61.tar.xz | |
syscall: always use prlimit for getrlimit/setrlimit on Linux
Linux added the prlimit system call in version 2.6.36.
As our minimum Linux kernel version is now 3.2,
simplify the various getrlimit/setlrimit implementations
to just always use prlimit.
For #67001
Change-Id: I2512c21c947d0bc83f8f9077c143163fd8d83be3
Reviewed-on: https://go-review.googlesource.com/c/go/+/609178
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'src/syscall/syscall_linux_arm64.go')
| -rw-r--r-- | src/syscall/syscall_linux_arm64.go | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/src/syscall/syscall_linux_arm64.go b/src/syscall/syscall_linux_arm64.go index b87b51c0c0..fb0ecd77b7 100644 --- a/src/syscall/syscall_linux_arm64.go +++ b/src/syscall/syscall_linux_arm64.go @@ -27,7 +27,6 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) error { //sysnb Getegid() (egid int) //sysnb Geteuid() (euid int) //sysnb Getgid() (gid int) -//sysnb getrlimit(resource int, rlim *Rlimit) (err error) //sysnb Getuid() (uid int) //sys Listen(s int, n int) (err error) //sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 @@ -37,7 +36,6 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) error { //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) //sys Setfsgid(gid int) (err error) //sys Setfsuid(uid int) (err error) -//sysnb setrlimit1(resource int, rlim *Rlimit) (err error) = SYS_SETRLIMIT //sys Shutdown(fd int, how int) (err error) //sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) @@ -140,34 +138,6 @@ func utimes(path string, tv *[2]Timeval) (err error) { return utimensat(_AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) } -// Getrlimit prefers the prlimit64 system call. See issue 38604. -func Getrlimit(resource int, rlim *Rlimit) error { - err := prlimit(0, resource, nil, rlim) - if err != ENOSYS { - return err - } - return getrlimit(resource, rlim) -} - -// setrlimit prefers the prlimit64 system call. See issue 38604. -func setrlimit(resource int, rlim *Rlimit) error { - err := prlimit(0, resource, rlim, nil) - if err != ENOSYS { - return err - } - return setrlimit1(resource, rlim) -} - -//go:nosplit -func rawSetrlimit(resource int, rlim *Rlimit) Errno { - _, _, errno := RawSyscall6(SYS_PRLIMIT64, 0, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0, 0, 0) - if errno != ENOSYS { - return errno - } - _, _, errno = RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) - return errno -} - func (r *PtraceRegs) PC() uint64 { return r.Pc } func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } |
