summaryrefslogtreecommitdiffstats
path: root/src/internal/syscall/unix/fallocate_freebsd_64bit.go
blob: a9d52283f06a9b20af28dcf08bf8d0bc48d096ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Copyright 2023 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.

//go:build freebsd && (amd64 || arm64 || riscv64)

package unix

import "syscall"

func PosixFallocate(fd int, off int64, size int64) error {
	// If successful, posix_fallocate() returns zero. It returns an error on failure, without
	// setting errno. See https://man.freebsd.org/cgi/man.cgi?query=posix_fallocate&sektion=2&n=1
	r1, _, _ := syscall.Syscall(posixFallocateTrap, uintptr(fd), uintptr(off), uintptr(size))
	if r1 != 0 {
		return syscall.Errno(r1)
	}
	return nil
}