From c090db7405b72ce6d0b726c0a39fb1c1aebab7ea Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 12 Sep 2017 08:09:16 +0200 Subject: 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. --- cpukit/sapi/src/posixapi.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'cpukit/sapi/src/posixapi.c') diff --git a/cpukit/sapi/src/posixapi.c b/cpukit/sapi/src/posixapi.c index e7d34fdf60..ef725bea96 100644 --- a/cpukit/sapi/src/posixapi.c +++ b/cpukit/sapi/src/posixapi.c @@ -20,6 +20,31 @@ #endif #include +#include +#include + +#ifdef HEAP_PROTECTION +RTEMS_STATIC_ASSERT( + POSIX_SEMAPHORE_MAGIC != HEAP_BEGIN_PROTECTOR_0, + POSIX_SEMAPHORE_MAGIC_0 +); +RTEMS_STATIC_ASSERT( + POSIX_SEMAPHORE_MAGIC != HEAP_BEGIN_PROTECTOR_1, + POSIX_SEMAPHORE_MAGIC_1 +); +RTEMS_STATIC_ASSERT( + POSIX_SEMAPHORE_MAGIC != HEAP_END_PROTECTOR_0, + POSIX_SEMAPHORE_MAGIC_2 +); +RTEMS_STATIC_ASSERT( + POSIX_SEMAPHORE_MAGIC != HEAP_END_PROTECTOR_1, + POSIX_SEMAPHORE_MAGIC_3 +); +RTEMS_STATIC_ASSERT( + POSIX_SEMAPHORE_MAGIC != HEAP_FREE_PATTERN, + POSIX_SEMAPHORE_MAGIC_4 +); +#endif void _POSIX_Fatal_error( POSIX_Fatal_domain domain, int eno ) { -- cgit v1.2.3