From 94ad282e94e38e9394b031edbc30605f9331d033 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 26 Oct 2009 22:49:08 -0700 Subject: Get the right sigaction struct for the 386 rt_sigaction system call. This uses the header files from a 32-bit Ubuntu Hardy system. The use of _LOOSE_KERNEL_NAMES seems right. The -D__ARCH_SI_UID_T works around a bug which appears to be fixed in later Linux versions. R=rsc http://go/go-review/1013015 --- src/pkg/runtime/linux/defs2.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/pkg/runtime/linux/defs2.c') diff --git a/src/pkg/runtime/linux/defs2.c b/src/pkg/runtime/linux/defs2.c index aa0331a37..a91086aa5 100644 --- a/src/pkg/runtime/linux/defs2.c +++ b/src/pkg/runtime/linux/defs2.c @@ -13,8 +13,9 @@ #include #include -#include +#include #include +#include /* #include @@ -22,6 +23,17 @@ #include */ +/* This is the sigaction structure from the Linux 2.1.68 kernel which + is used with the rt_sigaction system call. For 386 this is not + defined in any public header file. */ + +struct kernel_sigaction { + __sighandler_t k_sa_handler; + unsigned long sa_flags; + void (*sa_restorer) (void); + sigset_t sa_mask; +}; + enum { $PROT_NONE = PROT_NONE, $PROT_READ = PROT_READ, @@ -43,7 +55,7 @@ typedef struct _xmmreg $Xmmreg; typedef struct _fpstate $Fpstate; typedef struct timespec $Timespec; typedef struct timeval $Timeval; -typedef struct sigaction $Sigaction; +typedef struct kernel_sigaction $Sigaction; typedef siginfo_t $Siginfo; typedef struct sigaltstack $Sigaltstack; typedef struct sigcontext $Sigcontext; -- cgit v1.2.3