| 13 | type copyRangeImplementationBasicFile func(src, dst basicFile, srcOffset, dstOffset, size int64) error |
| 14 | |
| 15 | func copyRangeImplementationForBasicFile(impl copyRangeImplementationBasicFile) copyRangeImplementation { |
| 16 | return func(src, dst File, srcOffset, dstOffset, size int64) error { |
| 17 | src = unwrap(src) |
| 18 | dst = unwrap(dst) |
| 19 | // Then see if it's basic files |
| 20 | srcFile, srcOk := src.(basicFile) |
| 21 | dstFile, dstOk := dst.(basicFile) |
| 22 | if !srcOk || !dstOk { |
| 23 | return syscall.ENOTSUP |
| 24 | } |
| 25 | return impl(srcFile, dstFile, srcOffset, dstOffset, size) |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | func withFileDescriptors(first, second basicFile, fn func(first, second uintptr) (int, error)) (int, error) { |
| 30 | fc, err := first.SyscallConn() |