// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-//go:build dragonfly || linux || netbsd || (openbsd && mips64)
+//go:build dragonfly || freebsd || linux || netbsd || (openbsd && mips64)
package unix
+++ /dev/null
-// Copyright 2018 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package unix
-
-import (
- "syscall"
- "unsafe"
-)
-
-const (
- AT_REMOVEDIR = 0x800
- AT_SYMLINK_NOFOLLOW = 0x200
-)
-
-func Unlinkat(dirfd int, path string, flags int) error {
- p, err := syscall.BytePtrFromString(path)
- if err != nil {
- return err
- }
-
- _, _, errno := syscall.Syscall(syscall.SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(p)), uintptr(flags))
- if errno != 0 {
- return errno
- }
-
- return nil
-}
-
-func Openat(dirfd int, path string, flags int, perm uint32) (int, error) {
- p, err := syscall.BytePtrFromString(path)
- if err != nil {
- return 0, err
- }
-
- fd, _, errno := syscall.Syscall6(syscall.SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(p)), uintptr(flags), uintptr(perm), 0, 0)
- if errno != 0 {
- return 0, errno
- }
-
- return int(fd), nil
-}
-
-func Fstatat(dirfd int, path string, stat *syscall.Stat_t, flags int) error {
- return syscall.Fstatat(dirfd, path, stat, flags)
-}
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-//go:build linux && loong64
+//go:build freebsd || (linux && loong64)
package unix
-import (
- "syscall"
-)
+import "syscall"
func Fstatat(dirfd int, path string, stat *syscall.Stat_t, flags int) error {
return syscall.Fstatat(dirfd, path, stat, flags)
--- /dev/null
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+import "syscall"
+
+const (
+ AT_REMOVEDIR = 0x800
+ AT_SYMLINK_NOFOLLOW = 0x200
+
+ unlinkatTrap uintptr = syscall.SYS_UNLINKAT
+ openatTrap uintptr = syscall.SYS_OPENAT
+)