Commit 21992cb6 authored by Helge Deller's avatar Helge Deller Committed by Laurent Vivier
Browse files

linux-user: Add FICLONE and FICLONERANGE ioctls



Add missing FICLONE and FICLONERANGE ioctls.

Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Reviewed-by: default avatarLaurent Vivier <laurent@vivier.eu>
Message-Id: <20170211222602.GA6399@ls3530.fritz.box>
Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>
parent 1e06262d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -112,6 +112,11 @@
#ifdef FIBMAP
     IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
#endif
#ifdef FICLONE
     IOCTL(FICLONE, IOC_W, TYPE_INT)
     IOCTL(FICLONERANGE, IOC_W, MK_PTR(MK_STRUCT(STRUCT_file_clone_range)))
#endif

#ifdef FIGETBSZ
     IOCTL(FIGETBSZ, IOC_R, MK_PTR(TYPE_LONG))
#endif
+4 −0
Original line number Diff line number Diff line
@@ -1086,6 +1086,10 @@ struct target_pollfd {

#define TARGET_FIBMAP     TARGET_IO(0x00,1)  /* bmap access */
#define TARGET_FIGETBSZ   TARGET_IO(0x00,2)  /* get the block size used for bmap */

#define TARGET_FICLONE    TARGET_IOW(0x94, 9, int)
#define TARGET_FICLONERANGE TARGET_IOW(0x94, 13, struct file_clone_range)

/* Note that the ioctl numbers claim type "long" but the actual type
 * used by the kernel is "int".
 */
+6 −0
Original line number Diff line number Diff line
@@ -232,6 +232,12 @@ STRUCT(dm_target_versions,
STRUCT(dm_target_msg,
       TYPE_ULONGLONG) /* sector */

STRUCT(file_clone_range,
       TYPE_LONGLONG, /* src_fd */
       TYPE_ULONGLONG, /* src_offset */
       TYPE_ULONGLONG, /* src_length */
       TYPE_ULONGLONG) /* dest_offset */

STRUCT(fiemap_extent,
       TYPE_ULONGLONG, /* fe_logical */
       TYPE_ULONGLONG, /* fe_physical */