mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-05 08:37:31 -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_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
|
||||||
|
|
||||||
AT_EACCESS = C.AT_EACCESS
|
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
|
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 Mkdirat(dirfd int, path string, mode uint32) (err error)
|
||||||
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
|
||||||
//sys Nanosleep(time *Timespec, leftover *Timespec) (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 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
|
//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
|
//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
|
// 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) {
|
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)
|
r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0)
|
||||||
fd = int(r0)
|
fd = int(r0)
|
||||||
|
|||||||
@@ -750,6 +750,9 @@ const (
|
|||||||
|
|
||||||
AT_RECURSIVE = 0x8000
|
AT_RECURSIVE = 0x8000
|
||||||
|
|
||||||
|
OPEN_TREE_CLONE = 0x1
|
||||||
|
OPEN_TREE_CLOEXEC = 0x80000
|
||||||
|
|
||||||
AT_SYMLINK_FOLLOW = 0x400
|
AT_SYMLINK_FOLLOW = 0x400
|
||||||
AT_SYMLINK_NOFOLLOW = 0x100
|
AT_SYMLINK_NOFOLLOW = 0x100
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user