Re: [PATCH] Futex Generalization Patch

From: Hubertus Franke (frankeh@watson.ibm.com)
Date: Mon Apr 15 2002 - 11:22:59 EST


On Monday 15 April 2002 10:49 am, Bill Abt wrote:
> Dealing with the realtime signal is not a problem. Also, saving the extra
> system call is *BIG* bonus.
>
>
> Regards,
> Bill Abt
> Senior Software Engineer
> Next Generation POSIX Threading for Linux
> IBM Cambridge, MA, USA 02142
> Ext: +(00)1 617-693-1591
> T/L: 693-1591 (M/W/F)
> T/L: 253-9938 (T/Th/Eves.)
> Cell: +(00)1 617-803-7514
> babt@us.ibm.com or abt@us.ibm.com
> http://oss.software.ibm.com/developerworks/opensource/pthreads

Cool

As of Peter's initial message. I took a look at the siginfo_t and Peter's
statement needs to be corrected "a bit".
All the members he listed are NOT necessarily available.

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 */
                struct {
                        void *_addr; /* faulting insn/memory ref. */
                } _sigfault;
 
                 /* SIGPOLL */
                struct {
                        int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
                        int _fd;
                } _sigpoll;
        } _sifields;
} siginfo_t;

I'd suggest we tag along the _sigfault semantics.
We don't need to know who woke us up, just which <addr> got signalled.

-- 
-- Hubertus Franke  (frankeh@watson.ibm.com)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Apr 15 2002 - 22:00:25 EST