mirror of
https://github.com/golang/sys.git
synced 2026-02-08 19:56:04 +03:00
This allows to perform a fcntl syscall with the F_PREALLOCATE command. See man fcntl(2) on macOS for details. Change-Id: I21f95b91269513064859425ab7adc42a73d6adb5 Reviewed-on: https://go-review.googlesource.com/c/sys/+/255917 Trust: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
25 lines
806 B
Go
25 lines
806 B
Go
// Copyright 2019 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 "unsafe"
|
|
|
|
// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
|
|
func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
|
|
return fcntl(int(fd), cmd, arg)
|
|
}
|
|
|
|
// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
|
|
func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
|
|
_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
|
|
return err
|
|
}
|
|
|
|
// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command.
|
|
func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error {
|
|
_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore))))
|
|
return err
|
|
}
|