36 lines
1.1 KiB
Diff
36 lines
1.1 KiB
Diff
--- linux-user/syscall.c.orig 2015-04-10 07:10:06.305662505 +0000
|
|
+++ linux-user/syscall.c 2015-04-10 07:36:53.801871968 +0000
|
|
@@ -5020,9 +5020,20 @@
|
|
return 0;
|
|
}
|
|
|
|
-static inline abi_long target_to_host_sigevent(struct sigevent *host_sevp,
|
|
+struct host_sigevent {
|
|
+ union sigval sigev_value;
|
|
+ int sigev_signo;
|
|
+ int sigev_notify;
|
|
+ union {
|
|
+ int _pad[64-sizeof(int) * 2 + sizeof(union sigval)];
|
|
+ int _tid;
|
|
+ } _sigev_un;
|
|
+};
|
|
+
|
|
+static inline abi_long target_to_host_sigevent(struct sigevent *sevp,
|
|
abi_ulong target_addr)
|
|
{
|
|
+ struct host_sigevent *host_sevp = (struct host_sigevent *) sevp;
|
|
struct target_sigevent *target_sevp;
|
|
|
|
if (!lock_user_struct(VERIFY_READ, target_sevp, target_addr, 1)) {
|
|
--- linux-user/syscall_defs.h.orig 2015-04-10 07:41:35.410380624 +0000
|
|
+++ linux-user/syscall_defs.h 2015-04-10 07:42:30.401391516 +0000
|
|
@@ -2589,7 +2589,7 @@
|
|
int32_t _tid;
|
|
|
|
struct {
|
|
- void (*_function)(sigval_t);
|
|
+ void (*_function)(union sigval);
|
|
void *_attribute;
|
|
} _sigev_thread;
|
|
} _sigev_un;
|
|
|