/usr/include/xenomai/posix/signal.h is in libxenomai-dev 2.6.3-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | /*
* Copyright (C) 2006 Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef _XENO_POSIX_SIGNAL_H
#define _XENO_POSIX_SIGNAL_H
#if defined(__KERNEL__) || defined(__XENO_SIM__)
#include <nucleus/xenomai.h>
#ifdef __KERNEL__
#include <linux/signal.h>
/* These are not defined in kernel-space headers. */
#define sa_sigaction sa_handler
typedef void (*sighandler_t) (int sig);
typedef unsigned long sig_atomic_t;
#endif /* __KERNEL__ */
#ifdef __XENO_SIM__
#include <posix_overrides.h>
#endif /* __XENO_SIM__ */
#undef sigemptyset
#undef sigfillset
#undef sigaddset
#undef sigdelset
#undef sigismember
#undef sigaction
#undef sigqueue
#undef SIGRTMIN
#undef SIGRTMAX
#define sigaction(sig, action, old) pse51_sigaction(sig, action, old)
#define sigemptyset pse51_sigemptyset
#define sigfillset pse51_sigfillset
#define sigaddset pse51_sigaddset
#define sigdelset pse51_sigdelset
#define sigismember pse51_sigismember
#define SIGRTMIN 33
#define SIGRTMAX 64
struct pse51_thread;
#ifdef __cplusplus
extern "C" {
#endif
int sigemptyset(sigset_t *set);
int sigfillset(sigset_t *set);
int sigaddset(sigset_t *set,
int signum);
int sigdelset(sigset_t *set,
int signum);
int sigismember(const sigset_t *set,
int signum);
int pthread_kill(struct pse51_thread *thread,
int sig);
int pthread_sigmask(int how,
const sigset_t *set,
sigset_t *oset);
int sigaction(int sig,
const struct sigaction *action,
struct sigaction *old);
int sigpending(sigset_t *set);
int sigwait(const sigset_t *set,
int *sig);
/* Real-time signals. */
int sigwaitinfo(const sigset_t *__restrict__ set,
siginfo_t *__restrict__ info);
int sigtimedwait(const sigset_t *__restrict__ user_set,
siginfo_t *__restrict__ info,
const struct timespec *__restrict__ timeout);
int pthread_sigqueue_np (struct pse51_thread *thread, int sig, union sigval value);
#ifdef __cplusplus
}
#endif
#else /* !(__KERNEL__ || __XENO_SIM__) */
#pragma GCC system_header
#include_next <signal.h>
/* In case signal.h is included for a side effect of an __need* macro, include
it a second time to get all definitions. */
#include_next <signal.h>
#endif /* !(__KERNEL__ || __XENO_SIM__) */
/*
* Those are pseudo-signals only available with pthread_kill() to
* suspend/resume/unblock threads synchronously via the low-level
* nucleus interface. Can't block them, queue them, or even set them
* in a sigset. Those are nasty, strictly anti-POSIX things; we do
* provide them nevertheless only because we are mean people doing
* harmful code for no valid reason. Can't go against your nature,
* right? Nah... (this said, don't blame us for POSIX, we are not
* _that_ mean).
*/
#define SIGSUSP (SIGRTMAX + 1)
#define SIGRESM (SIGRTMAX + 2)
#define SIGRELS (SIGRTMAX + 3)
#endif /* _XENO_POSIX_SIGNAL_H */
|