From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JbIq9-0008G5-Rv for qemu-devel@nongnu.org; Mon, 17 Mar 2008 13:09:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JbIq9-0008Ff-6R for qemu-devel@nongnu.org; Mon, 17 Mar 2008 13:09:37 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JbIq9-0008Fa-1g for qemu-devel@nongnu.org; Mon, 17 Mar 2008 13:09:37 -0400 Received: from [204.133.123.27] (helo=mail.chez-thomas.org) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JbIq8-0000Im-Ie for qemu-devel@nongnu.org; Mon, 17 Mar 2008 13:09:36 -0400 Message-ID: <47DEA5CB.5090901@mlbassoc.com> Date: Mon, 17 Mar 2008 11:09:31 -0600 From: Gary Thomas MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030704040807030603030606" Subject: [Qemu-devel] [PATCH] Add loop device ioctls Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------030704040807030603030606 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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 ------------------------------------------------------------ --------------030704040807030603030606 Content-Type: text/plain; name="diffs" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diffs" 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 #include #include +#include #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 --------------030704040807030603030606--