1 // Copyright 2023 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build freebsd && (amd64 || arm64 || riscv64) 6 7 package unix 8 9 import "syscall" 10 11 func PosixFallocate(fd int, off int64, size int64) error { 12 // If successful, posix_fallocate() returns zero. It returns an error on failure, without 13 // setting errno. See https://man.freebsd.org/cgi/man.cgi?query=posix_fallocate&sektion=2&n=1 14 r1, _, _ := syscall.Syscall(posixFallocateTrap, uintptr(fd), uintptr(off), uintptr(size)) 15 if r1 != 0 { 16 return syscall.Errno(r1) 17 } 18 return nil 19 } 20