Revision b8005914

b/linux-user/ioctls.h
300 300

  
301 301
  IOCTL(VFAT_IOCTL_READDIR_BOTH, IOC_R, MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
302 302
  IOCTL(VFAT_IOCTL_READDIR_SHORT, IOC_R, MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
303

  
304
  IOCTL(LOOP_SET_FD, 0, TYPE_INT)
305
  IOCTL(LOOP_CLR_FD, 0, TYPE_INT)
306
  IOCTL(LOOP_SET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
307
  IOCTL(LOOP_GET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
308
#if 0 /* These have some problems - not fully tested */
309
  IOCTL(LOOP_SET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
310
  IOCTL(LOOP_GET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
311
#endif
312
  IOCTL(LOOP_CHANGE_FD, 0, TYPE_INT)
b/linux-user/syscall.c
68 68
#include <linux/soundcard.h>
69 69
#include <linux/dirent.h>
70 70
#include <linux/kd.h>
71
#include <linux/loop.h>
71 72

  
72 73
#include "qemu.h"
73 74

  
b/linux-user/syscall_defs.h
830 830
#define TARGET_HDIO_SET_DMA           0x0326  /* change use-dma flag */
831 831
#define TARGET_HDIO_SET_PIO_MODE      0x0327  /* reconfig interface to new speed */
832 832

  
833
/* loop ioctls */
834
#define TARGET_LOOP_SET_FD            0x4C00
835
#define TARGET_LOOP_CLR_FD            0x4C01
836
#define TARGET_LOOP_SET_STATUS        0x4C02
837
#define TARGET_LOOP_GET_STATUS        0x4C03
838
#define TARGET_LOOP_SET_STATUS64      0x4C04
839
#define TARGET_LOOP_GET_STATUS64      0x4C05
840
#define TARGET_LOOP_CHANGE_FD         0x4C06
833 841

  
834 842
/* from asm/termbits.h */
835 843

  
b/linux-user/syscall_types.h
79 79

  
80 80
STRUCT(mixer_info,
81 81
       MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT, MK_ARRAY(TYPE_INT, 10))
82

  
83
/* loop device ioctls */
84
STRUCT(loop_info,
85
       TYPE_INT,                 /* lo_number */
86
       TYPE_SHORT,               /* lo_device */
87
       TYPE_ULONG,               /* lo_inode */
88
       TYPE_SHORT,               /* lo_rdevice */
89
       TYPE_INT,                 /* lo_offset */
90
       TYPE_INT,                 /* lo_encrypt_type */
91
       TYPE_INT,                 /* lo_encrypt_key_size */
92
       TYPE_INT,                 /* lo_flags */
93
       MK_ARRAY(TYPE_CHAR, 64),  /* lo_name */
94
       MK_ARRAY(TYPE_CHAR, 32),  /* lo_encrypt_key */
95
       MK_ARRAY(TYPE_ULONG, 2),  /* lo_init */
96
       MK_ARRAY(TYPE_CHAR, 4))   /* reserved */
97

  
98
STRUCT(loop_info64,
99
       TYPE_ULONGLONG,           /* lo_device */
100
       TYPE_ULONGLONG,           /* lo_inode */
101
       TYPE_ULONGLONG,           /* lo_rdevice */
102
       TYPE_ULONGLONG,           /* lo_offset */
103
       TYPE_ULONG,               /* lo_number */
104
       TYPE_ULONG,               /* lo_encrypt_type */
105
       TYPE_ULONG,               /* lo_encrypt_key_size */
106
       TYPE_ULONG,               /* lo_flags */
107
       MK_ARRAY(TYPE_CHAR, 64),  /* lo_name */
108
       MK_ARRAY(TYPE_CHAR, 64),  /* lo_crypt_name */
109
       MK_ARRAY(TYPE_CHAR, 32),  /* lo_encrypt_key */
110
       MK_ARRAY(TYPE_ULONGLONG, 2))  /* lo_init */

Also available in: Unified diff