You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
513 B
33 lines
513 B
//go:build linux
|
|
|
|
package fuse
|
|
|
|
import (
|
|
"syscall"
|
|
"unsafe"
|
|
)
|
|
|
|
// Sendfile support for Linux
|
|
|
|
func sendfileTransfer(outFd int, inFd int, offset *int64, count int) (int, error) {
|
|
var offsetPtr uintptr
|
|
if offset != nil {
|
|
offsetPtr = uintptr(unsafe.Pointer(offset))
|
|
}
|
|
|
|
n, _, errno := syscall.Syscall6(syscall.SYS_SENDFILE,
|
|
uintptr(outFd),
|
|
uintptr(inFd),
|
|
offsetPtr,
|
|
uintptr(count),
|
|
0, 0)
|
|
|
|
if errno != 0 {
|
|
return 0, errno
|
|
}
|
|
return int(n), nil
|
|
}
|
|
|
|
func isSendfileSupported() bool {
|
|
return true
|
|
}
|