summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2002-10-15 18:29:22 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-10-15 18:29:22 -0700
commit932d934b4c1595bcd2154a7343aaa29c5d645061 (patch)
tree94b3d198042dba9df3e342e82dc8a8bf7ce6a0b8 /include
parentffbbaa20150838a400f1f223370ea05b79c5f3d3 (diff)
parent717781e2e357575eaf4dfe499b05139db6464c5e (diff)
Merge master.kernel.org:/home/davem/BK/sparc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/siginfo.h28
-rw-r--r--include/asm-sparc/siginfo.h72
-rw-r--r--include/asm-sparc/unistd.h2
-rw-r--r--include/asm-sparc64/siginfo.h73
-rw-r--r--include/asm-sparc64/unistd.h2
5 files changed, 29 insertions, 148 deletions
diff --git a/include/asm-generic/siginfo.h b/include/asm-generic/siginfo.h
index 8e6f81b7a524..f246b2a15eb5 100644
--- a/include/asm-generic/siginfo.h
+++ b/include/asm-generic/siginfo.h
@@ -8,9 +8,21 @@ typedef union sigval {
void *sival_ptr;
} sigval_t;
+/*
+ * This is the size (including padding) of the part of the
+ * struct siginfo that is before the union.
+ */
+#ifndef __ARCH_SI_PREAMBLE_SIZE
+#define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
+#endif
+
#define SI_MAX_SIZE 128
#ifndef SI_PAD_SIZE
-#define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int)) - 3)
+#define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
+#endif
+
+#ifndef __ARCH_SI_UID_T
+#define __ARCH_SI_UID_T uid_t
#endif
#ifndef HAVE_ARCH_SIGINFO_T
@@ -26,7 +38,7 @@ typedef struct siginfo {
/* kill() */
struct {
pid_t _pid; /* sender's pid */
- uid_t _uid; /* sender's uid */
+ __ARCH_SI_UID_T _uid; /* sender's uid */
} _kill;
/* POSIX.1b timers */
@@ -38,14 +50,14 @@ typedef struct siginfo {
/* POSIX.1b signals */
struct {
pid_t _pid; /* sender's pid */
- uid_t _uid; /* sender's uid */
+ __ARCH_SI_UID_T _uid; /* sender's uid */
sigval_t _sigval;
} _rt;
/* SIGCHLD */
struct {
pid_t _pid; /* which child */
- uid_t _uid; /* sender's uid */
+ __ARCH_SI_UID_T _uid; /* sender's uid */
int _status; /* exit code */
clock_t _utime;
clock_t _stime;
@@ -54,6 +66,9 @@ typedef struct siginfo {
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
struct {
void *_addr; /* faulting insn/memory ref. */
+#ifdef __ARCH_SI_TRAPNO
+ int _trapno; /* TRAP # which caused the signal */
+#endif
} _sigfault;
/* SIGPOLL */
@@ -80,6 +95,9 @@ typedef struct siginfo {
#define si_int _sifields._rt._sigval.sival_int
#define si_ptr _sifields._rt._sigval.sival_ptr
#define si_addr _sifields._sigfault._addr
+#ifdef __ARCH_SI_TRAPNO
+#define si_trapno _sifields._sigfault._trapno
+#endif
#define si_band _sifields._sigpoll._band
#define si_fd _sifields._sigpoll._fd
@@ -244,7 +262,7 @@ static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
memcpy(to, from, sizeof(*to));
else
/* _sigchld is currently the largest know union member */
- memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld));
+ memcpy(to, from, __ARCH_SI_PREAMBLE_SIZE + sizeof(from->_sifields._sigchld));
}
#endif
diff --git a/include/asm-sparc/siginfo.h b/include/asm-sparc/siginfo.h
index b5127b06416f..2c3ea8b22448 100644
--- a/include/asm-sparc/siginfo.h
+++ b/include/asm-sparc/siginfo.h
@@ -5,64 +5,11 @@
#ifndef _SPARC_SIGINFO_H
#define _SPARC_SIGINFO_H
-#define HAVE_ARCH_SIGINFO_T
-#define HAVE_ARCH_COPY_SIGINFO
-#define HAVE_ARCH_COPY_SIGINFO_TO_USER
+#define __ARCH_SI_UID_T unsigned int
+#define __ARCH_SI_TRAPNO
#include <asm-generic/siginfo.h>
-typedef struct siginfo {
- int si_signo;
- int si_errno;
- int si_code;
-
- union {
- int _pad[SI_PAD_SIZE];
-
- /* kill() */
- struct {
- pid_t _pid; /* sender's pid */
- unsigned int _uid; /* sender's uid */
- } _kill;
-
- /* POSIX.1b timers */
- struct {
- unsigned int _timer1;
- unsigned int _timer2;
- } _timer;
-
- /* POSIX.1b signals */
- struct {
- pid_t _pid; /* sender's pid */
- unsigned int _uid; /* sender's uid */
- sigval_t _sigval;
- } _rt;
-
- /* SIGCHLD */
- struct {
- pid_t _pid; /* which child */
- unsigned int _uid; /* sender's uid */
- int _status; /* exit code */
- clock_t _utime;
- clock_t _stime;
- } _sigchld;
-
- /* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGEMT */
- struct {
- void *_addr; /* faulting insn/memory ref. */
- int _trapno; /* TRAP # which caused the signal */
- } _sigfault;
-
- /* SIGPOLL */
- struct {
- int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
- int _fd;
- } _sigpoll;
- } _sifields;
-} siginfo_t;
-
-#define si_trapno _sifields._sigfault._trapno
-
#define SI_NOINFO 32767 /* no information in siginfo_t */
/*
@@ -71,19 +18,4 @@ typedef struct siginfo {
#define EMT_TAGOVF (__SI_FAULT|1) /* tag overflow */
#define NSIGEMT 1
-#ifdef __KERNEL__
-
-#include <linux/string.h>
-
-extern inline void copy_siginfo(siginfo_t *to, siginfo_t *from)
-{
- if (from->si_code < 0)
- *to = *from;
- else
- /* _sigchld is currently the largest know union member */
- memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld));
-}
-
-#endif /* __KERNEL__ */
-
#endif /* !(_SPARC_SIGINFO_H) */
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h
index b4a785dbd9cf..721a3ee7a797 100644
--- a/include/asm-sparc/unistd.h
+++ b/include/asm-sparc/unistd.h
@@ -223,7 +223,7 @@
#define __NR_readahead 205 /* Linux Specific */
#define __NR_socketcall 206 /* Linux Specific */
#define __NR_syslog 207 /* Linux Specific */
-/* #define __NR_olduname 208 Linux Specific */
+#define __NR_lookup_dcookie 208 /* Linux Specific */
/* #define __NR_iopl 209 Linux Specific - i386 specific, unused */
/* #define __NR_idle 210 Linux Specific - was sys_idle, now unused */
/* #define __NR_vm86 211 Linux Specific - i386 specific, unused */
diff --git a/include/asm-sparc64/siginfo.h b/include/asm-sparc64/siginfo.h
index f8d1959ea8dc..f4bb94656634 100644
--- a/include/asm-sparc64/siginfo.h
+++ b/include/asm-sparc64/siginfo.h
@@ -1,15 +1,13 @@
#ifndef _SPARC64_SIGINFO_H
#define _SPARC64_SIGINFO_H
-#define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int)) - 4)
#define SI_PAD_SIZE32 ((SI_MAX_SIZE/sizeof(int)) - 3)
#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 4)
#define SIGEV_PAD_SIZE32 ((SIGEV_MAX_SIZE/sizeof(int)) - 3)
-#define HAVE_ARCH_SIGINFO_T
-#define HAVE_ARCH_COPY_SIGINFO
-#define HAVE_ARCH_COPY_SIGINFO_TO_USER
+#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
+#define __ARCH_SI_TRAPNO
#include <asm-generic/siginfo.h>
@@ -20,60 +18,6 @@ typedef union sigval32 {
u32 sival_ptr;
} sigval_t32;
-#endif /* __KERNEL__ */
-
-typedef struct siginfo {
- int si_signo;
- int si_errno;
- int si_code;
-
- union {
- int _pad[SI_PAD_SIZE];
-
- /* kill() */
- struct {
- pid_t _pid; /* sender's pid */
- uid_t _uid; /* sender's uid */
- } _kill;
-
- /* POSIX.1b timers */
- struct {
- unsigned int _timer1;
- unsigned int _timer2;
- } _timer;
-
- /* POSIX.1b signals */
- struct {
- pid_t _pid; /* sender's pid */
- uid_t _uid; /* sender's uid */
- sigval_t _sigval;
- } _rt;
-
- /* SIGCHLD */
- struct {
- pid_t _pid; /* which child */
- uid_t _uid; /* sender's uid */
- int _status; /* exit code */
- clock_t _utime;
- clock_t _stime;
- } _sigchld;
-
- /* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGEMT */
- struct {
- void *_addr; /* faulting insn/memory ref. */
- int _trapno; /* TRAP # which caused the signal */
- } _sigfault;
-
- /* SIGPOLL */
- struct {
- long _band; /* POLL_IN, POLL_OUT, POLL_MSG */
- int _fd;
- } _sigpoll;
- } _sifields;
-} siginfo_t;
-
-#ifdef __KERNEL__
-
typedef struct siginfo32 {
int si_signo;
int si_errno;
@@ -126,8 +70,6 @@ typedef struct siginfo32 {
#endif /* __KERNEL__ */
-#define si_trapno _sifields._sigfault._trapno
-
#define SI_NOINFO 32767 /* no information in siginfo_t */
/*
@@ -152,17 +94,6 @@ typedef struct sigevent32 {
} _sigev_un;
} sigevent_t32;
-#include <linux/string.h>
-
-static inline void copy_siginfo(siginfo_t *to, siginfo_t *from)
-{
- if (from->si_code < 0)
- *to = *from;
- else
- /* _sigchld is currently the largest know union member */
- memcpy(to, from, 4*sizeof(int) + sizeof(from->_sifields._sigchld));
-}
-
extern int copy_siginfo_to_user32(siginfo_t32 *to, siginfo_t *from);
#endif /* __KERNEL__ */
diff --git a/include/asm-sparc64/unistd.h b/include/asm-sparc64/unistd.h
index 588f2a577fa7..dcd60cdb9188 100644
--- a/include/asm-sparc64/unistd.h
+++ b/include/asm-sparc64/unistd.h
@@ -223,7 +223,7 @@
#define __NR_readahead 205 /* Linux Specific */
#define __NR_socketcall 206 /* Linux Specific */
#define __NR_syslog 207 /* Linux Specific */
-/* #define __NR_olduname 208 Linux Specific */
+#define __NR_lookup_dcookie 208 /* Linux Specific */
/* #define __NR_iopl 209 Linux Specific - i386 specific, unused */
/* #define __NR_idle 210 Linux Specific - was sys_idle, now unused */
/* #define __NR_vm86 211 Linux Specific - i386 specific, unused */