diff options
Diffstat (limited to 'cpukit/sapi')
-rwxr-xr-x | cpukit/sapi/include/confdefs.h | 63 | ||||
-rw-r--r-- | cpukit/sapi/src/posixapi.c | 33 |
2 files changed, 33 insertions, 63 deletions
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h index 596c3420b0..402a467762 100755 --- a/cpukit/sapi/include/confdefs.h +++ b/cpukit/sapi/include/confdefs.h @@ -1841,14 +1841,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; * o bdbuf sync lock */ #define _CONFIGURE_LIBBLOCK_POSIX_MUTEXES 2 - - /* - * POSIX Condition Variables: - * o bdbuf access condition - * o bdbuf transfer condition - * o bdbuf buffer condition - */ - #define _CONFIGURE_LIBBLOCK_POSIX_CONDITION_VARIABLES 3 #else /* * Semaphores: @@ -1862,7 +1854,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #define _CONFIGURE_LIBBLOCK_SEMAPHORES 6 #define _CONFIGURE_LIBBLOCK_POSIX_MUTEXES 0 - #define _CONFIGURE_LIBBLOCK_POSIX_CONDITION_VARIABLES 0 #endif #if defined(CONFIGURE_HAS_OWN_BDBUF_TABLE) || \ @@ -1879,11 +1870,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #define _CONFIGURE_LIBBLOCK_SEMAPHORES 0 /** This specifies the number of POSIX Mutexes needed by libblock. */ #define _CONFIGURE_LIBBLOCK_POSIX_MUTEXES 0 - /** - * This specifies the number of POSIX Condition Variables needed - * by libblock. - */ - #define _CONFIGURE_LIBBLOCK_POSIX_CONDITION_VARIABLES 0 #endif /* CONFIGURE_APPLICATION_NEEDS_LIBBLOCK */ /**@}*/ @@ -2059,10 +2045,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #define CONFIGURE_MAXIMUM_POSIX_MUTEXES \ rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE) #endif - #if !defined(CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES) - #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES \ - rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE) - #endif #if !defined(CONFIGURE_MAXIMUM_POSIX_TIMERS) #define CONFIGURE_MAXIMUM_POSIX_TIMERS \ rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE) @@ -2440,7 +2422,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #include <signal.h> #include <limits.h> #include <mqueue.h> - #include <rtems/posix/cond.h> #include <rtems/posix/mqueue.h> #include <rtems/posix/mutex.h> #include <rtems/posix/psignal.h> @@ -2484,22 +2465,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; /** * This configuration parameter specifies the maximum number of - * POSIX API condition variables. - */ - #ifndef CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES - #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 0 - #endif - - /* - * This macro is calculated to specify the memory required for - * POSIX API condition variables. - */ - #define _CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES(_condvars) \ - _Configure_Object_RAM(_condvars, \ - sizeof(POSIX_Condition_variables_Control) ) - - /** - * This configuration parameter specifies the maximum number of * POSIX API timers. */ #ifndef CONFIGURE_MAXIMUM_POSIX_TIMERS @@ -2712,12 +2677,8 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #ifndef CONFIGURE_MAXIMUM_POSIX_MUTEXES #define CONFIGURE_MAXIMUM_POSIX_MUTEXES 1 #endif - #ifndef CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES - #define CONFIGURE_MAXIMUM_CONDITION_VARIABLES 1 - #endif #define _CONFIGURE_GO_INIT_MUTEXES 77 - #define _CONFIGURE_GO_INIT_CONDITION_VARIABLES 4 #ifndef CONFIGURE_MAXIMUM_GOROUTINES #define CONFIGURE_MAXIMUM_GOROUTINES 400 @@ -2734,12 +2695,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; */ #define _CONFIGURE_GO_INIT_MUTEXES 0 - /* - * This specifies the number of condition variables required by the Go - * run-time for its own use. - */ - #define _CONFIGURE_GO_INIT_CONDITION_VARIABLES 0 - /** This specifies the maximum number of Go co-routines. */ #define CONFIGURE_MAXIMUM_GOROUTINES 0 @@ -2778,24 +2733,11 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; CONFIGURE_MAXIMUM_GO_CHANNELS) /* - * This macro provides summation of the POSIX Condition Variables. - */ - #define _CONFIGURE_POSIX_CONDITION_VARIABLES \ - (CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES + \ - _CONFIGURE_LIBBLOCK_POSIX_CONDITION_VARIABLES + \ - CONFIGURE_MAXIMUM_ADA_TASKS + \ - CONFIGURE_MAXIMUM_FAKE_ADA_TASKS + \ - _CONFIGURE_GO_INIT_CONDITION_VARIABLES + \ - CONFIGURE_MAXIMUM_GO_CHANNELS) - - /* * This macro is calculated to specify the memory required for * the POSIX API in its entirety. */ #define _CONFIGURE_MEMORY_FOR_POSIX \ (_CONFIGURE_MEMORY_FOR_POSIX_MUTEXES(_CONFIGURE_POSIX_MUTEXES) + \ - _CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES( \ - _CONFIGURE_POSIX_CONDITION_VARIABLES) + \ _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS( \ CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS) + \ _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES( \ @@ -3248,7 +3190,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; posix_api_configuration_table Configuration_POSIX_API = { _CONFIGURE_POSIX_THREADS, _CONFIGURE_POSIX_MUTEXES, - _CONFIGURE_POSIX_CONDITION_VARIABLES, CONFIGURE_MAXIMUM_POSIX_TIMERS, CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS, CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES, @@ -3462,7 +3403,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #ifdef RTEMS_POSIX_API /* POSIX API Pieces */ uint32_t POSIX_MUTEXES; - uint32_t POSIX_CONDITION_VARIABLES; uint32_t POSIX_TIMERS; uint32_t POSIX_QUEUED_SIGNALS; uint32_t POSIX_MESSAGE_QUEUES; @@ -3512,8 +3452,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #ifdef RTEMS_POSIX_API /* POSIX API Pieces */ _CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( _CONFIGURE_POSIX_MUTEXES ), - _CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES( - _CONFIGURE_POSIX_CONDITION_VARIABLES ), _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS( CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ), _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES( @@ -3584,7 +3522,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #if !defined(RTEMS_POSIX_API) #if ((CONFIGURE_MAXIMUM_POSIX_THREADS != 0) || \ (CONFIGURE_MAXIMUM_POSIX_MUTEXES != 0) || \ - (CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES != 0) || \ (CONFIGURE_MAXIMUM_POSIX_TIMERS != 0) || \ (CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS != 0) || \ (CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES != 0) || \ diff --git a/cpukit/sapi/src/posixapi.c b/cpukit/sapi/src/posixapi.c index 41325bb07a..86fdf12a38 100644 --- a/cpukit/sapi/src/posixapi.c +++ b/cpukit/sapi/src/posixapi.c @@ -21,6 +21,7 @@ #include <rtems/posix/posixapi.h> #include <rtems/posix/barrierimpl.h> +#include <rtems/posix/condimpl.h> #include <rtems/posix/rwlockimpl.h> #include <rtems/posix/semaphoreimpl.h> #include <rtems/score/heap.h> @@ -86,6 +87,26 @@ RTEMS_STATIC_ASSERT( POSIX_RWLOCK_MAGIC != HEAP_FREE_PATTERN, POSIX_RWLOCK_MAGIC_4 ); +RTEMS_STATIC_ASSERT( + POSIX_CONDITION_VARIABLES_MAGIC != HEAP_BEGIN_PROTECTOR_0, + POSIX_CONDITION_VARIABLES_MAGIC_0 +); +RTEMS_STATIC_ASSERT( + POSIX_CONDITION_VARIABLES_MAGIC != HEAP_BEGIN_PROTECTOR_1, + POSIX_CONDITION_VARIABLES_MAGIC_1 +); +RTEMS_STATIC_ASSERT( + POSIX_CONDITION_VARIABLES_MAGIC != HEAP_END_PROTECTOR_0, + POSIX_CONDITION_VARIABLES_MAGIC_2 +); +RTEMS_STATIC_ASSERT( + POSIX_CONDITION_VARIABLES_MAGIC != HEAP_END_PROTECTOR_1, + POSIX_CONDITION_VARIABLES_MAGIC_3 +); +RTEMS_STATIC_ASSERT( + POSIX_CONDITION_VARIABLES_MAGIC != HEAP_FREE_PATTERN, + POSIX_CONDITION_VARIABLES_MAGIC_4 +); #endif RTEMS_STATIC_ASSERT( @@ -97,9 +118,21 @@ RTEMS_STATIC_ASSERT( POSIX_SEMAPHORE_MAGIC_6 ); RTEMS_STATIC_ASSERT( + POSIX_SEMAPHORE_MAGIC != POSIX_CONDITION_VARIABLES_MAGIC, + POSIX_SEMAPHORE_MAGIC_7 +); +RTEMS_STATIC_ASSERT( POSIX_BARRIER_MAGIC != POSIX_RWLOCK_MAGIC, POSIX_BARRIER_MAGIC_5 ); +RTEMS_STATIC_ASSERT( + POSIX_BARRIER_MAGIC != POSIX_CONDITION_VARIABLES_MAGIC, + POSIX_BARRIER_MAGIC_6 +); +RTEMS_STATIC_ASSERT( + POSIX_RWLOCK_MAGIC != POSIX_CONDITION_VARIABLES_MAGIC, + POSIX_RWLOCK_MAGIC_5 +); void _POSIX_Fatal_error( POSIX_Fatal_domain domain, int eno ) { |