All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches
@ 2016-10-12 11:48 Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 1/5] linux-user: Update syscall numbers tables for Mips Aleksandar Markovic
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Aleksandar Markovic @ 2016-10-12 11:48 UTC (permalink / raw)
  To: qemu-devel, riku.voipio, laurent, peter.maydell, aurelien,
	Yongbok.Kim, leon.alrae, petar.jovanovic, miodrag.dinic,
	aleksandar.rikalo, aleksandar.markovic

From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

v1 -> v2:

    - Added patches 1 and 2.
    - Omitted patch on sysfs(); this patch will be treated separately,
      as it is not Mips-specific, and logicaly does not belong to this
      series; it will be sent at later time.

This is just a set of several Qemu Linux user Mips-specific patches that
are mostly updating certain Mips-specific data in Qemu code.

Aleksandar Markovic (5):
  linux-user: Update syscall numbers tables for Mips
  linux-user: Update mips_syscall_args[] array in main.c
  linux-user: Update ioctls definitions for Mips32
  linux-user: Redirect termbits.h for Mips64 to termbits.h for Mips32
  linux-user: Fix fadvise64() syscall support for Mips32

 linux-user/main.c              |  24 +++-
 linux-user/mips/syscall_nr.h   |   5 +-
 linux-user/mips/termbits.h     |  12 ++
 linux-user/mips64/syscall_nr.h |   7 ++
 linux-user/mips64/termbits.h   | 245 +----------------------------------------
 5 files changed, 46 insertions(+), 247 deletions(-)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2 1/5] linux-user: Update syscall numbers tables for Mips
  2016-10-12 11:48 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
@ 2016-10-12 11:48 ` Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 2/5] linux-user: Update mips_syscall_args[] array in main.c Aleksandar Markovic
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Aleksandar Markovic @ 2016-10-12 11:48 UTC (permalink / raw)
  To: qemu-devel, riku.voipio, laurent, peter.maydell, aurelien,
	Yongbok.Kim, leon.alrae, petar.jovanovic, miodrag.dinic,
	aleksandar.rikalo, aleksandar.markovic

From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

Update from kernel header arch/mips/include/uqapi/asm/unistd.h.

Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
---
 linux-user/mips/syscall_nr.h   | 3 +++
 linux-user/mips64/syscall_nr.h | 7 +++++++
 2 files changed, 10 insertions(+)

diff --git a/linux-user/mips/syscall_nr.h b/linux-user/mips/syscall_nr.h
index 6819f86..8681558 100644
--- a/linux-user/mips/syscall_nr.h
+++ b/linux-user/mips/syscall_nr.h
@@ -363,3 +363,6 @@
 #define TARGET_NR_userfaultfd           (TARGET_NR_Linux + 357)
 #define TARGET_NR_membarrier            (TARGET_NR_Linux + 358)
 #define TARGET_NR_mlock2                (TARGET_NR_Linux + 359)
+#define TARGET_NR_copy_file_range       (TARGET_NR_Linux + 360)
+#define TARGET_NR_preadv2               (TARGET_NR_Linux + 361)
+#define TARGET_NR_pwritev2              (TARGET_NR_Linux + 362)
diff --git a/linux-user/mips64/syscall_nr.h b/linux-user/mips64/syscall_nr.h
index 746cc26..89d9192 100644
--- a/linux-user/mips64/syscall_nr.h
+++ b/linux-user/mips64/syscall_nr.h
@@ -327,6 +327,9 @@
 #define TARGET_NR_userfaultfd           (TARGET_NR_Linux + 321)
 #define TARGET_NR_membarrier            (TARGET_NR_Linux + 322)
 #define TARGET_NR_mlock2                (TARGET_NR_Linux + 323)
+#define TARGET_NR_copy_file_range       (TARGET_NR_Linux + 324)
+#define TARGET_NR_preadv2               (TARGET_NR_Linux + 325)
+#define TARGET_NR_pwritev2              (TARGET_NR_Linux + 326)
 
 #else
 /*
@@ -653,4 +656,8 @@
 #define TARGET_NR_userfaultfd           (TARGET_NR_Linux + 317)
 #define TARGET_NR_membarrier            (TARGET_NR_Linux + 318)
 #define TARGET_NR_mlock2                (TARGET_NR_Linux + 319)
+#define TARGET_NR_copy_file_range       (TARGET_NR_Linux + 320)
+#define TARGET_NR_preadv2               (TARGET_NR_Linux + 321)
+#define TARGET_NR_pwritev2              (TARGET_NR_Linux + 322)
+
 #endif
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2 2/5] linux-user: Update mips_syscall_args[] array in main.c
  2016-10-12 11:48 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 1/5] linux-user: Update syscall numbers tables for Mips Aleksandar Markovic
@ 2016-10-12 11:48 ` Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 3/5] linux-user: Update ioctls definitions for Mips32 Aleksandar Markovic
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Aleksandar Markovic @ 2016-10-12 11:48 UTC (permalink / raw)
  To: qemu-devel, riku.voipio, laurent, peter.maydell, aurelien,
	Yongbok.Kim, leon.alrae, petar.jovanovic, miodrag.dinic,
	aleksandar.rikalo, aleksandar.markovic

