qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] linux-user: avoid using glibc internals


From: Natanael Copa
Subject: [Qemu-devel] [PATCH] linux-user: avoid using glibc internals
Date: Wed, 23 Apr 2014 16:59:22 +0200

Avoid using glibc specific internals.

Calculate the sigevent pad size is calculated in similar way as kernel
does it.

This is needed for building with musl libc.

Signed-off-by: Natanael Copa <address@hidden>
---
 linux-user/syscall.c      | 2 +-
 linux-user/syscall_defs.h | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 9864813..c8989b6 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -406,7 +406,7 @@ static int sys_inotify_init1(int flags)
 #endif
 #define __NR_sys_ppoll __NR_ppoll
 _syscall5(int, sys_ppoll, struct pollfd *, fds, nfds_t, nfds,
-          struct timespec *, timeout, const __sigset_t *, sigmask,
+          struct timespec *, timeout, const sigset_t *, sigmask,
           size_t, sigsetsize)
 #endif
 
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index fdf9a47..450f71b 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2552,12 +2552,16 @@ struct target_timer_t {
     abi_ulong ptr;
 };
 
+#define TARGET_SIGEV_MAX_SIZE  64
+#define TARGET_SIGEV_PREAMABLE_SIZE (sizeof(int32_t) * 2 + 
sizeof(target_sigval_t))
+#define TARGET_SIGEV_PAD_SIZE  ((TARGET_SIGEV_MAX_SIZE - 
TARGET_SIGEV_PREAMABLE_SIZE) / sizeof(int32_t))
+
 struct target_sigevent {
     target_sigval_t sigev_value;
     int32_t sigev_signo;
     int32_t sigev_notify;
     union {
-        int32_t _pad[ARRAY_SIZE(((struct sigevent *)0)->_sigev_un._pad)];
+        int32_t _pad[TARGET_SIGEV_PAD_SIZE];
         int32_t _tid;
 
         struct {
-- 
1.9.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]