OSDN Git Service

mips/signalfd.h: SFD_NONBLOCK for mips is 0200 unlike 04000 commonly
[uclinux-h8/uclibc-ng.git] / include / sys / signalfd.h
1 /* Copyright (C) 2007, 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
18
19 #ifndef _SYS_SIGNALFD_H
20 #define _SYS_SIGNALFD_H 1
21
22 #define __need_sigset_t
23 #include <signal.h>
24 #include <stdint.h>
25
26
27 struct signalfd_siginfo
28 {
29   uint32_t ssi_signo;
30   int32_t ssi_errno;
31   int32_t ssi_code;
32   uint32_t ssi_pid;
33   uint32_t ssi_uid;
34   int32_t ssi_fd;
35   uint32_t ssi_tid;
36   uint32_t ssi_band;
37   uint32_t ssi_overrun;
38   uint32_t ssi_trapno;
39   int32_t ssi_status;
40   int32_t ssi_int;
41   uint64_t ssi_ptr;
42   uint64_t ssi_utime;
43   uint64_t ssi_stime;
44   uint64_t ssi_addr;
45   uint8_t __pad[48];
46 };
47
48 /* Flags for signalfd.  */
49 #if defined __sparc__ || defined __sparc64__
50 enum
51   {
52     SFD_CLOEXEC = 0x400000,
53 # define SFD_CLOEXEC SFD_CLOEXEC
54     SFD_NONBLOCK = 0x4000
55 # define SFD_NONBLOCK SFD_NONBLOCK
56   };
57
58 #elif defined __alpha__
59 enum
60   {
61     SFD_CLOEXEC = 010000000,
62 # define SFD_CLOEXEC SFD_CLOEXEC
63     SFD_NONBLOCK = 04
64 # define SFD_NONBLOCK SFD_NONBLOCK
65   };
66
67 #elif defined __mips__
68 enum
69   {
70     SFD_CLOEXEC = 02000000,
71 # define SFD_CLOEXEC SFD_CLOEXEC
72     SFD_NONBLOCK = 0200
73 # define SFD_NONBLOCK SFD_NONBLOCK
74   };
75
76 #else
77 enum
78   {
79     SFD_CLOEXEC = 02000000,
80 # define SFD_CLOEXEC SFD_CLOEXEC
81     SFD_NONBLOCK = 04000
82 # define SFD_NONBLOCK SFD_NONBLOCK
83   };
84 #endif
85
86 __BEGIN_DECLS
87
88 /* Request notification for delivery of signals in MASK to be
89    performed using descriptor FD.*/
90 extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
91   __nonnull ((2)) __THROW;
92
93 __END_DECLS
94
95 #endif /* sys/signalfd.h */