From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

Array mips_syscall_args[] determines number of arguments for each
syscall on Mips32. It wasn't updated with newer syscalls. Also,
preadv and pwritev have 5 arguments, not 6.

Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
---
 linux-user/main.c | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/linux-user/main.c b/linux-user/main.c
index 9e4b430..a5b9369 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -2295,8 +2295,8 @@ static const uint8_t mips_syscall_args[] = {
         MIPS_SYS(sys_dup3, 3)
         MIPS_SYS(sys_pipe2, 2)
         MIPS_SYS(sys_inotify_init1, 1)
-        MIPS_SYS(sys_preadv, 6)         /* 4330 */
-        MIPS_SYS(sys_pwritev, 6)
+        MIPS_SYS(sys_preadv, 5)         /* 4330 */
+        MIPS_SYS(sys_pwritev, 5)
         MIPS_SYS(sys_rt_tgsigqueueinfo, 4)
         MIPS_SYS(sys_perf_event_open, 5)
         MIPS_SYS(sys_accept4, 4)
@@ -2308,6 +2308,26 @@ static const uint8_t mips_syscall_args[] = {
         MIPS_SYS(sys_open_by_handle_at, 3) /* 4340 */
         MIPS_SYS(sys_clock_adjtime, 2)
         MIPS_SYS(sys_syncfs, 1)
+        MIPS_SYS(sys_sendmmsg, 4)
+        MIPS_SYS(sys_setns, 2)
+        MIPS_SYS(sys_process_vm_readv, 6) /* 345 */
+        MIPS_SYS(sys_process_vm_writev, 6)
+        MIPS_SYS(sys_kcmp, 5)
+        MIPS_SYS(sys_finit_module, 3)
+        MIPS_SYS(sys_sched_setattr, 2)
+        MIPS_SYS(sys_sched_getattr, 3)  /* 350 */
+        MIPS_SYS(sys_renameat2, 5)
+        MIPS_SYS(sys_seccomp, 3)
+        MIPS_SYS(sys_getrandom, 3)
+        MIPS_SYS(sys_memfd_create, 2)
+        MIPS_SYS(sys_bpf, 3)            /* 355 */
+        MIPS_SYS(sys_execveat, 5)
+        MIPS_SYS(sys_userfaultfd, 1)
+        MIPS_SYS(sys_membarrier, 2)
+        MIPS_SYS(sys_mlock2, 3)
+        MIPS_SYS(sys_copy_file_range, 6) /* 360 */
+        MIPS_SYS(sys_preadv2, 6)
+        MIPS_SYS(sys_pwritev2, 6)
 };
 #  undef MIPS_SYS
 # endif /* O32 */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2 3/5] linux-user: Update ioctls definitions for Mips32
  2016-10-12 11:48 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 1/5] linux-user: Update syscall numbers tables for Mips Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 2/5] linux-user: Update mips_syscall_args[] array in main.c Aleksandar Markovic
