mirror of
https://github.com/rwinkhart/sys.git
synced 2026-10-29 04:38:18 -04:00
unix: add Linux CopyFileRange syscall
Introduces the CopyFileRange syscall which first appears in Linux 4.5. Allows copying file content between file descriptors within the kernel without transferring data to user space. This syscall also allows the kernel to take advantage of reflinking or other fast copy methods on supported file systems. http://man7.org/linux/man-pages/man2/copy_file_range.2.html Change-Id: Id365f1e5d4d5ddf7159478e3a13084c9576ebd5c Reviewed-on: https://go-review.googlesource.com/39992 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
1 parent
156c5a2da4
commit
f845067cf7
13 files changed
+134
-1
No files matched your search
@@ -312,6 +312,17 @@ func Close(fd int) (err error) {
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
|
||||
r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
|
||||
n = int(r0)
|
||||
if e1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||
|
||||
func Dup(oldfd int) (fd int, err error) {
|
||||
r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0)
|
||||
fd = int(r0)
|
||||
|
||||
Reference in new issue
Block a user