linux-user: Implement BLKPG ioctl
Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
501bb4b0cb
commit
fff8c539bd
@ -77,6 +77,7 @@
|
|||||||
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||||
IOCTL(BLKSSZGET, IOC_R, MK_PTR(TYPE_LONG))
|
IOCTL(BLKSSZGET, IOC_R, MK_PTR(TYPE_LONG))
|
||||||
IOCTL(BLKBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
IOCTL(BLKBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
||||||
|
IOCTL(BLKPG, IOC_W, MK_PTR(MK_STRUCT(STRUCT_blkpg_ioctl_arg)))
|
||||||
#ifdef FIBMAP
|
#ifdef FIBMAP
|
||||||
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
|
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
|
||||||
#endif
|
#endif
|
||||||
|
@ -107,6 +107,7 @@ int __clone2(int (*fn)(void *), void *child_stack_base,
|
|||||||
#include <linux/reboot.h>
|
#include <linux/reboot.h>
|
||||||
#include <linux/route.h>
|
#include <linux/route.h>
|
||||||
#include <linux/filter.h>
|
#include <linux/filter.h>
|
||||||
|
#include <linux/blkpg.h>
|
||||||
#include "linux_loop.h"
|
#include "linux_loop.h"
|
||||||
#include "cpu-uname.h"
|
#include "cpu-uname.h"
|
||||||
|
|
||||||
|
@ -901,6 +901,7 @@ struct target_pollfd {
|
|||||||
#define TARGET_BLKSECTSET TARGET_IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
|
#define TARGET_BLKSECTSET TARGET_IO(0x12,102)/* set max sectors per request (ll_rw_blk.c) */
|
||||||
#define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
|
#define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request (ll_rw_blk.c) */
|
||||||
#define TARGET_BLKSSZGET TARGET_IO(0x12,104)/* get block device sector size */
|
#define TARGET_BLKSSZGET TARGET_IO(0x12,104)/* get block device sector size */
|
||||||
|
#define TARGET_BLKPG TARGET_IO(0x12,105)/* Partition table and disk geometry handling */
|
||||||
/* A jump here: 108-111 have been used for various private purposes. */
|
/* A jump here: 108-111 have been used for various private purposes. */
|
||||||
#define TARGET_BLKBSZGET TARGET_IOR(0x12, 112, abi_ulong)
|
#define TARGET_BLKBSZGET TARGET_IOR(0x12, 112, abi_ulong)
|
||||||
#define TARGET_BLKBSZSET TARGET_IOW(0x12, 113, abi_ulong)
|
#define TARGET_BLKBSZSET TARGET_IOW(0x12, 113, abi_ulong)
|
||||||
|
@ -240,3 +240,16 @@ STRUCT(fiemap,
|
|||||||
TYPE_INT, /* fm_mapped_extents */
|
TYPE_INT, /* fm_mapped_extents */
|
||||||
TYPE_INT, /* fm_extent_count */
|
TYPE_INT, /* fm_extent_count */
|
||||||
TYPE_INT) /* fm_reserved */
|
TYPE_INT) /* fm_reserved */
|
||||||
|
|
||||||
|
STRUCT(blkpg_partition,
|
||||||
|
TYPE_LONGLONG, /* start */
|
||||||
|
TYPE_LONGLONG, /* length */
|
||||||
|
TYPE_INT, /* pno */
|
||||||
|
MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
|
||||||
|
MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
|
||||||
|
|
||||||
|
STRUCT(blkpg_ioctl_arg,
|
||||||
|
TYPE_INT, /* op */
|
||||||
|
TYPE_INT, /* flags */
|
||||||
|
TYPE_INT, /* datalen */
|
||||||
|
MK_PTR(MK_STRUCT(STRUCT_blkpg_partition))) /* data */
|
||||||
|
Loading…
Reference in New Issue
Block a user