@ 2016-10-12 11:48 ` Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 4/5] linux-user: Redirect termbits.h for Mips64 to termbits.h " Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 5/5] linux-user: Fix fadvise64() syscall support " Aleksandar Markovic
  4 siblings, 0 replies; 9+ messages in thread
From: Aleksandar Markovic @ 2016-10-12 11:48 UTC (permalink / raw)
  To: qemu-devel, riku.voipio, laurent, peter.maydell, aurelien,
	Yongbok.Kim, leon.alrae, petar.jovanovic, miodrag.dinic,
	aleksandar.rikalo, aleksandar.markovic

From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

Update linux-user/mips/termbits.h with ioctl definitions from kernel
file arch/mips/include/uapi/asm/ioctls.h.

Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
---
 linux-user/mips/termbits.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/linux-user/mips/termbits.h b/linux-user/mips/termbits.h
index d3a6cf8..a0bcad0 100644
--- a/linux-user/mips/termbits.h
+++ b/linux-user/mips/termbits.h
@@ -219,8 +219,20 @@ struct target_termios {
 #define TARGET_TIOCSBRK	0x5427  /* BSD compatibility */
 #define TARGET_TIOCCBRK	0x5428  /* BSD compatibility */
 #define TARGET_TIOCGSID	0x7416  /* Return the session ID of FD */
+#define TARGET_TCGETS2          TARGET_IOR('T', 0x2A, struct termios2)
+#define TARGET_TCSETS2          TARGET_IOW('T', 0x2B, struct termios2)
+#define TARGET_TCSETSW2         TARGET_IOW('T', 0x2C, struct termios2)
+#define TARGET_TCSETSF2         TARGET_IOW('T', 0x2D, struct termios2)
+#define TARGET_TIOCGRS485       TARGET_IOR('T', 0x2E, struct serial_rs485)
+#define TARGET_TIOCSRS485       TARGET_IOWR('T', 0x2F, struct serial_rs485)
 #define TARGET_TIOCGPTN	TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
 #define TARGET_TIOCSPTLCK	TARGET_IOW('T',0x31, int)  /* Lock/unlock Pty */
+#define TARGET_TIOCGDEV         TARGET_IOR('T', 0x32, unsigned int)
+#define TARGET_TIOCSIG          TARGET_IOW('T', 0x36, int)
+#define TARGET_TIOCVHANGUP      0x5437
+#define TARGET_TIOCGPKT         TARGET_IOR('T', 0x38, int)
+#define TARGET_TIOCGPTLCK       TARGET_IOR('T', 0x39, int)
+#define TARGET_TIOCGEXCL        TARGET_IOR('T', 0x40, int)
 
 /* I hope the range from 0x5480 on is free ... */
 #define TARGET_TIOCSCTTY	0x5480		/* become controlling tty */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2 4/5] linux-user: Redirect termbits.h for Mips64 to termbits.h for Mips32
  2016-10-12 11:48 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
                   ` (2 preceding siblings ...)
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 3/5] linux-user: Update ioctls definitions for Mips32 Aleksandar Markovic
@ 2016-10-12 11:48 ` Aleksandar Markovic
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 5/5] linux-user: Fix fadvise64() syscall support " Aleksandar Markovic
  4 siblings, 0 replies; 9+ messages in thread
From: Aleksandar Markovic @ 2016-10-12 11:48 UTC (permalink / raw)
  To: qemu-devel, riku.voipio, laurent, peter.maydell, aurelien,
	Yongbok.Kim, leon.alrae, petar.jovanovic, miodrag.dinic,
	aleksandar.rikalo, aleksandar.markovic

From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

linux-user/mips64/termbits.h and linux-user/mips/termbits.h
originate from the same files in Linux kernel. There is no plan
to split original headers in Linux kernel into Mips32 and Mips64
versions any time soon. Therefore, it is better not to have
separate Mips32 and Mips64 variants in Qemu.

This patch makes these two files effectively the same, allowing the
mainenance by changing only a single file. (This is already done in
the same fashion for some other headers in same directories.)

Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
---
 linux-user/mips64/termbits.h | 245 +------------------------------------------
 1 file changed, 1 insertion(+), 244 deletions(-)

diff --git a/linux-user/mips64/termbits.h b/linux-user/mips64/termbits.h
index d3a6cf8..d0a271e 100644
--- a/linux-user/mips64/termbits.h
+++ b/linux-user/mips64/termbits.h
@@ -1,245 +1,2 @@
-/* from asm/termbits.h */
+#include "../mips/termbits.h"
 
-#define TARGET_NCCS 23
-
-struct target_termios {
-    unsigned int c_iflag;               /* input mode flags */
-    unsigned int c_oflag;               /* output mode flags */
-    unsigned int c_cflag;               /* control mode flags */
-    unsigned int c_lflag;               /* local mode flags */
-    unsigned char c_line;                    /* line discipline */
-    unsigned char c_cc[TARGET_NCCS];                /* control characters */
-};
-
-/* c_iflag bits */
-#define TARGET_IGNBRK  0000001
-#define TARGET_BRKINT  0000002
-#define TARGET_IGNPAR  0000004
-#define TARGET_PARMRK  0000010
-#define TARGET_INPCK   0000020
-#define TARGET_ISTRIP  0000040
-#define TARGET_INLCR   0000100
-#define TARGET_IGNCR   0000200
-#define TARGET_ICRNL   0000400
-#define TARGET_IUCLC   0001000
-#define TARGET_IXON    0002000
-#define TARGET_IXANY   0004000
-#define TARGET_IXOFF   0010000
-#define TARGET_IMAXBEL 0020000
-#define TARGET_IUTF8   0040000
-
-/* c_oflag bits */
-#define TARGET_OPOST   0000001
-#define TARGET_OLCUC   0000002
-#define TARGET_ONLCR   0000004
-#define TARGET_OCRNL   0000010
-#define TARGET_ONOCR   0000020
-#define TARGET_ONLRET  0000040
-#define TARGET_OFILL   0000100
-#define TARGET_OFDEL   0000200
-#define TARGET_NLDLY   0000400
-#define   TARGET_NL0   0000000
-#define   TARGET_NL1   0000400
-#define TARGET_CRDLY   0003000
-#define   TARGET_CR0   0000000
-#define   TARGET_CR1   0001000
-#define   TARGET_CR2   0002000
-#define   TARGET_CR3   0003000
-#define TARGET_TABDLY  0014000
-#define   TARGET_TAB0  0000000
-#define   TARGET_TAB1  0004000
-#define   TARGET_TAB2  0010000
-#define   TARGET_TAB3  0014000
-#define   TARGET_XTABS 0014000
-#define TARGET_BSDLY   0020000
-#define   TARGET_BS0   0000000
-#define   TARGET_BS1   0020000
-#define TARGET_VTDLY   0040000
-#define   TARGET_VT0   0000000
-#define   TARGET_VT1   0040000
-#define TARGET_FFDLY   0100000
-#define   TARGET_FF0   0000000
-#define   TARGET_FF1   0100000
-
-/* c_cflag bit meaning */
-#define TARGET_CBAUD   0010017
-#define  TARGET_B0     0000000         /* hang up */
-#define  TARGET_B50    0000001
-#define  TARGET_B75    0000002
-#define  TARGET_B110   0000003
-#define  TARGET_B134   0000004
-#define  TARGET_B150   0000005
-#define  TARGET_B200   0000006
-#define  TARGET_B300   0000007
-#define  TARGET_B600   0000010
-#define  TARGET_B1200  0000011
-#define  TARGET_B1800  0000012
-#define  TARGET_B2400  0000013
-#define  TARGET_B4800  0000014
-#define  TARGET_B9600  0000015
-#define  TARGET_B19200 0000016
-#define  TARGET_B38400 0000017
-#define TARGET_EXTA B19200
-#define TARGET_EXTB B38400
-#define TARGET_CSIZE   0000060
-#define   TARGET_CS5   0000000
-#define   TARGET_CS6   0000020
-#define   TARGET_CS7   0000040
-#define   TARGET_CS8   0000060
-#define TARGET_CSTOPB  0000100
-#define TARGET_CREAD   0000200
-#define TARGET_PARENB  0000400
-#define TARGET_PARODD  0001000
-#define TARGET_HUPCL   0002000
-#define TARGET_CLOCAL  0004000
-#define TARGET_CBAUDEX 0010000
-#define  TARGET_BOTHER   0010000
-#define  TARGET_B57600   0010001
-#define  TARGET_B115200  0010002
-#define  TARGET_B230400  0010003
-#define  TARGET_B460800  0010004
-#define  TARGET_B500000  0010005
-#define  TARGET_B576000  0010006
-#define  TARGET_B921600  0010007
-#define  TARGET_B1000000 0010010
-#define  TARGET_B1152000 0010011
-#define  TARGET_B1500000 0010012
-#define  TARGET_B2000000 0010013
-#define  TARGET_B2500000 0010014
-#define  TARGET_B3000000 0010015
-#define  TARGET_B3500000 0010016
-#define  TARGET_B4000000 0010017
-#define TARGET_CIBAUD    002003600000  /* input baud rate (not used) */
-#define TARGET_CMSPAR    010000000000  /* mark or space (stick) parity */
-#define TARGET_CRTSCTS   020000000000  /* flow control */
-
-/* c_lflag bits */
-#define TARGET_ISIG    0000001
-#define TARGET_ICANON  0000002
-#define TARGET_XCASE   0000004
-#define TARGET_ECHO    0000010
-#define TARGET_ECHOE   0000020
-#define TARGET_ECHOK   0000040
-#define TARGET_ECHONL  0000100
-#define TARGET_NOFLSH  0000200
-#define TARGET_IEXTEN  0000400
-#define TARGET_ECHOCTL 0001000
-#define TARGET_ECHOPRT 0002000
-#define TARGET_ECHOKE  0004000
-#define TARGET_FLUSHO  0010000
-#define TARGET_PENDIN  0040000
-#define TARGET_TOSTOP  0100000
-#define TARGET_ITOSTOP TARGET_TOSTOP
-
-/* c_cc character offsets */
-#define TARGET_VINTR	0
-#define TARGET_VQUIT	1
-#define TARGET_VERASE	2
-#define TARGET_VKILL	3
-#define TARGET_VMIN	4
-#define TARGET_VTIME	5
-#define TARGET_VEOL2	6
-#define TARGET_VSWTC	7
-#define TARGET_VSTART	8
-#define TARGET_VSTOP	9
-#define TARGET_VSUSP	10
-/* VDSUSP not supported */
-#define TARGET_VREPRINT	12
-#define TARGET_VDISCARD	13
-#define TARGET_VWERASE	14
-#define TARGET_VLNEXT	15
-#define TARGET_VEOF	16
-#define TARGET_VEOL	17
-
-/* ioctls */
-
-#define TARGET_TCGETA		0x5401
-#define TARGET_TCSETA		0x5402	/* Clashes with SNDCTL_TMR_START sound ioctl */
-#define TARGET_TCSETAW		0x5403
-#define TARGET_TCSETAF		0x5404
-
-#define TARGET_TCSBRK		0x5405
-#define TARGET_TCXONC		0x5406
-#define TARGET_TCFLSH		0x5407
-
-#define TARGET_TCGETS		0x540d
-#define TARGET_TCSETS		0x540e
-#define TARGET_TCSETSW		0x540f
-#define TARGET_TCSETSF		0x5410
-
-#define TARGET_TIOCEXCL	0x740d		/* set exclusive use of tty */
-#define TARGET_TIOCNXCL	0x740e		/* reset exclusive use of tty */
-#define TARGET_TIOCOUTQ	0x7472		/* output queue size */
-#define TARGET_TIOCSTI	0x5472		/* simulate terminal input */
-#define TARGET_TIOCMGET	0x741d		/* get all modem bits */
-#define TARGET_TIOCMBIS	0x741b		/* bis modem bits */
-#define TARGET_TIOCMBIC	0x741c		/* bic modem bits */
-#define TARGET_TIOCMSET	0x741a		/* set all modem bits */
-#define TARGET_TIOCPKT		0x5470		/* pty: set/clear packet mode */
-#define	 TARGET_TIOCPKT_DATA		0x00	/* data packet */
-#define	 TARGET_TIOCPKT_FLUSHREAD	0x01	/* flush packet */
-#define	 TARGET_TIOCPKT_FLUSHWRITE	0x02	/* flush packet */
-#define	 TARGET_TIOCPKT_STOP		0x04	/* stop output */
-#define	 TARGET_TIOCPKT_START		0x08	/* start output */
-#define	 TARGET_TIOCPKT_NOSTOP		0x10	/* no more ^S, ^Q */
-#define	 TARGET_TIOCPKT_DOSTOP		0x20	/* now do ^S ^Q */
-/* #define  TIOCPKT_IOCTL		0x40	state change of pty driver */
-#define TARGET_TIOCSWINSZ	TARGET_IOW('t', 103, struct winsize)	/* set window size */
-#define TARGET_TIOCGWINSZ	TARGET_IOR('t', 104, struct winsize)	/* get window size */
-#define TARGET_TIOCNOTTY	0x5471		/* void tty association */
-#define TARGET_TIOCSETD	0x7401
-#define TARGET_TIOCGETD	0x7400
-
-#define TARGET_FIOCLEX		0x6601
-#define TARGET_FIONCLEX	0x6602
-#define TARGET_FIOASYNC	0x667d
-#define TARGET_FIONBIO		0x667e
-#define TARGET_FIOQSIZE	0x667f
-
-#define TARGET_TIOCGLTC	0x7474			/* get special local chars */
-#define TARGET_TIOCSLTC	0x7475			/* set special local chars */
-#define TARGET_TIOCSPGRP	TARGET_IOW('t', 118, int)	/* set pgrp of tty */
-#define TARGET_TIOCGPGRP	TARGET_IOR('t', 119, int)	/* get pgrp of tty */
-#define TARGET_TIOCCONS	TARGET_IOW('t', 120, int)	/* become virtual console */
-
-#define TARGET_FIONREAD	0x467f
-#define TARGET_TIOCINQ		TARGET_FIONREAD
-
-#define TARGET_TIOCGETP        0x7408
-#define TARGET_TIOCSETP        0x7409
-#define TARGET_TIOCSETN        0x740a			/* TIOCSETP wo flush */
-
-/* #define TARGET_TIOCSETA	TARGET_IOW('t', 20, struct termios) set termios struct */
-/* #define TARGET_TIOCSETAW	TARGET_IOW('t', 21, struct termios) drain output, set */
-/* #define TARGET_TIOCSETAF	TARGET_IOW('t', 22, struct termios) drn out, fls in, set */
-/* #define TARGET_TIOCGETD	TARGET_IOR('t', 26, int)	get line discipline */
-/* #define TARGET_TIOCSETD	TARGET_IOW('t', 27, int)	set line discipline */
-						/* 127-124 compat */
-
-#define TARGET_TIOCSBRK	0x5427  /* BSD compatibility */
-#define TARGET_TIOCCBRK	0x5428  /* BSD compatibility */
-#define TARGET_TIOCGSID	0x7416  /* Return the session ID of FD */
-#define TARGET_TIOCGPTN	TARGET_IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
-#define TARGET_TIOCSPTLCK	TARGET_IOW('T',0x31, int)  /* Lock/unlock Pty */
-
-/* I hope the range from 0x5480 on is free ... */
-#define TARGET_TIOCSCTTY	0x5480		/* become controlling tty */
-#define TARGET_TIOCGSOFTCAR	0x5481
-#define TARGET_TIOCSSOFTCAR	0x5482
-#define TARGET_TIOCLINUX	0x5483
-#define TARGET_TIOCGSERIAL	0x5484
-#define TARGET_TIOCSSERIAL	0x5485
-#define TARGET_TCSBRKP		0x5486	/* Needed for POSIX tcsendbreak() */
-#define TARGET_TIOCSERCONFIG	0x5488
-#define TARGET_TIOCSERGWILD	0x5489
-#define TARGET_TIOCSERSWILD	0x548a
-#define TARGET_TIOCGLCKTRMIOS	0x548b
-#define TARGET_TIOCSLCKTRMIOS	0x548c
-#define TARGET_TIOCSERGSTRUCT	0x548d /* For debugging only */
-#define TARGET_TIOCSERGETLSR   0x548e /* Get line status register */
-#define TARGET_TIOCSERGETMULTI 0x548f /* Get multiport config  */
-#define TARGET_TIOCSERSETMULTI 0x5490 /* Set multiport config */
-#define TARGET_TIOCMIWAIT      0x5491 /* wait for a change on serial input line(s) */
-#define TARGET_TIOCGICOUNT     0x5492 /* read serial port inline interrupt counts */
-#define TARGET_TIOCGHAYESESP	0x5493 /* Get Hayes ESP configuration */
-#define TARGET_TIOCSHAYESESP	0x5494 /* Set Hayes ESP configuration */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2 5/5] linux-user: Fix fadvise64() syscall support for Mips32
  2016-10-12 11:48 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
                   ` (3 preceding siblings ...)
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 4/5] linux-user: Redirect termbits.h for Mips64 to termbits.h " Aleksandar Markovic
@ 2016-10-12 11:48 ` Aleksandar Markovic
  2016-10-12 12:00   ` Peter Maydell
  4 siblings, 1 reply; 9+ messages in thread
