mirror of
https://github.com/chrislusf/seaweedfs
synced 2025-09-09 21:02:46 +02:00
33 lines
513 B
Go
33 lines
513 B
Go
//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
|
|
}
|