
From: Andi Kleen <ak@suse.de>

POSIX says si_band in siginfo_t must be long. glibc uses this, except
for Alpha.

This type must be correct on little endian machines, otherwise
Konqueror does not get any events from dnotity for created/deleted files.

Currenly asm-generic/siginfo.h uses int, which is wrong.

This patch adds a new macro __ARCH_SI_BAND_T which is int for alpha
and long for everybody else. This makes the type on x86-64 come out
correctly
y


 include/asm-alpha/siginfo.h   |    2 ++
 include/asm-generic/siginfo.h |    6 +++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff -puN include/asm-alpha/siginfo.h~si_band-type-fix include/asm-alpha/siginfo.h
--- 25/include/asm-alpha/siginfo.h~si_band-type-fix	2003-08-18 22:27:02.000000000 -0700
+++ 25-akpm/include/asm-alpha/siginfo.h	2003-08-18 22:27:02.000000000 -0700
@@ -6,6 +6,8 @@
 
 #define SIGEV_PAD_SIZE			((SIGEV_MAX_SIZE/sizeof(int)) - 4)
 
+#define __ARCH_SI_BAND_T int
+
 #include <asm-generic/siginfo.h>
 
 #endif
diff -puN include/asm-generic/siginfo.h~si_band-type-fix include/asm-generic/siginfo.h
--- 25/include/asm-generic/siginfo.h~si_band-type-fix	2003-08-18 22:27:02.000000000 -0700
+++ 25-akpm/include/asm-generic/siginfo.h	2003-08-18 22:27:02.000000000 -0700
@@ -26,6 +26,10 @@ typedef union sigval {
 #define __ARCH_SI_UID_T	uid_t
 #endif
 
+#ifndef __ARCH_SI_BAND_T
+#define __ARCH_SI_BAND_T long
+#endif
+
 #ifndef HAVE_ARCH_SIGINFO_T
 
 typedef struct siginfo {
@@ -77,7 +81,7 @@ typedef struct siginfo {
 
 		/* SIGPOLL */
 		struct {
-			int _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
+			__ARCH_SI_BAND_T _band;	/* POLL_IN, POLL_OUT, POLL_MSG */
 			int _fd;
 		} _sigpoll;
 	} _sifields;

_
