mirror of
https://github.com/rwinkhart/sys.git
synced 2026-08-28 04:46:44 -04:00
unix: add OpenTree on linux
This syscall is not yet described in linux man pages (https://github.com/mkerrisk/man-pages.git) but it was attempts to do it (https://lwn.net/Articles/829496/) This syscall appeared in linux kernel v5.2 Change-Id: If44aa74c4ddd200831011c6c4bf4bd4fee440785 Reviewed-on: https://go-review.googlesource.com/c/sys/+/397094 Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
committed by
Ian Lance Taylor
parent
e17cdc4130
commit
483a9cbc67
@@ -902,6 +902,9 @@ const (
|
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||
|
||||
AT_EACCESS = C.AT_EACCESS
|
||||
|
||||
OPEN_TREE_CLONE = C.OPEN_TREE_CLONE
|
||||
OPEN_TREE_CLOEXEC = C.OPEN_TREE_CLOEXEC
|
||||
)
|
||||
|
||||
type OpenHow C.struct_open_how
|
||||
|
||||
@@ -1860,6 +1860,7 @@ func Getpgrp() (pid int) {
|
||||
//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
|
||||
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
||||
//sys Nanosleep(time *Timespec, leftover *Timespec) (err error)
|
||||
//sys OpenTree(dfd int, fileName string, flags uint) (r int, err error)
|
||||
//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)
|
||||
//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
|
||||
//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
|
||||
|
||||
@@ -1215,6 +1215,22 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func OpenTree(dfd int, fileName string, flags uint) (r int, err error) {
|
||||
var _p0 *byte
|
||||
_p0, err = BytePtrFromString(fileName)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
|
||||
r = int(r0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
|
||||
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||
fd = int(r0)
|
||||
|
||||
@@ -750,6 +750,9 @@ const (
|
||||
|
||||
AT_RECURSIVE = 0x8000
|
||||
|
||||
OPEN_TREE_CLONE = 0x1
|
||||
OPEN_TREE_CLOEXEC = 0x80000
|
||||
|
||||
AT_SYMLINK_FOLLOW = 0x400
|
||||
AT_SYMLINK_NOFOLLOW = 0x100
|
||||
|
||||
|
||||
Reference in New Issue
Block a user