Commit 884cdc48 authored by Peter Maydell's avatar Peter Maydell Committed by Riku Voipio
Browse files

linux-user: Add loop control ioctls



Add support for the /dev/loop-control ioctls:
 LOOP_CTL_ADD
 LOOP_CTL_REMOVE
 LOOP_CTL_GET_FREE

[RV: fixed to apply to new header guards]
Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Reviewed-by: default avatarLaurent Vivier <laurent@vivier.eu>
Signed-off-by: default avatarRiku Voipio <riku.voipio@linaro.org>
parent c815701e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -327,6 +327,10 @@
  IOCTL(LOOP_GET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
  IOCTL(LOOP_CHANGE_FD, 0, TYPE_INT)

  IOCTL(LOOP_CTL_ADD, 0, TYPE_INT)
  IOCTL(LOOP_CTL_REMOVE, 0, TYPE_INT)
  IOCTL(LOOP_CTL_GET_FREE, 0, TYPE_NULL)

  IOCTL(MTIOCTOP, IOC_W, MK_PTR(MK_STRUCT(STRUCT_mtop)))
  IOCTL(MTIOCGET, IOC_R, MK_PTR(MK_STRUCT(STRUCT_mtget)))
  IOCTL(MTIOCPOS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_mtpos)))
+10 −1
Original line number Diff line number Diff line
/* Copied from 2.6.25 kernel headers to avoid problems on older hosts.  */
/* Copied from 2.6.25 kernel headers to avoid problems on older hosts,
 * and subsequently updated to match newer additions to the API.
 */

#ifndef LINUX_LOOP_H
#define LINUX_LOOP_H
@@ -92,5 +94,12 @@ struct loop_info64 {
#define LOOP_SET_STATUS64	0x4C04
#define LOOP_GET_STATUS64	0x4C05
#define LOOP_CHANGE_FD		0x4C06
#define LOOP_SET_CAPACITY       0x4C07
#define LOOP_SET_DIRECT_IO      0x4C08

/* /dev/loop-control interface */
#define LOOP_CTL_ADD            0x4C80
#define LOOP_CTL_REMOVE         0x4C81
#define LOOP_CTL_GET_FREE       0x4C82

#endif
+4 −0
Original line number Diff line number Diff line
@@ -1117,6 +1117,10 @@ struct target_pollfd {
#define TARGET_LOOP_GET_STATUS64      0x4C05
#define TARGET_LOOP_CHANGE_FD         0x4C06

#define TARGET_LOOP_CTL_ADD           0x4C80
#define TARGET_LOOP_CTL_REMOVE        0x4C81
#define TARGET_LOOP_CTL_GET_FREE      0x4C82

/* fb ioctls */
#define TARGET_FBIOGET_VSCREENINFO    0x4600
#define TARGET_FBIOPUT_VSCREENINFO    0x4601