From: Aleksandar Markovic <amarko...@wavecomp.com> FITRIM ioctl accepts a pointer to the structure
struct fstrim_range { __u64 start; __u64 len; __u64 minlen; }; as its third argument. All ioctls in this group (FI* ioctl) are guarded with "#ifdef", so the guards are used in this implementation too for consistency (however, many of ioctls in FI* group became old enough that their #ifdef guards could be removed, bit this is out of the scope of this patch). Signed-off-by: Aleksandar Markovic <amarko...@wavecomp.com> --- linux-user/ioctls.h | 3 +++ linux-user/syscall_defs.h | 1 + linux-user/syscall_types.h | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index e1b89a7..e4f0a04 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -123,6 +123,9 @@ #ifdef FIBMAP IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG)) #endif +#ifdef FITRIM + IOCTL(FITRIM, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_fstrim_range))) +#endif #ifdef FICLONE IOCTL(FICLONE, IOC_W, TYPE_INT) IOCTL(FICLONERANGE, IOC_W, MK_PTR(MK_STRUCT(STRUCT_file_clone_range))) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index e1663b6..97ab3e1 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -908,6 +908,7 @@ 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_FITRIM TARGET_IOWR('X', 121, struct fstrim_range) #define TARGET_FICLONE TARGET_IOW(0x94, 9, int) #define TARGET_FICLONERANGE TARGET_IOW(0x94, 13, struct file_clone_range) diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h index 4e36983..ca9429e 100644 --- a/linux-user/syscall_types.h +++ b/linux-user/syscall_types.h @@ -226,6 +226,11 @@ STRUCT(dm_target_versions, STRUCT(dm_target_msg, TYPE_ULONGLONG) /* sector */ +STRUCT(fstrim_range, + TYPE_LONGLONG, /* start */ + TYPE_LONGLONG, /* len */ + TYPE_LONGLONG) /* minlen */ + STRUCT(file_clone_range, TYPE_LONGLONG, /* src_fd */ TYPE_ULONGLONG, /* src_offset */ -- 2.7.4