summaryrefslogtreecommitdiff
path: root/src/fs/sendfile.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/sendfile.rs')
-rw-r--r--src/fs/sendfile.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/fs/sendfile.rs b/src/fs/sendfile.rs
new file mode 100644
index 0000000..7f5c848
--- /dev/null
+++ b/src/fs/sendfile.rs
@@ -0,0 +1,19 @@
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+/// `sendfile(out_fd, in_fd, offset, count)`
+///
+/// # References
+/// - [Linux]
+///
+/// [Linux]: https://man7.org/linux/man-pages/man2/sendfile.2.html
+#[cfg(linux_kernel)]
+#[inline]
+pub fn sendfile<OutFd: AsFd, InFd: AsFd>(
+ out_fd: OutFd,
+ in_fd: InFd,
+ offset: Option<&mut u64>,
+ count: usize,
+) -> io::Result<usize> {
+ backend::fs::syscalls::sendfile(out_fd.as_fd(), in_fd.as_fd(), offset, count)
+}