#include <linux/module.h>
#include <linux/config.h>
#include <linux/elfcore.h>
-#include <linux/compat.h>
+#include <linux/compat.h> /* struct compat_timeval */
#define elf_prstatus elf_prstatus32
struct elf_prstatus32
#include <linux/ptrace.h>
#include <linux/unistd.h>
#include <linux/stddef.h>
+#include <linux/compat.h>
#include <asm/ucontext.h>
#include <asm/rt_sigframe.h>
#include <asm/uaccess.h>
sigset_t saveset, newset;
#ifdef __LP64__
/* XXX FIXME -- assumes 32-bit user app! */
- sigset_t32 newset32;
+ compat_sigset_t newset32;
/* XXX: Don't preclude handling different sized sigset_t's. */
- if (sigsetsize != sizeof(sigset_t32))
+ if (sigsetsize != sizeof(compat_sigset_t))
return -EINVAL;
- if (copy_from_user(&newset32, (sigset_t32 *)unewset, sizeof(newset32)))
+ if (copy_from_user(&newset32, (compat_sigset_t *)unewset, sizeof(newset32)))
return -EFAULT;
newset.sig[0] = newset32.sig[0] | ((unsigned long)newset32.sig[1] << 32);
};
static inline void
-sigset_32to64(sigset_t *s64, sigset_t32 *s32)
+sigset_32to64(sigset_t *s64, compat_sigset_t *s32)
{
s64->sig[0] = s32->sig[0] | ((unsigned long)s32->sig[1] << 32);
}
static inline void
-sigset_64to32(sigset_t32 *s32, sigset_t *s64)
+sigset_64to32(compat_sigset_t *s32, sigset_t *s64)
{
s32->sig[0] = s64->sig[0] & 0xffffffffUL;
s32->sig[1] = (s64->sig[0] >> 32) & 0xffffffffUL;
}
static int
-put_sigset32(sigset_t32 *up, sigset_t *set, size_t sz)
+put_sigset32(compat_sigset_t *up, sigset_t *set, size_t sz)
{
- sigset_t32 s;
+ compat_sigset_t s;
if (sz != sizeof *set) panic("put_sigset32()");
sigset_64to32(&s, set);
}
static int
-get_sigset32(sigset_t32 *up, sigset_t *set, size_t sz)
+get_sigset32(compat_sigset_t *up, sigset_t *set, size_t sz)
{
- sigset_t32 s;
+ compat_sigset_t s;
int r;
if (sz != sizeof *set) panic("put_sigset32()");
return r;
}
-int sys32_rt_sigprocmask(int how, sigset_t32 *set, sigset_t32 *oset,
+int sys32_rt_sigprocmask(int how, compat_sigset_t *set, compat_sigset_t *oset,
unsigned int sigsetsize)
{
extern long sys_rt_sigprocmask(int how,
}
-int sys32_rt_sigpending(sigset_t32 *uset, unsigned int sigsetsize)
+int sys32_rt_sigpending(compat_sigset_t *uset, unsigned int sigsetsize)
{
int ret;
sigset_t set;
typedef __u32 __sighandler_t32;
-#include <linux/signal.h>
-typedef struct {
- unsigned int sig[_NSIG_WORDS * 2];
-} sigset_t32;
-
struct sigaction32 {
__sighandler_t32 sa_handler;
unsigned int sa_flags;
- sigset_t32 sa_mask; /* mask last for extensibility */
+ compat_sigset_t sa_mask; /* mask last for extensibility */
};
#endif