All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h'
@ 2021-07-04 18:37 Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN Philippe Mathieu-Daudé
                   ` (11 more replies)
  0 siblings, 12 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Hi,

This series extract code related to target errno conversion
(to/from host) into a separate header.

While reviewing I noticed EWOULDBLOCK is defined as EAGAIN
on alpha/hppa/mips targets, these are the first 3 patches.

Then each target errno definitions are extracted to a new
header: 'target_errno_defs.h' (patches 4-9).

Finally we extract the generic target errno functions to the
new 'target_errno.c' file in patches 10-12

Up to here it seems a good refactor.

From here I'm wondering if we could generate some target specific
library (linux-user-target.fa?) that could be reused by semihosting
code (at least for the Xtensa target). Just an idea...

Philippe Mathieu-Daudé (12):
  linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  linux-user/hppa: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  linux-user/mips: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  linux-user/sparc: Rename target_errno.h -> target_errno_defs.h
  linux-user: Extract target errno to 'target_errno_defs.h'
  linux-user/alpha: Remove hardcoded tabs (code style)
  linux-user/alpha: Move errno definitions to 'target_errno_defs.h'
  linux-user/hppa: Move errno definitions to 'target_errno_defs.h'
  linux-user/mips: Move errno definitions to 'target_errno_defs.h'
  linux-user/syscall: Refactor target_to_host_errno_table_init()
  linux-user/syscall: Remove hardcoded tabs (code style)
  linux-user: Extract target errno related functions to 'target_errno.h'

 linux-user/aarch64/target_errno_defs.h        |   6 +
 linux-user/alpha/target_errno_defs.h          | 198 ++++++++++++++++
 linux-user/alpha/target_syscall.h             | 194 ----------------
 linux-user/arm/target_errno_defs.h            |   6 +
 linux-user/cris/target_errno_defs.h           |   6 +
 linux-user/errno_defs.h                       |   3 +
 linux-user/hexagon/target_errno_defs.h        |   6 +
 linux-user/hppa/target_errno_defs.h           | 214 +++++++++++++++++
 linux-user/hppa/target_syscall.h              | 208 -----------------
 linux-user/i386/target_errno_defs.h           |   6 +
 linux-user/m68k/target_errno_defs.h           |   6 +
 linux-user/microblaze/target_errno_defs.h     |   6 +
 linux-user/mips/target_errno_defs.h           | 215 ++++++++++++++++++
 linux-user/mips/target_syscall.h              | 209 -----------------
 linux-user/mips64/target_errno_defs.h         | 215 ++++++++++++++++++
 linux-user/mips64/target_syscall.h            | 209 -----------------
 linux-user/nios2/target_errno_defs.h          |   6 +
 linux-user/openrisc/target_errno_defs.h       |   6 +
 linux-user/ppc/target_errno_defs.h            |   6 +
 linux-user/riscv/target_errno_defs.h          |   6 +
 linux-user/s390x/target_errno_defs.h          |   6 +
 linux-user/sh4/target_errno_defs.h            |   6 +
 .../{target_errno.h => target_errno_defs.h}   |   0
 linux-user/sparc/target_syscall.h             |   2 -
 linux-user/target_errno.h                     |  32 +++
 linux-user/x86_64/target_errno_defs.h         |   6 +
 linux-user/xtensa/target_errno_defs.h         |   6 +
 linux-user/syscall.c                          | 156 +------------
 linux-user/target_errno.c                     | 183 +++++++++++++++
 linux-user/meson.build                        |   1 +
 30 files changed, 1153 insertions(+), 976 deletions(-)
 create mode 100644 linux-user/aarch64/target_errno_defs.h
 create mode 100644 linux-user/alpha/target_errno_defs.h
 create mode 100644 linux-user/arm/target_errno_defs.h
 create mode 100644 linux-user/cris/target_errno_defs.h
 create mode 100644 linux-user/hexagon/target_errno_defs.h
 create mode 100644 linux-user/hppa/target_errno_defs.h
 create mode 100644 linux-user/i386/target_errno_defs.h
 create mode 100644 linux-user/m68k/target_errno_defs.h
 create mode 100644 linux-user/microblaze/target_errno_defs.h
 create mode 100644 linux-user/mips/target_errno_defs.h
 create mode 100644 linux-user/mips64/target_errno_defs.h
 create mode 100644 linux-user/nios2/target_errno_defs.h
 create mode 100644 linux-user/openrisc/target_errno_defs.h
 create mode 100644 linux-user/ppc/target_errno_defs.h
 create mode 100644 linux-user/riscv/target_errno_defs.h
 create mode 100644 linux-user/s390x/target_errno_defs.h
 create mode 100644 linux-user/sh4/target_errno_defs.h
 rename linux-user/sparc/{target_errno.h => target_errno_defs.h} (100%)
 create mode 100644 linux-user/target_errno.h
 create mode 100644 linux-user/x86_64/target_errno_defs.h
 create mode 100644 linux-user/xtensa/target_errno_defs.h
 create mode 100644 linux-user/target_errno.c

-- 
2.31.1



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

* [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-07  1:44   ` Richard Henderson
  2021-07-07 19:25   ` Laurent Vivier
  2021-07-04 18:37 ` [PATCH 02/12] linux-user/hppa: " Philippe Mathieu-Daudé
                   ` (10 subsequent siblings)
  11 siblings, 2 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/alpha/target_syscall.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/linux-user/alpha/target_syscall.h b/linux-user/alpha/target_syscall.h
index fd389422e31..4e6f9360566 100644
--- a/linux-user/alpha/target_syscall.h
+++ b/linux-user/alpha/target_syscall.h
@@ -44,6 +44,8 @@ struct target_pt_regs {
 #define UNAME_MACHINE "alpha"
 #define UNAME_MINIMUM_RELEASE "2.6.32"
 
+#undef TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK      TARGET_EAGAIN /* Operation would block */
 #undef TARGET_EDEADLK
 #define TARGET_EDEADLK		11
 #undef TARGET_EAGAIN
-- 
2.31.1



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

* [PATCH 02/12] linux-user/hppa: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-07  1:44   ` Richard Henderson
  2021-07-07 19:26   ` Laurent Vivier
  2021-07-04 18:37 ` [PATCH 03/12] linux-user/mips: " Philippe Mathieu-Daudé
                   ` (9 subsequent siblings)
  11 siblings, 2 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/hppa/target_syscall.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/linux-user/hppa/target_syscall.h b/linux-user/hppa/target_syscall.h
index f34e05edb57..97a095656d8 100644
--- a/linux-user/hppa/target_syscall.h
+++ b/linux-user/hppa/target_syscall.h
@@ -27,6 +27,8 @@ struct target_pt_regs {
 #define TARGET_MCL_FUTURE  2
 #define TARGET_MCL_ONFAULT 4
 
+#undef  TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
 #undef  TARGET_ENOMSG
 #define TARGET_ENOMSG          35
 #undef  TARGET_EIDRM
-- 
2.31.1



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

* [PATCH 03/12] linux-user/mips: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 02/12] linux-user/hppa: " Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-07  1:45   ` Richard Henderson
  2021-07-07 19:27   ` Laurent Vivier
  2021-07-04 18:37 ` [PATCH 04/12] linux-user/sparc: Rename target_errno.h -> target_errno_defs.h Philippe Mathieu-Daudé
                   ` (8 subsequent siblings)
  11 siblings, 2 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/mips/target_syscall.h   | 2 ++
 linux-user/mips64/target_syscall.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/linux-user/mips/target_syscall.h b/linux-user/mips/target_syscall.h
index dd6fd7af8ea..3e558fdb4b4 100644
--- a/linux-user/mips/target_syscall.h
+++ b/linux-user/mips/target_syscall.h
@@ -21,6 +21,8 @@ struct target_pt_regs {
 };
 
 /* Target errno definitions taken from asm-mips/errno.h */
+#undef TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
 #undef TARGET_ENOMSG
 #define TARGET_ENOMSG          35      /* Identifier removed */
 #undef TARGET_EIDRM
diff --git a/linux-user/mips64/target_syscall.h b/linux-user/mips64/target_syscall.h
index 8594955eec2..c54374c5a29 100644
--- a/linux-user/mips64/target_syscall.h
+++ b/linux-user/mips64/target_syscall.h
@@ -18,6 +18,8 @@ struct target_pt_regs {
 };
 
 /* Target errno definitions taken from asm-mips/errno.h */
+#undef TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
 #undef TARGET_ENOMSG
 #define TARGET_ENOMSG          35      /* Identifier removed */
 #undef TARGET_EIDRM
-- 
2.31.1



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

* [PATCH 04/12] linux-user/sparc: Rename target_errno.h -> target_errno_defs.h
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (2 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 03/12] linux-user/mips: " Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-07 19:29   ` Laurent Vivier
  2021-07-04 18:37 ` [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h' Philippe Mathieu-Daudé
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

We want to have one generic target_errno.h (API to access target
errno), and will add target errno definitions in target_errno_defs.h.
The sparc target already have its errnos in an header, simply rename
it.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/sparc/{target_errno.h => target_errno_defs.h} | 0
 linux-user/sparc/target_syscall.h                        | 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)
 rename linux-user/sparc/{target_errno.h => target_errno_defs.h} (100%)

diff --git a/linux-user/sparc/target_errno.h b/linux-user/sparc/target_errno_defs.h
similarity index 100%
rename from linux-user/sparc/target_errno.h
rename to linux-user/sparc/target_errno_defs.h
diff --git a/linux-user/sparc/target_syscall.h b/linux-user/sparc/target_syscall.h
index 15d531f3897..dad501d008c 100644
--- a/linux-user/sparc/target_syscall.h
+++ b/linux-user/sparc/target_syscall.h
@@ -1,7 +1,7 @@
 #ifndef SPARC_TARGET_SYSCALL_H
 #define SPARC_TARGET_SYSCALL_H
 
-#include "target_errno.h"
+#include "target_errno_defs.h"
 
 #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
 struct target_pt_regs {
-- 
2.31.1



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

* [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h'
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (3 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 04/12] linux-user/sparc: Rename target_errno.h -> target_errno_defs.h Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-05 22:32   ` Taylor Simpson
  2021-07-07  1:53   ` Richard Henderson
  2021-07-04 18:37 ` [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
                   ` (6 subsequent siblings)
  11 siblings, 2 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

We want to access the target errno indepently of the rest
of the linux-user code. Extract it to a new target-specific
header: 'target_errno_defs.h'.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/aarch64/target_errno_defs.h    | 6 ++++++
 linux-user/alpha/target_errno_defs.h      | 4 ++++
 linux-user/arm/target_errno_defs.h        | 6 ++++++
 linux-user/cris/target_errno_defs.h       | 6 ++++++
 linux-user/errno_defs.h                   | 3 +++
 linux-user/hexagon/target_errno_defs.h    | 6 ++++++
 linux-user/hppa/target_errno_defs.h       | 4 ++++
 linux-user/i386/target_errno_defs.h       | 6 ++++++
 linux-user/m68k/target_errno_defs.h       | 6 ++++++
 linux-user/microblaze/target_errno_defs.h | 6 ++++++
 linux-user/mips/target_errno_defs.h       | 4 ++++
 linux-user/mips64/target_errno_defs.h     | 4 ++++
 linux-user/nios2/target_errno_defs.h      | 6 ++++++
 linux-user/openrisc/target_errno_defs.h   | 6 ++++++
 linux-user/ppc/target_errno_defs.h        | 6 ++++++
 linux-user/riscv/target_errno_defs.h      | 6 ++++++
 linux-user/s390x/target_errno_defs.h      | 6 ++++++
 linux-user/sh4/target_errno_defs.h        | 6 ++++++
 linux-user/sparc/target_syscall.h         | 2 --
 linux-user/x86_64/target_errno_defs.h     | 6 ++++++
 linux-user/xtensa/target_errno_defs.h     | 6 ++++++
 21 files changed, 109 insertions(+), 2 deletions(-)
 create mode 100644 linux-user/aarch64/target_errno_defs.h
 create mode 100644 linux-user/alpha/target_errno_defs.h
 create mode 100644 linux-user/arm/target_errno_defs.h
 create mode 100644 linux-user/cris/target_errno_defs.h
 create mode 100644 linux-user/hexagon/target_errno_defs.h
 create mode 100644 linux-user/hppa/target_errno_defs.h
 create mode 100644 linux-user/i386/target_errno_defs.h
 create mode 100644 linux-user/m68k/target_errno_defs.h
 create mode 100644 linux-user/microblaze/target_errno_defs.h
 create mode 100644 linux-user/mips/target_errno_defs.h
 create mode 100644 linux-user/mips64/target_errno_defs.h
 create mode 100644 linux-user/nios2/target_errno_defs.h
 create mode 100644 linux-user/openrisc/target_errno_defs.h
 create mode 100644 linux-user/ppc/target_errno_defs.h
 create mode 100644 linux-user/riscv/target_errno_defs.h
 create mode 100644 linux-user/s390x/target_errno_defs.h
 create mode 100644 linux-user/sh4/target_errno_defs.h
 create mode 100644 linux-user/x86_64/target_errno_defs.h
 create mode 100644 linux-user/xtensa/target_errno_defs.h

diff --git a/linux-user/aarch64/target_errno_defs.h b/linux-user/aarch64/target_errno_defs.h
new file mode 100644
index 00000000000..a809381165a
--- /dev/null
+++ b/linux-user/aarch64/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef AARCH64_TARGET_ERRNO_H
+#define AARCH64_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/alpha/target_errno_defs.h b/linux-user/alpha/target_errno_defs.h
new file mode 100644
index 00000000000..13770b14b82
--- /dev/null
+++ b/linux-user/alpha/target_errno_defs.h
@@ -0,0 +1,4 @@
+#ifndef ALPHA_TARGET_ERRNO_H
+#define ALPHA_TARGET_ERRNO_H
+
+#endif
diff --git a/linux-user/arm/target_errno_defs.h b/linux-user/arm/target_errno_defs.h
new file mode 100644
index 00000000000..3d0dc8a6fb3
--- /dev/null
+++ b/linux-user/arm/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef ARM_TARGET_ERRNO_H
+#define ARM_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/cris/target_errno_defs.h b/linux-user/cris/target_errno_defs.h
new file mode 100644
index 00000000000..c6ea84f2366
--- /dev/null
+++ b/linux-user/cris/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef CRIS_TARGET_ERRNO_H
+#define CRIS_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/errno_defs.h b/linux-user/errno_defs.h
index aaf5208d62d..01cfb08b802 100644
--- a/linux-user/errno_defs.h
+++ b/linux-user/errno_defs.h
@@ -164,4 +164,7 @@
  */
 #define TARGET_QEMU_ESIGRETURN 513     /* Return from signal */
 
+/* Override with target specific definitions of errnos (keep last). */
+#include "target_errno_defs.h"
+
 #endif
diff --git a/linux-user/hexagon/target_errno_defs.h b/linux-user/hexagon/target_errno_defs.h
new file mode 100644
index 00000000000..5daac4f5a83
--- /dev/null
+++ b/linux-user/hexagon/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef HEXAGON_TARGET_ERRNO_H
+#define HEXAGON_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/hppa/target_errno_defs.h b/linux-user/hppa/target_errno_defs.h
new file mode 100644
index 00000000000..5ae6b8d0ba2
--- /dev/null
+++ b/linux-user/hppa/target_errno_defs.h
@@ -0,0 +1,4 @@
+#ifndef HPPA_TARGET_ERRNO_H
+#define HPPA_TARGET_ERRNO_H
+
+#endif
diff --git a/linux-user/i386/target_errno_defs.h b/linux-user/i386/target_errno_defs.h
new file mode 100644
index 00000000000..14f9fc44bec
--- /dev/null
+++ b/linux-user/i386/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef I386_TARGET_ERRNO_H
+#define I386_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/m68k/target_errno_defs.h b/linux-user/m68k/target_errno_defs.h
new file mode 100644
index 00000000000..00b98c619e5
--- /dev/null
+++ b/linux-user/m68k/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef M68K_TARGET_ERRNO_H
+#define M68K_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/microblaze/target_errno_defs.h b/linux-user/microblaze/target_errno_defs.h
new file mode 100644
index 00000000000..014f19ffbc5
--- /dev/null
+++ b/linux-user/microblaze/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef MICROBLAZE_TARGET_ERRNO_H
+#define MICROBLAZE_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/mips/target_errno_defs.h b/linux-user/mips/target_errno_defs.h
new file mode 100644
index 00000000000..05e0bea44bc
--- /dev/null
+++ b/linux-user/mips/target_errno_defs.h
@@ -0,0 +1,4 @@
+#ifndef MIPS_TARGET_ERRNO_H
+#define MIPS_TARGET_ERRNO_H
+
+#endif
diff --git a/linux-user/mips64/target_errno_defs.h b/linux-user/mips64/target_errno_defs.h
new file mode 100644
index 00000000000..0dd5966d1af
--- /dev/null
+++ b/linux-user/mips64/target_errno_defs.h
@@ -0,0 +1,4 @@
+#ifndef MIPS64_TARGET_ERRNO_H
+#define MIPS64_TARGET_ERRNO_H
+
+#endif
diff --git a/linux-user/nios2/target_errno_defs.h b/linux-user/nios2/target_errno_defs.h
new file mode 100644
index 00000000000..81f86566f26
--- /dev/null
+++ b/linux-user/nios2/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef NIOS2_TARGET_ERRNO_H
+#define NIOS2_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/openrisc/target_errno_defs.h b/linux-user/openrisc/target_errno_defs.h
new file mode 100644
index 00000000000..4dabdc1a43f
--- /dev/null
+++ b/linux-user/openrisc/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef OR1K_TARGET_ERRNO_H
+#define OR1K_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/ppc/target_errno_defs.h b/linux-user/ppc/target_errno_defs.h
new file mode 100644
index 00000000000..743e65cf4ef
--- /dev/null
+++ b/linux-user/ppc/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef PPC_TARGET_ERRNO_H
+#define PPC_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/riscv/target_errno_defs.h b/linux-user/riscv/target_errno_defs.h
new file mode 100644
index 00000000000..bf06966dc18
--- /dev/null
+++ b/linux-user/riscv/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef RISCV_TARGET_ERRNO_H
+#define RISCV_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/s390x/target_errno_defs.h b/linux-user/s390x/target_errno_defs.h
new file mode 100644
index 00000000000..1f0003166df
--- /dev/null
+++ b/linux-user/s390x/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef S390X_TARGET_ERRNO_H
+#define S390X_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/sh4/target_errno_defs.h b/linux-user/sh4/target_errno_defs.h
new file mode 100644
index 00000000000..ee5eb96af88
--- /dev/null
+++ b/linux-user/sh4/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef SH4_TARGET_ERRNO_H
+#define SH4_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/sparc/target_syscall.h b/linux-user/sparc/target_syscall.h
index dad501d008c..087b39d39c4 100644
--- a/linux-user/sparc/target_syscall.h
+++ b/linux-user/sparc/target_syscall.h
@@ -1,8 +1,6 @@
 #ifndef SPARC_TARGET_SYSCALL_H
 #define SPARC_TARGET_SYSCALL_H
 
-#include "target_errno_defs.h"
-
 #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
 struct target_pt_regs {
     abi_ulong u_regs[16];
diff --git a/linux-user/x86_64/target_errno_defs.h b/linux-user/x86_64/target_errno_defs.h
new file mode 100644
index 00000000000..69cc6f988ba
--- /dev/null
+++ b/linux-user/x86_64/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef X86_64_TARGET_ERRNO_H
+#define X86_64_TARGET_ERRNO_H
+
+/* Target uses generic errno */
+
+#endif
diff --git a/linux-user/xtensa/target_errno_defs.h b/linux-user/xtensa/target_errno_defs.h
new file mode 100644
index 00000000000..4a5d19319d0
--- /dev/null
+++ b/linux-user/xtensa/target_errno_defs.h
@@ -0,0 +1,6 @@
+#ifndef XTENSA_TARGET_ERRNO_H
+#define XTENSA_TARGET_ERRNO_H
+
+/* FIXME */
+
+#endif
-- 
2.31.1



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

* [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style)
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (4 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h' Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-07  1:46   ` Richard Henderson
  2021-07-07 19:32   ` Laurent Vivier
  2021-07-04 18:37 ` [PATCH 07/12] linux-user/alpha: Move errno definitions to 'target_errno_defs.h' Philippe Mathieu-Daudé
                   ` (5 subsequent siblings)
  11 siblings, 2 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

We are going to move this code, fix its style first.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Patch trivial to review using 'git-diff --ignore-all-space'
---
 linux-user/alpha/target_syscall.h | 196 +++++++++++++++---------------
 1 file changed, 97 insertions(+), 99 deletions(-)

diff --git a/linux-user/alpha/target_syscall.h b/linux-user/alpha/target_syscall.h
index 4e6f9360566..13a71f35eaf 100644
--- a/linux-user/alpha/target_syscall.h
+++ b/linux-user/alpha/target_syscall.h
@@ -47,196 +47,194 @@ struct target_pt_regs {
 #undef TARGET_EWOULDBLOCK
 #define TARGET_EWOULDBLOCK      TARGET_EAGAIN /* Operation would block */
 #undef TARGET_EDEADLK
-#define TARGET_EDEADLK		11
+#define TARGET_EDEADLK          11
 #undef TARGET_EAGAIN
-#define TARGET_EAGAIN		35
+#define TARGET_EAGAIN           35
 #undef TARGET_EINPROGRESS
-#define TARGET_EINPROGRESS	36
+#define TARGET_EINPROGRESS      36
 #undef TARGET_EALREADY
-#define TARGET_EALREADY		37
+#define TARGET_EALREADY         37
 #undef TARGET_ENOTSOCK
-#define TARGET_ENOTSOCK		38
+#define TARGET_ENOTSOCK         38
 #undef TARGET_EDESTADDRREQ
-#define TARGET_EDESTADDRREQ	39
+#define TARGET_EDESTADDRREQ     39
 #undef TARGET_EMSGSIZE
-#define TARGET_EMSGSIZE		40
+#define TARGET_EMSGSIZE         40
 #undef TARGET_EPROTOTYPE
-#define TARGET_EPROTOTYPE	41
+#define TARGET_EPROTOTYPE       41
 #undef TARGET_ENOPROTOOPT
-#define TARGET_ENOPROTOOPT	42
+#define TARGET_ENOPROTOOPT      42
 #undef TARGET_EPROTONOSUPPORT
-#define TARGET_EPROTONOSUPPORT	43
+#define TARGET_EPROTONOSUPPORT  43
 #undef TARGET_ESOCKTNOSUPPORT
-#define TARGET_ESOCKTNOSUPPORT	44
+#define TARGET_ESOCKTNOSUPPORT  44
 #undef TARGET_EOPNOTSUPP
-#define TARGET_EOPNOTSUPP	45
+#define TARGET_EOPNOTSUPP       45
 #undef TARGET_EPFNOSUPPORT
-#define TARGET_EPFNOSUPPORT	46
+#define TARGET_EPFNOSUPPORT     46
 #undef TARGET_EAFNOSUPPORT
-#define TARGET_EAFNOSUPPORT	47
+#define TARGET_EAFNOSUPPORT     47
 #undef TARGET_EADDRINUSE
-#define TARGET_EADDRINUSE	48
+#define TARGET_EADDRINUSE       48
 #undef TARGET_EADDRNOTAVAIL
-#define TARGET_EADDRNOTAVAIL	49
+#define TARGET_EADDRNOTAVAIL    49
 #undef TARGET_ENETDOWN
-#define TARGET_ENETDOWN		50
+#define TARGET_ENETDOWN         50
 #undef TARGET_ENETUNREACH
-#define TARGET_ENETUNREACH	51
+#define TARGET_ENETUNREACH      51
 #undef TARGET_ENETRESET
-#define TARGET_ENETRESET	52
+#define TARGET_ENETRESET        52
 #undef TARGET_ECONNABORTED
-#define TARGET_ECONNABORTED	53
+#define TARGET_ECONNABORTED     53
 #undef TARGET_ECONNRESET
-#define TARGET_ECONNRESET	54
+#define TARGET_ECONNRESET       54
 #undef TARGET_ENOBUFS
-#define TARGET_ENOBUFS		55
+#define TARGET_ENOBUFS          55
 #undef TARGET_EISCONN
-#define TARGET_EISCONN		56
+#define TARGET_EISCONN          56
 #undef TARGET_ENOTCONN
-#define TARGET_ENOTCONN		57
+#define TARGET_ENOTCONN         57
 #undef TARGET_ESHUTDOWN
-#define TARGET_ESHUTDOWN	58
+#define TARGET_ESHUTDOWN        58
 #undef TARGET_ETOOMANYREFS
-#define TARGET_ETOOMANYREFS	59
+#define TARGET_ETOOMANYREFS     59
 #undef TARGET_ETIMEDOUT
-#define TARGET_ETIMEDOUT	60
+#define TARGET_ETIMEDOUT        60
 #undef TARGET_ECONNREFUSED
-#define TARGET_ECONNREFUSED	61
+#define TARGET_ECONNREFUSED     61
 #undef TARGET_ELOOP
-#define TARGET_ELOOP		62
+#define TARGET_ELOOP            62
 #undef TARGET_ENAMETOOLONG
-#define TARGET_ENAMETOOLONG	63
+#define TARGET_ENAMETOOLONG     63
 #undef TARGET_EHOSTDOWN
-#define TARGET_EHOSTDOWN	64
+#define TARGET_EHOSTDOWN        64
 #undef TARGET_EHOSTUNREACH
-#define TARGET_EHOSTUNREACH	65
+#define TARGET_EHOSTUNREACH     65
 #undef TARGET_ENOTEMPTY
-#define TARGET_ENOTEMPTY	66
-// Unused			67
+#define TARGET_ENOTEMPTY        66
+/* Unused                       67 */
 #undef TARGET_EUSERS
-#define TARGET_EUSERS		68
+#define TARGET_EUSERS           68
 #undef TARGET_EDQUOT
-#define TARGET_EDQUOT		69
+#define TARGET_EDQUOT           69
 #undef TARGET_ESTALE
-#define TARGET_ESTALE		70
+#define TARGET_ESTALE           70
 #undef TARGET_EREMOTE
-#define TARGET_EREMOTE		71
-// Unused			72-76
+#define TARGET_EREMOTE          71
+/* Unused                       72-76 */
 #undef TARGET_ENOLCK
-#define TARGET_ENOLCK		77
+#define TARGET_ENOLCK           77
 #undef TARGET_ENOSYS
-#define TARGET_ENOSYS		78
-// Unused			79
+#define TARGET_ENOSYS           78
+/* Unused                       79 */
 #undef TARGET_ENOMSG
-#define TARGET_ENOMSG		80
+#define TARGET_ENOMSG           80
 #undef TARGET_EIDRM
-#define TARGET_EIDRM		81
+#define TARGET_EIDRM            81
 #undef TARGET_ENOSR
-#define TARGET_ENOSR		82
+#define TARGET_ENOSR            82
 #undef TARGET_ETIME
-#define TARGET_ETIME		83
+#define TARGET_ETIME            83
 #undef TARGET_EBADMSG
-#define TARGET_EBADMSG		84
+#define TARGET_EBADMSG          84
 #undef TARGET_EPROTO
-#define TARGET_EPROTO		85
+#define TARGET_EPROTO           85
 #undef TARGET_ENODATA
-#define TARGET_ENODATA		86
+#define TARGET_ENODATA          86
 #undef TARGET_ENOSTR
-#define TARGET_ENOSTR		87
+#define TARGET_ENOSTR           87
 #undef TARGET_ECHRNG
-#define TARGET_ECHRNG		88
+#define TARGET_ECHRNG           88
 #undef TARGET_EL2NSYNC
-#define TARGET_EL2NSYNC		89
+#define TARGET_EL2NSYNC         89
 #undef TARGET_EL3HLT
-#define TARGET_EL3HLT		90
+#define TARGET_EL3HLT           90
 #undef TARGET_EL3RST
-#define TARGET_EL3RST		91
+#define TARGET_EL3RST           91
 #undef TARGET_ENOPKG
-#define TARGET_ENOPKG		92
+#define TARGET_ENOPKG           92
 #undef TARGET_ELNRNG
-#define TARGET_ELNRNG		93
+#define TARGET_ELNRNG           93
 #undef TARGET_EUNATCH
-#define TARGET_EUNATCH		94
+#define TARGET_EUNATCH          94
 #undef TARGET_ENOCSI
-#define TARGET_ENOCSI		95
+#define TARGET_ENOCSI           95
 #undef TARGET_EL2HLT
-#define TARGET_EL2HLT		96
+#define TARGET_EL2HLT           96
 #undef TARGET_EBADE
-#define TARGET_EBADE		97
+#define TARGET_EBADE            97
 #undef TARGET_EBADR
-#define TARGET_EBADR		98
+#define TARGET_EBADR            98
 #undef TARGET_EXFULL
-#define TARGET_EXFULL		99
+#define TARGET_EXFULL           99
 #undef TARGET_ENOANO
-#define TARGET_ENOANO		100
+#define TARGET_ENOANO           100
 #undef TARGET_EBADRQC
-#define TARGET_EBADRQC		101
+#define TARGET_EBADRQC          101
 #undef TARGET_EBADSLT
-#define TARGET_EBADSLT		102
-// Unused			103
+#define TARGET_EBADSLT          102
+/* Unused                       103 */
 #undef TARGET_EBFONT
-#define TARGET_EBFONT		104
+#define TARGET_EBFONT           104
 #undef TARGET_ENONET
-#define TARGET_ENONET		105
+#define TARGET_ENONET           105
 #undef TARGET_ENOLINK
-#define TARGET_ENOLINK		106
+#define TARGET_ENOLINK          106
 #undef TARGET_EADV
-#define TARGET_EADV		107
+#define TARGET_EADV             107
 #undef TARGET_ESRMNT
-#define TARGET_ESRMNT		108
+#define TARGET_ESRMNT           108
 #undef TARGET_ECOMM
-#define TARGET_ECOMM		109
+#define TARGET_ECOMM            109
 #undef TARGET_EMULTIHOP
-#define TARGET_EMULTIHOP	110
+#define TARGET_EMULTIHOP        110
 #undef TARGET_EDOTDOT
-#define TARGET_EDOTDOT		111
+#define TARGET_EDOTDOT          111
 #undef TARGET_EOVERFLOW
-#define TARGET_EOVERFLOW	112
+#define TARGET_EOVERFLOW        112
 #undef TARGET_ENOTUNIQ
-#define TARGET_ENOTUNIQ		113
+#define TARGET_ENOTUNIQ         113
 #undef TARGET_EBADFD
-#define TARGET_EBADFD		114
+#define TARGET_EBADFD           114
 #undef TARGET_EREMCHG
-#define TARGET_EREMCHG		115
+#define TARGET_EREMCHG          115
 #undef TARGET_EILSEQ
-#define TARGET_EILSEQ		116
-
-// Same as default		117-121
-
+#define TARGET_EILSEQ           116
+/* Same as default              117-121 */
 #undef TARGET_ELIBACC
-#define TARGET_ELIBACC		122
+#define TARGET_ELIBACC          122
 #undef TARGET_ELIBBAD
-#define TARGET_ELIBBAD		123
+#define TARGET_ELIBBAD          123
 #undef TARGET_ELIBSCN
-#define TARGET_ELIBSCN		124
+#define TARGET_ELIBSCN          124
 #undef TARGET_ELIBMAX
-#define TARGET_ELIBMAX		125
+#define TARGET_ELIBMAX          125
 #undef TARGET_ELIBEXEC
-#define TARGET_ELIBEXEC		126
+#define TARGET_ELIBEXEC         126
 #undef TARGET_ERESTART
-#define TARGET_ERESTART		127
+#define TARGET_ERESTART         127
 #undef TARGET_ESTRPIPE
-#define TARGET_ESTRPIPE		128
+#define TARGET_ESTRPIPE         128
 #undef TARGET_ENOMEDIUM
-#define TARGET_ENOMEDIUM	129
+#define TARGET_ENOMEDIUM        129
 #undef TARGET_EMEDIUMTYPE
-#define TARGET_EMEDIUMTYPE	130
+#define TARGET_EMEDIUMTYPE      130
 #undef TARGET_ECANCELED
-#define TARGET_ECANCELED	131
+#define TARGET_ECANCELED        131
 #undef TARGET_ENOKEY
-#define TARGET_ENOKEY		132
+#define TARGET_ENOKEY           132
 #undef TARGET_EKEYEXPIRED
-#define TARGET_EKEYEXPIRED	133
+#define TARGET_EKEYEXPIRED      133
 #undef TARGET_EKEYREVOKED
-#define TARGET_EKEYREVOKED	134
+#define TARGET_EKEYREVOKED      134
 #undef TARGET_EKEYREJECTED
-#define TARGET_EKEYREJECTED	135
+#define TARGET_EKEYREJECTED     135
 #undef TARGET_EOWNERDEAD
-#define TARGET_EOWNERDEAD	136
+#define TARGET_EOWNERDEAD       136
 #undef TARGET_ENOTRECOVERABLE
-#define TARGET_ENOTRECOVERABLE	137
+#define TARGET_ENOTRECOVERABLE  137
 #undef TARGET_ERFKILL
-#define TARGET_ERFKILL		138
+#define TARGET_ERFKILL          138
 #undef TARGET_EHWPOISON
 #define TARGET_EHWPOISON        139
 
-- 
2.31.1



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

* [PATCH 07/12] linux-user/alpha: Move errno definitions to 'target_errno_defs.h'
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (5 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 08/12] linux-user/hppa: " Philippe Mathieu-Daudé
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/alpha/target_errno_defs.h | 194 +++++++++++++++++++++++++++
 linux-user/alpha/target_syscall.h    | 194 ---------------------------
 2 files changed, 194 insertions(+), 194 deletions(-)

diff --git a/linux-user/alpha/target_errno_defs.h b/linux-user/alpha/target_errno_defs.h
index 13770b14b82..fae8a4f43a1 100644
--- a/linux-user/alpha/target_errno_defs.h
+++ b/linux-user/alpha/target_errno_defs.h
@@ -1,4 +1,198 @@
 #ifndef ALPHA_TARGET_ERRNO_H
 #define ALPHA_TARGET_ERRNO_H
 
+#undef TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK      TARGET_EAGAIN
+#undef TARGET_EDEADLK
+#define TARGET_EDEADLK          11
+#undef TARGET_EAGAIN
+#define TARGET_EAGAIN           35
+#undef TARGET_EINPROGRESS
+#define TARGET_EINPROGRESS      36
+#undef TARGET_EALREADY
+#define TARGET_EALREADY         37
+#undef TARGET_ENOTSOCK
+#define TARGET_ENOTSOCK         38
+#undef TARGET_EDESTADDRREQ
+#define TARGET_EDESTADDRREQ     39
+#undef TARGET_EMSGSIZE
+#define TARGET_EMSGSIZE         40
+#undef TARGET_EPROTOTYPE
+#define TARGET_EPROTOTYPE       41
+#undef TARGET_ENOPROTOOPT
+#define TARGET_ENOPROTOOPT      42
+#undef TARGET_EPROTONOSUPPORT
+#define TARGET_EPROTONOSUPPORT  43
+#undef TARGET_ESOCKTNOSUPPORT
+#define TARGET_ESOCKTNOSUPPORT  44
+#undef TARGET_EOPNOTSUPP
+#define TARGET_EOPNOTSUPP       45
+#undef TARGET_EPFNOSUPPORT
+#define TARGET_EPFNOSUPPORT     46
+#undef TARGET_EAFNOSUPPORT
+#define TARGET_EAFNOSUPPORT     47
+#undef TARGET_EADDRINUSE
+#define TARGET_EADDRINUSE       48
+#undef TARGET_EADDRNOTAVAIL
+#define TARGET_EADDRNOTAVAIL    49
+#undef TARGET_ENETDOWN
+#define TARGET_ENETDOWN         50
+#undef TARGET_ENETUNREACH
+#define TARGET_ENETUNREACH      51
+#undef TARGET_ENETRESET
+#define TARGET_ENETRESET        52
+#undef TARGET_ECONNABORTED
+#define TARGET_ECONNABORTED     53
+#undef TARGET_ECONNRESET
+#define TARGET_ECONNRESET       54
+#undef TARGET_ENOBUFS
+#define TARGET_ENOBUFS          55
+#undef TARGET_EISCONN
+#define TARGET_EISCONN          56
+#undef TARGET_ENOTCONN
+#define TARGET_ENOTCONN         57
+#undef TARGET_ESHUTDOWN
+#define TARGET_ESHUTDOWN        58
+#undef TARGET_ETOOMANYREFS
+#define TARGET_ETOOMANYREFS     59
+#undef TARGET_ETIMEDOUT
+#define TARGET_ETIMEDOUT        60
+#undef TARGET_ECONNREFUSED
+#define TARGET_ECONNREFUSED     61
+#undef TARGET_ELOOP
+#define TARGET_ELOOP            62
+#undef TARGET_ENAMETOOLONG
+#define TARGET_ENAMETOOLONG     63
+#undef TARGET_EHOSTDOWN
+#define TARGET_EHOSTDOWN        64
+#undef TARGET_EHOSTUNREACH
+#define TARGET_EHOSTUNREACH     65
+#undef TARGET_ENOTEMPTY
+#define TARGET_ENOTEMPTY        66
+/* Unused                       67 */
+#undef TARGET_EUSERS
+#define TARGET_EUSERS           68
+#undef TARGET_EDQUOT
+#define TARGET_EDQUOT           69
+#undef TARGET_ESTALE
+#define TARGET_ESTALE           70
+#undef TARGET_EREMOTE
+#define TARGET_EREMOTE          71
+/* Unused                       72-76 */
+#undef TARGET_ENOLCK
+#define TARGET_ENOLCK           77
+#undef TARGET_ENOSYS
+#define TARGET_ENOSYS           78
+/* Unused                       79 */
+#undef TARGET_ENOMSG
+#define TARGET_ENOMSG           80
+#undef TARGET_EIDRM
+#define TARGET_EIDRM            81
+#undef TARGET_ENOSR
+#define TARGET_ENOSR            82
+#undef TARGET_ETIME
+#define TARGET_ETIME            83
+#undef TARGET_EBADMSG
+#define TARGET_EBADMSG          84
+#undef TARGET_EPROTO
+#define TARGET_EPROTO           85
+#undef TARGET_ENODATA
+#define TARGET_ENODATA          86
+#undef TARGET_ENOSTR
+#define TARGET_ENOSTR           87
+#undef TARGET_ECHRNG
+#define TARGET_ECHRNG           88
+#undef TARGET_EL2NSYNC
+#define TARGET_EL2NSYNC         89
+#undef TARGET_EL3HLT
+#define TARGET_EL3HLT           90
+#undef TARGET_EL3RST
+#define TARGET_EL3RST           91
+#undef TARGET_ENOPKG
+#define TARGET_ENOPKG           92
+#undef TARGET_ELNRNG
+#define TARGET_ELNRNG           93
+#undef TARGET_EUNATCH
+#define TARGET_EUNATCH          94
+#undef TARGET_ENOCSI
+#define TARGET_ENOCSI           95
+#undef TARGET_EL2HLT
+#define TARGET_EL2HLT           96
+#undef TARGET_EBADE
+#define TARGET_EBADE            97
+#undef TARGET_EBADR
+#define TARGET_EBADR            98
+#undef TARGET_EXFULL
+#define TARGET_EXFULL           99
+#undef TARGET_ENOANO
+#define TARGET_ENOANO           100
+#undef TARGET_EBADRQC
+#define TARGET_EBADRQC          101
+#undef TARGET_EBADSLT
+#define TARGET_EBADSLT          102
+/* Unused                       103 */
+#undef TARGET_EBFONT
+#define TARGET_EBFONT           104
+#undef TARGET_ENONET
+#define TARGET_ENONET           105
+#undef TARGET_ENOLINK
+#define TARGET_ENOLINK          106
+#undef TARGET_EADV
+#define TARGET_EADV             107
+#undef TARGET_ESRMNT
+#define TARGET_ESRMNT           108
+#undef TARGET_ECOMM
+#define TARGET_ECOMM            109
+#undef TARGET_EMULTIHOP
+#define TARGET_EMULTIHOP        110
+#undef TARGET_EDOTDOT
+#define TARGET_EDOTDOT          111
+#undef TARGET_EOVERFLOW
+#define TARGET_EOVERFLOW        112
+#undef TARGET_ENOTUNIQ
+#define TARGET_ENOTUNIQ         113
+#undef TARGET_EBADFD
+#define TARGET_EBADFD           114
+#undef TARGET_EREMCHG
+#define TARGET_EREMCHG          115
+#undef TARGET_EILSEQ
+#define TARGET_EILSEQ           116
+/* Same as default              117-121 */
+#undef TARGET_ELIBACC
+#define TARGET_ELIBACC          122
+#undef TARGET_ELIBBAD
+#define TARGET_ELIBBAD          123
+#undef TARGET_ELIBSCN
+#define TARGET_ELIBSCN          124
+#undef TARGET_ELIBMAX
+#define TARGET_ELIBMAX          125
+#undef TARGET_ELIBEXEC
+#define TARGET_ELIBEXEC         126
+#undef TARGET_ERESTART
+#define TARGET_ERESTART         127
+#undef TARGET_ESTRPIPE
+#define TARGET_ESTRPIPE         128
+#undef TARGET_ENOMEDIUM
+#define TARGET_ENOMEDIUM        129
+#undef TARGET_EMEDIUMTYPE
+#define TARGET_EMEDIUMTYPE      130
+#undef TARGET_ECANCELED
+#define TARGET_ECANCELED        131
+#undef TARGET_ENOKEY
+#define TARGET_ENOKEY           132
+#undef TARGET_EKEYEXPIRED
+#define TARGET_EKEYEXPIRED      133
+#undef TARGET_EKEYREVOKED
+#define TARGET_EKEYREVOKED      134
+#undef TARGET_EKEYREJECTED
+#define TARGET_EKEYREJECTED     135
+#undef TARGET_EOWNERDEAD
+#define TARGET_EOWNERDEAD       136
+#undef TARGET_ENOTRECOVERABLE
+#define TARGET_ENOTRECOVERABLE  137
+#undef TARGET_ERFKILL
+#define TARGET_ERFKILL          138
+#undef TARGET_EHWPOISON
+#define TARGET_EHWPOISON        139
+
 #endif
diff --git a/linux-user/alpha/target_syscall.h b/linux-user/alpha/target_syscall.h
index 13a71f35eaf..03091bf0a82 100644
--- a/linux-user/alpha/target_syscall.h
+++ b/linux-user/alpha/target_syscall.h
@@ -44,200 +44,6 @@ struct target_pt_regs {
 #define UNAME_MACHINE "alpha"
 #define UNAME_MINIMUM_RELEASE "2.6.32"
 
-#undef TARGET_EWOULDBLOCK
-#define TARGET_EWOULDBLOCK      TARGET_EAGAIN /* Operation would block */
-#undef TARGET_EDEADLK
-#define TARGET_EDEADLK          11
-#undef TARGET_EAGAIN
-#define TARGET_EAGAIN           35
-#undef TARGET_EINPROGRESS
-#define TARGET_EINPROGRESS      36
-#undef TARGET_EALREADY
-#define TARGET_EALREADY         37
-#undef TARGET_ENOTSOCK
-#define TARGET_ENOTSOCK         38
-#undef TARGET_EDESTADDRREQ
-#define TARGET_EDESTADDRREQ     39
-#undef TARGET_EMSGSIZE
-#define TARGET_EMSGSIZE         40
-#undef TARGET_EPROTOTYPE
-#define TARGET_EPROTOTYPE       41
-#undef TARGET_ENOPROTOOPT
-#define TARGET_ENOPROTOOPT      42
-#undef TARGET_EPROTONOSUPPORT
-#define TARGET_EPROTONOSUPPORT  43
-#undef TARGET_ESOCKTNOSUPPORT
-#define TARGET_ESOCKTNOSUPPORT  44
-#undef TARGET_EOPNOTSUPP
-#define TARGET_EOPNOTSUPP       45
-#undef TARGET_EPFNOSUPPORT
-#define TARGET_EPFNOSUPPORT     46
-#undef TARGET_EAFNOSUPPORT
-#define TARGET_EAFNOSUPPORT     47
-#undef TARGET_EADDRINUSE
-#define TARGET_EADDRINUSE       48
-#undef TARGET_EADDRNOTAVAIL
-#define TARGET_EADDRNOTAVAIL    49
-#undef TARGET_ENETDOWN
-#define TARGET_ENETDOWN         50
-#undef TARGET_ENETUNREACH
-#define TARGET_ENETUNREACH      51
-#undef TARGET_ENETRESET
-#define TARGET_ENETRESET        52
-#undef TARGET_ECONNABORTED
-#define TARGET_ECONNABORTED     53
-#undef TARGET_ECONNRESET
-#define TARGET_ECONNRESET       54
-#undef TARGET_ENOBUFS
-#define TARGET_ENOBUFS          55
-#undef TARGET_EISCONN
-#define TARGET_EISCONN          56
-#undef TARGET_ENOTCONN
-#define TARGET_ENOTCONN         57
-#undef TARGET_ESHUTDOWN
-#define TARGET_ESHUTDOWN        58
-#undef TARGET_ETOOMANYREFS
-#define TARGET_ETOOMANYREFS     59
-#undef TARGET_ETIMEDOUT
-#define TARGET_ETIMEDOUT        60
-#undef TARGET_ECONNREFUSED
-#define TARGET_ECONNREFUSED     61
-#undef TARGET_ELOOP
-#define TARGET_ELOOP            62
-#undef TARGET_ENAMETOOLONG
-#define TARGET_ENAMETOOLONG     63
-#undef TARGET_EHOSTDOWN
-#define TARGET_EHOSTDOWN        64
-#undef TARGET_EHOSTUNREACH
-#define TARGET_EHOSTUNREACH     65
-#undef TARGET_ENOTEMPTY
-#define TARGET_ENOTEMPTY        66
-/* Unused                       67 */
-#undef TARGET_EUSERS
-#define TARGET_EUSERS           68
-#undef TARGET_EDQUOT
-#define TARGET_EDQUOT           69
-#undef TARGET_ESTALE
-#define TARGET_ESTALE           70
-#undef TARGET_EREMOTE
-#define TARGET_EREMOTE          71
-/* Unused                       72-76 */
-#undef TARGET_ENOLCK
-#define TARGET_ENOLCK           77
-#undef TARGET_ENOSYS
-#define TARGET_ENOSYS           78
-/* Unused                       79 */
-#undef TARGET_ENOMSG
-#define TARGET_ENOMSG           80
-#undef TARGET_EIDRM
-#define TARGET_EIDRM            81
-#undef TARGET_ENOSR
-#define TARGET_ENOSR            82
-#undef TARGET_ETIME
-#define TARGET_ETIME            83
-#undef TARGET_EBADMSG
-#define TARGET_EBADMSG          84
-#undef TARGET_EPROTO
-#define TARGET_EPROTO           85
-#undef TARGET_ENODATA
-#define TARGET_ENODATA          86
-#undef TARGET_ENOSTR
-#define TARGET_ENOSTR           87
-#undef TARGET_ECHRNG
-#define TARGET_ECHRNG           88
-#undef TARGET_EL2NSYNC
-#define TARGET_EL2NSYNC         89
-#undef TARGET_EL3HLT
-#define TARGET_EL3HLT           90
-#undef TARGET_EL3RST
-#define TARGET_EL3RST           91
-#undef TARGET_ENOPKG
-#define TARGET_ENOPKG           92
-#undef TARGET_ELNRNG
-#define TARGET_ELNRNG           93
-#undef TARGET_EUNATCH
-#define TARGET_EUNATCH          94
-#undef TARGET_ENOCSI
-#define TARGET_ENOCSI           95
-#undef TARGET_EL2HLT
-#define TARGET_EL2HLT           96
-#undef TARGET_EBADE
-#define TARGET_EBADE            97
-#undef TARGET_EBADR
-#define TARGET_EBADR            98
-#undef TARGET_EXFULL
-#define TARGET_EXFULL           99
-#undef TARGET_ENOANO
-#define TARGET_ENOANO           100
-#undef TARGET_EBADRQC
-#define TARGET_EBADRQC          101
-#undef TARGET_EBADSLT
-#define TARGET_EBADSLT          102
-/* Unused                       103 */
-#undef TARGET_EBFONT
-#define TARGET_EBFONT           104
-#undef TARGET_ENONET
-#define TARGET_ENONET           105
-#undef TARGET_ENOLINK
-#define TARGET_ENOLINK          106
-#undef TARGET_EADV
-#define TARGET_EADV             107
-#undef TARGET_ESRMNT
-#define TARGET_ESRMNT           108
-#undef TARGET_ECOMM
-#define TARGET_ECOMM            109
-#undef TARGET_EMULTIHOP
-#define TARGET_EMULTIHOP        110
-#undef TARGET_EDOTDOT
-#define TARGET_EDOTDOT          111
-#undef TARGET_EOVERFLOW
-#define TARGET_EOVERFLOW        112
-#undef TARGET_ENOTUNIQ
-#define TARGET_ENOTUNIQ         113
-#undef TARGET_EBADFD
-#define TARGET_EBADFD           114
-#undef TARGET_EREMCHG
-#define TARGET_EREMCHG          115
-#undef TARGET_EILSEQ
-#define TARGET_EILSEQ           116
-/* Same as default              117-121 */
-#undef TARGET_ELIBACC
-#define TARGET_ELIBACC          122
-#undef TARGET_ELIBBAD
-#define TARGET_ELIBBAD          123
-#undef TARGET_ELIBSCN
-#define TARGET_ELIBSCN          124
-#undef TARGET_ELIBMAX
-#define TARGET_ELIBMAX          125
-#undef TARGET_ELIBEXEC
-#define TARGET_ELIBEXEC         126
-#undef TARGET_ERESTART
-#define TARGET_ERESTART         127
-#undef TARGET_ESTRPIPE
-#define TARGET_ESTRPIPE         128
-#undef TARGET_ENOMEDIUM
-#define TARGET_ENOMEDIUM        129
-#undef TARGET_EMEDIUMTYPE
-#define TARGET_EMEDIUMTYPE      130
-#undef TARGET_ECANCELED
-#define TARGET_ECANCELED        131
-#undef TARGET_ENOKEY
-#define TARGET_ENOKEY           132
-#undef TARGET_EKEYEXPIRED
-#define TARGET_EKEYEXPIRED      133
-#undef TARGET_EKEYREVOKED
-#define TARGET_EKEYREVOKED      134
-#undef TARGET_EKEYREJECTED
-#define TARGET_EKEYREJECTED     135
-#undef TARGET_EOWNERDEAD
-#define TARGET_EOWNERDEAD       136
-#undef TARGET_ENOTRECOVERABLE
-#define TARGET_ENOTRECOVERABLE  137
-#undef TARGET_ERFKILL
-#define TARGET_ERFKILL          138
-#undef TARGET_EHWPOISON
-#define TARGET_EHWPOISON        139
-
 // For sys_osf_getsysinfo
 #define TARGET_GSI_UACPROC		8
 #define TARGET_GSI_IEEE_FP_CONTROL	45
-- 
2.31.1



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

* [PATCH 08/12] linux-user/hppa: Move errno definitions to 'target_errno_defs.h'
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (6 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 07/12] linux-user/alpha: Move errno definitions to 'target_errno_defs.h' Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 09/12] linux-user/mips: " Philippe Mathieu-Daudé
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/hppa/target_errno_defs.h | 210 ++++++++++++++++++++++++++++
 linux-user/hppa/target_syscall.h    | 210 ----------------------------
 2 files changed, 210 insertions(+), 210 deletions(-)

diff --git a/linux-user/hppa/target_errno_defs.h b/linux-user/hppa/target_errno_defs.h
index 5ae6b8d0ba2..411dd591edb 100644
--- a/linux-user/hppa/target_errno_defs.h
+++ b/linux-user/hppa/target_errno_defs.h
@@ -1,4 +1,214 @@
 #ifndef HPPA_TARGET_ERRNO_H
 #define HPPA_TARGET_ERRNO_H
 
+#undef TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
+#undef  TARGET_ENOMSG
+#define TARGET_ENOMSG          35
+#undef  TARGET_EIDRM
+#define TARGET_EIDRM           36
+#undef  TARGET_ECHRNG
+#define TARGET_ECHRNG          37
+#undef  TARGET_EL2NSYNC
+#define TARGET_EL2NSYNC        38
+#undef  TARGET_EL3HLT
+#define TARGET_EL3HLT          39
+#undef  TARGET_EL3RST
+#define TARGET_EL3RST          40
+#undef  TARGET_ELNRNG
+#define TARGET_ELNRNG          41
+#undef  TARGET_EUNATCH
+#define TARGET_EUNATCH         42
+#undef  TARGET_ENOCSI
+#define TARGET_ENOCSI          43
+#undef  TARGET_EL2HLT
+#define TARGET_EL2HLT          44
+#undef  TARGET_EDEADLK
+#define TARGET_EDEADLK         45
+#undef  TARGET_ENOLCK
+#define TARGET_ENOLCK          46
+#undef  TARGET_EILSEQ
+#define TARGET_EILSEQ          47
+
+#undef  TARGET_ENONET
+#define TARGET_ENONET          50
+#undef  TARGET_ENODATA
+#define TARGET_ENODATA         51
+#undef  TARGET_ETIME
+#define TARGET_ETIME           52
+#undef  TARGET_ENOSR
+#define TARGET_ENOSR           53
+#undef  TARGET_ENOSTR
+#define TARGET_ENOSTR          54
+#undef  TARGET_ENOPKG
+#define TARGET_ENOPKG          55
+
+#undef  TARGET_ENOLINK
+#define TARGET_ENOLINK         57
+#undef  TARGET_EADV
+#define TARGET_EADV            58
+#undef  TARGET_ESRMNT
+#define TARGET_ESRMNT          59
+#undef  TARGET_ECOMM
+#define TARGET_ECOMM           60
+#undef  TARGET_EPROTO
+#define TARGET_EPROTO          61
+
+#undef  TARGET_EMULTIHOP
+#define TARGET_EMULTIHOP       64
+
+#undef  TARGET_EDOTDOT
+#define TARGET_EDOTDOT         66
+#undef  TARGET_EBADMSG
+#define TARGET_EBADMSG         67
+#undef  TARGET_EUSERS
+#define TARGET_EUSERS          68
+#undef  TARGET_EDQUOT
+#define TARGET_EDQUOT          69
+#undef  TARGET_ESTALE
+#define TARGET_ESTALE          70
+#undef  TARGET_EREMOTE
+#define TARGET_EREMOTE         71
+#undef  TARGET_EOVERFLOW
+#define TARGET_EOVERFLOW       72
+
+#undef  TARGET_EBADE
+#define TARGET_EBADE           160
+#undef  TARGET_EBADR
+#define TARGET_EBADR           161
+#undef  TARGET_EXFULL
+#define TARGET_EXFULL          162
+#undef  TARGET_ENOANO
+#define TARGET_ENOANO          163
+#undef  TARGET_EBADRQC
+#define TARGET_EBADRQC         164
+#undef  TARGET_EBADSLT
+#define TARGET_EBADSLT         165
+#undef  TARGET_EBFONT
+#define TARGET_EBFONT          166
+#undef  TARGET_ENOTUNIQ
+#define TARGET_ENOTUNIQ        167
+#undef  TARGET_EBADFD
+#define TARGET_EBADFD          168
+#undef  TARGET_EREMCHG
+#define TARGET_EREMCHG         169
+#undef  TARGET_ELIBACC
+#define TARGET_ELIBACC         170
+#undef  TARGET_ELIBBAD
+#define TARGET_ELIBBAD         171
+#undef  TARGET_ELIBSCN
+#define TARGET_ELIBSCN         172
+#undef  TARGET_ELIBMAX
+#define TARGET_ELIBMAX         173
+#undef  TARGET_ELIBEXEC
+#define TARGET_ELIBEXEC        174
+#undef  TARGET_ERESTART
+#define TARGET_ERESTART        175
+#undef  TARGET_ESTRPIPE
+#define TARGET_ESTRPIPE        176
+#undef  TARGET_EUCLEAN
+#define TARGET_EUCLEAN         177
+#undef  TARGET_ENOTNAM
+#define TARGET_ENOTNAM         178
+#undef  TARGET_ENAVAIL
+#define TARGET_ENAVAIL         179
+#undef  TARGET_EISNAM
+#define TARGET_EISNAM          180
+#undef  TARGET_EREMOTEIO
+#define TARGET_EREMOTEIO       181
+#undef  TARGET_ENOMEDIUM
+#define TARGET_ENOMEDIUM       182
+#undef  TARGET_EMEDIUMTYPE
+#define TARGET_EMEDIUMTYPE     183
+#undef  TARGET_ENOKEY
+#define TARGET_ENOKEY          184
+#undef  TARGET_EKEYEXPIRED
+#define TARGET_EKEYEXPIRED     185
+#undef  TARGET_EKEYREVOKED
+#define TARGET_EKEYREVOKED     186
+#undef  TARGET_EKEYREJECTED
+#define TARGET_EKEYREJECTED    187
+
+/* Never used in linux.  */
+/* #define TARGET_ENOSYM          215 */
+#undef  TARGET_ENOTSOCK
+#define TARGET_ENOTSOCK        216
+#undef  TARGET_EDESTADDRREQ
+#define TARGET_EDESTADDRREQ    217
+#undef  TARGET_EMSGSIZE
+#define TARGET_EMSGSIZE        218
+#undef  TARGET_EPROTOTYPE
+#define TARGET_EPROTOTYPE      219
+#undef  TARGET_ENOPROTOOPT
+#define TARGET_ENOPROTOOPT     220
+#undef  TARGET_EPROTONOSUPPORT
+#define TARGET_EPROTONOSUPPORT 221
+#undef  TARGET_ESOCKTNOSUPPORT
+#define TARGET_ESOCKTNOSUPPORT 222
+#undef  TARGET_EOPNOTSUPP
+#define TARGET_EOPNOTSUPP      223
+#undef  TARGET_EPFNOSUPPORT
+#define TARGET_EPFNOSUPPORT    224
+#undef  TARGET_EAFNOSUPPORT
+#define TARGET_EAFNOSUPPORT    225
+#undef  TARGET_EADDRINUSE
+#define TARGET_EADDRINUSE      226
+#undef  TARGET_EADDRNOTAVAIL
+#define TARGET_EADDRNOTAVAIL   227
+#undef  TARGET_ENETDOWN
+#define TARGET_ENETDOWN        228
+#undef  TARGET_ENETUNREACH
+#define TARGET_ENETUNREACH     229
+#undef  TARGET_ENETRESET
+#define TARGET_ENETRESET       230
+#undef  TARGET_ECONNABORTED
+#define TARGET_ECONNABORTED    231
+#undef  TARGET_ECONNRESET
+#define TARGET_ECONNRESET      232
+#undef  TARGET_ENOBUFS
+#define TARGET_ENOBUFS         233
+#undef  TARGET_EISCONN
+#define TARGET_EISCONN         234
+#undef  TARGET_ENOTCONN
+#define TARGET_ENOTCONN        235
+#undef  TARGET_ESHUTDOWN
+#define TARGET_ESHUTDOWN       236
+#undef  TARGET_ETOOMANYREFS
+#define TARGET_ETOOMANYREFS    237
+#undef  TARGET_ETIMEDOUT
+#define TARGET_ETIMEDOUT       238
+#undef  TARGET_ECONNREFUSED
+#define TARGET_ECONNREFUSED    239
+#define TARGET_EREMOTERELEASE  240
+#undef  TARGET_EHOSTDOWN
+#define TARGET_EHOSTDOWN       241
+#undef  TARGET_EHOSTUNREACH
+#define TARGET_EHOSTUNREACH    242
+
+#undef  TARGET_EALREADY
+#define TARGET_EALREADY        244
+#undef  TARGET_EINPROGRESS
+#define TARGET_EINPROGRESS     245
+#undef  TARGET_ENOTEMPTY
+#define TARGET_ENOTEMPTY       247
+#undef  TARGET_ENAMETOOLONG
+#define TARGET_ENAMETOOLONG    248
+#undef  TARGET_ELOOP
+#define TARGET_ELOOP           249
+#undef  TARGET_ENOSYS
+#define TARGET_ENOSYS          251
+
+#undef  TARGET_ECANCELED
+#define TARGET_ECANCELED       253
+
+#undef  TARGET_EOWNERDEAD
+#define TARGET_EOWNERDEAD      254
+#undef  TARGET_ENOTRECOVERABLE
+#define TARGET_ENOTRECOVERABLE 255
+
+#undef  TARGET_ERFKILL
+#define TARGET_ERFKILL         256
+#undef  TARGET_EHWPOISON
+#define TARGET_EHWPOISON       257
+
 #endif
diff --git a/linux-user/hppa/target_syscall.h b/linux-user/hppa/target_syscall.h
index 97a095656d8..0018bcb5c4d 100644
--- a/linux-user/hppa/target_syscall.h
+++ b/linux-user/hppa/target_syscall.h
@@ -27,214 +27,4 @@ struct target_pt_regs {
 #define TARGET_MCL_FUTURE  2
 #define TARGET_MCL_ONFAULT 4
 
-#undef  TARGET_EWOULDBLOCK
-#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
-#undef  TARGET_ENOMSG
-#define TARGET_ENOMSG          35
-#undef  TARGET_EIDRM
-#define TARGET_EIDRM           36
-#undef  TARGET_ECHRNG
-#define TARGET_ECHRNG          37
-#undef  TARGET_EL2NSYNC
-#define TARGET_EL2NSYNC        38
-#undef  TARGET_EL3HLT
-#define TARGET_EL3HLT          39
-#undef  TARGET_EL3RST
-#define TARGET_EL3RST          40
-#undef  TARGET_ELNRNG
-#define TARGET_ELNRNG          41
-#undef  TARGET_EUNATCH
-#define TARGET_EUNATCH         42
-#undef  TARGET_ENOCSI
-#define TARGET_ENOCSI          43
-#undef  TARGET_EL2HLT
-#define TARGET_EL2HLT          44
-#undef  TARGET_EDEADLK
-#define TARGET_EDEADLK         45
-#undef  TARGET_ENOLCK
-#define TARGET_ENOLCK          46
-#undef  TARGET_EILSEQ
-#define TARGET_EILSEQ          47
-
-#undef  TARGET_ENONET
-#define TARGET_ENONET          50
-#undef  TARGET_ENODATA
-#define TARGET_ENODATA         51
-#undef  TARGET_ETIME
-#define TARGET_ETIME           52
-#undef  TARGET_ENOSR
-#define TARGET_ENOSR           53
-#undef  TARGET_ENOSTR
-#define TARGET_ENOSTR          54
-#undef  TARGET_ENOPKG
-#define TARGET_ENOPKG          55
-
-#undef  TARGET_ENOLINK
-#define TARGET_ENOLINK         57
-#undef  TARGET_EADV
-#define TARGET_EADV            58
-#undef  TARGET_ESRMNT
-#define TARGET_ESRMNT          59
-#undef  TARGET_ECOMM
-#define TARGET_ECOMM           60
-#undef  TARGET_EPROTO
-#define TARGET_EPROTO          61
-
-#undef  TARGET_EMULTIHOP
-#define TARGET_EMULTIHOP       64
-
-#undef  TARGET_EDOTDOT
-#define TARGET_EDOTDOT         66
-#undef  TARGET_EBADMSG
-#define TARGET_EBADMSG         67
-#undef  TARGET_EUSERS
-#define TARGET_EUSERS          68
-#undef  TARGET_EDQUOT
-#define TARGET_EDQUOT          69
-#undef  TARGET_ESTALE
-#define TARGET_ESTALE          70
-#undef  TARGET_EREMOTE
-#define TARGET_EREMOTE         71
-#undef  TARGET_EOVERFLOW
-#define TARGET_EOVERFLOW       72
-
-#undef  TARGET_EBADE
-#define TARGET_EBADE           160
-#undef  TARGET_EBADR
-#define TARGET_EBADR           161
-#undef  TARGET_EXFULL
-#define TARGET_EXFULL          162
-#undef  TARGET_ENOANO
-#define TARGET_ENOANO          163
-#undef  TARGET_EBADRQC
-#define TARGET_EBADRQC         164
-#undef  TARGET_EBADSLT
-#define TARGET_EBADSLT         165
-#undef  TARGET_EBFONT
-#define TARGET_EBFONT          166
-#undef  TARGET_ENOTUNIQ
-#define TARGET_ENOTUNIQ        167
-#undef  TARGET_EBADFD
-#define TARGET_EBADFD          168
-#undef  TARGET_EREMCHG
-#define TARGET_EREMCHG         169
-#undef  TARGET_ELIBACC
-#define TARGET_ELIBACC         170
-#undef  TARGET_ELIBBAD
-#define TARGET_ELIBBAD         171
-#undef  TARGET_ELIBSCN
-#define TARGET_ELIBSCN         172
-#undef  TARGET_ELIBMAX
-#define TARGET_ELIBMAX         173
-#undef  TARGET_ELIBEXEC
-#define TARGET_ELIBEXEC        174
-#undef  TARGET_ERESTART
-#define TARGET_ERESTART        175
-#undef  TARGET_ESTRPIPE
-#define TARGET_ESTRPIPE        176
-#undef  TARGET_EUCLEAN
-#define TARGET_EUCLEAN         177
-#undef  TARGET_ENOTNAM
-#define TARGET_ENOTNAM         178
-#undef  TARGET_ENAVAIL
-#define TARGET_ENAVAIL         179
-#undef  TARGET_EISNAM
-#define TARGET_EISNAM          180
-#undef  TARGET_EREMOTEIO
-#define TARGET_EREMOTEIO       181
-#undef  TARGET_ENOMEDIUM
-#define TARGET_ENOMEDIUM       182
-#undef  TARGET_EMEDIUMTYPE
-#define TARGET_EMEDIUMTYPE     183
-#undef  TARGET_ENOKEY
-#define TARGET_ENOKEY          184
-#undef  TARGET_EKEYEXPIRED
-#define TARGET_EKEYEXPIRED     185
-#undef  TARGET_EKEYREVOKED
-#define TARGET_EKEYREVOKED     186
-#undef  TARGET_EKEYREJECTED
-#define TARGET_EKEYREJECTED    187
-
-/* Never used in linux.  */
-/* #define TARGET_ENOSYM          215 */
-#undef  TARGET_ENOTSOCK
-#define TARGET_ENOTSOCK        216
-#undef  TARGET_EDESTADDRREQ
-#define TARGET_EDESTADDRREQ    217
-#undef  TARGET_EMSGSIZE
-#define TARGET_EMSGSIZE        218
-#undef  TARGET_EPROTOTYPE
-#define TARGET_EPROTOTYPE      219
-#undef  TARGET_ENOPROTOOPT
-#define TARGET_ENOPROTOOPT     220
-#undef  TARGET_EPROTONOSUPPORT
-#define TARGET_EPROTONOSUPPORT 221
-#undef  TARGET_ESOCKTNOSUPPORT
-#define TARGET_ESOCKTNOSUPPORT 222
-#undef  TARGET_EOPNOTSUPP
-#define TARGET_EOPNOTSUPP      223
-#undef  TARGET_EPFNOSUPPORT
-#define TARGET_EPFNOSUPPORT    224
-#undef  TARGET_EAFNOSUPPORT
-#define TARGET_EAFNOSUPPORT    225
-#undef  TARGET_EADDRINUSE
-#define TARGET_EADDRINUSE      226
-#undef  TARGET_EADDRNOTAVAIL
-#define TARGET_EADDRNOTAVAIL   227
-#undef  TARGET_ENETDOWN
-#define TARGET_ENETDOWN        228
-#undef  TARGET_ENETUNREACH
-#define TARGET_ENETUNREACH     229
-#undef  TARGET_ENETRESET
-#define TARGET_ENETRESET       230
-#undef  TARGET_ECONNABORTED
-#define TARGET_ECONNABORTED    231
-#undef  TARGET_ECONNRESET
-#define TARGET_ECONNRESET      232
-#undef  TARGET_ENOBUFS
-#define TARGET_ENOBUFS         233
-#undef  TARGET_EISCONN
-#define TARGET_EISCONN         234
-#undef  TARGET_ENOTCONN
-#define TARGET_ENOTCONN        235
-#undef  TARGET_ESHUTDOWN
-#define TARGET_ESHUTDOWN       236
-#undef  TARGET_ETOOMANYREFS
-#define TARGET_ETOOMANYREFS    237
-#undef  TARGET_ETIMEDOUT
-#define TARGET_ETIMEDOUT       238
-#undef  TARGET_ECONNREFUSED
-#define TARGET_ECONNREFUSED    239
-#define TARGET_EREMOTERELEASE  240
-#undef  TARGET_EHOSTDOWN
-#define TARGET_EHOSTDOWN       241
-#undef  TARGET_EHOSTUNREACH
-#define TARGET_EHOSTUNREACH    242
-
-#undef  TARGET_EALREADY
-#define TARGET_EALREADY        244
-#undef  TARGET_EINPROGRESS
-#define TARGET_EINPROGRESS     245
-#undef  TARGET_ENOTEMPTY
-#define TARGET_ENOTEMPTY       247
-#undef  TARGET_ENAMETOOLONG
-#define TARGET_ENAMETOOLONG    248
-#undef  TARGET_ELOOP
-#define TARGET_ELOOP           249
-#undef  TARGET_ENOSYS
-#define TARGET_ENOSYS          251
-
-#undef  TARGET_ECANCELED
-#define TARGET_ECANCELED       253
-
-#undef  TARGET_EOWNERDEAD
-#define TARGET_EOWNERDEAD      254
-#undef  TARGET_ENOTRECOVERABLE
-#define TARGET_ENOTRECOVERABLE 255
-
-#undef  TARGET_ERFKILL
-#define TARGET_ERFKILL         256
-#undef  TARGET_EHWPOISON
-#define TARGET_EHWPOISON       257
-
 #endif /* HPPA_TARGET_SYSCALL_H */
-- 
2.31.1



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

* [PATCH 09/12] linux-user/mips: Move errno definitions to 'target_errno_defs.h'
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (7 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 08/12] linux-user/hppa: " Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 10/12] linux-user/syscall: Refactor target_to_host_errno_table_init() Philippe Mathieu-Daudé
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/mips/target_errno_defs.h   | 211 ++++++++++++++++++++++++++
 linux-user/mips/target_syscall.h      | 211 --------------------------
 linux-user/mips64/target_errno_defs.h | 211 ++++++++++++++++++++++++++
 linux-user/mips64/target_syscall.h    | 211 --------------------------
 4 files changed, 422 insertions(+), 422 deletions(-)

diff --git a/linux-user/mips/target_errno_defs.h b/linux-user/mips/target_errno_defs.h
index 05e0bea44bc..ba4d10b1d29 100644
--- a/linux-user/mips/target_errno_defs.h
+++ b/linux-user/mips/target_errno_defs.h
@@ -1,4 +1,215 @@
 #ifndef MIPS_TARGET_ERRNO_H
 #define MIPS_TARGET_ERRNO_H
 
+/* Target errno definitions taken from asm-mips/errno.h */
+#undef TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
+#undef TARGET_ENOMSG
+#define TARGET_ENOMSG          35      /* Identifier removed */
+#undef TARGET_EIDRM
+#define TARGET_EIDRM           36      /* Identifier removed */
+#undef TARGET_ECHRNG
+#define TARGET_ECHRNG          37      /* Channel number out of range */
+#undef TARGET_EL2NSYNC
+#define TARGET_EL2NSYNC        38      /* Level 2 not synchronized */
+#undef TARGET_EL3HLT
+#define TARGET_EL3HLT          39      /* Level 3 halted */
+#undef TARGET_EL3RST
+#define TARGET_EL3RST          40      /* Level 3 reset */
+#undef TARGET_ELNRNG
+#define TARGET_ELNRNG          41      /* Link number out of range */
+#undef TARGET_EUNATCH
+#define TARGET_EUNATCH         42      /* Protocol driver not attached */
+#undef TARGET_ENOCSI
+#define TARGET_ENOCSI          43      /* No CSI structure available */
+#undef TARGET_EL2HLT
+#define TARGET_EL2HLT          44      /* Level 2 halted */
+#undef TARGET_EDEADLK
+#define TARGET_EDEADLK         45      /* Resource deadlock would occur */
+#undef TARGET_ENOLCK
+#define TARGET_ENOLCK          46      /* No record locks available */
+#undef TARGET_EBADE
+#define TARGET_EBADE           50      /* Invalid exchange */
+#undef TARGET_EBADR
+#define TARGET_EBADR           51      /* Invalid request descriptor */
+#undef TARGET_EXFULL
+#define TARGET_EXFULL          52      /* TARGET_Exchange full */
+#undef TARGET_ENOANO
+#define TARGET_ENOANO          53      /* No anode */
+#undef TARGET_EBADRQC
+#define TARGET_EBADRQC         54      /* Invalid request code */
+#undef TARGET_EBADSLT
+#define TARGET_EBADSLT         55      /* Invalid slot */
+#undef TARGET_EDEADLOCK
+#define TARGET_EDEADLOCK       56      /* File locking deadlock error */
+#undef TARGET_EBFONT
+#define TARGET_EBFONT          59      /* Bad font file format */
+#undef TARGET_ENOSTR
+#define TARGET_ENOSTR          60      /* Device not a stream */
+#undef TARGET_ENODATA
+#define TARGET_ENODATA         61      /* No data available */
+#undef TARGET_ETIME
+#define TARGET_ETIME           62      /* Timer expired */
+#undef TARGET_ENOSR
+#define TARGET_ENOSR           63      /* Out of streams resources */
+#undef TARGET_ENONET
+#define TARGET_ENONET          64      /* Machine is not on the network */
+#undef TARGET_ENOPKG
+#define TARGET_ENOPKG          65      /* Package not installed */
+#undef TARGET_EREMOTE
+#define TARGET_EREMOTE         66      /* Object is remote */
+#undef TARGET_ENOLINK
+#define TARGET_ENOLINK         67      /* Link has been severed */
+#undef TARGET_EADV
+#define TARGET_EADV            68      /* Advertise error */
+#undef TARGET_ESRMNT
+#define TARGET_ESRMNT          69      /* Srmount error */
+#undef TARGET_ECOMM
+#define TARGET_ECOMM           70      /* Communication error on send */
+#undef TARGET_EPROTO
+#define TARGET_EPROTO          71      /* Protocol error */
+#undef TARGET_EDOTDOT
+#define TARGET_EDOTDOT         73      /* RFS specific error */
+#undef TARGET_EMULTIHOP
+#define TARGET_EMULTIHOP       74      /* Multihop attempted */
+#undef TARGET_EBADMSG
+#define TARGET_EBADMSG         77      /* Not a data message */
+#undef TARGET_ENAMETOOLONG
+#define TARGET_ENAMETOOLONG    78      /* File name too long */
+#undef TARGET_EOVERFLOW
+#define TARGET_EOVERFLOW       79      /* Value too large for defined data type */
+#undef TARGET_ENOTUNIQ
+#define TARGET_ENOTUNIQ        80      /* Name not unique on network */
+#undef TARGET_EBADFD
+#define TARGET_EBADFD          81      /* File descriptor in bad state */
+#undef TARGET_EREMCHG
+#define TARGET_EREMCHG         82      /* Remote address changed */
+#undef TARGET_ELIBACC
+#define TARGET_ELIBACC         83      /* Can not access a needed shared library */
+#undef TARGET_ELIBBAD
+#define TARGET_ELIBBAD         84      /* Accessing a corrupted shared library */
+#undef TARGET_ELIBSCN
+#define TARGET_ELIBSCN         85      /* .lib section in a.out corrupted */
+#undef TARGET_ELIBMAX
+#define TARGET_ELIBMAX         86      /* Attempting to link in too many shared libraries */
+#undef TARGET_ELIBEXEC
+#define TARGET_ELIBEXEC        87      /* Cannot exec a shared library directly */
+#undef TARGET_EILSEQ
+#define TARGET_EILSEQ          88      /* Illegal byte sequence */
+#undef TARGET_ENOSYS
+#define TARGET_ENOSYS          89      /* Function not implemented */
+#undef TARGET_ELOOP
+#define TARGET_ELOOP           90      /* Too many symbolic links encountered */
+#undef TARGET_ERESTART
+#define TARGET_ERESTART        91      /* Interrupted system call should be restarted */
+#undef TARGET_ESTRPIPE
+#define TARGET_ESTRPIPE        92      /* Streams pipe error */
+#undef TARGET_ENOTEMPTY
+#define TARGET_ENOTEMPTY       93      /* Directory not empty */
+#undef TARGET_EUSERS
+#define TARGET_EUSERS          94      /* Too many users */
+#undef TARGET_ENOTSOCK
+#define TARGET_ENOTSOCK        95      /* Socket operation on non-socket */
+#undef TARGET_EDESTADDRREQ
+#define TARGET_EDESTADDRREQ    96      /* Destination address required */
+#undef TARGET_EMSGSIZE
+#define TARGET_EMSGSIZE        97      /* Message too long */
+#undef TARGET_EPROTOTYPE
+#define TARGET_EPROTOTYPE      98      /* Protocol wrong type for socket */
+#undef TARGET_ENOPROTOOPT
+#define TARGET_ENOPROTOOPT     99      /* Protocol not available */
+#undef TARGET_EPROTONOSUPPORT
+#define TARGET_EPROTONOSUPPORT 120     /* Protocol not supported */
+#undef TARGET_ESOCKTNOSUPPORT
+#define TARGET_ESOCKTNOSUPPORT 121     /* Socket type not supported */
+#undef TARGET_EOPNOTSUPP
+#define TARGET_EOPNOTSUPP      122     /* Operation not supported on transport endpoint */
+#undef TARGET_EPFNOSUPPORT
+#define TARGET_EPFNOSUPPORT    123     /* Protocol family not supported */
+#undef TARGET_EAFNOSUPPORT
+#define TARGET_EAFNOSUPPORT    124     /* Address family not supported by protocol */
+#undef TARGET_EADDRINUSE
+#define TARGET_EADDRINUSE      125     /* Address already in use */
+#undef TARGET_EADDRNOTAVAIL
+#define TARGET_EADDRNOTAVAIL   126     /* Cannot assign requested address */
+#undef TARGET_ENETDOWN
+#define TARGET_ENETDOWN        127     /* Network is down */
+#undef TARGET_ENETUNREACH
+#define TARGET_ENETUNREACH     128     /* Network is unreachable */
+#undef TARGET_ENETRESET
+#define TARGET_ENETRESET       129     /* Network dropped connection because of reset */
+#undef TARGET_ECONNABORTED
+#define TARGET_ECONNABORTED    130     /* Software caused connection abort */
+#undef TARGET_ECONNRESET
+#define TARGET_ECONNRESET      131     /* Connection reset by peer */
+#undef TARGET_ENOBUFS
+#define TARGET_ENOBUFS         132     /* No buffer space available */
+#undef TARGET_EISCONN
+#define TARGET_EISCONN         133     /* Transport endpoint is already connected */
+#undef TARGET_ENOTCONN
+#define TARGET_ENOTCONN        134     /* Transport endpoint is not connected */
+#undef TARGET_EUCLEAN
+#define TARGET_EUCLEAN         135     /* Structure needs cleaning */
+#undef TARGET_ENOTNAM
+#define TARGET_ENOTNAM         137     /* Not a XENIX named type file */
+#undef TARGET_ENAVAIL
+#define TARGET_ENAVAIL         138     /* No XENIX semaphores available */
+#undef TARGET_EISNAM
+#define TARGET_EISNAM          139     /* Is a named type file */
+#undef TARGET_EREMOTEIO
+#define TARGET_EREMOTEIO       140     /* Remote I/O error */
+#undef TARGET_EINIT
+#define TARGET_EINIT           141     /* Reserved */
+#undef TARGET_EREMDEV
+#define TARGET_EREMDEV         142     /* TARGET_Error 142 */
+#undef TARGET_ESHUTDOWN
+#define TARGET_ESHUTDOWN       143     /* Cannot send after transport endpoint shutdown */
+#undef TARGET_ETOOMANYREFS
+#define TARGET_ETOOMANYREFS    144     /* Too many references: cannot splice */
+#undef TARGET_ETIMEDOUT
+#define TARGET_ETIMEDOUT       145     /* Connection timed out */
+#undef TARGET_ECONNREFUSED
+#define TARGET_ECONNREFUSED    146     /* Connection refused */
+#undef TARGET_EHOSTDOWN
+#define TARGET_EHOSTDOWN       147     /* Host is down */
+#undef TARGET_EHOSTUNREACH
+#define TARGET_EHOSTUNREACH    148     /* No route to host */
+#undef TARGET_EALREADY
+#define TARGET_EALREADY        149     /* Operation already in progress */
+#undef TARGET_EINPROGRESS
+#define TARGET_EINPROGRESS     150     /* Operation now in progress */
+#undef TARGET_ESTALE
+#define TARGET_ESTALE          151     /* Stale NFS file handle */
+#undef TARGET_ECANCELED
+#define TARGET_ECANCELED       158     /* AIO operation canceled */
+/*
+ * These error are Linux extensions.
+ */
+#undef TARGET_ENOMEDIUM
+#define TARGET_ENOMEDIUM       159     /* No medium found */
+#undef TARGET_EMEDIUMTYPE
+#define TARGET_EMEDIUMTYPE     160     /* Wrong medium type */
+#undef TARGET_ENOKEY
+#define TARGET_ENOKEY          161     /* Required key not available */
+#undef TARGET_EKEYEXPIRED
+#define TARGET_EKEYEXPIRED     162     /* Key has expired */
+#undef TARGET_EKEYREVOKED
+#define TARGET_EKEYREVOKED     163     /* Key has been revoked */
+#undef TARGET_EKEYREJECTED
+#define TARGET_EKEYREJECTED    164     /* Key was rejected by service */
+
+/* for robust mutexes */
+#undef TARGET_EOWNERDEAD
+#define TARGET_EOWNERDEAD      165     /* Owner died */
+#undef TARGET_ENOTRECOVERABLE
+#define TARGET_ENOTRECOVERABLE 166     /* State not recoverable */
+
+#undef TARGET_ERFKILL
+#define TARGET_ERFKILL         167
+#undef TARGET_EHWPOISON
+#define TARGET_EHWPOISON       168
+
+#undef TARGET_EDQUOT
+#define TARGET_EDQUOT          1133    /* Quota exceeded */
+
 #endif
diff --git a/linux-user/mips/target_syscall.h b/linux-user/mips/target_syscall.h
index 3e558fdb4b4..f59057493a3 100644
--- a/linux-user/mips/target_syscall.h
+++ b/linux-user/mips/target_syscall.h
@@ -20,217 +20,6 @@ struct target_pt_regs {
 	abi_ulong cp0_epc;
 };
 
-/* Target errno definitions taken from asm-mips/errno.h */
-#undef TARGET_EWOULDBLOCK
-#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
-#undef TARGET_ENOMSG
-#define TARGET_ENOMSG          35      /* Identifier removed */
-#undef TARGET_EIDRM
-#define TARGET_EIDRM           36      /* Identifier removed */
-#undef TARGET_ECHRNG
-#define TARGET_ECHRNG          37      /* Channel number out of range */
-#undef TARGET_EL2NSYNC
-#define TARGET_EL2NSYNC        38      /* Level 2 not synchronized */
-#undef TARGET_EL3HLT
-#define TARGET_EL3HLT          39      /* Level 3 halted */
-#undef TARGET_EL3RST
-#define TARGET_EL3RST          40      /* Level 3 reset */
-#undef TARGET_ELNRNG
-#define TARGET_ELNRNG          41      /* Link number out of range */
-#undef TARGET_EUNATCH
-#define TARGET_EUNATCH         42      /* Protocol driver not attached */
-#undef TARGET_ENOCSI
-#define TARGET_ENOCSI          43      /* No CSI structure available */
-#undef TARGET_EL2HLT
-#define TARGET_EL2HLT          44      /* Level 2 halted */
-#undef TARGET_EDEADLK
-#define TARGET_EDEADLK         45      /* Resource deadlock would occur */
-#undef TARGET_ENOLCK
-#define TARGET_ENOLCK          46      /* No record locks available */
-#undef TARGET_EBADE
-#define TARGET_EBADE           50      /* Invalid exchange */
-#undef TARGET_EBADR
-#define TARGET_EBADR           51      /* Invalid request descriptor */
-#undef TARGET_EXFULL
-#define TARGET_EXFULL          52      /* TARGET_Exchange full */
-#undef TARGET_ENOANO
-#define TARGET_ENOANO          53      /* No anode */
-#undef TARGET_EBADRQC
-#define TARGET_EBADRQC         54      /* Invalid request code */
-#undef TARGET_EBADSLT
-#define TARGET_EBADSLT         55      /* Invalid slot */
-#undef TARGET_EDEADLOCK
-#define TARGET_EDEADLOCK       56      /* File locking deadlock error */
-#undef TARGET_EBFONT
-#define TARGET_EBFONT          59      /* Bad font file format */
-#undef TARGET_ENOSTR
-#define TARGET_ENOSTR          60      /* Device not a stream */
-#undef TARGET_ENODATA
-#define TARGET_ENODATA         61      /* No data available */
-#undef TARGET_ETIME
-#define TARGET_ETIME           62      /* Timer expired */
-#undef TARGET_ENOSR
-#define TARGET_ENOSR           63      /* Out of streams resources */
-#undef TARGET_ENONET
-#define TARGET_ENONET          64      /* Machine is not on the network */
-#undef TARGET_ENOPKG
-#define TARGET_ENOPKG          65      /* Package not installed */
-#undef TARGET_EREMOTE
-#define TARGET_EREMOTE         66      /* Object is remote */
-#undef TARGET_ENOLINK
-#define TARGET_ENOLINK         67      /* Link has been severed */
-#undef TARGET_EADV
-#define TARGET_EADV            68      /* Advertise error */
-#undef TARGET_ESRMNT
-#define TARGET_ESRMNT          69      /* Srmount error */
-#undef TARGET_ECOMM
-#define TARGET_ECOMM           70      /* Communication error on send */
-#undef TARGET_EPROTO
-#define TARGET_EPROTO          71      /* Protocol error */
-#undef TARGET_EDOTDOT
-#define TARGET_EDOTDOT         73      /* RFS specific error */
-#undef TARGET_EMULTIHOP
-#define TARGET_EMULTIHOP       74      /* Multihop attempted */
-#undef TARGET_EBADMSG
-#define TARGET_EBADMSG         77      /* Not a data message */
-#undef TARGET_ENAMETOOLONG
-#define TARGET_ENAMETOOLONG    78      /* File name too long */
-#undef TARGET_EOVERFLOW
-#define TARGET_EOVERFLOW       79      /* Value too large for defined data type */
-#undef TARGET_ENOTUNIQ
-#define TARGET_ENOTUNIQ        80      /* Name not unique on network */
-#undef TARGET_EBADFD
-#define TARGET_EBADFD          81      /* File descriptor in bad state */
-#undef TARGET_EREMCHG
-#define TARGET_EREMCHG         82      /* Remote address changed */
-#undef TARGET_ELIBACC
-#define TARGET_ELIBACC         83      /* Can not access a needed shared library */
-#undef TARGET_ELIBBAD
-#define TARGET_ELIBBAD         84      /* Accessing a corrupted shared library */
-#undef TARGET_ELIBSCN
-#define TARGET_ELIBSCN         85      /* .lib section in a.out corrupted */
-#undef TARGET_ELIBMAX
-#define TARGET_ELIBMAX         86      /* Attempting to link in too many shared libraries */
-#undef TARGET_ELIBEXEC
-#define TARGET_ELIBEXEC        87      /* Cannot exec a shared library directly */
-#undef TARGET_EILSEQ
-#define TARGET_EILSEQ          88      /* Illegal byte sequence */
-#undef TARGET_ENOSYS
-#define TARGET_ENOSYS          89      /* Function not implemented */
-#undef TARGET_ELOOP
-#define TARGET_ELOOP           90      /* Too many symbolic links encountered */
-#undef TARGET_ERESTART
-#define TARGET_ERESTART        91      /* Interrupted system call should be restarted */
-#undef TARGET_ESTRPIPE
-#define TARGET_ESTRPIPE        92      /* Streams pipe error */
-#undef TARGET_ENOTEMPTY
-#define TARGET_ENOTEMPTY       93      /* Directory not empty */
-#undef TARGET_EUSERS
-#define TARGET_EUSERS          94      /* Too many users */
-#undef TARGET_ENOTSOCK
-#define TARGET_ENOTSOCK        95      /* Socket operation on non-socket */
-#undef TARGET_EDESTADDRREQ
-#define TARGET_EDESTADDRREQ    96      /* Destination address required */
-#undef TARGET_EMSGSIZE
-#define TARGET_EMSGSIZE        97      /* Message too long */
-#undef TARGET_EPROTOTYPE
-#define TARGET_EPROTOTYPE      98      /* Protocol wrong type for socket */
-#undef TARGET_ENOPROTOOPT
-#define TARGET_ENOPROTOOPT     99      /* Protocol not available */
-#undef TARGET_EPROTONOSUPPORT
-#define TARGET_EPROTONOSUPPORT 120     /* Protocol not supported */
-#undef TARGET_ESOCKTNOSUPPORT
-#define TARGET_ESOCKTNOSUPPORT 121     /* Socket type not supported */
-#undef TARGET_EOPNOTSUPP
-#define TARGET_EOPNOTSUPP      122     /* Operation not supported on transport endpoint */
-#undef TARGET_EPFNOSUPPORT
-#define TARGET_EPFNOSUPPORT    123     /* Protocol family not supported */
-#undef TARGET_EAFNOSUPPORT
-#define TARGET_EAFNOSUPPORT    124     /* Address family not supported by protocol */
-#undef TARGET_EADDRINUSE
-#define TARGET_EADDRINUSE      125     /* Address already in use */
-#undef TARGET_EADDRNOTAVAIL
-#define TARGET_EADDRNOTAVAIL   126     /* Cannot assign requested address */
-#undef TARGET_ENETDOWN
-#define TARGET_ENETDOWN        127     /* Network is down */
-#undef TARGET_ENETUNREACH
-#define TARGET_ENETUNREACH     128     /* Network is unreachable */
-#undef TARGET_ENETRESET
-#define TARGET_ENETRESET       129     /* Network dropped connection because of reset */
-#undef TARGET_ECONNABORTED
-#define TARGET_ECONNABORTED    130     /* Software caused connection abort */
-#undef TARGET_ECONNRESET
-#define TARGET_ECONNRESET      131     /* Connection reset by peer */
-#undef TARGET_ENOBUFS
-#define TARGET_ENOBUFS         132     /* No buffer space available */
-#undef TARGET_EISCONN
-#define TARGET_EISCONN         133     /* Transport endpoint is already connected */
-#undef TARGET_ENOTCONN
-#define TARGET_ENOTCONN        134     /* Transport endpoint is not connected */
-#undef TARGET_EUCLEAN
-#define TARGET_EUCLEAN         135     /* Structure needs cleaning */
-#undef TARGET_ENOTNAM
-#define TARGET_ENOTNAM         137     /* Not a XENIX named type file */
-#undef TARGET_ENAVAIL
-#define TARGET_ENAVAIL         138     /* No XENIX semaphores available */
-#undef TARGET_EISNAM
-#define TARGET_EISNAM          139     /* Is a named type file */
-#undef TARGET_EREMOTEIO
-#define TARGET_EREMOTEIO       140     /* Remote I/O error */
-#undef TARGET_EINIT
-#define TARGET_EINIT           141     /* Reserved */
-#undef TARGET_EREMDEV
-#define TARGET_EREMDEV         142     /* TARGET_Error 142 */
-#undef TARGET_ESHUTDOWN
-#define TARGET_ESHUTDOWN       143     /* Cannot send after transport endpoint shutdown */
-#undef TARGET_ETOOMANYREFS
-#define TARGET_ETOOMANYREFS    144     /* Too many references: cannot splice */
-#undef TARGET_ETIMEDOUT
-#define TARGET_ETIMEDOUT       145     /* Connection timed out */
-#undef TARGET_ECONNREFUSED
-#define TARGET_ECONNREFUSED    146     /* Connection refused */
-#undef TARGET_EHOSTDOWN
-#define TARGET_EHOSTDOWN       147     /* Host is down */
-#undef TARGET_EHOSTUNREACH
-#define TARGET_EHOSTUNREACH    148     /* No route to host */
-#undef TARGET_EALREADY
-#define TARGET_EALREADY        149     /* Operation already in progress */
-#undef TARGET_EINPROGRESS
-#define TARGET_EINPROGRESS     150     /* Operation now in progress */
-#undef TARGET_ESTALE
-#define TARGET_ESTALE          151     /* Stale NFS file handle */
-#undef TARGET_ECANCELED
-#define TARGET_ECANCELED       158     /* AIO operation canceled */
-/*
- * These error are Linux extensions.
- */
-#undef TARGET_ENOMEDIUM
-#define TARGET_ENOMEDIUM       159     /* No medium found */
-#undef TARGET_EMEDIUMTYPE
-#define TARGET_EMEDIUMTYPE     160     /* Wrong medium type */
-#undef TARGET_ENOKEY
-#define TARGET_ENOKEY          161     /* Required key not available */
-#undef TARGET_EKEYEXPIRED
-#define TARGET_EKEYEXPIRED     162     /* Key has expired */
-#undef TARGET_EKEYREVOKED
-#define TARGET_EKEYREVOKED     163     /* Key has been revoked */
-#undef TARGET_EKEYREJECTED
-#define TARGET_EKEYREJECTED    164     /* Key was rejected by service */
-
-/* for robust mutexes */
-#undef TARGET_EOWNERDEAD
-#define TARGET_EOWNERDEAD      165     /* Owner died */
-#undef TARGET_ENOTRECOVERABLE
-#define TARGET_ENOTRECOVERABLE 166     /* State not recoverable */
-
-#undef TARGET_ERFKILL
-#define TARGET_ERFKILL         167
-#undef TARGET_EHWPOISON
-#define TARGET_EHWPOISON       168
-
-#undef TARGET_EDQUOT
-#define TARGET_EDQUOT          1133    /* Quota exceeded */
-
 #define UNAME_MACHINE "mips"
 #define UNAME_MINIMUM_RELEASE "2.6.32"
 
diff --git a/linux-user/mips64/target_errno_defs.h b/linux-user/mips64/target_errno_defs.h
index 0dd5966d1af..ba79f3123b8 100644
--- a/linux-user/mips64/target_errno_defs.h
+++ b/linux-user/mips64/target_errno_defs.h
@@ -1,4 +1,215 @@
 #ifndef MIPS64_TARGET_ERRNO_H
 #define MIPS64_TARGET_ERRNO_H
 
+/* Target errno definitions taken from asm-mips/errno.h */
+#undef TARGET_EWOULDBLOCK
+#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
+#undef TARGET_ENOMSG
+#define TARGET_ENOMSG          35      /* Identifier removed */
+#undef TARGET_EIDRM
+#define TARGET_EIDRM           36      /* Identifier removed */
+#undef TARGET_ECHRNG
+#define TARGET_ECHRNG          37      /* Channel number out of range */
+#undef TARGET_EL2NSYNC
+#define TARGET_EL2NSYNC        38      /* Level 2 not synchronized */
+#undef TARGET_EL3HLT
+#define TARGET_EL3HLT          39      /* Level 3 halted */
+#undef TARGET_EL3RST
+#define TARGET_EL3RST          40      /* Level 3 reset */
+#undef TARGET_ELNRNG
+#define TARGET_ELNRNG          41      /* Link number out of range */
+#undef TARGET_EUNATCH
+#define TARGET_EUNATCH         42      /* Protocol driver not attached */
+#undef TARGET_ENOCSI
+#define TARGET_ENOCSI          43      /* No CSI structure available */
+#undef TARGET_EL2HLT
+#define TARGET_EL2HLT          44      /* Level 2 halted */
+#undef TARGET_EDEADLK
+#define TARGET_EDEADLK         45      /* Resource deadlock would occur */
+#undef TARGET_ENOLCK
+#define TARGET_ENOLCK          46      /* No record locks available */
+#undef TARGET_EBADE
+#define TARGET_EBADE           50      /* Invalid exchange */
+#undef TARGET_EBADR
+#define TARGET_EBADR           51      /* Invalid request descriptor */
+#undef TARGET_EXFULL
+#define TARGET_EXFULL          52      /* TARGET_Exchange full */
+#undef TARGET_ENOANO
+#define TARGET_ENOANO          53      /* No anode */
+#undef TARGET_EBADRQC
+#define TARGET_EBADRQC         54      /* Invalid request code */
+#undef TARGET_EBADSLT
+#define TARGET_EBADSLT         55      /* Invalid slot */
+#undef TARGET_EDEADLOCK
+#define TARGET_EDEADLOCK       56      /* File locking deadlock error */
+#undef TARGET_EBFONT
+#define TARGET_EBFONT          59      /* Bad font file format */
+#undef TARGET_ENOSTR
+#define TARGET_ENOSTR          60      /* Device not a stream */
+#undef TARGET_ENODATA
+#define TARGET_ENODATA         61      /* No data available */
+#undef TARGET_ETIME
+#define TARGET_ETIME           62      /* Timer expired */
+#undef TARGET_ENOSR
+#define TARGET_ENOSR           63      /* Out of streams resources */
+#undef TARGET_ENONET
+#define TARGET_ENONET          64      /* Machine is not on the network */
+#undef TARGET_ENOPKG
+#define TARGET_ENOPKG          65      /* Package not installed */
+#undef TARGET_EREMOTE
+#define TARGET_EREMOTE         66      /* Object is remote */
+#undef TARGET_ENOLINK
+#define TARGET_ENOLINK         67      /* Link has been severed */
+#undef TARGET_EADV
+#define TARGET_EADV            68      /* Advertise error */
+#undef TARGET_ESRMNT
+#define TARGET_ESRMNT          69      /* Srmount error */
+#undef TARGET_ECOMM
+#define TARGET_ECOMM           70      /* Communication error on send */
+#undef TARGET_EPROTO
+#define TARGET_EPROTO          71      /* Protocol error */
+#undef TARGET_EDOTDOT
+#define TARGET_EDOTDOT         73      /* RFS specific error */
+#undef TARGET_EMULTIHOP
+#define TARGET_EMULTIHOP       74      /* Multihop attempted */
+#undef TARGET_EBADMSG
+#define TARGET_EBADMSG         77      /* Not a data message */
+#undef TARGET_ENAMETOOLONG
+#define TARGET_ENAMETOOLONG    78      /* File name too long */
+#undef TARGET_EOVERFLOW
+#define TARGET_EOVERFLOW       79      /* Value too large for defined data type */
+#undef TARGET_ENOTUNIQ
+#define TARGET_ENOTUNIQ        80      /* Name not unique on network */
+#undef TARGET_EBADFD
+#define TARGET_EBADFD          81      /* File descriptor in bad state */
+#undef TARGET_EREMCHG
+#define TARGET_EREMCHG         82      /* Remote address changed */
+#undef TARGET_ELIBACC
+#define TARGET_ELIBACC         83      /* Can not access a needed shared library */
+#undef TARGET_ELIBBAD
+#define TARGET_ELIBBAD         84      /* Accessing a corrupted shared library */
+#undef TARGET_ELIBSCN
+#define TARGET_ELIBSCN         85      /* .lib section in a.out corrupted */
+#undef TARGET_ELIBMAX
+#define TARGET_ELIBMAX         86      /* Attempting to link in too many shared libraries */
+#undef TARGET_ELIBEXEC
+#define TARGET_ELIBEXEC        87      /* Cannot exec a shared library directly */
+#undef TARGET_EILSEQ
+#define TARGET_EILSEQ          88      /* Illegal byte sequence */
+#undef TARGET_ENOSYS
+#define TARGET_ENOSYS          89      /* Function not implemented */
+#undef TARGET_ELOOP
+#define TARGET_ELOOP           90      /* Too many symbolic links encountered */
+#undef TARGET_ERESTART
+#define TARGET_ERESTART        91      /* Interrupted system call should be restarted */
+#undef TARGET_ESTRPIPE
+#define TARGET_ESTRPIPE        92      /* Streams pipe error */
+#undef TARGET_ENOTEMPTY
+#define TARGET_ENOTEMPTY       93      /* Directory not empty */
+#undef TARGET_EUSERS
+#define TARGET_EUSERS          94      /* Too many users */
+#undef TARGET_ENOTSOCK
+#define TARGET_ENOTSOCK        95      /* Socket operation on non-socket */
+#undef TARGET_EDESTADDRREQ
+#define TARGET_EDESTADDRREQ    96      /* Destination address required */
+#undef TARGET_EMSGSIZE
+#define TARGET_EMSGSIZE        97      /* Message too long */
+#undef TARGET_EPROTOTYPE
+#define TARGET_EPROTOTYPE      98      /* Protocol wrong type for socket */
+#undef TARGET_ENOPROTOOPT
+#define TARGET_ENOPROTOOPT     99      /* Protocol not available */
+#undef TARGET_EPROTONOSUPPORT
+#define TARGET_EPROTONOSUPPORT 120     /* Protocol not supported */
+#undef TARGET_ESOCKTNOSUPPORT
+#define TARGET_ESOCKTNOSUPPORT 121     /* Socket type not supported */
+#undef TARGET_EOPNOTSUPP
+#define TARGET_EOPNOTSUPP      122     /* Operation not supported on transport endpoint */
+#undef TARGET_EPFNOSUPPORT
+#define TARGET_EPFNOSUPPORT    123     /* Protocol family not supported */
+#undef TARGET_EAFNOSUPPORT
+#define TARGET_EAFNOSUPPORT    124     /* Address family not supported by protocol */
+#undef TARGET_EADDRINUSE
+#define TARGET_EADDRINUSE      125     /* Address already in use */
+#undef TARGET_EADDRNOTAVAIL
+#define TARGET_EADDRNOTAVAIL   126     /* Cannot assign requested address */
+#undef TARGET_ENETDOWN
+#define TARGET_ENETDOWN        127     /* Network is down */
+#undef TARGET_ENETUNREACH
+#define TARGET_ENETUNREACH     128     /* Network is unreachable */
+#undef TARGET_ENETRESET
+#define TARGET_ENETRESET       129     /* Network dropped connection because of reset */
+#undef TARGET_ECONNABORTED
+#define TARGET_ECONNABORTED    130     /* Software caused connection abort */
+#undef TARGET_ECONNRESET
+#define TARGET_ECONNRESET      131     /* Connection reset by peer */
+#undef TARGET_ENOBUFS
+#define TARGET_ENOBUFS         132     /* No buffer space available */
+#undef TARGET_EISCONN
+#define TARGET_EISCONN         133     /* Transport endpoint is already connected */
+#undef TARGET_ENOTCONN
+#define TARGET_ENOTCONN        134     /* Transport endpoint is not connected */
+#undef TARGET_EUCLEAN
+#define TARGET_EUCLEAN         135     /* Structure needs cleaning */
+#undef TARGET_ENOTNAM
+#define TARGET_ENOTNAM         137     /* Not a XENIX named type file */
+#undef TARGET_ENAVAIL
+#define TARGET_ENAVAIL         138     /* No XENIX semaphores available */
+#undef TARGET_EISNAM
+#define TARGET_EISNAM          139     /* Is a named type file */
+#undef TARGET_EREMOTEIO
+#define TARGET_EREMOTEIO       140     /* Remote I/O error */
+#undef TARGET_EINIT
+#define TARGET_EINIT           141     /* Reserved */
+#undef TARGET_EREMDEV
+#define TARGET_EREMDEV         142     /* TARGET_Error 142 */
+#undef TARGET_ESHUTDOWN
+#define TARGET_ESHUTDOWN       143     /* Cannot send after transport endpoint shutdown */
+#undef TARGET_ETOOMANYREFS
+#define TARGET_ETOOMANYREFS    144     /* Too many references: cannot splice */
+#undef TARGET_ETIMEDOUT
+#define TARGET_ETIMEDOUT       145     /* Connection timed out */
+#undef TARGET_ECONNREFUSED
+#define TARGET_ECONNREFUSED    146     /* Connection refused */
+#undef TARGET_EHOSTDOWN
+#define TARGET_EHOSTDOWN       147     /* Host is down */
+#undef TARGET_EHOSTUNREACH
+#define TARGET_EHOSTUNREACH    148     /* No route to host */
+#undef TARGET_EALREADY
+#define TARGET_EALREADY        149     /* Operation already in progress */
+#undef TARGET_EINPROGRESS
+#define TARGET_EINPROGRESS     150     /* Operation now in progress */
+#undef TARGET_ESTALE
+#define TARGET_ESTALE          151     /* Stale NFS file handle */
+#undef TARGET_ECANCELED
+#define TARGET_ECANCELED       158     /* AIO operation canceled */
+/*
+ * These error are Linux extensions.
+ */
+#undef TARGET_ENOMEDIUM
+#define TARGET_ENOMEDIUM       159     /* No medium found */
+#undef TARGET_EMEDIUMTYPE
+#define TARGET_EMEDIUMTYPE     160     /* Wrong medium type */
+#undef TARGET_ENOKEY
+#define TARGET_ENOKEY          161     /* Required key not available */
+#undef TARGET_EKEYEXPIRED
+#define TARGET_EKEYEXPIRED     162     /* Key has expired */
+#undef TARGET_EKEYREVOKED
+#define TARGET_EKEYREVOKED     163     /* Key has been revoked */
+#undef TARGET_EKEYREJECTED
+#define TARGET_EKEYREJECTED    164     /* Key was rejected by service */
+
+/* for robust mutexes */
+#undef TARGET_EOWNERDEAD
+#define TARGET_EOWNERDEAD      165     /* Owner died */
+#undef TARGET_ENOTRECOVERABLE
+#define TARGET_ENOTRECOVERABLE 166     /* State not recoverable */
+
+#undef TARGET_ERFKILL
+#define TARGET_ERFKILL         167
+#undef TARGET_EHWPOISON
+#define TARGET_EHWPOISON       168
+
+#undef TARGET_EDQUOT
+#define TARGET_EDQUOT          1133    /* Quota exceeded */
+
 #endif
diff --git a/linux-user/mips64/target_syscall.h b/linux-user/mips64/target_syscall.h
index c54374c5a29..cd1e1b49691 100644
--- a/linux-user/mips64/target_syscall.h
+++ b/linux-user/mips64/target_syscall.h
@@ -17,217 +17,6 @@ struct target_pt_regs {
         target_ulong cp0_epc;
 };
 
-/* Target errno definitions taken from asm-mips/errno.h */
-#undef TARGET_EWOULDBLOCK
-#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
-#undef TARGET_ENOMSG
-#define TARGET_ENOMSG          35      /* Identifier removed */
-#undef TARGET_EIDRM
-#define TARGET_EIDRM           36      /* Identifier removed */
-#undef TARGET_ECHRNG
-#define TARGET_ECHRNG          37      /* Channel number out of range */
-#undef TARGET_EL2NSYNC
-#define TARGET_EL2NSYNC        38      /* Level 2 not synchronized */
-#undef TARGET_EL3HLT
-#define TARGET_EL3HLT          39      /* Level 3 halted */
-#undef TARGET_EL3RST
-#define TARGET_EL3RST          40      /* Level 3 reset */
-#undef TARGET_ELNRNG
-#define TARGET_ELNRNG          41      /* Link number out of range */
-#undef TARGET_EUNATCH
-#define TARGET_EUNATCH         42      /* Protocol driver not attached */
-#undef TARGET_ENOCSI
-#define TARGET_ENOCSI          43      /* No CSI structure available */
-#undef TARGET_EL2HLT
-#define TARGET_EL2HLT          44      /* Level 2 halted */
-#undef TARGET_EDEADLK
-#define TARGET_EDEADLK         45      /* Resource deadlock would occur */
-#undef TARGET_ENOLCK
-#define TARGET_ENOLCK          46      /* No record locks available */
-#undef TARGET_EBADE
-#define TARGET_EBADE           50      /* Invalid exchange */
-#undef TARGET_EBADR
-#define TARGET_EBADR           51      /* Invalid request descriptor */
-#undef TARGET_EXFULL
-#define TARGET_EXFULL          52      /* TARGET_Exchange full */
-#undef TARGET_ENOANO
-#define TARGET_ENOANO          53      /* No anode */
-#undef TARGET_EBADRQC
-#define TARGET_EBADRQC         54      /* Invalid request code */
-#undef TARGET_EBADSLT
-#define TARGET_EBADSLT         55      /* Invalid slot */
-#undef TARGET_EDEADLOCK
-#define TARGET_EDEADLOCK       56      /* File locking deadlock error */
-#undef TARGET_EBFONT
-#define TARGET_EBFONT          59      /* Bad font file format */
-#undef TARGET_ENOSTR
-#define TARGET_ENOSTR          60      /* Device not a stream */
-#undef TARGET_ENODATA
-#define TARGET_ENODATA         61      /* No data available */
-#undef TARGET_ETIME
-#define TARGET_ETIME           62      /* Timer expired */
-#undef TARGET_ENOSR
-#define TARGET_ENOSR           63      /* Out of streams resources */
-#undef TARGET_ENONET
-#define TARGET_ENONET          64      /* Machine is not on the network */
-#undef TARGET_ENOPKG
-#define TARGET_ENOPKG          65      /* Package not installed */
-#undef TARGET_EREMOTE
-#define TARGET_EREMOTE         66      /* Object is remote */
-#undef TARGET_ENOLINK
-#define TARGET_ENOLINK         67      /* Link has been severed */
-#undef TARGET_EADV
-#define TARGET_EADV            68      /* Advertise error */
-#undef TARGET_ESRMNT
-#define TARGET_ESRMNT          69      /* Srmount error */
-#undef TARGET_ECOMM
-#define TARGET_ECOMM           70      /* Communication error on send */
-#undef TARGET_EPROTO
-#define TARGET_EPROTO          71      /* Protocol error */
-#undef TARGET_EDOTDOT
-#define TARGET_EDOTDOT         73      /* RFS specific error */
-#undef TARGET_EMULTIHOP
-#define TARGET_EMULTIHOP       74      /* Multihop attempted */
-#undef TARGET_EBADMSG
-#define TARGET_EBADMSG         77      /* Not a data message */
-#undef TARGET_ENAMETOOLONG
-#define TARGET_ENAMETOOLONG    78      /* File name too long */
-#undef TARGET_EOVERFLOW
-#define TARGET_EOVERFLOW       79      /* Value too large for defined data type */
-#undef TARGET_ENOTUNIQ
-#define TARGET_ENOTUNIQ        80      /* Name not unique on network */
-#undef TARGET_EBADFD
-#define TARGET_EBADFD          81      /* File descriptor in bad state */
-#undef TARGET_EREMCHG
-#define TARGET_EREMCHG         82      /* Remote address changed */
-#undef TARGET_ELIBACC
-#define TARGET_ELIBACC         83      /* Can not access a needed shared library */
-#undef TARGET_ELIBBAD
-#define TARGET_ELIBBAD         84      /* Accessing a corrupted shared library */
-#undef TARGET_ELIBSCN
-#define TARGET_ELIBSCN         85      /* .lib section in a.out corrupted */
-#undef TARGET_ELIBMAX
-#define TARGET_ELIBMAX         86      /* Attempting to link in too many shared libraries */
-#undef TARGET_ELIBEXEC
-#define TARGET_ELIBEXEC        87      /* Cannot exec a shared library directly */
-#undef TARGET_EILSEQ
-#define TARGET_EILSEQ          88      /* Illegal byte sequence */
-#undef TARGET_ENOSYS
-#define TARGET_ENOSYS          89      /* Function not implemented */
-#undef TARGET_ELOOP
-#define TARGET_ELOOP           90      /* Too many symbolic links encountered */
-#undef TARGET_ERESTART
-#define TARGET_ERESTART        91      /* Interrupted system call should be restarted */
-#undef TARGET_ESTRPIPE
-#define TARGET_ESTRPIPE        92      /* Streams pipe error */
-#undef TARGET_ENOTEMPTY
-#define TARGET_ENOTEMPTY       93      /* Directory not empty */
-#undef TARGET_EUSERS
-#define TARGET_EUSERS          94      /* Too many users */
-#undef TARGET_ENOTSOCK
-#define TARGET_ENOTSOCK        95      /* Socket operation on non-socket */
-#undef TARGET_EDESTADDRREQ
-#define TARGET_EDESTADDRREQ    96      /* Destination address required */
-#undef TARGET_EMSGSIZE
-#define TARGET_EMSGSIZE        97      /* Message too long */
-#undef TARGET_EPROTOTYPE
-#define TARGET_EPROTOTYPE      98      /* Protocol wrong type for socket */
-#undef TARGET_ENOPROTOOPT
-#define TARGET_ENOPROTOOPT     99      /* Protocol not available */
-#undef TARGET_EPROTONOSUPPORT
-#define TARGET_EPROTONOSUPPORT 120     /* Protocol not supported */
-#undef TARGET_ESOCKTNOSUPPORT
-#define TARGET_ESOCKTNOSUPPORT 121     /* Socket type not supported */
-#undef TARGET_EOPNOTSUPP
-#define TARGET_EOPNOTSUPP      122     /* Operation not supported on transport endpoint */
-#undef TARGET_EPFNOSUPPORT
-#define TARGET_EPFNOSUPPORT    123     /* Protocol family not supported */
-#undef TARGET_EAFNOSUPPORT
-#define TARGET_EAFNOSUPPORT    124     /* Address family not supported by protocol */
-#undef TARGET_EADDRINUSE
-#define TARGET_EADDRINUSE      125     /* Address already in use */
-#undef TARGET_EADDRNOTAVAIL
-#define TARGET_EADDRNOTAVAIL   126     /* Cannot assign requested address */
-#undef TARGET_ENETDOWN
-#define TARGET_ENETDOWN        127     /* Network is down */
-#undef TARGET_ENETUNREACH
-#define TARGET_ENETUNREACH     128     /* Network is unreachable */
-#undef TARGET_ENETRESET
-#define TARGET_ENETRESET       129     /* Network dropped connection because of reset */
-#undef TARGET_ECONNABORTED
-#define TARGET_ECONNABORTED    130     /* Software caused connection abort */
-#undef TARGET_ECONNRESET
-#define TARGET_ECONNRESET      131     /* Connection reset by peer */
-#undef TARGET_ENOBUFS
-#define TARGET_ENOBUFS         132     /* No buffer space available */
-#undef TARGET_EISCONN
-#define TARGET_EISCONN         133     /* Transport endpoint is already connected */
-#undef TARGET_ENOTCONN
-#define TARGET_ENOTCONN        134     /* Transport endpoint is not connected */
-#undef TARGET_EUCLEAN
-#define TARGET_EUCLEAN         135     /* Structure needs cleaning */
-#undef TARGET_ENOTNAM
-#define TARGET_ENOTNAM         137     /* Not a XENIX named type file */
-#undef TARGET_ENAVAIL
-#define TARGET_ENAVAIL         138     /* No XENIX semaphores available */
-#undef TARGET_EISNAM
-#define TARGET_EISNAM          139     /* Is a named type file */
-#undef TARGET_EREMOTEIO
-#define TARGET_EREMOTEIO       140     /* Remote I/O error */
-#undef TARGET_EINIT
-#define TARGET_EINIT           141     /* Reserved */
-#undef TARGET_EREMDEV
-#define TARGET_EREMDEV         142     /* TARGET_Error 142 */
-#undef TARGET_ESHUTDOWN
-#define TARGET_ESHUTDOWN       143     /* Cannot send after transport endpoint shutdown */
-#undef TARGET_ETOOMANYREFS
-#define TARGET_ETOOMANYREFS    144     /* Too many references: cannot splice */
-#undef TARGET_ETIMEDOUT
-#define TARGET_ETIMEDOUT       145     /* Connection timed out */
-#undef TARGET_ECONNREFUSED
-#define TARGET_ECONNREFUSED    146     /* Connection refused */
-#undef TARGET_EHOSTDOWN
-#define TARGET_EHOSTDOWN       147     /* Host is down */
-#undef TARGET_EHOSTUNREACH
-#define TARGET_EHOSTUNREACH    148     /* No route to host */
-#undef TARGET_EALREADY
-#define TARGET_EALREADY        149     /* Operation already in progress */
-#undef TARGET_EINPROGRESS
-#define TARGET_EINPROGRESS     150     /* Operation now in progress */
-#undef TARGET_ESTALE
-#define TARGET_ESTALE          151     /* Stale NFS file handle */
-#undef TARGET_ECANCELED
-#define TARGET_ECANCELED       158     /* AIO operation canceled */
-/*
- * These error are Linux extensions.
- */
-#undef TARGET_ENOMEDIUM
-#define TARGET_ENOMEDIUM       159     /* No medium found */
-#undef TARGET_EMEDIUMTYPE
-#define TARGET_EMEDIUMTYPE     160     /* Wrong medium type */
-#undef TARGET_ENOKEY
-#define TARGET_ENOKEY          161     /* Required key not available */
-#undef TARGET_EKEYEXPIRED
-#define TARGET_EKEYEXPIRED     162     /* Key has expired */
-#undef TARGET_EKEYREVOKED
-#define TARGET_EKEYREVOKED     163     /* Key has been revoked */
-#undef TARGET_EKEYREJECTED
-#define TARGET_EKEYREJECTED    164     /* Key was rejected by service */
-
-/* for robust mutexes */
-#undef TARGET_EOWNERDEAD
-#define TARGET_EOWNERDEAD      165     /* Owner died */
-#undef TARGET_ENOTRECOVERABLE
-#define TARGET_ENOTRECOVERABLE 166     /* State not recoverable */
-
-#undef TARGET_ERFKILL
-#define TARGET_ERFKILL         167
-#undef TARGET_EHWPOISON
-#define TARGET_EHWPOISON       168
-
-#undef TARGET_EDQUOT
-#define TARGET_EDQUOT          1133    /* Quota exceeded */
-
 #define UNAME_MACHINE "mips64"
 #define UNAME_MINIMUM_RELEASE "2.6.32"
 
-- 
2.31.1



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

* [PATCH 10/12] linux-user/syscall: Refactor target_to_host_errno_table_init()
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (8 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 09/12] linux-user/mips: " Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 11/12] linux-user/syscall: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
  2021-07-04 18:37 ` [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
  11 siblings, 0 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

To be able to move the errno handling code out of syscall.c,
first refactor the target_to_host_errno_table[] initialization
as a new init() function.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/syscall.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 64bbf331b28..33b7fef12a8 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -509,8 +509,10 @@ static inline int next_free_host_timer(void)
 
 #define ERRNO_TABLE_SIZE 1200
 
-/* target_to_host_errno_table[] is initialized from
- * host_to_target_errno_table[] in syscall_init(). */
+/*
+ * target_to_host_errno_table[] is initialized from
+ * host_to_target_errno_table[] in target_to_host_errno_table_init().
+ */
 static uint16_t target_to_host_errno_table[ERRNO_TABLE_SIZE] = {
 };
 
@@ -637,6 +639,17 @@ static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
 #endif
 };
 
+static void target_to_host_errno_table_init(void)
+{
+    /*
+     * Build target_to_host_errno_table[] table
+     * from host_to_target_errno_table[].
+     */
+    for (int i = 0; i < ERRNO_TABLE_SIZE; i++) {
+        target_to_host_errno_table[host_to_target_errno_table[i]] = i;
+    }
+}
+
 static inline int host_to_target_errno(int err)
 {
     if (err >= 0 && err < ERRNO_TABLE_SIZE &&
@@ -7102,7 +7115,6 @@ void syscall_init(void)
     IOCTLEntry *ie;
     const argtype *arg_type;
     int size;
-    int i;
 
     thunk_init(STRUCT_MAX);
 
@@ -7112,11 +7124,7 @@ void syscall_init(void)
 #undef STRUCT
 #undef STRUCT_SPECIAL
 
-    /* Build target_to_host_errno_table[] table from
-     * host_to_target_errno_table[]. */
-    for (i = 0; i < ERRNO_TABLE_SIZE; i++) {
-        target_to_host_errno_table[host_to_target_errno_table[i]] = i;
-    }
+    target_to_host_errno_table_init();
 
     /* we patch the ioctl size if necessary. We rely on the fact that
        no ioctl has all the bits at '1' in the size field */
-- 
2.31.1



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

* [PATCH 11/12] linux-user/syscall: Remove hardcoded tabs (code style)
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (9 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 10/12] linux-user/syscall: Refactor target_to_host_errno_table_init() Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-07 19:34   ` Laurent Vivier
  2021-07-04 18:37 ` [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
  11 siblings, 1 reply; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

We are going to move this code, fix its style first.

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Patch trivial to review using 'git-diff --ignore-all-space'
---
 linux-user/syscall.c | 188 +++++++++++++++++++++----------------------
 1 file changed, 94 insertions(+), 94 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 33b7fef12a8..3761d3b2d64 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -521,112 +521,112 @@ static uint16_t target_to_host_errno_table[ERRNO_TABLE_SIZE] = {
  * minus the errnos that are not actually generic to all archs.
  */
 static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
-    [EAGAIN]		= TARGET_EAGAIN,
-    [EIDRM]		= TARGET_EIDRM,
-    [ECHRNG]		= TARGET_ECHRNG,
-    [EL2NSYNC]		= TARGET_EL2NSYNC,
-    [EL3HLT]		= TARGET_EL3HLT,
-    [EL3RST]		= TARGET_EL3RST,
-    [ELNRNG]		= TARGET_ELNRNG,
-    [EUNATCH]		= TARGET_EUNATCH,
-    [ENOCSI]		= TARGET_ENOCSI,
-    [EL2HLT]		= TARGET_EL2HLT,
-    [EDEADLK]		= TARGET_EDEADLK,
-    [ENOLCK]		= TARGET_ENOLCK,
-    [EBADE]		= TARGET_EBADE,
-    [EBADR]		= TARGET_EBADR,
-    [EXFULL]		= TARGET_EXFULL,
-    [ENOANO]		= TARGET_ENOANO,
-    [EBADRQC]		= TARGET_EBADRQC,
-    [EBADSLT]		= TARGET_EBADSLT,
-    [EBFONT]		= TARGET_EBFONT,
-    [ENOSTR]		= TARGET_ENOSTR,
-    [ENODATA]		= TARGET_ENODATA,
-    [ETIME]		= TARGET_ETIME,
-    [ENOSR]		= TARGET_ENOSR,
-    [ENONET]		= TARGET_ENONET,
-    [ENOPKG]		= TARGET_ENOPKG,
-    [EREMOTE]		= TARGET_EREMOTE,
-    [ENOLINK]		= TARGET_ENOLINK,
-    [EADV]		= TARGET_EADV,
-    [ESRMNT]		= TARGET_ESRMNT,
-    [ECOMM]		= TARGET_ECOMM,
-    [EPROTO]		= TARGET_EPROTO,
-    [EDOTDOT]		= TARGET_EDOTDOT,
-    [EMULTIHOP]		= TARGET_EMULTIHOP,
-    [EBADMSG]		= TARGET_EBADMSG,
-    [ENAMETOOLONG]	= TARGET_ENAMETOOLONG,
-    [EOVERFLOW]		= TARGET_EOVERFLOW,
-    [ENOTUNIQ]		= TARGET_ENOTUNIQ,
-    [EBADFD]		= TARGET_EBADFD,
-    [EREMCHG]		= TARGET_EREMCHG,
-    [ELIBACC]		= TARGET_ELIBACC,
-    [ELIBBAD]		= TARGET_ELIBBAD,
-    [ELIBSCN]		= TARGET_ELIBSCN,
-    [ELIBMAX]		= TARGET_ELIBMAX,
-    [ELIBEXEC]		= TARGET_ELIBEXEC,
-    [EILSEQ]		= TARGET_EILSEQ,
-    [ENOSYS]		= TARGET_ENOSYS,
-    [ELOOP]		= TARGET_ELOOP,
-    [ERESTART]		= TARGET_ERESTART,
-    [ESTRPIPE]		= TARGET_ESTRPIPE,
-    [ENOTEMPTY]		= TARGET_ENOTEMPTY,
-    [EUSERS]		= TARGET_EUSERS,
-    [ENOTSOCK]		= TARGET_ENOTSOCK,
-    [EDESTADDRREQ]	= TARGET_EDESTADDRREQ,
-    [EMSGSIZE]		= TARGET_EMSGSIZE,
-    [EPROTOTYPE]	= TARGET_EPROTOTYPE,
-    [ENOPROTOOPT]	= TARGET_ENOPROTOOPT,
-    [EPROTONOSUPPORT]	= TARGET_EPROTONOSUPPORT,
-    [ESOCKTNOSUPPORT]	= TARGET_ESOCKTNOSUPPORT,
-    [EOPNOTSUPP]	= TARGET_EOPNOTSUPP,
-    [EPFNOSUPPORT]	= TARGET_EPFNOSUPPORT,
-    [EAFNOSUPPORT]	= TARGET_EAFNOSUPPORT,
-    [EADDRINUSE]	= TARGET_EADDRINUSE,
-    [EADDRNOTAVAIL]	= TARGET_EADDRNOTAVAIL,
-    [ENETDOWN]		= TARGET_ENETDOWN,
-    [ENETUNREACH]	= TARGET_ENETUNREACH,
-    [ENETRESET]		= TARGET_ENETRESET,
-    [ECONNABORTED]	= TARGET_ECONNABORTED,
-    [ECONNRESET]	= TARGET_ECONNRESET,
-    [ENOBUFS]		= TARGET_ENOBUFS,
-    [EISCONN]		= TARGET_EISCONN,
-    [ENOTCONN]		= TARGET_ENOTCONN,
-    [EUCLEAN]		= TARGET_EUCLEAN,
-    [ENOTNAM]		= TARGET_ENOTNAM,
-    [ENAVAIL]		= TARGET_ENAVAIL,
-    [EISNAM]		= TARGET_EISNAM,
-    [EREMOTEIO]		= TARGET_EREMOTEIO,
+    [EAGAIN]            = TARGET_EAGAIN,
+    [EIDRM]             = TARGET_EIDRM,
+    [ECHRNG]            = TARGET_ECHRNG,
+    [EL2NSYNC]          = TARGET_EL2NSYNC,
+    [EL3HLT]            = TARGET_EL3HLT,
+    [EL3RST]            = TARGET_EL3RST,
+    [ELNRNG]            = TARGET_ELNRNG,
+    [EUNATCH]           = TARGET_EUNATCH,
+    [ENOCSI]            = TARGET_ENOCSI,
+    [EL2HLT]            = TARGET_EL2HLT,
+    [EDEADLK]           = TARGET_EDEADLK,
+    [ENOLCK]            = TARGET_ENOLCK,
+    [EBADE]             = TARGET_EBADE,
+    [EBADR]             = TARGET_EBADR,
+    [EXFULL]            = TARGET_EXFULL,
+    [ENOANO]            = TARGET_ENOANO,
+    [EBADRQC]           = TARGET_EBADRQC,
+    [EBADSLT]           = TARGET_EBADSLT,
+    [EBFONT]            = TARGET_EBFONT,
+    [ENOSTR]            = TARGET_ENOSTR,
+    [ENODATA]           = TARGET_ENODATA,
+    [ETIME]             = TARGET_ETIME,
+    [ENOSR]             = TARGET_ENOSR,
+    [ENONET]            = TARGET_ENONET,
+    [ENOPKG]            = TARGET_ENOPKG,
+    [EREMOTE]           = TARGET_EREMOTE,
+    [ENOLINK]           = TARGET_ENOLINK,
+    [EADV]              = TARGET_EADV,
+    [ESRMNT]            = TARGET_ESRMNT,
+    [ECOMM]             = TARGET_ECOMM,
+    [EPROTO]            = TARGET_EPROTO,
+    [EDOTDOT]           = TARGET_EDOTDOT,
+    [EMULTIHOP]         = TARGET_EMULTIHOP,
+    [EBADMSG]           = TARGET_EBADMSG,
+    [ENAMETOOLONG]      = TARGET_ENAMETOOLONG,
+    [EOVERFLOW]         = TARGET_EOVERFLOW,
+    [ENOTUNIQ]          = TARGET_ENOTUNIQ,
+    [EBADFD]            = TARGET_EBADFD,
+    [EREMCHG]           = TARGET_EREMCHG,
+    [ELIBACC]           = TARGET_ELIBACC,
+    [ELIBBAD]           = TARGET_ELIBBAD,
+    [ELIBSCN]           = TARGET_ELIBSCN,
+    [ELIBMAX]           = TARGET_ELIBMAX,
+    [ELIBEXEC]          = TARGET_ELIBEXEC,
+    [EILSEQ]            = TARGET_EILSEQ,
+    [ENOSYS]            = TARGET_ENOSYS,
+    [ELOOP]             = TARGET_ELOOP,
+    [ERESTART]          = TARGET_ERESTART,
+    [ESTRPIPE]          = TARGET_ESTRPIPE,
+    [ENOTEMPTY]         = TARGET_ENOTEMPTY,
+    [EUSERS]            = TARGET_EUSERS,
+    [ENOTSOCK]          = TARGET_ENOTSOCK,
+    [EDESTADDRREQ]      = TARGET_EDESTADDRREQ,
+    [EMSGSIZE]          = TARGET_EMSGSIZE,
+    [EPROTOTYPE]        = TARGET_EPROTOTYPE,
+    [ENOPROTOOPT]       = TARGET_ENOPROTOOPT,
+    [EPROTONOSUPPORT]   = TARGET_EPROTONOSUPPORT,
+    [ESOCKTNOSUPPORT]   = TARGET_ESOCKTNOSUPPORT,
+    [EOPNOTSUPP]        = TARGET_EOPNOTSUPP,
+    [EPFNOSUPPORT]      = TARGET_EPFNOSUPPORT,
+    [EAFNOSUPPORT]      = TARGET_EAFNOSUPPORT,
+    [EADDRINUSE]        = TARGET_EADDRINUSE,
+    [EADDRNOTAVAIL]     = TARGET_EADDRNOTAVAIL,
+    [ENETDOWN]          = TARGET_ENETDOWN,
+    [ENETUNREACH]       = TARGET_ENETUNREACH,
+    [ENETRESET]         = TARGET_ENETRESET,
+    [ECONNABORTED]      = TARGET_ECONNABORTED,
+    [ECONNRESET]        = TARGET_ECONNRESET,
+    [ENOBUFS]           = TARGET_ENOBUFS,
+    [EISCONN]           = TARGET_EISCONN,
+    [ENOTCONN]          = TARGET_ENOTCONN,
+    [EUCLEAN]           = TARGET_EUCLEAN,
+    [ENOTNAM]           = TARGET_ENOTNAM,
+    [ENAVAIL]           = TARGET_ENAVAIL,
+    [EISNAM]            = TARGET_EISNAM,
+    [EREMOTEIO]         = TARGET_EREMOTEIO,
     [EDQUOT]            = TARGET_EDQUOT,
-    [ESHUTDOWN]		= TARGET_ESHUTDOWN,
-    [ETOOMANYREFS]	= TARGET_ETOOMANYREFS,
-    [ETIMEDOUT]		= TARGET_ETIMEDOUT,
-    [ECONNREFUSED]	= TARGET_ECONNREFUSED,
-    [EHOSTDOWN]		= TARGET_EHOSTDOWN,
-    [EHOSTUNREACH]	= TARGET_EHOSTUNREACH,
-    [EALREADY]		= TARGET_EALREADY,
-    [EINPROGRESS]	= TARGET_EINPROGRESS,
-    [ESTALE]		= TARGET_ESTALE,
-    [ECANCELED]		= TARGET_ECANCELED,
-    [ENOMEDIUM]		= TARGET_ENOMEDIUM,
-    [EMEDIUMTYPE]	= TARGET_EMEDIUMTYPE,
+    [ESHUTDOWN]         = TARGET_ESHUTDOWN,
+    [ETOOMANYREFS]      = TARGET_ETOOMANYREFS,
+    [ETIMEDOUT]         = TARGET_ETIMEDOUT,
+    [ECONNREFUSED]      = TARGET_ECONNREFUSED,
+    [EHOSTDOWN]         = TARGET_EHOSTDOWN,
+    [EHOSTUNREACH]      = TARGET_EHOSTUNREACH,
+    [EALREADY]          = TARGET_EALREADY,
+    [EINPROGRESS]       = TARGET_EINPROGRESS,
+    [ESTALE]            = TARGET_ESTALE,
+    [ECANCELED]         = TARGET_ECANCELED,
+    [ENOMEDIUM]         = TARGET_ENOMEDIUM,
+    [EMEDIUMTYPE]       = TARGET_EMEDIUMTYPE,
 #ifdef ENOKEY
-    [ENOKEY]		= TARGET_ENOKEY,
+    [ENOKEY]            = TARGET_ENOKEY,
 #endif
 #ifdef EKEYEXPIRED
-    [EKEYEXPIRED]	= TARGET_EKEYEXPIRED,
+    [EKEYEXPIRED]       = TARGET_EKEYEXPIRED,
 #endif
 #ifdef EKEYREVOKED
-    [EKEYREVOKED]	= TARGET_EKEYREVOKED,
+    [EKEYREVOKED]       = TARGET_EKEYREVOKED,
 #endif
 #ifdef EKEYREJECTED
-    [EKEYREJECTED]	= TARGET_EKEYREJECTED,
+    [EKEYREJECTED]      = TARGET_EKEYREJECTED,
 #endif
 #ifdef EOWNERDEAD
-    [EOWNERDEAD]	= TARGET_EOWNERDEAD,
+    [EOWNERDEAD]        = TARGET_EOWNERDEAD,
 #endif
 #ifdef ENOTRECOVERABLE
-    [ENOTRECOVERABLE]	= TARGET_ENOTRECOVERABLE,
+    [ENOTRECOVERABLE]   = TARGET_ENOTRECOVERABLE,
 #endif
 #ifdef ENOMSG
     [ENOMSG]            = TARGET_ENOMSG,
-- 
2.31.1



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

* [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h'
  2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
                   ` (10 preceding siblings ...)
  2021-07-04 18:37 ` [PATCH 11/12] linux-user/syscall: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
@ 2021-07-04 18:37 ` Philippe Mathieu-Daudé
  2021-07-05 22:29   ` Taylor Simpson
  2021-07-07  2:08   ` Richard Henderson
  11 siblings, 2 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-04 18:37 UTC (permalink / raw)
  To: qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Philippe Mathieu-Daudé,
	Taylor Simpson, Aurelien Jarno

Extract target errno related functions to a new 'target_errno.h'
header, so we can do the host <-> target errno conversion out of
the big syscall.c (which is already 13k LoC).

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 linux-user/target_errno.h |  32 +++++++
 linux-user/syscall.c      | 162 +--------------------------------
 linux-user/target_errno.c | 183 ++++++++++++++++++++++++++++++++++++++
 linux-user/meson.build    |   1 +
 4 files changed, 217 insertions(+), 161 deletions(-)
 create mode 100644 linux-user/target_errno.h
 create mode 100644 linux-user/target_errno.c

diff --git a/linux-user/target_errno.h b/linux-user/target_errno.h
new file mode 100644
index 00000000000..4e5e9d384c9
--- /dev/null
+++ b/linux-user/target_errno.h
@@ -0,0 +1,32 @@
+/*
+ *  Linux syscalls
+ *
+ *  Copyright (c) 2003 Fabrice Bellard
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+#ifndef LINUX_USER_TARGET_ERRNO_H
+#define LINUX_USER_TARGET_ERRNO_H
+
+#define ERRNO_TABLE_SIZE 1200
+
+int target_to_host_errno(int err);
+
+void target_to_host_errno_table_init(void);
+
+int host_to_target_errno(int err);
+
+#endif
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 3761d3b2d64..06c4358b813 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -131,6 +131,7 @@
 #include "qemu/selfmap.h"
 #include "user/syscall-trace.h"
 #include "qapi/error.h"
+#include "target_errno.h"
 #include "fd-trans.h"
 #include "tcg/tcg.h"
 
@@ -507,167 +508,6 @@ static inline int next_free_host_timer(void)
 }
 #endif
 
-#define ERRNO_TABLE_SIZE 1200
-
-/*
- * target_to_host_errno_table[] is initialized from
- * host_to_target_errno_table[] in target_to_host_errno_table_init().
- */
-static uint16_t target_to_host_errno_table[ERRNO_TABLE_SIZE] = {
-};
-
-/*
- * This list is the union of errno values overridden in asm-<arch>/errno.h
- * minus the errnos that are not actually generic to all archs.
- */
-static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
-    [EAGAIN]            = TARGET_EAGAIN,
-    [EIDRM]             = TARGET_EIDRM,
-    [ECHRNG]            = TARGET_ECHRNG,
-    [EL2NSYNC]          = TARGET_EL2NSYNC,
-    [EL3HLT]            = TARGET_EL3HLT,
-    [EL3RST]            = TARGET_EL3RST,
-    [ELNRNG]            = TARGET_ELNRNG,
-    [EUNATCH]           = TARGET_EUNATCH,
-    [ENOCSI]            = TARGET_ENOCSI,
-    [EL2HLT]            = TARGET_EL2HLT,
-    [EDEADLK]           = TARGET_EDEADLK,
-    [ENOLCK]            = TARGET_ENOLCK,
-    [EBADE]             = TARGET_EBADE,
-    [EBADR]             = TARGET_EBADR,
-    [EXFULL]            = TARGET_EXFULL,
-    [ENOANO]            = TARGET_ENOANO,
-    [EBADRQC]           = TARGET_EBADRQC,
-    [EBADSLT]           = TARGET_EBADSLT,
-    [EBFONT]            = TARGET_EBFONT,
-    [ENOSTR]            = TARGET_ENOSTR,
-    [ENODATA]           = TARGET_ENODATA,
-    [ETIME]             = TARGET_ETIME,
-    [ENOSR]             = TARGET_ENOSR,
-    [ENONET]            = TARGET_ENONET,
-    [ENOPKG]            = TARGET_ENOPKG,
-    [EREMOTE]           = TARGET_EREMOTE,
-    [ENOLINK]           = TARGET_ENOLINK,
-    [EADV]              = TARGET_EADV,
-    [ESRMNT]            = TARGET_ESRMNT,
-    [ECOMM]             = TARGET_ECOMM,
-    [EPROTO]            = TARGET_EPROTO,
-    [EDOTDOT]           = TARGET_EDOTDOT,
-    [EMULTIHOP]         = TARGET_EMULTIHOP,
-    [EBADMSG]           = TARGET_EBADMSG,
-    [ENAMETOOLONG]      = TARGET_ENAMETOOLONG,
-    [EOVERFLOW]         = TARGET_EOVERFLOW,
-    [ENOTUNIQ]          = TARGET_ENOTUNIQ,
-    [EBADFD]            = TARGET_EBADFD,
-    [EREMCHG]           = TARGET_EREMCHG,
-    [ELIBACC]           = TARGET_ELIBACC,
-    [ELIBBAD]           = TARGET_ELIBBAD,
-    [ELIBSCN]           = TARGET_ELIBSCN,
-    [ELIBMAX]           = TARGET_ELIBMAX,
-    [ELIBEXEC]          = TARGET_ELIBEXEC,
-    [EILSEQ]            = TARGET_EILSEQ,
-    [ENOSYS]            = TARGET_ENOSYS,
-    [ELOOP]             = TARGET_ELOOP,
-    [ERESTART]          = TARGET_ERESTART,
-    [ESTRPIPE]          = TARGET_ESTRPIPE,
-    [ENOTEMPTY]         = TARGET_ENOTEMPTY,
-    [EUSERS]            = TARGET_EUSERS,
-    [ENOTSOCK]          = TARGET_ENOTSOCK,
-    [EDESTADDRREQ]      = TARGET_EDESTADDRREQ,
-    [EMSGSIZE]          = TARGET_EMSGSIZE,
-    [EPROTOTYPE]        = TARGET_EPROTOTYPE,
-    [ENOPROTOOPT]       = TARGET_ENOPROTOOPT,
-    [EPROTONOSUPPORT]   = TARGET_EPROTONOSUPPORT,
-    [ESOCKTNOSUPPORT]   = TARGET_ESOCKTNOSUPPORT,
-    [EOPNOTSUPP]        = TARGET_EOPNOTSUPP,
-    [EPFNOSUPPORT]      = TARGET_EPFNOSUPPORT,
-    [EAFNOSUPPORT]      = TARGET_EAFNOSUPPORT,
-    [EADDRINUSE]        = TARGET_EADDRINUSE,
-    [EADDRNOTAVAIL]     = TARGET_EADDRNOTAVAIL,
-    [ENETDOWN]          = TARGET_ENETDOWN,
-    [ENETUNREACH]       = TARGET_ENETUNREACH,
-    [ENETRESET]         = TARGET_ENETRESET,
-    [ECONNABORTED]      = TARGET_ECONNABORTED,
-    [ECONNRESET]        = TARGET_ECONNRESET,
-    [ENOBUFS]           = TARGET_ENOBUFS,
-    [EISCONN]           = TARGET_EISCONN,
-    [ENOTCONN]          = TARGET_ENOTCONN,
-    [EUCLEAN]           = TARGET_EUCLEAN,
-    [ENOTNAM]           = TARGET_ENOTNAM,
-    [ENAVAIL]           = TARGET_ENAVAIL,
-    [EISNAM]            = TARGET_EISNAM,
-    [EREMOTEIO]         = TARGET_EREMOTEIO,
-    [EDQUOT]            = TARGET_EDQUOT,
-    [ESHUTDOWN]         = TARGET_ESHUTDOWN,
-    [ETOOMANYREFS]      = TARGET_ETOOMANYREFS,
-    [ETIMEDOUT]         = TARGET_ETIMEDOUT,
-    [ECONNREFUSED]      = TARGET_ECONNREFUSED,
-    [EHOSTDOWN]         = TARGET_EHOSTDOWN,
-    [EHOSTUNREACH]      = TARGET_EHOSTUNREACH,
-    [EALREADY]          = TARGET_EALREADY,
-    [EINPROGRESS]       = TARGET_EINPROGRESS,
-    [ESTALE]            = TARGET_ESTALE,
-    [ECANCELED]         = TARGET_ECANCELED,
-    [ENOMEDIUM]         = TARGET_ENOMEDIUM,
-    [EMEDIUMTYPE]       = TARGET_EMEDIUMTYPE,
-#ifdef ENOKEY
-    [ENOKEY]            = TARGET_ENOKEY,
-#endif
-#ifdef EKEYEXPIRED
-    [EKEYEXPIRED]       = TARGET_EKEYEXPIRED,
-#endif
-#ifdef EKEYREVOKED
-    [EKEYREVOKED]       = TARGET_EKEYREVOKED,
-#endif
-#ifdef EKEYREJECTED
-    [EKEYREJECTED]      = TARGET_EKEYREJECTED,
-#endif
-#ifdef EOWNERDEAD
-    [EOWNERDEAD]        = TARGET_EOWNERDEAD,
-#endif
-#ifdef ENOTRECOVERABLE
-    [ENOTRECOVERABLE]   = TARGET_ENOTRECOVERABLE,
-#endif
-#ifdef ENOMSG
-    [ENOMSG]            = TARGET_ENOMSG,
-#endif
-#ifdef ERKFILL
-    [ERFKILL]           = TARGET_ERFKILL,
-#endif
-#ifdef EHWPOISON
-    [EHWPOISON]         = TARGET_EHWPOISON,
-#endif
-};
-
-static void target_to_host_errno_table_init(void)
-{
-    /*
-     * Build target_to_host_errno_table[] table
-     * from host_to_target_errno_table[].
-     */
-    for (int i = 0; i < ERRNO_TABLE_SIZE; i++) {
-        target_to_host_errno_table[host_to_target_errno_table[i]] = i;
-    }
-}
-
-static inline int host_to_target_errno(int err)
-{
-    if (err >= 0 && err < ERRNO_TABLE_SIZE &&
-        host_to_target_errno_table[err]) {
-        return host_to_target_errno_table[err];
-    }
-    return err;
-}
-
-static inline int target_to_host_errno(int err)
-{
-    if (err >= 0 && err < ERRNO_TABLE_SIZE &&
-        target_to_host_errno_table[err]) {
-        return target_to_host_errno_table[err];
-    }
-    return err;
-}
-
 static inline abi_long get_errno(abi_long ret)
 {
     if (ret == -1)
diff --git a/linux-user/target_errno.c b/linux-user/target_errno.c
new file mode 100644
index 00000000000..2a7320d240f
--- /dev/null
+++ b/linux-user/target_errno.c
@@ -0,0 +1,183 @@
+/*
+ *  Linux syscalls
+ *
+ *  Copyright (c) 2003 Fabrice Bellard
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, see <http://www.gnu.org/licenses/>.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "qemu/osdep.h"
+#include "target_errno.h"
+#include "errno_defs.h"
+
+/*
+ * target_to_host_errno_table[] is initialized from
+ * host_to_target_errno_table[] in target_to_host_errno_table_init().
+ */
+static uint16_t target_to_host_errno_table[ERRNO_TABLE_SIZE] = {
+};
+
+/*
+ * This list is the union of errno values overridden in asm-<arch>/errno.h
+ * minus the errnos that are not actually generic to all archs.
+ */
+static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
+    [EAGAIN]            = TARGET_EAGAIN,
+    [EIDRM]             = TARGET_EIDRM,
+    [ECHRNG]            = TARGET_ECHRNG,
+    [EL2NSYNC]          = TARGET_EL2NSYNC,
+    [EL3HLT]            = TARGET_EL3HLT,
+    [EL3RST]            = TARGET_EL3RST,
+    [ELNRNG]            = TARGET_ELNRNG,
+    [EUNATCH]           = TARGET_EUNATCH,
+    [ENOCSI]            = TARGET_ENOCSI,
+    [EL2HLT]            = TARGET_EL2HLT,
+    [EDEADLK]           = TARGET_EDEADLK,
+    [ENOLCK]            = TARGET_ENOLCK,
+    [EBADE]             = TARGET_EBADE,
+    [EBADR]             = TARGET_EBADR,
+    [EXFULL]            = TARGET_EXFULL,
+    [ENOANO]            = TARGET_ENOANO,
+    [EBADRQC]           = TARGET_EBADRQC,
+    [EBADSLT]           = TARGET_EBADSLT,
+    [EBFONT]            = TARGET_EBFONT,
+    [ENOSTR]            = TARGET_ENOSTR,
+    [ENODATA]           = TARGET_ENODATA,
+    [ETIME]             = TARGET_ETIME,
+    [ENOSR]             = TARGET_ENOSR,
+    [ENONET]            = TARGET_ENONET,
+    [ENOPKG]            = TARGET_ENOPKG,
+    [EREMOTE]           = TARGET_EREMOTE,
+    [ENOLINK]           = TARGET_ENOLINK,
+    [EADV]              = TARGET_EADV,
+    [ESRMNT]            = TARGET_ESRMNT,
+    [ECOMM]             = TARGET_ECOMM,
+    [EPROTO]            = TARGET_EPROTO,
+    [EDOTDOT]           = TARGET_EDOTDOT,
+    [EMULTIHOP]         = TARGET_EMULTIHOP,
+    [EBADMSG]           = TARGET_EBADMSG,
+    [ENAMETOOLONG]      = TARGET_ENAMETOOLONG,
+    [EOVERFLOW]         = TARGET_EOVERFLOW,
+    [ENOTUNIQ]          = TARGET_ENOTUNIQ,
+    [EBADFD]            = TARGET_EBADFD,
+    [EREMCHG]           = TARGET_EREMCHG,
+    [ELIBACC]           = TARGET_ELIBACC,
+    [ELIBBAD]           = TARGET_ELIBBAD,
+    [ELIBSCN]           = TARGET_ELIBSCN,
+    [ELIBMAX]           = TARGET_ELIBMAX,
+    [ELIBEXEC]          = TARGET_ELIBEXEC,
+    [EILSEQ]            = TARGET_EILSEQ,
+    [ENOSYS]            = TARGET_ENOSYS,
+    [ELOOP]             = TARGET_ELOOP,
+    [ERESTART]          = TARGET_ERESTART,
+    [ESTRPIPE]          = TARGET_ESTRPIPE,
+    [ENOTEMPTY]         = TARGET_ENOTEMPTY,
+    [EUSERS]            = TARGET_EUSERS,
+    [ENOTSOCK]          = TARGET_ENOTSOCK,
+    [EDESTADDRREQ]      = TARGET_EDESTADDRREQ,
+    [EMSGSIZE]          = TARGET_EMSGSIZE,
+    [EPROTOTYPE]        = TARGET_EPROTOTYPE,
+    [ENOPROTOOPT]       = TARGET_ENOPROTOOPT,
+    [EPROTONOSUPPORT]   = TARGET_EPROTONOSUPPORT,
+    [ESOCKTNOSUPPORT]   = TARGET_ESOCKTNOSUPPORT,
+    [EOPNOTSUPP]        = TARGET_EOPNOTSUPP,
+    [EPFNOSUPPORT]      = TARGET_EPFNOSUPPORT,
+    [EAFNOSUPPORT]      = TARGET_EAFNOSUPPORT,
+    [EADDRINUSE]        = TARGET_EADDRINUSE,
+    [EADDRNOTAVAIL]     = TARGET_EADDRNOTAVAIL,
+    [ENETDOWN]          = TARGET_ENETDOWN,
+    [ENETUNREACH]       = TARGET_ENETUNREACH,
+    [ENETRESET]         = TARGET_ENETRESET,
+    [ECONNABORTED]      = TARGET_ECONNABORTED,
+    [ECONNRESET]        = TARGET_ECONNRESET,
+    [ENOBUFS]           = TARGET_ENOBUFS,
+    [EISCONN]           = TARGET_EISCONN,
+    [ENOTCONN]          = TARGET_ENOTCONN,
+    [EUCLEAN]           = TARGET_EUCLEAN,
+    [ENOTNAM]           = TARGET_ENOTNAM,
+    [ENAVAIL]           = TARGET_ENAVAIL,
+    [EISNAM]            = TARGET_EISNAM,
+    [EREMOTEIO]         = TARGET_EREMOTEIO,
+    [EDQUOT]            = TARGET_EDQUOT,
+    [ESHUTDOWN]         = TARGET_ESHUTDOWN,
+    [ETOOMANYREFS]      = TARGET_ETOOMANYREFS,
+    [ETIMEDOUT]         = TARGET_ETIMEDOUT,
+    [ECONNREFUSED]      = TARGET_ECONNREFUSED,
+    [EHOSTDOWN]         = TARGET_EHOSTDOWN,
+    [EHOSTUNREACH]      = TARGET_EHOSTUNREACH,
+    [EALREADY]          = TARGET_EALREADY,
+    [EINPROGRESS]       = TARGET_EINPROGRESS,
+    [ESTALE]            = TARGET_ESTALE,
+    [ECANCELED]         = TARGET_ECANCELED,
+    [ENOMEDIUM]         = TARGET_ENOMEDIUM,
+    [EMEDIUMTYPE]       = TARGET_EMEDIUMTYPE,
+#ifdef ENOKEY
+    [ENOKEY]            = TARGET_ENOKEY,
+#endif
+#ifdef EKEYEXPIRED
+    [EKEYEXPIRED]       = TARGET_EKEYEXPIRED,
+#endif
+#ifdef EKEYREVOKED
+    [EKEYREVOKED]       = TARGET_EKEYREVOKED,
+#endif
+#ifdef EKEYREJECTED
+    [EKEYREJECTED]      = TARGET_EKEYREJECTED,
+#endif
+#ifdef EOWNERDEAD
+    [EOWNERDEAD]        = TARGET_EOWNERDEAD,
+#endif
+#ifdef ENOTRECOVERABLE
+    [ENOTRECOVERABLE]   = TARGET_ENOTRECOVERABLE,
+#endif
+#ifdef ENOMSG
+    [ENOMSG]            = TARGET_ENOMSG,
+#endif
+#ifdef ERKFILL
+    [ERFKILL]           = TARGET_ERFKILL,
+#endif
+#ifdef EHWPOISON
+    [EHWPOISON]         = TARGET_EHWPOISON,
+#endif
+};
+
+void target_to_host_errno_table_init(void)
+{
+    /*
+     * Build target_to_host_errno_table[] table
+     * from host_to_target_errno_table[].
+     */
+    for (int i = 0; i < ERRNO_TABLE_SIZE; i++) {
+        target_to_host_errno_table[host_to_target_errno_table[i]] = i;
+    }
+}
+
+int host_to_target_errno(int err)
+{
+    if (err >= 0 && err < ERRNO_TABLE_SIZE &&
+        host_to_target_errno_table[err]) {
+        return host_to_target_errno_table[err];
+    }
+    return err;
+}
+
+int target_to_host_errno(int err)
+{
+    if (err >= 0 && err < ERRNO_TABLE_SIZE &&
+        target_to_host_errno_table[err]) {
+        return target_to_host_errno_table[err];
+    }
+    return err;
+}
diff --git a/linux-user/meson.build b/linux-user/meson.build
index 9549f81682d..f757b63310b 100644
--- a/linux-user/meson.build
+++ b/linux-user/meson.build
@@ -9,6 +9,7 @@
   'signal.c',
   'strace.c',
   'syscall.c',
+  'target_errno.c',
   'uaccess.c',
   'uname.c',
 ))
-- 
2.31.1



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

* RE: [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h'
  2021-07-04 18:37 ` [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
@ 2021-07-05 22:29   ` Taylor Simpson
  2021-07-07  2:08   ` Richard Henderson
  1 sibling, 0 replies; 28+ messages in thread
From: Taylor Simpson @ 2021-07-05 22:29 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Aurelien Jarno



> -----Original Message-----
> From: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com> On
> Behalf Of Philippe Mathieu-Daudé
> Sent: Sunday, July 4, 2021 12:38 PM
> To: qemu-devel@nongnu.org
> Cc: Richard Henderson <richard.henderson@linaro.org>; Jiaxun Yang
> <jiaxun.yang@flygoat.com>; Laurent Vivier <laurent@vivier.eu>; Aleksandar
> Rikalo <aleksandar.rikalo@syrmia.com>; Taylor Simpson
> <tsimpson@quicinc.com>; Philippe Mathieu-Daudé <f4bug@amsat.org>;
> Aurelien Jarno <aurelien@aurel32.net>; Helge Deller <deller@gmx.de>
> Subject: [PATCH 12/12] linux-user: Extract target errno related functions to
> 'target_errno.h'
> 
> diff --git a/linux-user/target_errno.h b/linux-user/target_errno.h new file
> mode 100644 index 00000000000..4e5e9d384c9
> --- /dev/null
> +++ b/linux-user/target_errno.h
> @@ -0,0 +1,32 @@
> +
> +void target_to_host_errno_table_init(void);

This is added as static in linux-user/syscall.c in patch 10/12.  But then, removed from syscall.c in this patch and added to linux-user/target_errno.c in this patch.

Is this so that each patch in the series will build?

> diff --git a/linux-user/target_errno.c b/linux-user/target_errno.c new file
> mode 100644 index 00000000000..2a7320d240f
> --- /dev/null
> +++ b/linux-user/target_errno.c
> @@ -0,0 +1,183 @@
> +/*
> + *  Linux syscalls

Copy/paste error?

Could you add a more descriptive comment to this file for posterity?
- How does the default behavior get inherited by targets?
- How does a target override the default behavior?
- A pointer to a target that is overriding the default behavior?


Thanks,
Taylor

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

* RE: [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h'
  2021-07-04 18:37 ` [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h' Philippe Mathieu-Daudé
@ 2021-07-05 22:32   ` Taylor Simpson
  2021-07-07  1:53   ` Richard Henderson
  1 sibling, 0 replies; 28+ messages in thread
From: Taylor Simpson @ 2021-07-05 22:32 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Richard Henderson,
	Laurent Vivier, Aurelien Jarno



> -----Original Message-----
> From: Philippe Mathieu-Daudé <philippe.mathieu.daude@gmail.com> On
> Behalf Of Philippe Mathieu-Daudé
> Sent: Sunday, July 4, 2021 12:38 PM
> To: qemu-devel@nongnu.org
> Cc: Richard Henderson <richard.henderson@linaro.org>; Jiaxun Yang
> <jiaxun.yang@flygoat.com>; Laurent Vivier <laurent@vivier.eu>; Aleksandar
> Rikalo <aleksandar.rikalo@syrmia.com>; Taylor Simpson
> <tsimpson@quicinc.com>; Philippe Mathieu-Daudé <f4bug@amsat.org>;
> Aurelien Jarno <aurelien@aurel32.net>; Helge Deller <deller@gmx.de>
> Subject: [PATCH 05/12] linux-user: Extract target errno to
> 'target_errno_defs.h'
> 


> diff --git a/linux-user/hexagon/target_errno_defs.h b/linux-
> user/hexagon/target_errno_defs.h
> new file mode 100644
> index 00000000000..5daac4f5a83
> --- /dev/null
> +++ b/linux-user/hexagon/target_errno_defs.h
> @@ -0,0 +1,6 @@
> +#ifndef HEXAGON_TARGET_ERRNO_H
> +#define HEXAGON_TARGET_ERRNO_H

These should be HEXAGON_TARGET_ERRNO_DEFS_H.  Ditto for the other targets.

Otherwise,
Reviewed-by: Taylor Simpson <tsimpson@quicinc.com>


Thanks,
Taylor


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

* Re: [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 ` [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN Philippe Mathieu-Daudé
@ 2021-07-07  1:44   ` Richard Henderson
  2021-07-07 19:25   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Richard Henderson @ 2021-07-07  1:44 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Laurent Vivier, Taylor Simpson,
	Aurelien Jarno

On 7/4/21 11:37 AM, Philippe Mathieu-Daudé wrote:
> Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).
> 
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
>   linux-user/alpha/target_syscall.h | 2 ++
>   1 file changed, 2 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


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

* Re: [PATCH 02/12] linux-user/hppa: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 ` [PATCH 02/12] linux-user/hppa: " Philippe Mathieu-Daudé
@ 2021-07-07  1:44   ` Richard Henderson
  2021-07-07 19:26   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Richard Henderson @ 2021-07-07  1:44 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Laurent Vivier, Taylor Simpson,
	Aurelien Jarno

On 7/4/21 11:37 AM, Philippe Mathieu-Daudé wrote:
> Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).
> 
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
>   linux-user/hppa/target_syscall.h | 2 ++
>   1 file changed, 2 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


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

* Re: [PATCH 03/12] linux-user/mips: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 ` [PATCH 03/12] linux-user/mips: " Philippe Mathieu-Daudé
@ 2021-07-07  1:45   ` Richard Henderson
  2021-07-07 19:27   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Richard Henderson @ 2021-07-07  1:45 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Laurent Vivier, Taylor Simpson,
	Aurelien Jarno

On 7/4/21 11:37 AM, Philippe Mathieu-Daudé wrote:
> Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).
> 
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
>   linux-user/mips/target_syscall.h   | 2 ++
>   linux-user/mips64/target_syscall.h | 2 ++
>   2 files changed, 4 insertions(+)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


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

* Re: [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style)
  2021-07-04 18:37 ` [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
@ 2021-07-07  1:46   ` Richard Henderson
  2021-07-07 19:32   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Richard Henderson @ 2021-07-07  1:46 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Laurent Vivier, Taylor Simpson,
	Aurelien Jarno

On 7/4/21 11:37 AM, Philippe Mathieu-Daudé wrote:
> We are going to move this code, fix its style first.
> 
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
> Patch trivial to review using 'git-diff --ignore-all-space'
> ---
>   linux-user/alpha/target_syscall.h | 196 +++++++++++++++---------------
>   1 file changed, 97 insertions(+), 99 deletions(-)

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

r~


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

* Re: [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h'
  2021-07-04 18:37 ` [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h' Philippe Mathieu-Daudé
  2021-07-05 22:32   ` Taylor Simpson
@ 2021-07-07  1:53   ` Richard Henderson
  2021-07-08  8:32     ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 28+ messages in thread
From: Richard Henderson @ 2021-07-07  1:53 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Laurent Vivier, Taylor Simpson,
	Aurelien Jarno

On 7/4/21 11:37 AM, Philippe Mathieu-Daudé wrote:
> We want to access the target errno indepently of the rest
> of the linux-user code. Extract it to a new target-specific
> header: 'target_errno_defs.h'.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   linux-user/aarch64/target_errno_defs.h    | 6 ++++++
>   linux-user/alpha/target_errno_defs.h      | 4 ++++
>   linux-user/arm/target_errno_defs.h        | 6 ++++++
>   linux-user/cris/target_errno_defs.h       | 6 ++++++
>   linux-user/errno_defs.h                   | 3 +++
>   linux-user/hexagon/target_errno_defs.h    | 6 ++++++
>   linux-user/hppa/target_errno_defs.h       | 4 ++++
>   linux-user/i386/target_errno_defs.h       | 6 ++++++
>   linux-user/m68k/target_errno_defs.h       | 6 ++++++
>   linux-user/microblaze/target_errno_defs.h | 6 ++++++
>   linux-user/mips/target_errno_defs.h       | 4 ++++
>   linux-user/mips64/target_errno_defs.h     | 4 ++++
>   linux-user/nios2/target_errno_defs.h      | 6 ++++++
>   linux-user/openrisc/target_errno_defs.h   | 6 ++++++
>   linux-user/ppc/target_errno_defs.h        | 6 ++++++
>   linux-user/riscv/target_errno_defs.h      | 6 ++++++
>   linux-user/s390x/target_errno_defs.h      | 6 ++++++
>   linux-user/sh4/target_errno_defs.h        | 6 ++++++
>   linux-user/sparc/target_syscall.h         | 2 --
>   linux-user/x86_64/target_errno_defs.h     | 6 ++++++
>   linux-user/xtensa/target_errno_defs.h     | 6 ++++++
>   21 files changed, 109 insertions(+), 2 deletions(-)
>   create mode 100644 linux-user/aarch64/target_errno_defs.h
>   create mode 100644 linux-user/alpha/target_errno_defs.h
>   create mode 100644 linux-user/arm/target_errno_defs.h
>   create mode 100644 linux-user/cris/target_errno_defs.h
>   create mode 100644 linux-user/hexagon/target_errno_defs.h
>   create mode 100644 linux-user/hppa/target_errno_defs.h
>   create mode 100644 linux-user/i386/target_errno_defs.h
>   create mode 100644 linux-user/m68k/target_errno_defs.h
>   create mode 100644 linux-user/microblaze/target_errno_defs.h
>   create mode 100644 linux-user/mips/target_errno_defs.h
>   create mode 100644 linux-user/mips64/target_errno_defs.h
>   create mode 100644 linux-user/nios2/target_errno_defs.h
>   create mode 100644 linux-user/openrisc/target_errno_defs.h
>   create mode 100644 linux-user/ppc/target_errno_defs.h
>   create mode 100644 linux-user/riscv/target_errno_defs.h
>   create mode 100644 linux-user/s390x/target_errno_defs.h
>   create mode 100644 linux-user/sh4/target_errno_defs.h
>   create mode 100644 linux-user/x86_64/target_errno_defs.h
>   create mode 100644 linux-user/xtensa/target_errno_defs.h
> 
> diff --git a/linux-user/aarch64/target_errno_defs.h b/linux-user/aarch64/target_errno_defs.h
> new file mode 100644
> index 00000000000..a809381165a
> --- /dev/null
> +++ b/linux-user/aarch64/target_errno_defs.h
> @@ -0,0 +1,6 @@
> +#ifndef AARCH64_TARGET_ERRNO_H
> +#define AARCH64_TARGET_ERRNO_H
> +
> +/* Target uses generic errno */
> +
> +#endif

This could be better.

Consider e.g. termbits.h as the model.
These targets should have exactly one line:

#include "../generic/target_errno.h"

> diff --git a/linux-user/alpha/target_errno_defs.h b/linux-user/alpha/target_errno_defs.h
> new file mode 100644
> index 00000000000..13770b14b82
> --- /dev/null
> +++ b/linux-user/alpha/target_errno_defs.h
> @@ -0,0 +1,4 @@
> +#ifndef ALPHA_TARGET_ERRNO_H
> +#define ALPHA_TARGET_ERRNO_H
> +
> +#endif

This one, and ones like it, become

#ifndef ALPHA_TARGET_ERRNO_H
#define ALPHA_TARGET_ERRNO_H

#include "../generic/target_errno.h"

#undef  TARGET_EBAR
#define TARGET_EBAR  xxx
...

#endif


r~


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

* Re: [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h'
  2021-07-04 18:37 ` [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
  2021-07-05 22:29   ` Taylor Simpson
@ 2021-07-07  2:08   ` Richard Henderson
  1 sibling, 0 replies; 28+ messages in thread
From: Richard Henderson @ 2021-07-07  2:08 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Aleksandar Rikalo, Helge Deller, Laurent Vivier, Taylor Simpson,
	Aurelien Jarno

On 7/4/21 11:37 AM, Philippe Mathieu-Daudé wrote:
> Extract target errno related functions to a new 'target_errno.h'
> header, so we can do the host <-> target errno conversion out of
> the big syscall.c (which is already 13k LoC).
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>   linux-user/target_errno.h |  32 +++++++
>   linux-user/syscall.c      | 162 +--------------------------------
>   linux-user/target_errno.c | 183 ++++++++++++++++++++++++++++++++++++++
>   linux-user/meson.build    |   1 +
>   4 files changed, 217 insertions(+), 161 deletions(-)
>   create mode 100644 linux-user/target_errno.h
>   create mode 100644 linux-user/target_errno.c

I guess this is just data movement, so it's ok.

But...

> +/*
> + * target_to_host_errno_table[] is initialized from
> + * host_to_target_errno_table[] in target_to_host_errno_table_init().
> + */
> +static uint16_t target_to_host_errno_table[ERRNO_TABLE_SIZE] = {
> +};
> +
> +/*
> + * This list is the union of errno values overridden in asm-<arch>/errno.h
> + * minus the errnos that are not actually generic to all archs.
> + */
> +static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
> +    [EAGAIN]            = TARGET_EAGAIN,
> +    [EIDRM]             = TARGET_EIDRM,
> +    [ECHRNG]            = TARGET_ECHRNG,

... there's enough pattern here to make it easy to initialize both of these at 
compile-time.  We just need to move the list out to a .c.inc file.

--%<

E(EAGAIN)
E(EIDRM)
...
#ifdef EFOO
E(EFOO)
#endif

--%<

static const uint16_t target_to_host_errno_table[] = {
#define E(X)  [TARGET_##X] = X,
#include "errnos.c.inc"
#undef E
};

static const uint16_t host_to_target_errno_table[] = {
#define E(X)  [X] = TARGET_##X,
#include "errnos.c.inc"
#undef E
};

> +int host_to_target_errno(int err)
> +{
> +    if (err >= 0 && err < ERRNO_TABLE_SIZE &&
> +        host_to_target_errno_table[err]) {
> +        return host_to_target_errno_table[err];
> +    }
> +    return err;
> +}

Here and

> +int target_to_host_errno(int err)
> +{
> +    if (err >= 0 && err < ERRNO_TABLE_SIZE &&
> +        target_to_host_errno_table[err]) {
> +        return target_to_host_errno_table[err];
> +    }
> +    return err;
> +}

here, we might as well use ARRAY_SIZE(foo) instead of ERRNO_TABLE_SIZE.

Or even convert directly to switches, with no array, and let the compiler decide what it 
thinks is best.  Which might turn out to compile away to the identity function when host 
and guest are both asm-generic.


r~


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

* Re: [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 ` [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN Philippe Mathieu-Daudé
  2021-07-07  1:44   ` Richard Henderson
@ 2021-07-07 19:25   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Laurent Vivier @ 2021-07-07 19:25 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Taylor Simpson, Aleksandar Rikalo, Richard Henderson,
	Helge Deller, Aurelien Jarno

Le 04/07/2021 à 20:37, Philippe Mathieu-Daudé a écrit :
> Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  linux-user/alpha/target_syscall.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/linux-user/alpha/target_syscall.h b/linux-user/alpha/target_syscall.h
> index fd389422e31..4e6f9360566 100644
> --- a/linux-user/alpha/target_syscall.h
> +++ b/linux-user/alpha/target_syscall.h
> @@ -44,6 +44,8 @@ struct target_pt_regs {
>  #define UNAME_MACHINE "alpha"
>  #define UNAME_MINIMUM_RELEASE "2.6.32"
>  
> +#undef TARGET_EWOULDBLOCK
> +#define TARGET_EWOULDBLOCK      TARGET_EAGAIN /* Operation would block */
>  #undef TARGET_EDEADLK
>  #define TARGET_EDEADLK		11
>  #undef TARGET_EAGAIN
> 


Applied to my linux-user-for-6.1 branch.

Thanks,
Laurent


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

* Re: [PATCH 02/12] linux-user/hppa: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 ` [PATCH 02/12] linux-user/hppa: " Philippe Mathieu-Daudé
  2021-07-07  1:44   ` Richard Henderson
@ 2021-07-07 19:26   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Laurent Vivier @ 2021-07-07 19:26 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Taylor Simpson, Aleksandar Rikalo, Richard Henderson,
	Helge Deller, Aurelien Jarno

Le 04/07/2021 à 20:37, Philippe Mathieu-Daudé a écrit :
> Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  linux-user/hppa/target_syscall.h | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/linux-user/hppa/target_syscall.h b/linux-user/hppa/target_syscall.h
> index f34e05edb57..97a095656d8 100644
> --- a/linux-user/hppa/target_syscall.h
> +++ b/linux-user/hppa/target_syscall.h
> @@ -27,6 +27,8 @@ struct target_pt_regs {
>  #define TARGET_MCL_FUTURE  2
>  #define TARGET_MCL_ONFAULT 4
>  
> +#undef  TARGET_EWOULDBLOCK
> +#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
>  #undef  TARGET_ENOMSG
>  #define TARGET_ENOMSG          35
>  #undef  TARGET_EIDRM
> 

Applied to my linux-user-for-6.1 branch.

Thanks,
Laurent


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

* Re: [PATCH 03/12] linux-user/mips: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN
  2021-07-04 18:37 ` [PATCH 03/12] linux-user/mips: " Philippe Mathieu-Daudé
  2021-07-07  1:45   ` Richard Henderson
@ 2021-07-07 19:27   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Laurent Vivier @ 2021-07-07 19:27 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Taylor Simpson, Aleksandar Rikalo, Richard Henderson,
	Helge Deller, Aurelien Jarno

Le 04/07/2021 à 20:37, Philippe Mathieu-Daudé a écrit :
> Linux kernel defines EWOULDBLOCK as EAGAIN (since before v2.6.12-rc2).
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  linux-user/mips/target_syscall.h   | 2 ++
>  linux-user/mips64/target_syscall.h | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/linux-user/mips/target_syscall.h b/linux-user/mips/target_syscall.h
> index dd6fd7af8ea..3e558fdb4b4 100644
> --- a/linux-user/mips/target_syscall.h
> +++ b/linux-user/mips/target_syscall.h
> @@ -21,6 +21,8 @@ struct target_pt_regs {
>  };
>  
>  /* Target errno definitions taken from asm-mips/errno.h */
> +#undef TARGET_EWOULDBLOCK
> +#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
>  #undef TARGET_ENOMSG
>  #define TARGET_ENOMSG          35      /* Identifier removed */
>  #undef TARGET_EIDRM
> diff --git a/linux-user/mips64/target_syscall.h b/linux-user/mips64/target_syscall.h
> index 8594955eec2..c54374c5a29 100644
> --- a/linux-user/mips64/target_syscall.h
> +++ b/linux-user/mips64/target_syscall.h
> @@ -18,6 +18,8 @@ struct target_pt_regs {
>  };
>  
>  /* Target errno definitions taken from asm-mips/errno.h */
> +#undef TARGET_EWOULDBLOCK
> +#define TARGET_EWOULDBLOCK     TARGET_EAGAIN /* Operation would block */
>  #undef TARGET_ENOMSG
>  #define TARGET_ENOMSG          35      /* Identifier removed */
>  #undef TARGET_EIDRM
> 

Applied to my linux-user-for-6.1 branch.

Thanks,
Laurent



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

* Re: [PATCH 04/12] linux-user/sparc: Rename target_errno.h -> target_errno_defs.h
  2021-07-04 18:37 ` [PATCH 04/12] linux-user/sparc: Rename target_errno.h -> target_errno_defs.h Philippe Mathieu-Daudé
@ 2021-07-07 19:29   ` Laurent Vivier
  0 siblings, 0 replies; 28+ messages in thread
From: Laurent Vivier @ 2021-07-07 19:29 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Taylor Simpson, Aleksandar Rikalo, Richard Henderson,
	Helge Deller, Aurelien Jarno

Le 04/07/2021 à 20:37, Philippe Mathieu-Daudé a écrit :
> We want to have one generic target_errno.h (API to access target
> errno), and will add target errno definitions in target_errno_defs.h.
> The sparc target already have its errnos in an header, simply rename
> it.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  linux-user/sparc/{target_errno.h => target_errno_defs.h} | 0

Please update the header guard in the file you move.

Thanks,
Laurent

>  linux-user/sparc/target_syscall.h                        | 2 +-
>  2 files changed, 1 insertion(+), 1 deletion(-)
>  rename linux-user/sparc/{target_errno.h => target_errno_defs.h} (100%)
> 
> diff --git a/linux-user/sparc/target_errno.h b/linux-user/sparc/target_errno_defs.h
> similarity index 100%
> rename from linux-user/sparc/target_errno.h
> rename to linux-user/sparc/target_errno_defs.h
> diff --git a/linux-user/sparc/target_syscall.h b/linux-user/sparc/target_syscall.h
> index 15d531f3897..dad501d008c 100644
> --- a/linux-user/sparc/target_syscall.h
> +++ b/linux-user/sparc/target_syscall.h
> @@ -1,7 +1,7 @@
>  #ifndef SPARC_TARGET_SYSCALL_H
>  #define SPARC_TARGET_SYSCALL_H
>  
> -#include "target_errno.h"
> +#include "target_errno_defs.h"
>  
>  #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
>  struct target_pt_regs {
> 



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

* Re: [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style)
  2021-07-04 18:37 ` [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
  2021-07-07  1:46   ` Richard Henderson
@ 2021-07-07 19:32   ` Laurent Vivier
  1 sibling, 0 replies; 28+ messages in thread
From: Laurent Vivier @ 2021-07-07 19:32 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Taylor Simpson, Aleksandar Rikalo, Richard Henderson,
	Helge Deller, Aurelien Jarno

Le 04/07/2021 à 20:37, Philippe Mathieu-Daudé a écrit :
> We are going to move this code, fix its style first.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> Patch trivial to review using 'git-diff --ignore-all-space'
> ---
>  linux-user/alpha/target_syscall.h | 196 +++++++++++++++---------------
>  1 file changed, 97 insertions(+), 99 deletions(-)
> 
> diff --git a/linux-user/alpha/target_syscall.h b/linux-user/alpha/target_syscall.h
> index 4e6f9360566..13a71f35eaf 100644
> --- a/linux-user/alpha/target_syscall.h
> +++ b/linux-user/alpha/target_syscall.h
> @@ -47,196 +47,194 @@ struct target_pt_regs {
>  #undef TARGET_EWOULDBLOCK
>  #define TARGET_EWOULDBLOCK      TARGET_EAGAIN /* Operation would block */
>  #undef TARGET_EDEADLK
> -#define TARGET_EDEADLK		11
> +#define TARGET_EDEADLK          11
>  #undef TARGET_EAGAIN
> -#define TARGET_EAGAIN		35
> +#define TARGET_EAGAIN           35
>  #undef TARGET_EINPROGRESS
> -#define TARGET_EINPROGRESS	36
> +#define TARGET_EINPROGRESS      36
>  #undef TARGET_EALREADY
> -#define TARGET_EALREADY		37
> +#define TARGET_EALREADY         37
>  #undef TARGET_ENOTSOCK
> -#define TARGET_ENOTSOCK		38
> +#define TARGET_ENOTSOCK         38
>  #undef TARGET_EDESTADDRREQ
> -#define TARGET_EDESTADDRREQ	39
> +#define TARGET_EDESTADDRREQ     39
>  #undef TARGET_EMSGSIZE
> -#define TARGET_EMSGSIZE		40
> +#define TARGET_EMSGSIZE         40
>  #undef TARGET_EPROTOTYPE
> -#define TARGET_EPROTOTYPE	41
> +#define TARGET_EPROTOTYPE       41
>  #undef TARGET_ENOPROTOOPT
> -#define TARGET_ENOPROTOOPT	42
> +#define TARGET_ENOPROTOOPT      42
>  #undef TARGET_EPROTONOSUPPORT
> -#define TARGET_EPROTONOSUPPORT	43
> +#define TARGET_EPROTONOSUPPORT  43
>  #undef TARGET_ESOCKTNOSUPPORT
> -#define TARGET_ESOCKTNOSUPPORT	44
> +#define TARGET_ESOCKTNOSUPPORT  44
>  #undef TARGET_EOPNOTSUPP
> -#define TARGET_EOPNOTSUPP	45
> +#define TARGET_EOPNOTSUPP       45
>  #undef TARGET_EPFNOSUPPORT
> -#define TARGET_EPFNOSUPPORT	46
> +#define TARGET_EPFNOSUPPORT     46
>  #undef TARGET_EAFNOSUPPORT
> -#define TARGET_EAFNOSUPPORT	47
> +#define TARGET_EAFNOSUPPORT     47
>  #undef TARGET_EADDRINUSE
> -#define TARGET_EADDRINUSE	48
> +#define TARGET_EADDRINUSE       48
>  #undef TARGET_EADDRNOTAVAIL
> -#define TARGET_EADDRNOTAVAIL	49
> +#define TARGET_EADDRNOTAVAIL    49
>  #undef TARGET_ENETDOWN
> -#define TARGET_ENETDOWN		50
> +#define TARGET_ENETDOWN         50
>  #undef TARGET_ENETUNREACH
> -#define TARGET_ENETUNREACH	51
> +#define TARGET_ENETUNREACH      51
>  #undef TARGET_ENETRESET
> -#define TARGET_ENETRESET	52
> +#define TARGET_ENETRESET        52
>  #undef TARGET_ECONNABORTED
> -#define TARGET_ECONNABORTED	53
> +#define TARGET_ECONNABORTED     53
>  #undef TARGET_ECONNRESET
> -#define TARGET_ECONNRESET	54
> +#define TARGET_ECONNRESET       54
>  #undef TARGET_ENOBUFS
> -#define TARGET_ENOBUFS		55
> +#define TARGET_ENOBUFS          55
>  #undef TARGET_EISCONN
> -#define TARGET_EISCONN		56
> +#define TARGET_EISCONN          56
>  #undef TARGET_ENOTCONN
> -#define TARGET_ENOTCONN		57
> +#define TARGET_ENOTCONN         57
>  #undef TARGET_ESHUTDOWN
> -#define TARGET_ESHUTDOWN	58
> +#define TARGET_ESHUTDOWN        58
>  #undef TARGET_ETOOMANYREFS
> -#define TARGET_ETOOMANYREFS	59
> +#define TARGET_ETOOMANYREFS     59
>  #undef TARGET_ETIMEDOUT
> -#define TARGET_ETIMEDOUT	60
> +#define TARGET_ETIMEDOUT        60
>  #undef TARGET_ECONNREFUSED
> -#define TARGET_ECONNREFUSED	61
> +#define TARGET_ECONNREFUSED     61
>  #undef TARGET_ELOOP
> -#define TARGET_ELOOP		62
> +#define TARGET_ELOOP            62
>  #undef TARGET_ENAMETOOLONG
> -#define TARGET_ENAMETOOLONG	63
> +#define TARGET_ENAMETOOLONG     63
>  #undef TARGET_EHOSTDOWN
> -#define TARGET_EHOSTDOWN	64
> +#define TARGET_EHOSTDOWN        64
>  #undef TARGET_EHOSTUNREACH
> -#define TARGET_EHOSTUNREACH	65
> +#define TARGET_EHOSTUNREACH     65
>  #undef TARGET_ENOTEMPTY
> -#define TARGET_ENOTEMPTY	66
> -// Unused			67
> +#define TARGET_ENOTEMPTY        66
> +/* Unused                       67 */
>  #undef TARGET_EUSERS
> -#define TARGET_EUSERS		68
> +#define TARGET_EUSERS           68
>  #undef TARGET_EDQUOT
> -#define TARGET_EDQUOT		69
> +#define TARGET_EDQUOT           69
>  #undef TARGET_ESTALE
> -#define TARGET_ESTALE		70
> +#define TARGET_ESTALE           70
>  #undef TARGET_EREMOTE
> -#define TARGET_EREMOTE		71
> -// Unused			72-76
> +#define TARGET_EREMOTE          71
> +/* Unused                       72-76 */
>  #undef TARGET_ENOLCK
> -#define TARGET_ENOLCK		77
> +#define TARGET_ENOLCK           77
>  #undef TARGET_ENOSYS
> -#define TARGET_ENOSYS		78
> -// Unused			79
> +#define TARGET_ENOSYS           78
> +/* Unused                       79 */
>  #undef TARGET_ENOMSG
> -#define TARGET_ENOMSG		80
> +#define TARGET_ENOMSG           80
>  #undef TARGET_EIDRM
> -#define TARGET_EIDRM		81
> +#define TARGET_EIDRM            81
>  #undef TARGET_ENOSR
> -#define TARGET_ENOSR		82
> +#define TARGET_ENOSR            82
>  #undef TARGET_ETIME
> -#define TARGET_ETIME		83
> +#define TARGET_ETIME            83
>  #undef TARGET_EBADMSG
> -#define TARGET_EBADMSG		84
> +#define TARGET_EBADMSG          84
>  #undef TARGET_EPROTO
> -#define TARGET_EPROTO		85
> +#define TARGET_EPROTO           85
>  #undef TARGET_ENODATA
> -#define TARGET_ENODATA		86
> +#define TARGET_ENODATA          86
>  #undef TARGET_ENOSTR
> -#define TARGET_ENOSTR		87
> +#define TARGET_ENOSTR           87
>  #undef TARGET_ECHRNG
> -#define TARGET_ECHRNG		88
> +#define TARGET_ECHRNG           88
>  #undef TARGET_EL2NSYNC
> -#define TARGET_EL2NSYNC		89
> +#define TARGET_EL2NSYNC         89
>  #undef TARGET_EL3HLT
> -#define TARGET_EL3HLT		90
> +#define TARGET_EL3HLT           90
>  #undef TARGET_EL3RST
> -#define TARGET_EL3RST		91
> +#define TARGET_EL3RST           91
>  #undef TARGET_ENOPKG
> -#define TARGET_ENOPKG		92
> +#define TARGET_ENOPKG           92
>  #undef TARGET_ELNRNG
> -#define TARGET_ELNRNG		93
> +#define TARGET_ELNRNG           93
>  #undef TARGET_EUNATCH
> -#define TARGET_EUNATCH		94
> +#define TARGET_EUNATCH          94
>  #undef TARGET_ENOCSI
> -#define TARGET_ENOCSI		95
> +#define TARGET_ENOCSI           95
>  #undef TARGET_EL2HLT
> -#define TARGET_EL2HLT		96
> +#define TARGET_EL2HLT           96
>  #undef TARGET_EBADE
> -#define TARGET_EBADE		97
> +#define TARGET_EBADE            97
>  #undef TARGET_EBADR
> -#define TARGET_EBADR		98
> +#define TARGET_EBADR            98
>  #undef TARGET_EXFULL
> -#define TARGET_EXFULL		99
> +#define TARGET_EXFULL           99
>  #undef TARGET_ENOANO
> -#define TARGET_ENOANO		100
> +#define TARGET_ENOANO           100
>  #undef TARGET_EBADRQC
> -#define TARGET_EBADRQC		101
> +#define TARGET_EBADRQC          101
>  #undef TARGET_EBADSLT
> -#define TARGET_EBADSLT		102
> -// Unused			103
> +#define TARGET_EBADSLT          102
> +/* Unused                       103 */
>  #undef TARGET_EBFONT
> -#define TARGET_EBFONT		104
> +#define TARGET_EBFONT           104
>  #undef TARGET_ENONET
> -#define TARGET_ENONET		105
> +#define TARGET_ENONET           105
>  #undef TARGET_ENOLINK
> -#define TARGET_ENOLINK		106
> +#define TARGET_ENOLINK          106
>  #undef TARGET_EADV
> -#define TARGET_EADV		107
> +#define TARGET_EADV             107
>  #undef TARGET_ESRMNT
> -#define TARGET_ESRMNT		108
> +#define TARGET_ESRMNT           108
>  #undef TARGET_ECOMM
> -#define TARGET_ECOMM		109
> +#define TARGET_ECOMM            109
>  #undef TARGET_EMULTIHOP
> -#define TARGET_EMULTIHOP	110
> +#define TARGET_EMULTIHOP        110
>  #undef TARGET_EDOTDOT
> -#define TARGET_EDOTDOT		111
> +#define TARGET_EDOTDOT          111
>  #undef TARGET_EOVERFLOW
> -#define TARGET_EOVERFLOW	112
> +#define TARGET_EOVERFLOW        112
>  #undef TARGET_ENOTUNIQ
> -#define TARGET_ENOTUNIQ		113
> +#define TARGET_ENOTUNIQ         113
>  #undef TARGET_EBADFD
> -#define TARGET_EBADFD		114
> +#define TARGET_EBADFD           114
>  #undef TARGET_EREMCHG
> -#define TARGET_EREMCHG		115
> +#define TARGET_EREMCHG          115
>  #undef TARGET_EILSEQ
> -#define TARGET_EILSEQ		116
> -
> -// Same as default		117-121
> -
> +#define TARGET_EILSEQ           116
> +/* Same as default              117-121 */
>  #undef TARGET_ELIBACC
> -#define TARGET_ELIBACC		122
> +#define TARGET_ELIBACC          122
>  #undef TARGET_ELIBBAD
> -#define TARGET_ELIBBAD		123
> +#define TARGET_ELIBBAD          123
>  #undef TARGET_ELIBSCN
> -#define TARGET_ELIBSCN		124
> +#define TARGET_ELIBSCN          124
>  #undef TARGET_ELIBMAX
> -#define TARGET_ELIBMAX		125
> +#define TARGET_ELIBMAX          125
>  #undef TARGET_ELIBEXEC
> -#define TARGET_ELIBEXEC		126
> +#define TARGET_ELIBEXEC         126
>  #undef TARGET_ERESTART
> -#define TARGET_ERESTART		127
> +#define TARGET_ERESTART         127
>  #undef TARGET_ESTRPIPE
> -#define TARGET_ESTRPIPE		128
> +#define TARGET_ESTRPIPE         128
>  #undef TARGET_ENOMEDIUM
> -#define TARGET_ENOMEDIUM	129
> +#define TARGET_ENOMEDIUM        129
>  #undef TARGET_EMEDIUMTYPE
> -#define TARGET_EMEDIUMTYPE	130
> +#define TARGET_EMEDIUMTYPE      130
>  #undef TARGET_ECANCELED
> -#define TARGET_ECANCELED	131
> +#define TARGET_ECANCELED        131
>  #undef TARGET_ENOKEY
> -#define TARGET_ENOKEY		132
> +#define TARGET_ENOKEY           132
>  #undef TARGET_EKEYEXPIRED
> -#define TARGET_EKEYEXPIRED	133
> +#define TARGET_EKEYEXPIRED      133
>  #undef TARGET_EKEYREVOKED
> -#define TARGET_EKEYREVOKED	134
> +#define TARGET_EKEYREVOKED      134
>  #undef TARGET_EKEYREJECTED
> -#define TARGET_EKEYREJECTED	135
> +#define TARGET_EKEYREJECTED     135
>  #undef TARGET_EOWNERDEAD
> -#define TARGET_EOWNERDEAD	136
> +#define TARGET_EOWNERDEAD       136
>  #undef TARGET_ENOTRECOVERABLE
> -#define TARGET_ENOTRECOVERABLE	137
> +#define TARGET_ENOTRECOVERABLE  137
>  #undef TARGET_ERFKILL
> -#define TARGET_ERFKILL		138
> +#define TARGET_ERFKILL          138
>  #undef TARGET_EHWPOISON
>  #define TARGET_EHWPOISON        139
>  
> 

Applied to my linux-user-for-6.1 branch.

Thanks,
Laurent




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

* Re: [PATCH 11/12] linux-user/syscall: Remove hardcoded tabs (code style)
  2021-07-04 18:37 ` [PATCH 11/12] linux-user/syscall: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
@ 2021-07-07 19:34   ` Laurent Vivier
  0 siblings, 0 replies; 28+ messages in thread
From: Laurent Vivier @ 2021-07-07 19:34 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-devel
  Cc: Taylor Simpson, Aleksandar Rikalo, Richard Henderson,
	Helge Deller, Aurelien Jarno

Le 04/07/2021 à 20:37, Philippe Mathieu-Daudé a écrit :
> We are going to move this code, fix its style first.
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> Patch trivial to review using 'git-diff --ignore-all-space'
> ---
>  linux-user/syscall.c | 188 +++++++++++++++++++++----------------------
>  1 file changed, 94 insertions(+), 94 deletions(-)
> 
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 33b7fef12a8..3761d3b2d64 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -521,112 +521,112 @@ static uint16_t target_to_host_errno_table[ERRNO_TABLE_SIZE] = {
>   * minus the errnos that are not actually generic to all archs.
>   */
>  static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
> -    [EAGAIN]		= TARGET_EAGAIN,
> -    [EIDRM]		= TARGET_EIDRM,
> -    [ECHRNG]		= TARGET_ECHRNG,
> -    [EL2NSYNC]		= TARGET_EL2NSYNC,
> -    [EL3HLT]		= TARGET_EL3HLT,
> -    [EL3RST]		= TARGET_EL3RST,
> -    [ELNRNG]		= TARGET_ELNRNG,
> -    [EUNATCH]		= TARGET_EUNATCH,
> -    [ENOCSI]		= TARGET_ENOCSI,
> -    [EL2HLT]		= TARGET_EL2HLT,
> -    [EDEADLK]		= TARGET_EDEADLK,
> -    [ENOLCK]		= TARGET_ENOLCK,
> -    [EBADE]		= TARGET_EBADE,
> -    [EBADR]		= TARGET_EBADR,
> -    [EXFULL]		= TARGET_EXFULL,
> -    [ENOANO]		= TARGET_ENOANO,
> -    [EBADRQC]		= TARGET_EBADRQC,
> -    [EBADSLT]		= TARGET_EBADSLT,
> -    [EBFONT]		= TARGET_EBFONT,
> -    [ENOSTR]		= TARGET_ENOSTR,
> -    [ENODATA]		= TARGET_ENODATA,
> -    [ETIME]		= TARGET_ETIME,
> -    [ENOSR]		= TARGET_ENOSR,
> -    [ENONET]		= TARGET_ENONET,
> -    [ENOPKG]		= TARGET_ENOPKG,
> -    [EREMOTE]		= TARGET_EREMOTE,
> -    [ENOLINK]		= TARGET_ENOLINK,
> -    [EADV]		= TARGET_EADV,
> -    [ESRMNT]		= TARGET_ESRMNT,
> -    [ECOMM]		= TARGET_ECOMM,
> -    [EPROTO]		= TARGET_EPROTO,
> -    [EDOTDOT]		= TARGET_EDOTDOT,
> -    [EMULTIHOP]		= TARGET_EMULTIHOP,
> -    [EBADMSG]		= TARGET_EBADMSG,
> -    [ENAMETOOLONG]	= TARGET_ENAMETOOLONG,
> -    [EOVERFLOW]		= TARGET_EOVERFLOW,
> -    [ENOTUNIQ]		= TARGET_ENOTUNIQ,
> -    [EBADFD]		= TARGET_EBADFD,
> -    [EREMCHG]		= TARGET_EREMCHG,
> -    [ELIBACC]		= TARGET_ELIBACC,
> -    [ELIBBAD]		= TARGET_ELIBBAD,
> -    [ELIBSCN]		= TARGET_ELIBSCN,
> -    [ELIBMAX]		= TARGET_ELIBMAX,
> -    [ELIBEXEC]		= TARGET_ELIBEXEC,
> -    [EILSEQ]		= TARGET_EILSEQ,
> -    [ENOSYS]		= TARGET_ENOSYS,
> -    [ELOOP]		= TARGET_ELOOP,
> -    [ERESTART]		= TARGET_ERESTART,
> -    [ESTRPIPE]		= TARGET_ESTRPIPE,
> -    [ENOTEMPTY]		= TARGET_ENOTEMPTY,
> -    [EUSERS]		= TARGET_EUSERS,
> -    [ENOTSOCK]		= TARGET_ENOTSOCK,
> -    [EDESTADDRREQ]	= TARGET_EDESTADDRREQ,
> -    [EMSGSIZE]		= TARGET_EMSGSIZE,
> -    [EPROTOTYPE]	= TARGET_EPROTOTYPE,
> -    [ENOPROTOOPT]	= TARGET_ENOPROTOOPT,
> -    [EPROTONOSUPPORT]	= TARGET_EPROTONOSUPPORT,
> -    [ESOCKTNOSUPPORT]	= TARGET_ESOCKTNOSUPPORT,
> -    [EOPNOTSUPP]	= TARGET_EOPNOTSUPP,
> -    [EPFNOSUPPORT]	= TARGET_EPFNOSUPPORT,
> -    [EAFNOSUPPORT]	= TARGET_EAFNOSUPPORT,
> -    [EADDRINUSE]	= TARGET_EADDRINUSE,
> -    [EADDRNOTAVAIL]	= TARGET_EADDRNOTAVAIL,
> -    [ENETDOWN]		= TARGET_ENETDOWN,
> -    [ENETUNREACH]	= TARGET_ENETUNREACH,
> -    [ENETRESET]		= TARGET_ENETRESET,
> -    [ECONNABORTED]	= TARGET_ECONNABORTED,
> -    [ECONNRESET]	= TARGET_ECONNRESET,
> -    [ENOBUFS]		= TARGET_ENOBUFS,
> -    [EISCONN]		= TARGET_EISCONN,
> -    [ENOTCONN]		= TARGET_ENOTCONN,
> -    [EUCLEAN]		= TARGET_EUCLEAN,
> -    [ENOTNAM]		= TARGET_ENOTNAM,
> -    [ENAVAIL]		= TARGET_ENAVAIL,
> -    [EISNAM]		= TARGET_EISNAM,
> -    [EREMOTEIO]		= TARGET_EREMOTEIO,
> +    [EAGAIN]            = TARGET_EAGAIN,
> +    [EIDRM]             = TARGET_EIDRM,
> +    [ECHRNG]            = TARGET_ECHRNG,
> +    [EL2NSYNC]          = TARGET_EL2NSYNC,
> +    [EL3HLT]            = TARGET_EL3HLT,
> +    [EL3RST]            = TARGET_EL3RST,
> +    [ELNRNG]            = TARGET_ELNRNG,
> +    [EUNATCH]           = TARGET_EUNATCH,
> +    [ENOCSI]            = TARGET_ENOCSI,
> +    [EL2HLT]            = TARGET_EL2HLT,
> +    [EDEADLK]           = TARGET_EDEADLK,
> +    [ENOLCK]            = TARGET_ENOLCK,
> +    [EBADE]             = TARGET_EBADE,
> +    [EBADR]             = TARGET_EBADR,
> +    [EXFULL]            = TARGET_EXFULL,
> +    [ENOANO]            = TARGET_ENOANO,
> +    [EBADRQC]           = TARGET_EBADRQC,
> +    [EBADSLT]           = TARGET_EBADSLT,
> +    [EBFONT]            = TARGET_EBFONT,
> +    [ENOSTR]            = TARGET_ENOSTR,
> +    [ENODATA]           = TARGET_ENODATA,
> +    [ETIME]             = TARGET_ETIME,
> +    [ENOSR]             = TARGET_ENOSR,
> +    [ENONET]            = TARGET_ENONET,
> +    [ENOPKG]            = TARGET_ENOPKG,
> +    [EREMOTE]           = TARGET_EREMOTE,
> +    [ENOLINK]           = TARGET_ENOLINK,
> +    [EADV]              = TARGET_EADV,
> +    [ESRMNT]            = TARGET_ESRMNT,
> +    [ECOMM]             = TARGET_ECOMM,
> +    [EPROTO]            = TARGET_EPROTO,
> +    [EDOTDOT]           = TARGET_EDOTDOT,
> +    [EMULTIHOP]         = TARGET_EMULTIHOP,
> +    [EBADMSG]           = TARGET_EBADMSG,
> +    [ENAMETOOLONG]      = TARGET_ENAMETOOLONG,
> +    [EOVERFLOW]         = TARGET_EOVERFLOW,
> +    [ENOTUNIQ]          = TARGET_ENOTUNIQ,
> +    [EBADFD]            = TARGET_EBADFD,
> +    [EREMCHG]           = TARGET_EREMCHG,
> +    [ELIBACC]           = TARGET_ELIBACC,
> +    [ELIBBAD]           = TARGET_ELIBBAD,
> +    [ELIBSCN]           = TARGET_ELIBSCN,
> +    [ELIBMAX]           = TARGET_ELIBMAX,
> +    [ELIBEXEC]          = TARGET_ELIBEXEC,
> +    [EILSEQ]            = TARGET_EILSEQ,
> +    [ENOSYS]            = TARGET_ENOSYS,
> +    [ELOOP]             = TARGET_ELOOP,
> +    [ERESTART]          = TARGET_ERESTART,
> +    [ESTRPIPE]          = TARGET_ESTRPIPE,
> +    [ENOTEMPTY]         = TARGET_ENOTEMPTY,
> +    [EUSERS]            = TARGET_EUSERS,
> +    [ENOTSOCK]          = TARGET_ENOTSOCK,
> +    [EDESTADDRREQ]      = TARGET_EDESTADDRREQ,
> +    [EMSGSIZE]          = TARGET_EMSGSIZE,
> +    [EPROTOTYPE]        = TARGET_EPROTOTYPE,
> +    [ENOPROTOOPT]       = TARGET_ENOPROTOOPT,
> +    [EPROTONOSUPPORT]   = TARGET_EPROTONOSUPPORT,
> +    [ESOCKTNOSUPPORT]   = TARGET_ESOCKTNOSUPPORT,
> +    [EOPNOTSUPP]        = TARGET_EOPNOTSUPP,
> +    [EPFNOSUPPORT]      = TARGET_EPFNOSUPPORT,
> +    [EAFNOSUPPORT]      = TARGET_EAFNOSUPPORT,
> +    [EADDRINUSE]        = TARGET_EADDRINUSE,
> +    [EADDRNOTAVAIL]     = TARGET_EADDRNOTAVAIL,
> +    [ENETDOWN]          = TARGET_ENETDOWN,
> +    [ENETUNREACH]       = TARGET_ENETUNREACH,
> +    [ENETRESET]         = TARGET_ENETRESET,
> +    [ECONNABORTED]      = TARGET_ECONNABORTED,
> +    [ECONNRESET]        = TARGET_ECONNRESET,
> +    [ENOBUFS]           = TARGET_ENOBUFS,
> +    [EISCONN]           = TARGET_EISCONN,
> +    [ENOTCONN]          = TARGET_ENOTCONN,
> +    [EUCLEAN]           = TARGET_EUCLEAN,
> +    [ENOTNAM]           = TARGET_ENOTNAM,
> +    [ENAVAIL]           = TARGET_ENAVAIL,
> +    [EISNAM]            = TARGET_EISNAM,
> +    [EREMOTEIO]         = TARGET_EREMOTEIO,
>      [EDQUOT]            = TARGET_EDQUOT,
> -    [ESHUTDOWN]		= TARGET_ESHUTDOWN,
> -    [ETOOMANYREFS]	= TARGET_ETOOMANYREFS,
> -    [ETIMEDOUT]		= TARGET_ETIMEDOUT,
> -    [ECONNREFUSED]	= TARGET_ECONNREFUSED,
> -    [EHOSTDOWN]		= TARGET_EHOSTDOWN,
> -    [EHOSTUNREACH]	= TARGET_EHOSTUNREACH,
> -    [EALREADY]		= TARGET_EALREADY,
> -    [EINPROGRESS]	= TARGET_EINPROGRESS,
> -    [ESTALE]		= TARGET_ESTALE,
> -    [ECANCELED]		= TARGET_ECANCELED,
> -    [ENOMEDIUM]		= TARGET_ENOMEDIUM,
> -    [EMEDIUMTYPE]	= TARGET_EMEDIUMTYPE,
> +    [ESHUTDOWN]         = TARGET_ESHUTDOWN,
> +    [ETOOMANYREFS]      = TARGET_ETOOMANYREFS,
> +    [ETIMEDOUT]         = TARGET_ETIMEDOUT,
> +    [ECONNREFUSED]      = TARGET_ECONNREFUSED,
> +    [EHOSTDOWN]         = TARGET_EHOSTDOWN,
> +    [EHOSTUNREACH]      = TARGET_EHOSTUNREACH,
> +    [EALREADY]          = TARGET_EALREADY,
> +    [EINPROGRESS]       = TARGET_EINPROGRESS,
> +    [ESTALE]            = TARGET_ESTALE,
> +    [ECANCELED]         = TARGET_ECANCELED,
> +    [ENOMEDIUM]         = TARGET_ENOMEDIUM,
> +    [EMEDIUMTYPE]       = TARGET_EMEDIUMTYPE,
>  #ifdef ENOKEY
> -    [ENOKEY]		= TARGET_ENOKEY,
> +    [ENOKEY]            = TARGET_ENOKEY,
>  #endif
>  #ifdef EKEYEXPIRED
> -    [EKEYEXPIRED]	= TARGET_EKEYEXPIRED,
> +    [EKEYEXPIRED]       = TARGET_EKEYEXPIRED,
>  #endif
>  #ifdef EKEYREVOKED
> -    [EKEYREVOKED]	= TARGET_EKEYREVOKED,
> +    [EKEYREVOKED]       = TARGET_EKEYREVOKED,
>  #endif
>  #ifdef EKEYREJECTED
> -    [EKEYREJECTED]	= TARGET_EKEYREJECTED,
> +    [EKEYREJECTED]      = TARGET_EKEYREJECTED,
>  #endif
>  #ifdef EOWNERDEAD
> -    [EOWNERDEAD]	= TARGET_EOWNERDEAD,
> +    [EOWNERDEAD]        = TARGET_EOWNERDEAD,
>  #endif
>  #ifdef ENOTRECOVERABLE
> -    [ENOTRECOVERABLE]	= TARGET_ENOTRECOVERABLE,
> +    [ENOTRECOVERABLE]   = TARGET_ENOTRECOVERABLE,
>  #endif
>  #ifdef ENOMSG
>      [ENOMSG]            = TARGET_ENOMSG,
> 

Applied to my linux-user-for-6.1 branch.

Thanks,
Laurent



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

* Re: [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h'
  2021-07-07  1:53   ` Richard Henderson
@ 2021-07-08  8:32     ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 28+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-08  8:32 UTC (permalink / raw)
  To: Richard Henderson, qemu-devel
  Cc: Taylor Simpson, Aleksandar Rikalo, Helge Deller, Aurelien Jarno,
	Laurent Vivier

On 7/7/21 3:53 AM, Richard Henderson wrote:
> On 7/4/21 11:37 AM, Philippe Mathieu-Daudé wrote:
>> We want to access the target errno indepently of the rest
>> of the linux-user code. Extract it to a new target-specific
>> header: 'target_errno_defs.h'.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>>   linux-user/aarch64/target_errno_defs.h    | 6 ++++++
>>   linux-user/alpha/target_errno_defs.h      | 4 ++++
>>   linux-user/arm/target_errno_defs.h        | 6 ++++++
>>   linux-user/cris/target_errno_defs.h       | 6 ++++++
>>   linux-user/errno_defs.h                   | 3 +++
>>   linux-user/hexagon/target_errno_defs.h    | 6 ++++++
>>   linux-user/hppa/target_errno_defs.h       | 4 ++++
>>   linux-user/i386/target_errno_defs.h       | 6 ++++++
>>   linux-user/m68k/target_errno_defs.h       | 6 ++++++
>>   linux-user/microblaze/target_errno_defs.h | 6 ++++++
>>   linux-user/mips/target_errno_defs.h       | 4 ++++
>>   linux-user/mips64/target_errno_defs.h     | 4 ++++
>>   linux-user/nios2/target_errno_defs.h      | 6 ++++++
>>   linux-user/openrisc/target_errno_defs.h   | 6 ++++++
>>   linux-user/ppc/target_errno_defs.h        | 6 ++++++
>>   linux-user/riscv/target_errno_defs.h      | 6 ++++++
>>   linux-user/s390x/target_errno_defs.h      | 6 ++++++
>>   linux-user/sh4/target_errno_defs.h        | 6 ++++++
>>   linux-user/sparc/target_syscall.h         | 2 --
>>   linux-user/x86_64/target_errno_defs.h     | 6 ++++++
>>   linux-user/xtensa/target_errno_defs.h     | 6 ++++++
>>   21 files changed, 109 insertions(+), 2 deletions(-)
>>   create mode 100644 linux-user/aarch64/target_errno_defs.h
>>   create mode 100644 linux-user/alpha/target_errno_defs.h
>>   create mode 100644 linux-user/arm/target_errno_defs.h
>>   create mode 100644 linux-user/cris/target_errno_defs.h
>>   create mode 100644 linux-user/hexagon/target_errno_defs.h
>>   create mode 100644 linux-user/hppa/target_errno_defs.h
>>   create mode 100644 linux-user/i386/target_errno_defs.h
>>   create mode 100644 linux-user/m68k/target_errno_defs.h
>>   create mode 100644 linux-user/microblaze/target_errno_defs.h
>>   create mode 100644 linux-user/mips/target_errno_defs.h
>>   create mode 100644 linux-user/mips64/target_errno_defs.h
>>   create mode 100644 linux-user/nios2/target_errno_defs.h
>>   create mode 100644 linux-user/openrisc/target_errno_defs.h
>>   create mode 100644 linux-user/ppc/target_errno_defs.h
>>   create mode 100644 linux-user/riscv/target_errno_defs.h
>>   create mode 100644 linux-user/s390x/target_errno_defs.h
>>   create mode 100644 linux-user/sh4/target_errno_defs.h
>>   create mode 100644 linux-user/x86_64/target_errno_defs.h
>>   create mode 100644 linux-user/xtensa/target_errno_defs.h
>>
>> diff --git a/linux-user/aarch64/target_errno_defs.h
>> b/linux-user/aarch64/target_errno_defs.h
>> new file mode 100644
>> index 00000000000..a809381165a
>> --- /dev/null
>> +++ b/linux-user/aarch64/target_errno_defs.h
>> @@ -0,0 +1,6 @@
>> +#ifndef AARCH64_TARGET_ERRNO_H
>> +#define AARCH64_TARGET_ERRNO_H
>> +
>> +/* Target uses generic errno */
>> +
>> +#endif
> 
> This could be better.
> 
> Consider e.g. termbits.h as the model.

Thanks for the tip!

> These targets should have exactly one line:
> 
> #include "../generic/target_errno.h"
> 
>> diff --git a/linux-user/alpha/target_errno_defs.h
>> b/linux-user/alpha/target_errno_defs.h
>> new file mode 100644
>> index 00000000000..13770b14b82
>> --- /dev/null
>> +++ b/linux-user/alpha/target_errno_defs.h
>> @@ -0,0 +1,4 @@
>> +#ifndef ALPHA_TARGET_ERRNO_H
>> +#define ALPHA_TARGET_ERRNO_H
>> +
>> +#endif
> 
> This one, and ones like it, become
> 
> #ifndef ALPHA_TARGET_ERRNO_H
> #define ALPHA_TARGET_ERRNO_H
> 
> #include "../generic/target_errno.h"
> 
> #undef  TARGET_EBAR
> #define TARGET_EBAR  xxx
> ...
> 
> #endif
> 
> 
> r~
> 


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

end of thread, other threads:[~2021-07-08  8:33 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-04 18:37 [PATCH 00/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
2021-07-04 18:37 ` [PATCH 01/12] linux-user/alpha: Handle TARGET_EWOULDBLOCK as TARGET_EAGAIN Philippe Mathieu-Daudé
2021-07-07  1:44   ` Richard Henderson
2021-07-07 19:25   ` Laurent Vivier
2021-07-04 18:37 ` [PATCH 02/12] linux-user/hppa: " Philippe Mathieu-Daudé
2021-07-07  1:44   ` Richard Henderson
2021-07-07 19:26   ` Laurent Vivier
2021-07-04 18:37 ` [PATCH 03/12] linux-user/mips: " Philippe Mathieu-Daudé
2021-07-07  1:45   ` Richard Henderson
2021-07-07 19:27   ` Laurent Vivier
2021-07-04 18:37 ` [PATCH 04/12] linux-user/sparc: Rename target_errno.h -> target_errno_defs.h Philippe Mathieu-Daudé
2021-07-07 19:29   ` Laurent Vivier
2021-07-04 18:37 ` [PATCH 05/12] linux-user: Extract target errno to 'target_errno_defs.h' Philippe Mathieu-Daudé
2021-07-05 22:32   ` Taylor Simpson
2021-07-07  1:53   ` Richard Henderson
2021-07-08  8:32     ` Philippe Mathieu-Daudé
2021-07-04 18:37 ` [PATCH 06/12] linux-user/alpha: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
2021-07-07  1:46   ` Richard Henderson
2021-07-07 19:32   ` Laurent Vivier
2021-07-04 18:37 ` [PATCH 07/12] linux-user/alpha: Move errno definitions to 'target_errno_defs.h' Philippe Mathieu-Daudé
2021-07-04 18:37 ` [PATCH 08/12] linux-user/hppa: " Philippe Mathieu-Daudé
2021-07-04 18:37 ` [PATCH 09/12] linux-user/mips: " Philippe Mathieu-Daudé
2021-07-04 18:37 ` [PATCH 10/12] linux-user/syscall: Refactor target_to_host_errno_table_init() Philippe Mathieu-Daudé
2021-07-04 18:37 ` [PATCH 11/12] linux-user/syscall: Remove hardcoded tabs (code style) Philippe Mathieu-Daudé
2021-07-07 19:34   ` Laurent Vivier
2021-07-04 18:37 ` [PATCH 12/12] linux-user: Extract target errno related functions to 'target_errno.h' Philippe Mathieu-Daudé
2021-07-05 22:29   ` Taylor Simpson
2021-07-07  2:08   ` Richard Henderson

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.