From: Aleksandar Markovic @ 2016-10-12 11:48 UTC (permalink / raw)
  To: qemu-devel, riku.voipio, laurent, peter.maydell, aurelien,
	Yongbok.Kim, leon.alrae, petar.jovanovic, miodrag.dinic,
	aleksandar.rikalo, aleksandar.markovic

From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

By looking at the file arch/mips/kernel/sys.S in Linux kernel,
it can be deduced that, for Mips32 platform, syscall
corresponding to number _NR_fadvise64 translates to kernel
function sys_fadvise64_64, and that argument layout is as
follows:
          0             32 0             32
         +----------------+----------------+
  (arg1) |       fd       |     __pad      | (arg2)
         +----------------+----------------+
  (arg3) |             buffer              | (arg4)
         +----------------+----------------+
  (arg5) |               len               | (arg6)
         +----------------+----------------+
  (arg7) |     advise     |    not used    | (arg8)
         +----------------+----------------+

This can be deduced from glibc code as well, and relevant commits
in linux kernel and glibc.

Mips32 uniqness is that it does not define _NR_fadvise64_64,
however its fadvise64 implemantation is identical to
fadvise64_64 implementation on most other platforms.

The fix is to change TARGET_NR_fadvise64 to TARGET_NR_fadvise64_64
in Mips32 syscall numbers table. Array mips_syscall_args[] in
linux-user/main.c also already have "fadvise64_64" (and not
"fadvise64") in corresponding place for the syscall number in
question, so no change for linux-user/main.c.

