[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Add loop device ioctls
From: |
Gary Thomas |
Subject: |
[Qemu-devel] [PATCH] Add loop device ioctls |
Date: |
Mon, 17 Mar 2008 11:09:31 -0600 |
User-agent: |
Thunderbird 2.0.0.12 (X11/20080226) |
These changes add the ioctl() calls used by loop devices.
Note: using Thunderbird, it seems much easier to attach files
than include them inline. Most email readers will still show
them (AFAIK)
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
Index: linux-user/syscall_types.h
===================================================================
--- linux-user/syscall_types.h (revision 4113)
+++ linux-user/syscall_types.h (revision 4114)
@@ -79,3 +79,33 @@
STRUCT(mixer_info,
MK_ARRAY(TYPE_CHAR, 16), MK_ARRAY(TYPE_CHAR, 32), TYPE_INT,
MK_ARRAY(TYPE_INT, 10))
+/* loop device ioctls */
+STRUCT(loop_info,
+ TYPE_INT, /* lo_number */
+ TYPE_SHORT, /* lo_device */
+ TYPE_ULONG, /* lo_inode */
+ TYPE_SHORT, /* lo_rdevice */
+ TYPE_INT, /* lo_offset */
+ TYPE_INT, /* lo_encrypt_type */
+ TYPE_INT, /* lo_encrypt_key_size */
+ TYPE_INT, /* lo_flags */
+ MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
+ MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
+ MK_ARRAY(TYPE_ULONG, 2), /* lo_init */
+ MK_ARRAY(TYPE_CHAR, 4) /* reserved */
+ )
+
+STRUCT(loop_info64,
+ TYPE_ULONGLONG, /* lo_device */
+ TYPE_ULONGLONG, /* lo_inode */
+ TYPE_ULONGLONG, /* lo_rdevice */
+ TYPE_ULONGLONG, /* lo_offset */
+ TYPE_ULONG, /* lo_number */
+ TYPE_ULONG, /* lo_encrypt_type */
+ TYPE_ULONG, /* lo_encrypt_key_size */
+ TYPE_ULONG, /* lo_flags */
+ MK_ARRAY(TYPE_CHAR, 64), /* lo_name */
+ MK_ARRAY(TYPE_CHAR, 64), /* lo_crypt_name */
+ MK_ARRAY(TYPE_CHAR, 32), /* lo_encrypt_key */
+ MK_ARRAY(TYPE_ULONGLONG, 2) /* lo_init */
+ )
Index: linux-user/syscall.c
===================================================================
--- linux-user/syscall.c (revision 4113)
+++ linux-user/syscall.c (revision 4114)
@@ -68,6 +68,7 @@
#include <linux/soundcard.h>
#include <linux/dirent.h>
#include <linux/kd.h>
+#include <linux/loop.h>
#include "qemu.h"
Index: linux-user/ioctls.h
===================================================================
--- linux-user/ioctls.h (revision 4113)
+++ linux-user/ioctls.h (revision 4114)
@@ -300,3 +300,13 @@
IOCTL(VFAT_IOCTL_READDIR_BOTH, IOC_R,
MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
IOCTL(VFAT_IOCTL_READDIR_SHORT, IOC_R,
MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
+
+ IOCTL(LOOP_SET_FD, 0, TYPE_INT)
+ IOCTL(LOOP_CLR_FD, 0, TYPE_INT)
+ IOCTL(LOOP_SET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
+ IOCTL(LOOP_GET_STATUS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info)))
+#if 0 // These have some problems - not fully tested
+ IOCTL(LOOP_SET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
+ IOCTL(LOOP_GET_STATUS64, IOC_W, MK_PTR(MK_STRUCT(STRUCT_loop_info64)))
+#endif
+ IOCTL(LOOP_CHANGE_FD, 0, TYPE_INT)
Index: linux-user/syscall_defs.h
===================================================================
--- linux-user/syscall_defs.h (revision 4113)
+++ linux-user/syscall_defs.h (revision 4114)
@@ -830,7 +830,16 @@
#define TARGET_HDIO_SET_DMA 0x0326 /* change use-dma flag */
#define TARGET_HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new
speed */
+/* loop ioctls */
+#define TARGET_LOOP_SET_FD 0x4C00
+#define TARGET_LOOP_CLR_FD 0x4C01
+#define TARGET_LOOP_SET_STATUS 0x4C02
+#define TARGET_LOOP_GET_STATUS 0x4C03
+#define TARGET_LOOP_SET_STATUS64 0x4C04
+#define TARGET_LOOP_GET_STATUS64 0x4C05
+#define TARGET_LOOP_CHANGE_FD 0x4C06
+
/* from asm/termbits.h */
#define TARGET_NCC 8
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] Add loop device ioctls,
Gary Thomas <=