2010-07-30 Vinu Rajashekhar <vinutheraj@gmail.com>

* sapi/include/confdefs.h: Add configuration macros for Go
	requirements.
This commit is contained in:
Joel Sherrill
2010-07-30 18:44:46 +00:00
parent 49fb1c5033
commit a46e6b6d91
2 changed files with 61 additions and 11 deletions

View File

@@ -1,3 +1,8 @@
2010-07-30 Vinu Rajashekhar <vinutheraj@gmail.com>
* sapi/include/confdefs.h: Add configuration macros for Go
requirements.
2010-07-29 Bharath Suri <bharath.s.jois@gmail.com>
PR 1620/cpukit

View File

@@ -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