]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] parisc compatibility layer update
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 11 Feb 2003 13:37:08 +0000 (05:37 -0800)
committerVojtech Pavlik <vojtech@suse.cz>
Tue, 11 Feb 2003 13:37:08 +0000 (05:37 -0800)
At Linux Conf AU, Willy asked me to send any further parisc compatibility
changes directly to you, so this is what I have outstanding.  Basically,
it is just the uses of compat_sigset_t that seemed to have been missed in
the previous merges.

arch/parisc/kernel/binfmt_elf32.c
arch/parisc/kernel/signal.c
arch/parisc/kernel/signal32.c
arch/parisc/kernel/sys32.h

index 184ab16c0b8ceee2d51834ce05cc1326d04ec41b..a99a6e321c10f41e4ecce18da684e625efef0356 100644 (file)
@@ -19,7 +19,7 @@ typedef unsigned int elf_greg_t;
 #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
index 47c9c81ad69f62a6de61993f77280cf321900398..8c8f67e97fbc2ba5cac08b7da624fe9e18f6bdf6 100644 (file)
@@ -25,6 +25,7 @@
 #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>
@@ -97,13 +98,13 @@ sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize, struct pt_regs *regs)
        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);
index c1af9ab751c250da1ac91ea8bb720c4ad27483c8..cb29923d8cc3a7edcaefb555ce872378c633f28f 100644 (file)
@@ -18,22 +18,22 @@ struct k_sigaction32 {
 };
 
 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);
@@ -42,9 +42,9 @@ put_sigset32(sigset_t32 *up, sigset_t *set, size_t sz)
 }
 
 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()");
@@ -56,7 +56,7 @@ get_sigset32(sigset_t32 *up, sigset_t *set, size_t sz)
        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,
@@ -78,7 +78,7 @@ int sys32_rt_sigprocmask(int how, sigset_t32 *set, sigset_t32 *oset,
 }
 
 
-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;
index 7ffeb91b408b499d82f6c5aedb4b6ed590cb91f4..4a2850dcbeb85389d8940ba8d29fb02ccce62a30 100644 (file)
 
 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