[SPARC64]: Move signal compat bits to new header file.
Create asm-sparc64/compat_signal.h and stuff things there. This avoids the "linux/compat.h includes asm/signal.h but asm/signal.h needs compat_sigset_t which isn't defined yet" problems introduced recently. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -29,6 +29,7 @@
|
|||||||
#include <asm/psrcompat.h>
|
#include <asm/psrcompat.h>
|
||||||
#include <asm/fpumacro.h>
|
#include <asm/fpumacro.h>
|
||||||
#include <asm/visasm.h>
|
#include <asm/visasm.h>
|
||||||
|
#include <asm/compat_signal.h>
|
||||||
|
|
||||||
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
|
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
|
||||||
|
|
||||||
|
@@ -61,6 +61,7 @@
|
|||||||
#include <asm/semaphore.h>
|
#include <asm/semaphore.h>
|
||||||
#include <asm/mmu_context.h>
|
#include <asm/mmu_context.h>
|
||||||
#include <asm/a.out.h>
|
#include <asm/a.out.h>
|
||||||
|
#include <asm/compat_signal.h>
|
||||||
|
|
||||||
asmlinkage long sys32_chown16(const char __user * filename, u16 user, u16 group)
|
asmlinkage long sys32_chown16(const char __user * filename, u16 user, u16 group)
|
||||||
{
|
{
|
||||||
|
@@ -43,6 +43,7 @@
|
|||||||
#include <asm/idprom.h> /* for gethostid() */
|
#include <asm/idprom.h> /* for gethostid() */
|
||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
#include <asm/system.h>
|
#include <asm/system.h>
|
||||||
|
#include <asm/compat_signal.h>
|
||||||
|
|
||||||
/* For the nfs mount emulation */
|
/* For the nfs mount emulation */
|
||||||
#include <linux/socket.h>
|
#include <linux/socket.h>
|
||||||
|
30
include/asm-sparc64/compat_signal.h
Normal file
30
include/asm-sparc64/compat_signal.h
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#ifndef _COMPAT_SIGNAL_H
|
||||||
|
#define _COMPAT_SIGNAL_H
|
||||||
|
|
||||||
|
#include <linux/config.h>
|
||||||
|
#include <linux/compat.h>
|
||||||
|
#include <asm/signal.h>
|
||||||
|
|
||||||
|
#ifdef CONFIG_COMPAT
|
||||||
|
struct __new_sigaction32 {
|
||||||
|
unsigned sa_handler;
|
||||||
|
unsigned int sa_flags;
|
||||||
|
unsigned sa_restorer; /* not used by Linux/SPARC yet */
|
||||||
|
compat_sigset_t sa_mask;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct __old_sigaction32 {
|
||||||
|
unsigned sa_handler;
|
||||||
|
compat_old_sigset_t sa_mask;
|
||||||
|
unsigned int sa_flags;
|
||||||
|
unsigned sa_restorer; /* not used by Linux/SPARC yet */
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct sigaltstack32 {
|
||||||
|
u32 ss_sp;
|
||||||
|
int ss_flags;
|
||||||
|
compat_size_t ss_size;
|
||||||
|
} stack_t32;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !(_COMPAT_SIGNAL_H) */
|
@@ -167,23 +167,6 @@ struct __new_sigaction {
|
|||||||
__new_sigset_t sa_mask;
|
__new_sigset_t sa_mask;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
|
||||||
struct __new_sigaction32 {
|
|
||||||
unsigned sa_handler;
|
|
||||||
unsigned int sa_flags;
|
|
||||||
unsigned sa_restorer; /* not used by Linux/SPARC yet */
|
|
||||||
compat_sigset_t sa_mask;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct k_sigaction {
|
|
||||||
struct __new_sigaction sa;
|
|
||||||
void __user *ka_restorer;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct __old_sigaction {
|
struct __old_sigaction {
|
||||||
__sighandler_t sa_handler;
|
__sighandler_t sa_handler;
|
||||||
__old_sigset_t sa_mask;
|
__old_sigset_t sa_mask;
|
||||||
@@ -191,19 +174,6 @@ struct __old_sigaction {
|
|||||||
void (*sa_restorer)(void); /* not used by Linux/SPARC yet */
|
void (*sa_restorer)(void); /* not used by Linux/SPARC yet */
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
|
||||||
struct __old_sigaction32 {
|
|
||||||
unsigned sa_handler;
|
|
||||||
compat_old_sigset_t sa_mask;
|
|
||||||
unsigned int sa_flags;
|
|
||||||
unsigned sa_restorer; /* not used by Linux/SPARC yet */
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct sigaltstack {
|
typedef struct sigaltstack {
|
||||||
void __user *ss_sp;
|
void __user *ss_sp;
|
||||||
int ss_flags;
|
int ss_flags;
|
||||||
@@ -212,13 +182,10 @@ typedef struct sigaltstack {
|
|||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
|
|
||||||
#ifdef CONFIG_COMPAT
|
struct k_sigaction {
|
||||||
typedef struct sigaltstack32 {
|
struct __new_sigaction sa;
|
||||||
u32 ss_sp;
|
void __user *ka_restorer;
|
||||||
int ss_flags;
|
};
|
||||||
compat_size_t ss_size;
|
|
||||||
} stack_t32;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct signal_deliver_cookie {
|
struct signal_deliver_cookie {
|
||||||
int restart_syscall;
|
int restart_syscall;
|
||||||
|
Reference in New Issue
Block a user