Parcourir la source

add copy_file_range system call wrapper

Árni Dagur il y a 5 ans
Parent
commit
f76e183111
2 fichiers modifiés avec 9 ajouts et 0 suppressions
  1. 1 0
      include/unistd.h
  2. 8 0
      src/linux/copy_file_range.c

+ 1 - 0
include/unistd.h

@@ -188,6 +188,7 @@ char *get_current_dir_name(void);
 int syncfs(int);
 int euidaccess(const char *, int);
 int eaccess(const char *, int);
+ssize_t copy_file_range(int, off_t *, int, off_t *, size_t, unsigned);
 #endif
 
 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)

+ 8 - 0
src/linux/copy_file_range.c

@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+
+ssize_t copy_file_range(int fd_in, off_t *off_in, int fd_out, off_t *off_out, size_t len, unsigned flags)
+{
+	return syscall(SYS_copy_file_range, fd_in, off_in, fd_out, off_out, len, flags);
+}