[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
- [Qemu-devel] [PATCH] linux-user: avoid using glibc internals,
Natanael Copa <=