This patch also fixes the failure LTP test posix_fadvise03, if
executed on Qemu-emulated Mips32 platform (user mode).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aleksandar Rikalo <aleksandar.rikalo@imgtec.com>
Signed-off-by: Miroslav Tisma <miroslav.tisma@imgtec.com>
Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
---
 linux-user/mips/syscall_nr.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/linux-user/mips/syscall_nr.h b/linux-user/mips/syscall_nr.h
index 8681558..299b6dd 100644
--- a/linux-user/mips/syscall_nr.h
+++ b/linux-user/mips/syscall_nr.h
@@ -256,7 +256,7 @@
 #define TARGET_NR_remap_file_pages	(TARGET_NR_Linux + 251)
 #define TARGET_NR_set_tid_address	(TARGET_NR_Linux + 252)
 #define TARGET_NR_restart_syscall	(TARGET_NR_Linux + 253)
-#define TARGET_NR_fadvise64		(TARGET_NR_Linux + 254)
+#define TARGET_NR_fadvise64_64          (TARGET_NR_Linux + 254)
 #define TARGET_NR_statfs64		(TARGET_NR_Linux + 255)
 #define TARGET_NR_fstatfs64		(TARGET_NR_Linux + 256)
 #define TARGET_NR_timer_create		(TARGET_NR_Linux + 257)
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v2 5/5] linux-user: Fix fadvise64() syscall support for Mips32
  2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 5/5] linux-user: Fix fadvise64() syscall support " Aleksandar Markovic
