linux-user: Implement FS_IOC_FIEMAP ioctl

Implement the FS_IOC_FIEMAP ioctl using the new support for
custom handling of ioctls; this is needed because the struct
that is passed includes a variable-length array.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
This commit is contained in:
Peter Maydell
2011-01-06 15:04:18 +00:00
committed by Riku Voipio
parent d2ef05bb44
commit 285da2b9a8
4 changed files with 109 additions and 0 deletions

View File

@@ -165,3 +165,19 @@ STRUCT(vt_stat,
TYPE_SHORT, /* v_active */
TYPE_SHORT, /* v_signal */
TYPE_SHORT) /* v_state */
STRUCT(fiemap_extent,
TYPE_ULONGLONG, /* fe_logical */
TYPE_ULONGLONG, /* fe_physical */
TYPE_ULONGLONG, /* fe_length */
MK_ARRAY(TYPE_ULONGLONG, 2), /* fe_reserved64[2] */
TYPE_INT, /* fe_flags */
MK_ARRAY(TYPE_INT, 3)) /* fe_reserved[3] */
STRUCT(fiemap,
TYPE_ULONGLONG, /* fm_start */
TYPE_ULONGLONG, /* fm_length */
TYPE_INT, /* fm_flags */
TYPE_INT, /* fm_mapped_extents */
TYPE_INT, /* fm_extent_count */
TYPE_INT) /* fm_reserved */