From a46e6b6d912c049343870288b566d94e94f00ee1 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 30 Jul 2010 18:44:46 +0000 Subject: 2010-07-30 Vinu Rajashekhar * sapi/include/confdefs.h: Add configuration macros for Go requirements. --- cpukit/sapi/include/confdefs.h | 67 +++++++++++++++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 11 deletions(-) (limited to 'cpukit/sapi/include/confdefs.h') diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h index 238eebdf1c..26d44a6011 100644 --- a/cpukit/sapi/include/confdefs.h +++ b/cpukit/sapi/include/confdefs.h @@ -1463,9 +1463,11 @@ rtems_fs_init_functions_t rtems_fs_init_helper = #endif #define CONFIGURE_MEMORY_FOR_POSIX \ - ( CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES ) + \ + ( CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES + \ + CONFIGURE_MAXIMUM_GO_CHANNELS + CONFIGURE_GO_INIT_MUTEXES) + \ CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES( \ - CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ) + \ + CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES + \ + CONFIGURE_MAXIMUM_GO_CHANNELS + CONFIGURE_GO_INIT_CONDITION_VARIABLES) + \ CONFIGURE_MEMORY_FOR_POSIX_KEYS( CONFIGURE_MAXIMUM_POSIX_KEYS ) + \ CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS( \ CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ) + \ @@ -1537,6 +1539,39 @@ rtems_fs_init_functions_t rtems_fs_init_helper = #define CONFIGURE_ADA_TASKS_STACK 0 #endif +#ifdef CONFIGURE_ENABLE_GO + + #ifndef CONFIGURE_MAXIMUM_POSIX_THREADS + #define CONFIGURE_MAXIMUM_POSIX_THREADS 1 + #endif + #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 + #endif + + #define CONFIGURE_GOROUTINES_TASK_VARIABLES \ + (2 * CONFIGURE_MAXIMUM_GOROUTINES) + + #ifndef CONFIGURE_MAXIMUM_GO_CHANNELS + #define CONFIGURE_MAXIMUM_GO_CHANNELS 500 + #endif + +#else + #define CONFIGURE_GO_INIT_MUTEXES 0 + #define CONFIGURE_GO_INIT_CONDITION_VARIABLES 0 + #define CONFIGURE_MAXIMUM_GOROUTINES 0 + #define CONFIGURE_GOROUTINES_TASK_VARIABLES 0 + #define CONFIGURE_MAXIMUM_GO_CHANNELS 0 +#endif /** * This macro specifies the amount of memory to be reserved for the * Newlib C Library reentrancy structure -- if we are using newlib. @@ -1736,7 +1771,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper = */ #define CONFIGURE_TOTAL_TASKS_AND_THREADS \ (CONFIGURE_MAXIMUM_TASKS + \ - CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS) + CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS + \ + CONFIGURE_MAXIMUM_GOROUTINES) /** * This macro reserves the memory required by the statically configured @@ -1754,7 +1790,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper = * Classic API as configured. */ #define CONFIGURE_MEMORY_FOR_CLASSIC \ - (CONFIGURE_MEMORY_FOR_TASK_VARIABLES(CONFIGURE_MAXIMUM_TASK_VARIABLES) + \ + (CONFIGURE_MEMORY_FOR_TASK_VARIABLES(CONFIGURE_MAXIMUM_TASK_VARIABLES + \ + CONFIGURE_GOROUTINES_TASK_VARIABLES) + \ CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS + \ CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER ) + \ CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_SEMAPHORES) + \ @@ -1836,7 +1873,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper = /* Classic API Pieces */ CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS, 0), - CONFIGURE_MEMORY_FOR_TASK_VARIABLES(CONFIGURE_MAXIMUM_TASK_VARIABLES), + CONFIGURE_MEMORY_FOR_TASK_VARIABLES(CONFIGURE_MAXIMUM_TASK_VARIABLES + + CONFIGURE_GOROUTINES_TASK_VARIABLES), CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS), CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_SEMAPHORES), CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES), @@ -1849,9 +1887,11 @@ rtems_fs_init_functions_t rtems_fs_init_helper = #ifdef RTEMS_POSIX_API /* POSIX API Pieces */ - CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES ), + CONFIGURE_MEMORY_FOR_POSIX_MUTEXES( CONFIGURE_MAXIMUM_POSIX_MUTEXES + + CONFIGURE_MAXIMUM_GO_CHANNELS + CONFIGURE_GO_INIT_MUTEXES), CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES( - CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ), + CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES + + CONFIGURE_MAXIMUM_GO_CHANNELS + CONFIGURE_GO_INIT_CONDITION_VARIABLES), CONFIGURE_MEMORY_FOR_POSIX_KEYS( CONFIGURE_MAXIMUM_POSIX_KEYS ), CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS( CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ), @@ -1878,6 +1918,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper = CONFIGURE_MEMORY_FOR_CLASSIC + \ CONFIGURE_MEMORY_FOR_POSIX + \ (CONFIGURE_MAXIMUM_POSIX_THREADS * CONFIGURE_MINIMUM_TASK_STACK_SIZE ) + \ + (CONFIGURE_MAXIMUM_GOROUTINES * CONFIGURE_MINIMUM_TASK_STACK_SIZE ) + \ CONFIGURE_INITIALIZATION_THREADS_STACKS + \ CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS + \ CONFIGURE_MEMORY_FOR_MP + \ @@ -1911,11 +1952,14 @@ rtems_fs_init_functions_t rtems_fs_init_helper = * This is the POSIX API Configuration Table. */ posix_api_configuration_table Configuration_POSIX_API = { - CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS, + CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_ADA_TASKS + + CONFIGURE_MAXIMUM_GOROUTINES, CONFIGURE_MAXIMUM_POSIX_MUTEXES + CONFIGURE_GNAT_MUTEXES + - CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS, + CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS + + CONFIGURE_GO_INIT_MUTEXES + CONFIGURE_MAXIMUM_GO_CHANNELS, CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES + - CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS, + CONFIGURE_MAXIMUM_ADA_TASKS + CONFIGURE_MAXIMUM_FAKE_ADA_TASKS + + CONFIGURE_GO_INIT_CONDITION_VARIABLES + CONFIGURE_MAXIMUM_GO_CHANNELS, CONFIGURE_MAXIMUM_POSIX_KEYS, CONFIGURE_MAXIMUM_POSIX_TIMERS, CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS, @@ -2035,7 +2079,8 @@ rtems_fs_init_functions_t rtems_fs_init_helper = #if !defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) #if (CONFIGURE_MAXIMUM_TASKS == 0) && \ (CONFIGURE_MAXIMUM_POSIX_THREADS == 0) && \ - (CONFIGURE_MAXIMUM_ADA_TASKS == 0) + (CONFIGURE_MAXIMUM_ADA_TASKS == 0) && \ + (CONFIGURE_MAXIMUM_GOROUTINES == 0) #error "CONFIGURATION ERROR: No tasks or threads configured!!" #endif #endif -- cgit v1.2.3