Le 15/01/2022 à 12:32, Serge Belyshev a écrit :
Alpha uses different values of some TARGET_RLIMIT_* constants, which were
missing and caused bugs like #577, fixed thus.  Also rearranged all three
(alpha, mips and sparc) that differ from everyone else for clarity.

Signed-off-by: Serge Belyshev <belys...@depni.sinp.msu.ru>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/577
---
  linux-user/syscall_defs.h | 31 ++++++++++++++-----------------
  1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index f23f0a2178..3fcabaeae3 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -730,44 +730,41 @@ struct target_rlimit {
  #define TARGET_RLIM_INFINITY  ((abi_ulong)-1)
  #endif
-#if defined(TARGET_MIPS)
  #define TARGET_RLIMIT_CPU             0
  #define TARGET_RLIMIT_FSIZE           1
  #define TARGET_RLIMIT_DATA            2
  #define TARGET_RLIMIT_STACK           3
  #define TARGET_RLIMIT_CORE            4
+#if defined(TARGET_MIPS)
+#define TARGET_RLIMIT_NOFILE           5
+#define TARGET_RLIMIT_AS               6
  #define TARGET_RLIMIT_RSS             7
  #define TARGET_RLIMIT_NPROC           8
-#define TARGET_RLIMIT_NOFILE           5
  #define TARGET_RLIMIT_MEMLOCK         9
-#define TARGET_RLIMIT_AS               6
-#define TARGET_RLIMIT_LOCKS            10
-#define TARGET_RLIMIT_SIGPENDING       11
-#define TARGET_RLIMIT_MSGQUEUE         12
-#define TARGET_RLIMIT_NICE             13
-#define TARGET_RLIMIT_RTPRIO           14
-#else
-#define TARGET_RLIMIT_CPU              0
-#define TARGET_RLIMIT_FSIZE            1
-#define TARGET_RLIMIT_DATA             2
-#define TARGET_RLIMIT_STACK            3
-#define TARGET_RLIMIT_CORE             4
+#elif defined(TARGET_ALPHA)
+#define TARGET_RLIMIT_RSS              5
+#define TARGET_RLIMIT_NOFILE           6
+#define TARGET_RLIMIT_AS               7
+#define TARGET_RLIMIT_NPROC            8
+#define TARGET_RLIMIT_MEMLOCK          9
+#elif defined(TARGET_SPARC)
  #define TARGET_RLIMIT_RSS             5
-#if defined(TARGET_SPARC)
  #define TARGET_RLIMIT_NOFILE          6
  #define TARGET_RLIMIT_NPROC           7
+#define TARGET_RLIMIT_MEMLOCK          8
+#define TARGET_RLIMIT_AS               9
  #else
+#define TARGET_RLIMIT_RSS              5
  #define TARGET_RLIMIT_NPROC           6
  #define TARGET_RLIMIT_NOFILE          7
-#endif
  #define TARGET_RLIMIT_MEMLOCK         8
  #define TARGET_RLIMIT_AS              9
+#endif
  #define TARGET_RLIMIT_LOCKS           10
  #define TARGET_RLIMIT_SIGPENDING      11
  #define TARGET_RLIMIT_MSGQUEUE                12
  #define TARGET_RLIMIT_NICE            13
  #define TARGET_RLIMIT_RTPRIO          14
-#endif
struct target_pollfd {
      int fd;           /* file descriptor */

Reviewed-by: Laurent Vivier <laur...@vivier.eu>

perhaps you could also add RLIMIT_RTTIME (15) and update 
target_to_host_resource()?

The next step would be to move the generic definitions to a new file in linux-user/generic/target_resource.h and the specific ones to linux-user/alpha, linux-user/mips and linux-user/sparc.

Thanks,
Laurent

Reply via email to