@ 2016-10-12 12:00   ` Peter Maydell
  0 siblings, 0 replies; 9+ messages in thread
From: Peter Maydell @ 2016-10-12 12:00 UTC (permalink / raw)
  To: Aleksandar Markovic
  Cc: QEMU Developers, Riku Voipio, Laurent Vivier, Aurelien Jarno,
	Yongbok Kim, Leon Alrae, Petar Jovanovic, Miodrag Dinic,
	Aleksandar Rikalo, Aleksandar Markovic

On 12 October 2016 at 12:48, Aleksandar Markovic
<aleksandar.markovic@rt-rk.com> wrote:
> From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
>
> By looking at the file arch/mips/kernel/sys.S in Linux kernel,
> it can be deduced that, for Mips32 platform, syscall
> corresponding to number _NR_fadvise64 translates to kernel
> function sys_fadvise64_64, and that argument layout is as
> follows:
>           0             32 0             32
>          +----------------+----------------+
>   (arg1) |       fd       |     __pad      | (arg2)
>          +----------------+----------------+
>   (arg3) |             buffer              | (arg4)
>          +----------------+----------------+
>   (arg5) |               len               | (arg6)
>          +----------------+----------------+
>   (arg7) |     advise     |    not used    | (arg8)
>          +----------------+----------------+
>
> This can be deduced from glibc code as well, and relevant commits
> in linux kernel and glibc.
>
> Mips32 uniqness is that it does not define _NR_fadvise64_64,
> however its fadvise64 implemantation is identical to
> fadvise64_64 implementation on most other platforms.
>
> The fix is to change TARGET_NR_fadvise64 to TARGET_NR_fadvise64_64
> in Mips32 syscall numbers table. Array mips_syscall_args[] in
> linux-user/main.c also already have "fadvise64_64" (and not
> "fadvise64") in corresponding place for the syscall number in
> question, so no change for linux-user/main.c.
>
> This patch also fixes the failure LTP test posix_fadvise03, if
> executed on Qemu-emulated Mips32 platform (user mode).
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Eh? No I didn't...

> Signed-off-by: Aleksandar Rikalo <aleksandar.rikalo@imgtec.com>
> Signed-off-by: Miroslav Tisma <miroslav.tisma@imgtec.com>
> Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
> ---
>  linux-user/mips/syscall_nr.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/linux-user/mips/syscall_nr.h b/linux-user/mips/syscall_nr.h
> index 8681558..299b6dd 100644
> --- a/linux-user/mips/syscall_nr.h
> +++ b/linux-user/mips/syscall_nr.h
> @@ -256,7 +256,7 @@
>  #define TARGET_NR_remap_file_pages     (TARGET_NR_Linux + 251)
>  #define TARGET_NR_set_tid_address      (TARGET_NR_Linux + 252)
>  #define TARGET_NR_restart_syscall      (TARGET_NR_Linux + 253)
> -#define TARGET_NR_fadvise64            (TARGET_NR_Linux + 254)
> +#define TARGET_NR_fadvise64_64          (TARGET_NR_Linux + 254)

A comment mentioning that the kernel calls this fadvise64 but
the semantics are those of fadvise64_64 seems worthwhile to
avoid it being "corrected" back in future.

>  #define TARGET_NR_statfs64             (TARGET_NR_Linux + 255)
>  #define TARGET_NR_fstatfs64            (TARGET_NR_Linux + 256)
>  #define TARGET_NR_timer_create         (TARGET_NR_Linux + 257)
> --
> 2.9.3

thanks
-- PMM

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches
  2016-10-12 12:30 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
@ 2016-10-17 13:02 ` Riku Voipio
  0 siblings, 0 replies; 9+ messages in thread
