/usr/include/xenomai/posix/semaphore.h is in libxenomai-dev 2.6.4+dfsg-1.
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 134 135 136 137 138 139 140 141 142 143 144 | /*
* Copyright (C) 2005 Philippe Gerum <rpm@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_SEMAPHORE_H
#define _XENO_POSIX_SEMAPHORE_H
#if defined(__KERNEL__) || defined(__XENO_SIM__)
#include <nucleus/xenomai.h>
#ifdef __KERNEL__
#include <linux/kernel.h>
#include <linux/fcntl.h>
#endif /* __KERNEL__ */
#ifdef __XENO_SIM__
#include <posix_overrides.h>
#endif /* __XENO_SIM__ */
#define SEM_VALUE_MAX (INT_MAX)
#define SEM_FAILED NULL
#ifdef __KERNEL__
/* Copied from Linuxthreads semaphore.h. */
struct _sem_fastlock
{
long int __status;
int __spinlock;
};
typedef struct
{
struct _sem_fastlock __sem_lock;
int __sem_value;
long __sem_waiting;
} sem_t;
#endif /* __KERNEL__ */
#else /* !(__KERNEL__ || __XENO_SIM__) */
#pragma GCC system_header
#include <fcntl.h> /* For sem_open flags. */
#include_next <semaphore.h>
#endif /* !(__KERNEL__ || __XENO_SIM__) */
struct pse51_sem;
union __xeno_sem {
sem_t native_sem;
struct __shadow_sem {
unsigned magic;
struct pse51_sem *sem;
} shadow_sem;
};
#if defined(__KERNEL__) || defined(__XENO_SIM__)
#ifdef __cplusplus
extern "C" {
#endif
#undef sem_init
#define sem_init pse51_sem_init
int pse51_sem_init(sem_t *sem,
int pshared,
unsigned int value);
int sem_destroy(sem_t *sem);
int sem_post(sem_t *sem);
int sem_trywait(sem_t *sem);
int sem_wait(sem_t *sem);
int sem_timedwait(sem_t *sem,
const struct timespec *abs_timeout);
int sem_getvalue(sem_t *sem,
int *value);
sem_t *sem_open(const char *name, int oflag, ...);
int sem_close(sem_t *sem);
int sem_unlink(const char *name);
#ifdef __cplusplus
}
#endif
#else /* !(__KERNEL__ || __XENO_SIM__) */
#ifdef __cplusplus
extern "C" {
#endif
int __real_sem_init(sem_t *sem,
int pshared,
unsigned value);
int __real_sem_destroy(sem_t *sem);
int __real_sem_post(sem_t *sem);
int __real_sem_wait(sem_t *sem);
int __real_sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);
int __real_sem_trywait(sem_t *sem);
int __real_sem_getvalue(sem_t *sem, int *value);
sem_t *__real_sem_open(const char *name, int oflags, ...);
int __real_sem_close(sem_t *sem);
int __real_sem_unlink(const char *name);
#ifdef __cplusplus
}
#endif
#endif /* !(__KERNEL__ || __XENO_SIM__) */
#endif /* _XENO_POSIX_SEMAPHORE_H */
|