summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi/include/confdefs.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-07-30 18:44:46 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-07-30 18:44:46 +0000
commita46e6b6d912c049343870288b566d94e94f00ee1 (patch)
tree8885ae909cf6358b021650bc7dc2c4089bd916f2 /cpukit/sapi/include/confdefs.h
parent2010-07-30 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-a46e6b6d912c049343870288b566d94e94f00ee1.tar.bz2
2010-07-30 Vinu Rajashekhar <vinutheraj@gmail.com>
* sapi/include/confdefs.h: Add configuration macros for Go requirements.
Diffstat (limited to 'cpukit/sapi/include/confdefs.h')
-rw-r--r--cpukit/sapi/include/confdefs.h67
1 files changed, 56 insertions, 11 deletions
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