[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/6] linux-user: Implement BLKPG ioctl
From: |
riku . voipio |
Subject: |
[Qemu-devel] [PATCH 5/6] linux-user: Implement BLKPG ioctl |
Date: |
Wed, 19 Feb 2014 12:35:28 +0200 |
From: Andreas Färber <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Riku Voipio <address@hidden>
---
linux-user/ioctls.h | 1 +
linux-user/syscall.c | 1 +
linux-user/syscall_defs.h | 1 +
linux-user/syscall_types.h | 13 +++++++++++++
4 files changed, 16 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 7381012..309fb21 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -77,6 +77,7 @@
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
IOCTL(BLKSSZGET, IOC_R, MK_PTR(TYPE_LONG))
IOCTL(BLKBSZGET, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(BLKPG, IOC_W, MK_PTR(MK_STRUCT(STRUCT_blkpg_ioctl_arg)))
#ifdef FIBMAP
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
#endif
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index bb3e4b1..8f5a58e 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -107,6 +107,7 @@ int __clone2(int (*fn)(void *), void *child_stack_base,
#include <linux/reboot.h>
#include <linux/route.h>
#include <linux/filter.h>
+#include <linux/blkpg.h>
#include "linux_loop.h"
#include "cpu-uname.h"
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index ae30476..3c8869e 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -901,6 +901,7 @@ struct target_pollfd {
#define TARGET_BLKSECTSET TARGET_IO(0x12,102)/* set max sectors per request
(ll_rw_blk.c) */
#define TARGET_BLKSECTGET TARGET_IO(0x12,103)/* get max sectors per request
(ll_rw_blk.c) */
#define TARGET_BLKSSZGET TARGET_IO(0x12,104)/* get block device sector size */
+#define TARGET_BLKPG TARGET_IO(0x12,105)/* Partition table and disk
geometry handling */
/* A jump here: 108-111 have been used for various private purposes. */
#define TARGET_BLKBSZGET TARGET_IOR(0x12, 112, abi_ulong)
#define TARGET_BLKBSZSET TARGET_IOW(0x12, 113, abi_ulong)
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
index 44b6a58..9d0c92d 100644
--- a/linux-user/syscall_types.h
+++ b/linux-user/syscall_types.h
@@ -240,3 +240,16 @@ STRUCT(fiemap,
TYPE_INT, /* fm_mapped_extents */
TYPE_INT, /* fm_extent_count */
TYPE_INT) /* fm_reserved */
+
+STRUCT(blkpg_partition,
+ TYPE_LONGLONG, /* start */
+ TYPE_LONGLONG, /* length */
+ TYPE_INT, /* pno */
+ MK_ARRAY(TYPE_CHAR, BLKPG_DEVNAMELTH), /* devname */
+ MK_ARRAY(TYPE_CHAR, BLKPG_VOLNAMELTH)) /* volname */
+
+STRUCT(blkpg_ioctl_arg,
+ TYPE_INT, /* op */
+ TYPE_INT, /* flags */
+ TYPE_INT, /* datalen */
+ MK_PTR(MK_STRUCT(STRUCT_blkpg_partition))) /* data */
--
1.8.1.2
- [Qemu-devel] [PULL 0/6] linux-user updates, riku . voipio, 2014/02/19
- [Qemu-devel] [PATCH 3/6] linux-user/signal.c: Don't pass sigaction uninitialised sa_flags, riku . voipio, 2014/02/19
- [Qemu-devel] [PATCH 4/6] linux-user: Fix error handling in lock_iovec(), riku . voipio, 2014/02/19
- [Qemu-devel] [PATCH 5/6] linux-user: Implement BLKPG ioctl,
riku . voipio <=
- [Qemu-devel] [PATCH 2/6] linux-user/elfload.c: Avoid calling g_free() on uninitialized data, riku . voipio, 2014/02/19
- [Qemu-devel] [PATCH 6/6] linux-user: Fix error handling in target_to_host_semarray(), riku . voipio, 2014/02/19
- [Qemu-devel] [PATCH 1/6] linux-user: sync syscall numbers upto 3.13, riku . voipio, 2014/02/19
- Re: [Qemu-devel] [PULL 0/6] linux-user updates, Peter Maydell, 2014/02/21