aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2005-05-01 11:59:08 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-01 11:59:08 -0400
commita71c1ab50a2a0f4dd9834bf5a917a2f064535c6b (patch)
tree063bdb02b335f2c5b38f9e503434fa5fbf0106c4
parent696f9486d0207d499391004f5bc9bd7c0e6ae82f (diff)
[PATCH] consolidate SIGEV_PAD_SIZE
Discussing with Matthew Wilcox some of his outstanding patches lead me to this patch (among others). The preamble in struct sigevent can be expressed independently of the architecture. Also use __ARCH_SI_PREAMBLE_SIZE on ia64. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--include/asm-alpha/siginfo.h2
-rw-r--r--include/asm-generic/siginfo.h13
-rw-r--r--include/asm-ia64/siginfo.h4
-rw-r--r--include/asm-mips/siginfo.h2
-rw-r--r--include/asm-s390/siginfo.h6
-rw-r--r--include/asm-sparc64/siginfo.h2
-rw-r--r--include/asm-x86_64/siginfo.h2
7 files changed, 11 insertions, 20 deletions
diff --git a/include/asm-alpha/siginfo.h b/include/asm-alpha/siginfo.h
index 86bcab59c52b..9822362a8424 100644
--- a/include/asm-alpha/siginfo.h
+++ b/include/asm-alpha/siginfo.h
@@ -4,8 +4,6 @@
4#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) 4#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
5#define __ARCH_SI_TRAPNO 5#define __ARCH_SI_TRAPNO
6 6
7#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 4)
8
9#include <asm-generic/siginfo.h> 7#include <asm-generic/siginfo.h>
10 8
11#endif 9#endif
diff --git a/include/asm-generic/siginfo.h b/include/asm-generic/siginfo.h
index 9cac8e8dde51..8786e01e0db8 100644
--- a/include/asm-generic/siginfo.h
+++ b/include/asm-generic/siginfo.h
@@ -236,11 +236,18 @@ typedef struct siginfo {
236#define SIGEV_THREAD 2 /* deliver via thread creation */ 236#define SIGEV_THREAD 2 /* deliver via thread creation */
237#define SIGEV_THREAD_ID 4 /* deliver to thread */ 237#define SIGEV_THREAD_ID 4 /* deliver to thread */
238 238
239#define SIGEV_MAX_SIZE 64 239/*
240#ifndef SIGEV_PAD_SIZE 240 * This works because the alignment is ok on all current architectures
241#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 3) 241 * but we leave open this being overridden in the future
242 */
243#ifndef __ARCH_SIGEV_PREAMBLE_SIZE
244#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t))
242#endif 245#endif
243 246
247#define SIGEV_MAX_SIZE 64
248#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) \
249 / sizeof(int))
250
244typedef struct sigevent { 251typedef struct sigevent {
245 sigval_t sigev_value; 252 sigval_t sigev_value;
246 int sigev_signo; 253 int sigev_signo;
diff --git a/include/asm-ia64/siginfo.h b/include/asm-ia64/siginfo.h
index d55f139cbcdc..9294e4b0c8bc 100644
--- a/include/asm-ia64/siginfo.h
+++ b/include/asm-ia64/siginfo.h
@@ -8,9 +8,7 @@
8 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co 8 * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
9 */ 9 */
10 10
11#define SI_PAD_SIZE ((SI_MAX_SIZE/sizeof(int)) - 4) 11#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
12
13#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 4)
14 12
15#define HAVE_ARCH_SIGINFO_T 13#define HAVE_ARCH_SIGINFO_T
16#define HAVE_ARCH_COPY_SIGINFO 14#define HAVE_ARCH_COPY_SIGINFO
diff --git a/include/asm-mips/siginfo.h b/include/asm-mips/siginfo.h
index 8ddd3c99bcf7..a0e26e6c994d 100644
--- a/include/asm-mips/siginfo.h
+++ b/include/asm-mips/siginfo.h
@@ -11,8 +11,6 @@
11 11
12#include <linux/config.h> 12#include <linux/config.h>
13 13
14#define SIGEV_HEAD_SIZE (sizeof(long) + 2*sizeof(int))
15#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE-SIGEV_HEAD_SIZE) / sizeof(int))
16#undef __ARCH_SI_TRAPNO /* exception code needs to fill this ... */ 14#undef __ARCH_SI_TRAPNO /* exception code needs to fill this ... */
17 15
18#define HAVE_ARCH_SIGINFO_T 16#define HAVE_ARCH_SIGINFO_T
diff --git a/include/asm-s390/siginfo.h b/include/asm-s390/siginfo.h
index 72303537b732..e0ff1ab054be 100644
--- a/include/asm-s390/siginfo.h
+++ b/include/asm-s390/siginfo.h
@@ -13,12 +13,6 @@
13#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) 13#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
14#endif 14#endif
15 15
16#ifdef CONFIG_ARCH_S390X
17#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 4)
18#else
19#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 3)
20#endif
21
22#include <asm-generic/siginfo.h> 16#include <asm-generic/siginfo.h>
23 17
24#endif 18#endif
diff --git a/include/asm-sparc64/siginfo.h b/include/asm-sparc64/siginfo.h
index 7160449e7cab..df17e47abc1c 100644
--- a/include/asm-sparc64/siginfo.h
+++ b/include/asm-sparc64/siginfo.h
@@ -3,8 +3,6 @@
3 3
4#define SI_PAD_SIZE32 ((SI_MAX_SIZE/sizeof(int)) - 3) 4#define SI_PAD_SIZE32 ((SI_MAX_SIZE/sizeof(int)) - 3)
5 5
6#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 4)
7
8#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) 6#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
9#define __ARCH_SI_TRAPNO 7#define __ARCH_SI_TRAPNO
10#define __ARCH_SI_BAND_T int 8#define __ARCH_SI_BAND_T int
diff --git a/include/asm-x86_64/siginfo.h b/include/asm-x86_64/siginfo.h
index 7bc15985f124..d09a1e6e7246 100644
--- a/include/asm-x86_64/siginfo.h
+++ b/include/asm-x86_64/siginfo.h
@@ -3,8 +3,6 @@
3 3
4#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) 4#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
5 5
6#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE/sizeof(int)) - 4)
7
8#include <asm-generic/siginfo.h> 6#include <asm-generic/siginfo.h>
9 7
10#endif 8#endif