linux-user: implement more loop ioctls
LOOP_CONFIGURE is now used by losetup, and it cannot cope with ENOSYS. Signed-off-by: Andreas Schwab <schwab@suse.de> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <mvmtug4mbfx.fsf_-_@suse.de> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
e750c10167
commit
0a761ce303
@ -637,6 +637,10 @@
|
|||||||
IOCTL(LOOP_SET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
|
IOCTL(LOOP_SET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
|
||||||
IOCTL(LOOP_GET_STATUS64, IOC_R, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
|
IOCTL(LOOP_GET_STATUS64, IOC_R, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
|
||||||
IOCTL(LOOP_CHANGE_FD, 0, TYPE_INT)
|
IOCTL(LOOP_CHANGE_FD, 0, TYPE_INT)
|
||||||
|
IOCTL(LOOP_SET_CAPACITY, 0, TYPE_INT)
|
||||||
|
IOCTL(LOOP_SET_DIRECT_IO, 0, TYPE_INT)
|
||||||
|
IOCTL(LOOP_SET_BLOCK_SIZE, 0, TYPE_INT)
|
||||||
|
IOCTL(LOOP_CONFIGURE, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_config)))
|
||||||
|
|
||||||
IOCTL(LOOP_CTL_ADD, 0, TYPE_INT)
|
IOCTL(LOOP_CTL_ADD, 0, TYPE_INT)
|
||||||
IOCTL(LOOP_CTL_REMOVE, 0, TYPE_INT)
|
IOCTL(LOOP_CTL_REMOVE, 0, TYPE_INT)
|
||||||
|
@ -96,6 +96,8 @@ struct loop_info64 {
|
|||||||
#define LOOP_CHANGE_FD 0x4C06
|
#define LOOP_CHANGE_FD 0x4C06
|
||||||
#define LOOP_SET_CAPACITY 0x4C07
|
#define LOOP_SET_CAPACITY 0x4C07
|
||||||
#define LOOP_SET_DIRECT_IO 0x4C08
|
#define LOOP_SET_DIRECT_IO 0x4C08
|
||||||
|
#define LOOP_SET_BLOCK_SIZE 0x4C09
|
||||||
|
#define LOOP_CONFIGURE 0x4C0A
|
||||||
|
|
||||||
/* /dev/loop-control interface */
|
/* /dev/loop-control interface */
|
||||||
#define LOOP_CTL_ADD 0x4C80
|
#define LOOP_CTL_ADD 0x4C80
|
||||||
|
@ -1219,6 +1219,10 @@ struct target_rtc_pll_info {
|
|||||||
#define TARGET_LOOP_SET_STATUS64 0x4C04
|
#define TARGET_LOOP_SET_STATUS64 0x4C04
|
||||||
#define TARGET_LOOP_GET_STATUS64 0x4C05
|
#define TARGET_LOOP_GET_STATUS64 0x4C05
|
||||||
#define TARGET_LOOP_CHANGE_FD 0x4C06
|
#define TARGET_LOOP_CHANGE_FD 0x4C06
|
||||||
|
#define TARGET_LOOP_SET_CAPACITY 0x4C07
|
||||||
|
#define TARGET_LOOP_SET_DIRECT_IO 0x4C08
|
||||||
|
#define TARGET_LOOP_SET_BLOCK_SIZE 0x4C09
|
||||||
|
#define TARGET_LOOP_CONFIGURE 0x4C0A
|
||||||
|
|
||||||
#define TARGET_LOOP_CTL_ADD 0x4C80
|
#define TARGET_LOOP_CTL_ADD 0x4C80
|
||||||
#define TARGET_LOOP_CTL_REMOVE 0x4C81
|
#define TARGET_LOOP_CTL_REMOVE 0x4C81
|
||||||
|
@ -201,6 +201,12 @@ STRUCT(loop_info64,
|
|||||||
MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
|
MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
|
||||||
MK_ARRAY(TYPE_ULONGLONG, 2)) /* lo_init */
|
MK_ARRAY(TYPE_ULONGLONG, 2)) /* lo_init */
|
||||||
|
|
||||||
|
STRUCT(loop_config,
|
||||||
|
TYPE_INT, /* fd */
|
||||||
|
TYPE_INT, /* block_size */
|
||||||
|
MK_STRUCT(STRUCT_loop_info64), /* info */
|
||||||
|
MK_ARRAY(TYPE_ULONGLONG, 8)) /* __reserved */
|
||||||
|
|
||||||
/* mag tape ioctls */
|
/* mag tape ioctls */
|
||||||
STRUCT(mtop, TYPE_SHORT, TYPE_INT)
|
STRUCT(mtop, TYPE_SHORT, TYPE_INT)
|
||||||
STRUCT(mtget, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG,
|
STRUCT(mtget, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG, TYPE_LONG,
|
||||||
|
Loading…
Reference in New Issue
Block a user