mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-10-23 14:30:46 +02:00
fuse integration: add POSIX compliance test suite
Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
e645449872
commit
5fa30f6d4e
27 files changed
+5562
No files matched your search
@@ -0,0 +1,43 @@
|
||||
//go:build darwin
|
||||
|
||||
package fuse
|
||||
|
||||
import (
|
||||
"syscall"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
// Sendfile support for macOS
|
||||
|
||||
func sendfileTransfer(outFd int, inFd int, offset *int64, count int) (int, error) {
|
||||
// macOS sendfile has different signature: sendfile(in_fd, out_fd, offset, len, hdtr, flags)
|
||||
var off int64
|
||||
if offset != nil {
|
||||
off = *offset
|
||||
}
|
||||
|
||||
length := int64(count)
|
||||
|
||||
_, _, errno := syscall.Syscall6(syscall.SYS_SENDFILE,
|
||||
uintptr(inFd), // input fd
|
||||
uintptr(outFd), // output fd
|
||||
uintptr(off), // offset
|
||||
uintptr(unsafe.Pointer(&length)), // length (in/out parameter)
|
||||
0, // hdtr (headers/trailers)
|
||||
0) // flags
|
||||
|
||||
if errno != 0 {
|
||||
return 0, errno
|
||||
}
|
||||
|
||||
// Update offset if provided
|
||||
if offset != nil {
|
||||
*offset += length
|
||||
}
|
||||
|
||||
return int(length), nil
|
||||
}
|
||||
|
||||
func isSendfileSupported() bool {
|
||||
return true
|
||||
}
|
||||
Reference in new issue
Block a user