summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/semaphore.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-12 08:09:16 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-05 14:29:01 +0200
commitc090db7405b72ce6d0b726c0a39fb1c1aebab7ea (patch)
tree099a887f445115e9b40d25cd6a2b2b11908d347d /cpukit/posix/include/rtems/posix/semaphore.h
parentposix: Optimize pthread_once_t (diff)
downloadrtems-c090db7405b72ce6d0b726c0a39fb1c1aebab7ea.tar.bz2
posix: Implement self-contained POSIX semaphores
For semaphore object pointer and object validation see POSIX_SEMAPHORE_VALIDATE_OBJECT(). Destruction or close of a busy semaphore returns an error status. The object is not flushed. POSIX semaphores are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3116.
Diffstat (limited to 'cpukit/posix/include/rtems/posix/semaphore.h')
-rw-r--r--cpukit/posix/include/rtems/posix/semaphore.h18
1 files changed, 4 insertions, 14 deletions
diff --git a/cpukit/posix/include/rtems/posix/semaphore.h b/cpukit/posix/include/rtems/posix/semaphore.h
index 6598397052..9133db22be 100644
--- a/cpukit/posix/include/rtems/posix/semaphore.h
+++ b/cpukit/posix/include/rtems/posix/semaphore.h
@@ -21,7 +21,6 @@
#include <semaphore.h>
#include <rtems/score/object.h>
-#include <rtems/score/coresem.h>
#ifdef __cplusplus
extern "C" {
@@ -41,19 +40,10 @@ extern "C" {
*/
typedef struct {
- Objects_Control Object;
- CORE_semaphore_Control Semaphore;
- bool named;
- bool linked;
- uint32_t open_count;
- /*
- * sem_t is 32-bit. If Object_Id is 16-bit, then they are not
- * interchangeable. We have to be able to return a pointer to
- * a 32-bit form of the 16-bit Id.
- */
- #if defined(RTEMS_USE_16_BIT_OBJECT)
- sem_t Semaphore_id;
- #endif
+ Objects_Control Object;
+ sem_t Semaphore;
+ bool linked;
+ uint32_t open_count;
} POSIX_Semaphore_Control;
/** @} */