From: Riku Voipio @ 2016-10-17 13:02 UTC (permalink / raw)
  To: Aleksandar Markovic
  Cc: qemu-devel, laurent, peter.maydell, aurelien, Yongbok.Kim,
	petar.jovanovic, miodrag.dinic, aleksandar.rikalo,
	aleksandar.markovic

On Wed, Oct 12, 2016 at 02:30:20PM +0200, Aleksandar Markovic wrote:
> From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
> 
> v2 -> v3:
> 
>     - Updated commit message for patch 5.
> 
> v1 -> v2:
> 
>     - Added patches 1 and 2.
>     - Omitted patch on sysfs(); this patch will be treated separately,
>       as it is not Mips-specific, and logicaly does not belong to this
>       series; it will be sent at later time.
> 
> This is just a set of several Qemu Linux user Mips-specific patches that
> are mostly updating certain Mips-specific data in Qemu code.

Thanks, series applied to linux-user.

> Aleksandar Markovic (5):
>   linux-user: Update syscall numbers tables for Mips
>   linux-user: Update mips_syscall_args[] array in main.c
>   linux-user: Update ioctls definitions for Mips32
>   linux-user: Redirect termbits.h for Mips64 to termbits.h for Mips32
>   linux-user: Fix fadvise64() syscall support for Mips32
> 
>  linux-user/main.c              |  24 +++-
>  linux-user/mips/syscall_nr.h   |   5 +-
>  linux-user/mips/termbits.h     |  12 ++
>  linux-user/mips64/syscall_nr.h |   7 ++
>  linux-user/mips64/termbits.h   | 245 +----------------------------------------
>  5 files changed, 46 insertions(+), 247 deletions(-)
> 
> -- 
> 2.9.3
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches
@ 2016-10-12 12:30 Aleksandar Markovic
  2016-10-17 13:02 ` Riku Voipio
  0 siblings, 1 reply; 9+ messages in thread
From: Aleksandar Markovic @ 2016-10-12 12:30 UTC (permalink / raw)
  To: qemu-devel, riku.voipio, laurent, peter.maydell, aurelien,
	Yongbok.Kim, petar.jovanovic, miodrag.dinic, aleksandar.rikalo,
	aleksandar.markovic

From: Aleksandar Markovic <aleksandar.markovic@imgtec.com>

v2 -> v3:

    - Updated commit message for patch 5.

v1 -> v2:

    - Added patches 1 and 2.
    - Omitted patch on sysfs(); this patch will be treated separately,
      as it is not Mips-specific, and logicaly does not belong to this
      series; it will be sent at later time.

This is just a set of several Qemu Linux user Mips-specific patches that
are mostly updating certain Mips-specific data in Qemu code.

Aleksandar Markovic (5):
  linux-user: Update syscall numbers tables for Mips
  linux-user: Update mips_syscall_args[] array in main.c
  linux-user: Update ioctls definitions for Mips32
  linux-user: Redirect termbits.h for Mips64 to termbits.h for Mips32
  linux-user: Fix fadvise64() syscall support for Mips32

 linux-user/main.c              |  24 +++-
 linux-user/mips/syscall_nr.h   |   5 +-
 linux-user/mips/termbits.h     |  12 ++
 linux-user/mips64/syscall_nr.h |   7 ++
 linux-user/mips64/termbits.h   | 245 +----------------------------------------
 5 files changed, 46 insertions(+), 247 deletions(-)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-10-17 13:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-12 11:48 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 1/5] linux-user: Update syscall numbers tables for Mips Aleksandar Markovic
2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 2/5] linux-user: Update mips_syscall_args[] array in main.c Aleksandar Markovic
2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 3/5] linux-user: Update ioctls definitions for Mips32 Aleksandar Markovic
2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 4/5] linux-user: Redirect termbits.h for Mips64 to termbits.h " Aleksandar Markovic
2016-10-12 11:48 ` [Qemu-devel] [PATCH v2 5/5] linux-user: Fix fadvise64() syscall support " Aleksandar Markovic
2016-10-12 12:00   ` Peter Maydell
2016-10-12 12:30 [Qemu-devel] [PATCH v2 0/5] linux-user: Several Mips-related patches Aleksandar Markovic
2016-10-17 13:02 ` Riku Voipio

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.