* [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2
@ 2019-07-31 18:19 Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 01/12] linux user: Add support for FDFLUSH ioctl Aleksandar Markovic
` (11 more replies)
0 siblings, 12 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
A set of misc linux user patches for 4.2.
v2->v3:
- reworked the patch on semtimedop()
- added five patches containing support for ten additional
ioctls
- minor improvements of code formatting
v2->v3:
- minor code formatting improvements
- added a patch on semtimedop()
v1->v2:
- updated commit messages
- minor improvements of code formatting
- added three patches containing support for ten additional
ioctls
Aleksandar Markovic (10):
linux-user: Add support for FDMSGON and FDMSGOFF ioctls
linux-user: Add support for FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT
ioctls
linux-user: Add support for FDFMTBEG, FDFMTTRK, and FDFMTEND ioctls
linux-user: Add support for FDSETEMSGTRESH, FDSETMAXERRS, and
FDGETMAXERRS ioctls
linux-user: Add support for HDIO_GET_NICE and HDIO_SET_NICE ioctls
linux-user: Add support for HDIO_GET_WCACHE and HDIO_SET_WCACHE ioctls
linux-user: Add support for HDIO_GET_ACOUSTIC and HDIO_SET_ACOUSTIC
ioctls
linux-user: Add support for HDIO_GET_ADDRESS and HDIO_SET_ADDRESS
ioctls
linux-user: Add support for HDIO_GET_BUSSTATE and HDIO_SET_BUSSTATE
ioctls
linux-user: Add support for RNDRESEEDCRNG ioctl
Aleksandar Rikalo (1):
linux-user: Add support for semtimedop() syscall
Yunqiang Su (1):
linux user: Add support for FDFLUSH ioctl
linux-user/ioctls.h | 26 ++++++++++++++++++++++++++
linux-user/syscall.c | 41 +++++++++++++++++++++++++++++++++++++++++
linux-user/syscall_defs.h | 43 +++++++++++++++++++++++++++++++++++++++++++
linux-user/syscall_types.h | 12 ++++++++++++
4 files changed, 122 insertions(+)
--
2.7.4
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 01/12] linux user: Add support for FDFLUSH ioctl
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 02/12] linux-user: Add support for FDMSGON and FDMSGOFF ioctls Aleksandar Markovic
` (10 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Yunqiang Su, laurent, amarkovic
From: Yunqiang Su <ysu@wavecomp.com>
FDFLUSH is used for flushing buffers of floppy drives. Support in
QEMU is needed because some of Debian packages use this ioctl while
running post-build tests. One such example is 'tar' package.
Signed-off-by: Yunqiang Su <ysu@wavecomp.com>
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall.c | 1 +
linux-user/syscall_defs.h | 4 ++++
3 files changed, 7 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 3281c97..fb7b014 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -112,6 +112,8 @@
IOCTL(BLKZEROOUT, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
#endif
+ IOCTL(FDFLUSH, 0, TYPE_NULL)
+
#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 8367cb1..ee80175 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -87,6 +87,7 @@
#include <linux/kd.h>
#include <linux/mtio.h>
#include <linux/fs.h>
+#include <linux/fd.h>
#if defined(CONFIG_FIEMAP)
#include <linux/fiemap.h>
#endif
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 0662270..fb30bce 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -883,6 +883,10 @@ struct target_pollfd {
#define TARGET_BLKROTATIONAL TARGET_IO(0x12, 126)
#define TARGET_BLKZEROOUT TARGET_IO(0x12, 127)
+/* From <linux/fd.h> */
+
+#define TARGET_FDFLUSH TARGET_IO(2, 0x4b)
+
#define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */
#define TARGET_FIGETBSZ TARGET_IO(0x00,2) /* get the block size used for bmap */
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 02/12] linux-user: Add support for FDMSGON and FDMSGOFF ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 01/12] linux user: Add support for FDFLUSH ioctl Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 03/12] linux-user: Add support for FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT ioctls Aleksandar Markovic
` (9 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
FDMSGON and FDMSGOFF switch informational messages of floppy drives
on and off.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall_defs.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index fb7b014..9978163 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -112,6 +112,8 @@
IOCTL(BLKZEROOUT, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
#endif
+ IOCTL(FDMSGON, 0, TYPE_NULL)
+ IOCTL(FDMSGOFF, 0, TYPE_NULL)
IOCTL(FDFLUSH, 0, TYPE_NULL)
#ifdef FIBMAP
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index fb30bce..cd97e9b 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -885,6 +885,8 @@ struct target_pollfd {
/* From <linux/fd.h> */
+#define TARGET_FDMSGON TARGET_IO(2, 0x45)
+#define TARGET_FDMSGOFF TARGET_IO(2, 0x46)
#define TARGET_FDFLUSH TARGET_IO(2, 0x4b)
#define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 03/12] linux-user: Add support for FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 01/12] linux user: Add support for FDFLUSH ioctl Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 02/12] linux-user: Add support for FDMSGON and FDMSGOFF ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 04/12] linux-user: Add support for FDFMTBEG, FDFMTTRK, and FDFMTEND ioctls Aleksandar Markovic
` (8 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT ioctls are misc commands
for controlling a floppy drive.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 4 ++++
linux-user/syscall_defs.h | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 9978163..ab4ef2e 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -115,6 +115,10 @@
IOCTL(FDMSGON, 0, TYPE_NULL)
IOCTL(FDMSGOFF, 0, TYPE_NULL)
IOCTL(FDFLUSH, 0, TYPE_NULL)
+ IOCTL(FDRESET, 0, TYPE_NULL)
+ IOCTL(FDRAWCMD, 0, TYPE_NULL)
+ IOCTL(FDTWADDLE, 0, TYPE_NULL)
+ IOCTL(FDEJECT, 0, TYPE_NULL)
#ifdef FIBMAP
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index cd97e9b..4185391 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -888,6 +888,10 @@ struct target_pollfd {
#define TARGET_FDMSGON TARGET_IO(2, 0x45)
#define TARGET_FDMSGOFF TARGET_IO(2, 0x46)
#define TARGET_FDFLUSH TARGET_IO(2, 0x4b)
+#define TARGET_FDRESET TARGET_IO(2, 0x54)
+#define TARGET_FDRAWCMD TARGET_IO(2, 0x58)
+#define TARGET_FDTWADDLE TARGET_IO(2, 0x59)
+#define TARGET_FDEJECT TARGET_IO(2, 0x5a)
#define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */
#define TARGET_FIGETBSZ TARGET_IO(0x00,2) /* get the block size used for bmap */
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 04/12] linux-user: Add support for FDFMTBEG, FDFMTTRK, and FDFMTEND ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (2 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 03/12] linux-user: Add support for FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 05/12] linux-user: Add support for FDSETEMSGTRESH, FDSETMAXERRS, and FDGETMAXERRS ioctls Aleksandar Markovic
` (7 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
FDFMTBEG, FDFMTTRK, and FDFMTEND ioctls provide means for controlling
formatting of a floppy drive.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 3 +++
linux-user/syscall_defs.h | 3 +++
linux-user/syscall_types.h | 5 +++++
3 files changed, 11 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index ab4ef2e..e393ad6 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -114,6 +114,9 @@
IOCTL(FDMSGON, 0, TYPE_NULL)
IOCTL(FDMSGOFF, 0, TYPE_NULL)
+ IOCTL(FDFMTBEG, 0, TYPE_NULL)
+ IOCTL(FDFMTTRK, IOC_W, MK_PTR(MK_STRUCT(STRUCT_format_descr)))
+ IOCTL(FDFMTEND, 0, TYPE_NULL)
IOCTL(FDFLUSH, 0, TYPE_NULL)
IOCTL(FDRESET, 0, TYPE_NULL)
IOCTL(FDRAWCMD, 0, TYPE_NULL)
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 4185391..1ca115d 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -887,6 +887,9 @@ struct target_pollfd {
#define TARGET_FDMSGON TARGET_IO(2, 0x45)
#define TARGET_FDMSGOFF TARGET_IO(2, 0x46)
+#define TARGET_FDFMTBEG TARGET_IO(2, 0x47)
+#define TARGET_FDFMTTRK TARGET_IOW(2, 0x48, struct target_format_descr)
+#define TARGET_FDFMTEND TARGET_IO(2, 0x49)
#define TARGET_FDFLUSH TARGET_IO(2, 0x4b)
#define TARGET_FDRESET TARGET_IO(2, 0x54)
#define TARGET_FDRAWCMD TARGET_IO(2, 0x58)
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
index 4e36983..d82d1a5 100644
--- a/linux-user/syscall_types.h
+++ b/linux-user/syscall_types.h
@@ -261,6 +261,11 @@ STRUCT(blkpg_ioctl_arg,
TYPE_INT, /* datalen */
TYPE_PTRVOID) /* data */
+STRUCT(format_descr,
+ TYPE_INT, /* device */
+ TYPE_INT, /* head */
+ TYPE_INT) /* track */
+
#if defined(CONFIG_USBFS)
/* usb device ioctls */
STRUCT(usbdevfs_ctrltransfer,
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 05/12] linux-user: Add support for FDSETEMSGTRESH, FDSETMAXERRS, and FDGETMAXERRS ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (3 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 04/12] linux-user: Add support for FDFMTBEG, FDFMTTRK, and FDFMTEND ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 06/12] linux-user: Add support for HDIO_GET_NICE and HDIO_SET_NICE ioctls Aleksandar Markovic
` (6 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
FDSETEMSGTRESH, FDSETMAXERRS, and FDGETMAXERRS ioctls are commands
for controlling error reporting of a floppy drive.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall_defs.h | 19 +++++++++++++++++++
linux-user/syscall_types.h | 7 +++++++
3 files changed, 28 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index e393ad6..6551938 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -118,6 +118,8 @@
IOCTL(FDFMTTRK, IOC_W, MK_PTR(MK_STRUCT(STRUCT_format_descr)))
IOCTL(FDFMTEND, 0, TYPE_NULL)
IOCTL(FDFLUSH, 0, TYPE_NULL)
+ IOCTL(FDSETMAXERRS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_floppy_max_errors)))
+ IOCTL(FDGETMAXERRS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_floppy_max_errors)))
IOCTL(FDRESET, 0, TYPE_NULL)
IOCTL(FDRAWCMD, 0, TYPE_NULL)
IOCTL(FDTWADDLE, 0, TYPE_NULL)
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 1ca115d..36256b0 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -885,12 +885,31 @@ struct target_pollfd {
/* From <linux/fd.h> */
+struct target_floppy_max_errors {
+ abi_uint abort;
+ abi_uint read_track;
+ abi_uint reset;
+ abi_uint recal;
+ abi_uint reporting;
+};
+
+struct target_format_descr {
+ abi_uint device;
+ abi_uint head;
+ abi_uint track;
+};
+
#define TARGET_FDMSGON TARGET_IO(2, 0x45)
#define TARGET_FDMSGOFF TARGET_IO(2, 0x46)
#define TARGET_FDFMTBEG TARGET_IO(2, 0x47)
#define TARGET_FDFMTTRK TARGET_IOW(2, 0x48, struct target_format_descr)
#define TARGET_FDFMTEND TARGET_IO(2, 0x49)
+#define TARGET_FDSETEMSGTRESH TARGET_IO(2, 0x4a)
#define TARGET_FDFLUSH TARGET_IO(2, 0x4b)
+#define TARGET_FDSETMAXERRS TARGET_IOW(2, 0x4c, \
+ struct target_floppy_max_errors)
+#define TARGET_FDGETMAXERRS TARGET_IOR(2, 0x0e, \
+ struct target_floppy_max_errors)
#define TARGET_FDRESET TARGET_IO(2, 0x54)
#define TARGET_FDRAWCMD TARGET_IO(2, 0x58)
#define TARGET_FDTWADDLE TARGET_IO(2, 0x59)
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
index d82d1a5..5ba7c34 100644
--- a/linux-user/syscall_types.h
+++ b/linux-user/syscall_types.h
@@ -261,6 +261,13 @@ STRUCT(blkpg_ioctl_arg,
TYPE_INT, /* datalen */
TYPE_PTRVOID) /* data */
+STRUCT(floppy_max_errors,
+ TYPE_INT, /* abort */
+ TYPE_INT, /* read_track */
+ TYPE_INT, /* reset */
+ TYPE_INT, /* recal */
+ TYPE_INT) /* reporting */
+
STRUCT(format_descr,
TYPE_INT, /* device */
TYPE_INT, /* head */
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 06/12] linux-user: Add support for HDIO_GET_NICE and HDIO_SET_NICE ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (4 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 05/12] linux-user: Add support for FDSETEMSGTRESH, FDSETMAXERRS, and FDGETMAXERRS ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 07/12] linux-user: Add support for HDIO_GET_WCACHE and HDIO_SET_WCACHE ioctls Aleksandar Markovic
` (5 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Add support for HDIO_GET_NICE and HDIO_SET_NICE ioctls.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall_defs.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 6551938..895ba35 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -434,6 +434,7 @@
IOCTL(HDIO_GET_NOWERR, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_DMA, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_32BIT, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(HDIO_GET_NICE, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_DRIVE_CMD, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_SET_UNMASKINTR, 0, TYPE_INT)
IOCTL(HDIO_SET_MULTCOUNT, 0, TYPE_INT)
@@ -442,6 +443,7 @@
IOCTL(HDIO_SET_DMA, 0, TYPE_INT)
IOCTL(HDIO_SET_32BIT, 0, TYPE_INT)
IOCTL(HDIO_SET_PIO_MODE, 0, TYPE_INT)
+ IOCTL(HDIO_SET_NICE, 0, TYPE_INT)
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)))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 36256b0..4e219a1 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -1064,6 +1064,7 @@ struct target_format_descr {
#define TARGET_HDIO_GET_32BIT 0x0309 /* get current io_32bit setting */
#define TARGET_HDIO_GET_NOWERR 0x030a /* get ignore-write-error flag */
#define TARGET_HDIO_GET_DMA 0x030b /* get use-dma flag */
+#define TARGET_HDIO_GET_NICE 0x030c /* get nice flags */
#define TARGET_HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
#define TARGET_HDIO_DRIVE_CMD 0x031f /* execute a special drive command */
@@ -1075,6 +1076,7 @@ struct target_format_descr {
#define TARGET_HDIO_SET_NOWERR 0x0325 /* change ignore-write-error flag */
#define TARGET_HDIO_SET_DMA 0x0326 /* change use-dma flag */
#define TARGET_HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new speed */
+#define TARGET_HDIO_SET_NICE 0x0329 /* set nice flags */
/* loop ioctls */
#define TARGET_LOOP_SET_FD 0x4C00
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 07/12] linux-user: Add support for HDIO_GET_WCACHE and HDIO_SET_WCACHE ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (5 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 06/12] linux-user: Add support for HDIO_GET_NICE and HDIO_SET_NICE ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 08/12] linux-user: Add support for HDIO_GET_ACOUSTIC and HDIO_SET_ACOUSTIC ioctls Aleksandar Markovic
` (4 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Add support for HDIO_GET_WCACHE and HDIO_SET_WCACHE ioctls.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall_defs.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 895ba35..b54a184 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -435,6 +435,7 @@
IOCTL(HDIO_GET_DMA, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_32BIT, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_NICE, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(HDIO_GET_WCACHE, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_DRIVE_CMD, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_SET_UNMASKINTR, 0, TYPE_INT)
IOCTL(HDIO_SET_MULTCOUNT, 0, TYPE_INT)
@@ -444,6 +445,7 @@
IOCTL(HDIO_SET_32BIT, 0, TYPE_INT)
IOCTL(HDIO_SET_PIO_MODE, 0, TYPE_INT)
IOCTL(HDIO_SET_NICE, 0, TYPE_INT)
+ IOCTL(HDIO_SET_WCACHE, 0, TYPE_INT)
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)))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 4e219a1..fb42d32 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -1066,6 +1066,7 @@ struct target_format_descr {
#define TARGET_HDIO_GET_DMA 0x030b /* get use-dma flag */
#define TARGET_HDIO_GET_NICE 0x030c /* get nice flags */
#define TARGET_HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
+#define TARGET_HDIO_GET_WCACHE 0x030e /* get write cache mode on|off */
#define TARGET_HDIO_DRIVE_CMD 0x031f /* execute a special drive command */
/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
@@ -1077,6 +1078,7 @@ struct target_format_descr {
#define TARGET_HDIO_SET_DMA 0x0326 /* change use-dma flag */
#define TARGET_HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new speed */
#define TARGET_HDIO_SET_NICE 0x0329 /* set nice flags */
+#define TARGET_HDIO_SET_WCACHE 0x032b /* change write cache mode */
/* loop ioctls */
#define TARGET_LOOP_SET_FD 0x4C00
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 08/12] linux-user: Add support for HDIO_GET_ACOUSTIC and HDIO_SET_ACOUSTIC ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (6 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 07/12] linux-user: Add support for HDIO_GET_WCACHE and HDIO_SET_WCACHE ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 09/12] linux-user: Add support for HDIO_GET_ADDRESS and HDIO_SET_ADDRESS ioctls Aleksandar Markovic
` (3 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Add support for HDIO_GET_ACOUSTIC and HDIO_SET_ACOUSTIC ioctls.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall_defs.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index b54a184..c9b82eb 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -436,6 +436,7 @@
IOCTL(HDIO_GET_32BIT, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_NICE, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_WCACHE, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(HDIO_GET_ACOUSTIC, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_DRIVE_CMD, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_SET_UNMASKINTR, 0, TYPE_INT)
IOCTL(HDIO_SET_MULTCOUNT, 0, TYPE_INT)
@@ -446,6 +447,7 @@
IOCTL(HDIO_SET_PIO_MODE, 0, TYPE_INT)
IOCTL(HDIO_SET_NICE, 0, TYPE_INT)
IOCTL(HDIO_SET_WCACHE, 0, TYPE_INT)
+ IOCTL(HDIO_SET_ACOUSTIC, 0, TYPE_INT)
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)))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index fb42d32..b9d1242 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -1067,6 +1067,7 @@ struct target_format_descr {
#define TARGET_HDIO_GET_NICE 0x030c /* get nice flags */
#define TARGET_HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
#define TARGET_HDIO_GET_WCACHE 0x030e /* get write cache mode on|off */
+#define TARGET_HDIO_GET_ACOUSTIC 0x030f /* get acoustic value */
#define TARGET_HDIO_DRIVE_CMD 0x031f /* execute a special drive command */
/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
@@ -1079,6 +1080,7 @@ struct target_format_descr {
#define TARGET_HDIO_SET_PIO_MODE 0x0327 /* reconfig interface to new speed */
#define TARGET_HDIO_SET_NICE 0x0329 /* set nice flags */
#define TARGET_HDIO_SET_WCACHE 0x032b /* change write cache mode */
+#define TARGET_HDIO_SET_ACOUSTIC 0x032c /* change acoustic behavior */
/* loop ioctls */
#define TARGET_LOOP_SET_FD 0x4C00
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 09/12] linux-user: Add support for HDIO_GET_ADDRESS and HDIO_SET_ADDRESS ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (7 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 08/12] linux-user: Add support for HDIO_GET_ACOUSTIC and HDIO_SET_ACOUSTIC ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 10/12] linux-user: Add support for HDIO_GET_BUSSTATE and HDIO_SET_BUSSTATE ioctls Aleksandar Markovic
` (2 subsequent siblings)
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Add support for HDIO_GET_ADDRESS and HDIO_SET_ADDRESS ioctls.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall_defs.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index c9b82eb..b9c6a5a 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -437,6 +437,7 @@
IOCTL(HDIO_GET_NICE, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_WCACHE, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_ACOUSTIC, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(HDIO_GET_ADDRESS, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_DRIVE_CMD, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_SET_UNMASKINTR, 0, TYPE_INT)
IOCTL(HDIO_SET_MULTCOUNT, 0, TYPE_INT)
@@ -448,6 +449,7 @@
IOCTL(HDIO_SET_NICE, 0, TYPE_INT)
IOCTL(HDIO_SET_WCACHE, 0, TYPE_INT)
IOCTL(HDIO_SET_ACOUSTIC, 0, TYPE_INT)
+ IOCTL(HDIO_SET_ADDRESS, 0, TYPE_INT)
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)))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index b9d1242..aa9c6af 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -1068,6 +1068,7 @@ struct target_format_descr {
#define TARGET_HDIO_GET_IDENTITY 0x030d /* get IDE identification info */
#define TARGET_HDIO_GET_WCACHE 0x030e /* get write cache mode on|off */
#define TARGET_HDIO_GET_ACOUSTIC 0x030f /* get acoustic value */
+#define TARGET_HDIO_GET_ADDRESS 0x0310 /* get lba addressing modes */
#define TARGET_HDIO_DRIVE_CMD 0x031f /* execute a special drive command */
/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
@@ -1081,6 +1082,7 @@ struct target_format_descr {
#define TARGET_HDIO_SET_NICE 0x0329 /* set nice flags */
#define TARGET_HDIO_SET_WCACHE 0x032b /* change write cache mode */
#define TARGET_HDIO_SET_ACOUSTIC 0x032c /* change acoustic behavior */
+#define TARGET_HDIO_SET_ADDRESS 0x032f /* change lba addressing modes */
/* loop ioctls */
#define TARGET_LOOP_SET_FD 0x4C00
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 10/12] linux-user: Add support for HDIO_GET_BUSSTATE and HDIO_SET_BUSSTATE ioctls
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (8 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 09/12] linux-user: Add support for HDIO_GET_ADDRESS and HDIO_SET_ADDRESS ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 11/12] linux-user: Add support for RNDRESEEDCRNG ioctl Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 12/12] linux-user: Add support for semtimedop() syscall Aleksandar Markovic
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
Add support for HDIO_GET_BUSSTATE and HDIO_SET_BUSSTATE ioctls.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/ioctls.h | 2 ++
linux-user/syscall_defs.h | 2 ++
2 files changed, 4 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index b9c6a5a..3796ee6 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -438,6 +438,7 @@
IOCTL(HDIO_GET_WCACHE, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_ACOUSTIC, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_GET_ADDRESS, IOC_R, MK_PTR(TYPE_INT))
+ IOCTL(HDIO_GET_BUSSTATE, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_DRIVE_CMD, IOC_R, MK_PTR(TYPE_INT))
IOCTL(HDIO_SET_UNMASKINTR, 0, TYPE_INT)
IOCTL(HDIO_SET_MULTCOUNT, 0, TYPE_INT)
@@ -449,6 +450,7 @@
IOCTL(HDIO_SET_NICE, 0, TYPE_INT)
IOCTL(HDIO_SET_WCACHE, 0, TYPE_INT)
IOCTL(HDIO_SET_ACOUSTIC, 0, TYPE_INT)
+ IOCTL(HDIO_SET_BUSSTATE, 0, TYPE_INT)
IOCTL(HDIO_SET_ADDRESS, 0, TYPE_INT)
IOCTL(VFAT_IOCTL_READDIR_BOTH, IOC_R, MK_PTR(MK_ARRAY(MK_STRUCT(STRUCT_dirent), 2)))
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index aa9c6af..766d7b9 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -1069,6 +1069,7 @@ struct target_format_descr {
#define TARGET_HDIO_GET_WCACHE 0x030e /* get write cache mode on|off */
#define TARGET_HDIO_GET_ACOUSTIC 0x030f /* get acoustic value */
#define TARGET_HDIO_GET_ADDRESS 0x0310 /* get lba addressing modes */
+#define TARGET_HDIO_GET_BUSSTATE 0x031a /* get hwif bus state */
#define TARGET_HDIO_DRIVE_CMD 0x031f /* execute a special drive command */
/* hd/ide ctl's that pass (arg) non-ptr values are numbered 0x032n/0x033n */
@@ -1082,6 +1083,7 @@ struct target_format_descr {
#define TARGET_HDIO_SET_NICE 0x0329 /* set nice flags */
#define TARGET_HDIO_SET_WCACHE 0x032b /* change write cache mode */
#define TARGET_HDIO_SET_ACOUSTIC 0x032c /* change acoustic behavior */
+#define TARGET_HDIO_SET_BUSSTATE 0x032d /* set hwif bus state */
#define TARGET_HDIO_SET_ADDRESS 0x032f /* change lba addressing modes */
/* loop ioctls */
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 11/12] linux-user: Add support for RNDRESEEDCRNG ioctl
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (9 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 10/12] linux-user: Add support for HDIO_GET_BUSSTATE and HDIO_SET_BUSSTATE ioctls Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 12/12] linux-user: Add support for semtimedop() syscall Aleksandar Markovic
11 siblings, 0 replies; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: laurent, amarkovic
From: Aleksandar Markovic <amarkovic@wavecomp.com>
RNDRESEEDCRNG is a newer ioctl (added in kernel 4.17), and an
"ifdef" guard is used for that reason in this patch.
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/ioctls.h | 3 +++
linux-user/syscall_defs.h | 1 +
2 files changed, 4 insertions(+)
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 3796ee6..5efa434 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -259,6 +259,9 @@
IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT))
IOCTL(RNDZAPENTCNT, 0, TYPE_NULL)
IOCTL(RNDCLEARPOOL, 0, TYPE_NULL)
+#ifdef RNDRESEEDCRNG
+ IOCTL(RNDRESEEDCRNG, 0, TYPE_NULL)
+#endif
IOCTL(CDROMPAUSE, 0, TYPE_NULL)
IOCTL(CDROMSTART, 0, TYPE_NULL)
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 766d7b9..314a052 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -850,6 +850,7 @@ struct target_pollfd {
#define TARGET_RNDADDTOENTCNT TARGET_IOW('R', 0x01, int)
#define TARGET_RNDZAPENTCNT TARGET_IO('R', 0x04)
#define TARGET_RNDCLEARPOOL TARGET_IO('R', 0x06)
+#define TARGET_RNDRESEEDCRNG TARGET_IO('R', 0x07)
/* From <linux/fs.h> */
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH for 4.2 v4 12/12] linux-user: Add support for semtimedop() syscall
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
` (10 preceding siblings ...)
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 11/12] linux-user: Add support for RNDRESEEDCRNG ioctl Aleksandar Markovic
@ 2019-07-31 18:19 ` Aleksandar Markovic
2019-07-31 18:22 ` [Qemu-devel] [EXTERNAL][PATCH " Aleksandar Markovic
11 siblings, 1 reply; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:19 UTC (permalink / raw)
To: qemu-devel; +Cc: Aleksandar Rikalo, laurent, amarkovic
From: Aleksandar Rikalo <arikalo@wavecomp.com>
Add support for semtimedop() emulation. It is based on invocation
of safe_semtimedop().
Conversion is left out of safe_semtimedop(), since other safe_xxx()
usually don't contain similar conversions.
Signed-off-by: Aleksandar Rikalo <arikalo@wavecomp.com>
Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com>
---
linux-user/syscall.c | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index ee80175..6825458 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -6650,7 +6650,43 @@ static inline abi_long host_to_target_statx(struct target_statx *host_stx,
return 0;
}
#endif
+#ifdef TARGET_NR_semtimedop
+static inline abi_long do_semtimedop(int semid, abi_long ptr, unsigned nsops,
+ abi_long timeout)
+{
+ struct sembuf *sops;
+ struct timespec ts, *pts;
+ abi_long ret;
+
+ if (timeout) {
+ pts = &ts;
+ if (target_to_host_timespec(pts, timeout)) {
+ return -TARGET_EFAULT;
+ }
+ } else {
+ pts = NULL;
+ }
+ sops = g_malloc(sizeof(struct sembuf) * nsops);
+ if (sops == NULL) {
+ return -TARGET_EFAULT;
+ }
+
+ if (target_to_host_sembuf(sops, ptr, nsops)) {
+ g_free(sops);
+ return -TARGET_EFAULT;
+ }
+
+#ifdef __NR_semtimedop
+ ret = get_errno(safe_semtimedop(semid, sops, nsops, pts));
+#else
+ ret = -TARGET_ENOSYS;
+#endif
+ g_free(sops);
+
+ return ret;
+}
+#endif
/* ??? Using host futex calls even when target atomic operations
are not really atomic probably breaks things. However implementing
@@ -9194,6 +9230,10 @@ static abi_long do_syscall1(void *cpu_env, int num, abi_long arg1,
case TARGET_NR_semop:
return do_semop(arg1, arg2, arg3);
#endif
+#ifdef TARGET_NR_semtimedop
+ case TARGET_NR_semtimedop:
+ return do_semtimedop(arg1, arg2, arg3, arg4);
+#endif
#ifdef TARGET_NR_semctl
case TARGET_NR_semctl:
return do_semctl(arg1, arg2, arg3, arg4);
--
2.7.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [EXTERNAL][PATCH for 4.2 v4 12/12] linux-user: Add support for semtimedop() syscall
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 12/12] linux-user: Add support for semtimedop() syscall Aleksandar Markovic
@ 2019-07-31 18:22 ` Aleksandar Markovic
2019-09-06 9:48 ` Laurent Vivier
0 siblings, 1 reply; 15+ messages in thread
From: Aleksandar Markovic @ 2019-07-31 18:22 UTC (permalink / raw)
To: Aleksandar Markovic, qemu-devel; +Cc: Aleksandar Rikalo, laurent
> From: Aleksandar Rikalo <arikalo@wavecomp.com>
>
> Add support for semtimedop() emulation. It is based on invocation
> of safe_semtimedop().
Hi, Laurent,
Aleksandar R. is considering submitting this part too:
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index b5bc6e4..0e56b8d 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4194,6 +4194,17 @@ static abi_long do_ipc(CPUArchState *cpu_env,
case IPCOP_shmctl:
ret = do_shmctl(first, second, ptr);
break;
+#ifdef __NR_ipc
+ case IPCOP_semtimedop: {
+ struct sembuf sops[nsops];
+ if (target_to_host_sembuf(first, ptr, second)) {
+ ret = -TARGET_EFAULT;
+ } else {
+ ret = get_errno(safe_ipc(IPCOP_semtimedop, first, second, 0, sops, 0));
+ }
+ break;
+ }
+#endif
default:
gemu_log("Unsupported ipc call: %d (version %d)\n", call, version);
ret = -TARGET_ENOSYS;
Does this look fine to you?
Sincerely,
Aleksandar
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [EXTERNAL][PATCH for 4.2 v4 12/12] linux-user: Add support for semtimedop() syscall
2019-07-31 18:22 ` [Qemu-devel] [EXTERNAL][PATCH " Aleksandar Markovic
@ 2019-09-06 9:48 ` Laurent Vivier
0 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2019-09-06 9:48 UTC (permalink / raw)
To: Aleksandar Markovic, Aleksandar Markovic, qemu-devel; +Cc: Aleksandar Rikalo
Le 31/07/2019 à 20:22, Aleksandar Markovic a écrit :
>> From: Aleksandar Rikalo <arikalo@wavecomp.com>
>>
>> Add support for semtimedop() emulation. It is based on invocation
>> of safe_semtimedop().
>
> Hi, Laurent,
>
> Aleksandar R. is considering submitting this part too:
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index b5bc6e4..0e56b8d 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -4194,6 +4194,17 @@ static abi_long do_ipc(CPUArchState *cpu_env,
> case IPCOP_shmctl:
> ret = do_shmctl(first, second, ptr);
> break;
> +#ifdef __NR_ipc
> + case IPCOP_semtimedop: {
> + struct sembuf sops[nsops];
> + if (target_to_host_sembuf(first, ptr, second)) {
> + ret = -TARGET_EFAULT;
> + } else {
> + ret = get_errno(safe_ipc(IPCOP_semtimedop, first, second, 0, sops, 0));
> + }
> + break;
> + }
> +#endif
You should do something like that:
case IPCOP_semtimedop
ret = do_semtimedop( ... );
break;
Thanks,
Laurent
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2019-09-06 9:50 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-31 18:19 [Qemu-devel] [PATCH for 4.2 v4 00/12] linux-user: Misc patches for 4.2 Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 01/12] linux user: Add support for FDFLUSH ioctl Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 02/12] linux-user: Add support for FDMSGON and FDMSGOFF ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 03/12] linux-user: Add support for FDRESET, FDRAWCMD, FDTWADDLE, and FDEJECT ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 04/12] linux-user: Add support for FDFMTBEG, FDFMTTRK, and FDFMTEND ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 05/12] linux-user: Add support for FDSETEMSGTRESH, FDSETMAXERRS, and FDGETMAXERRS ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 06/12] linux-user: Add support for HDIO_GET_NICE and HDIO_SET_NICE ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 07/12] linux-user: Add support for HDIO_GET_WCACHE and HDIO_SET_WCACHE ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 08/12] linux-user: Add support for HDIO_GET_ACOUSTIC and HDIO_SET_ACOUSTIC ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 09/12] linux-user: Add support for HDIO_GET_ADDRESS and HDIO_SET_ADDRESS ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 10/12] linux-user: Add support for HDIO_GET_BUSSTATE and HDIO_SET_BUSSTATE ioctls Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 11/12] linux-user: Add support for RNDRESEEDCRNG ioctl Aleksandar Markovic
2019-07-31 18:19 ` [Qemu-devel] [PATCH for 4.2 v4 12/12] linux-user: Add support for semtimedop() syscall Aleksandar Markovic
2019-07-31 18:22 ` [Qemu-devel] [EXTERNAL][PATCH " Aleksandar Markovic
2019-09-06 9:48 ` Laurent Vivier
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.