summaryrefslogtreecommitdiffstats
path: root/c/src/exec/sapi/headers/confdefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/exec/sapi/headers/confdefs.h')
-rw-r--r--c/src/exec/sapi/headers/confdefs.h485
1 files changed, 485 insertions, 0 deletions
diff --git a/c/src/exec/sapi/headers/confdefs.h b/c/src/exec/sapi/headers/confdefs.h
new file mode 100644
index 0000000000..ab08adb4b5
--- /dev/null
+++ b/c/src/exec/sapi/headers/confdefs.h
@@ -0,0 +1,485 @@
+/* confdefs.h
+ *
+ * This include file contains the configuration table template that will
+ * be used by the single processor tests to define its default configuration
+ * parameters.
+ *
+ * COPYRIGHT (c) 1989-1997.
+ * On-Line Applications Research Corporation (OAR).
+ * Copyright assigned to U.S. Government, 1994.
+ *
+ * The license and distribution terms for this file may in
+ * the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ * $Id$
+ */
+
+#ifndef __CONFIGURATION_TEMPLATE_h
+#define __CONFIGURATION_TEMPLATE_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern rtems_initialization_tasks_table Initialization_tasks[];
+extern rtems_driver_address_table Device_drivers[];
+extern rtems_configuration_table Configuration;
+extern rtems_multiprocessing_table Multiprocessing_configuration;
+#ifdef RTEMS_POSIX_API
+extern posix_api_configuration_table Configuration_POSIX_API;
+#endif
+
+/*
+ * Default User Initialization Task Table. This table guarantees that
+ * one user initialization table is defined.
+ */
+
+#ifdef CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#ifdef CONFIGURE_HAS_OWN_INIT_TASK_TABLE
+
+/*
+ * The user is defining their own table information and setting the
+ * appropriate variables.
+ */
+
+#else
+
+#ifndef CONFIGURE_INIT_TASK_NAME
+#define CONFIGURE_INIT_TASK_NAME rtems_build_name( 'U', 'I', '1', ' ' )
+#endif
+
+#ifndef CONFIGURE_INIT_TASK_STACK_SIZE
+#define CONFIGURE_INIT_TASK_STACK_SIZE RTEMS_MINIMUM_STACK_SIZE
+#endif
+
+#ifndef CONFIGURE_INIT_TASK_PRIORITY
+#define CONFIGURE_INIT_TASK_PRIORITY 1
+#endif
+
+#ifndef CONFIGURE_INIT_TASK_ATTRIBUTES
+#define CONFIGURE_INIT_TASK_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES
+#endif
+
+#ifndef CONFIGURE_INIT_TASK_ENTRY_POINT
+#define CONFIGURE_INIT_TASK_ENTRY_POINT Init
+#endif
+
+#ifndef CONFIGURE_INIT_TASK_INITIAL_MODES
+#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_NO_PREEMPT
+#endif
+
+#ifndef CONFIGURE_INIT_TASK_ARGUMENTS
+#define CONFIGURE_INIT_TASK_ARGUMENTS 0
+#endif
+
+#ifdef CONFIGURE_INIT
+rtems_initialization_tasks_table Initialization_tasks[] = {
+ { CONFIGURE_INIT_TASK_NAME,
+ CONFIGURE_INIT_TASK_STACK_SIZE,
+ CONFIGURE_INIT_TASK_PRIORITY,
+ CONFIGURE_INIT_TASK_ATTRIBUTES,
+ CONFIGURE_INIT_TASK_ENTRY_POINT,
+ CONFIGURE_INIT_TASK_INITIAL_MODES,
+ CONFIGURE_INIT_TASK_ARGUMENTS
+ }
+};
+#endif
+
+#define CONFIGURE_INIT_TASK_TABLE Initialization_tasks
+
+#define CONFIGURE_INIT_TASK_TABLE_SIZE \
+ sizeof(CONFIGURE_INIT_TASK_TABLE) / sizeof(rtems_initialization_tasks_table)
+
+#endif /* CONFIGURE_HAS_OWN_INIT_TASK_TABLE */
+
+#else /* CONFIGURE_RTEMS_INIT_TASKS_TABLE */
+
+#define CONFIGURE_INIT_TASK_TABLE NULL
+#define CONFIGURE_INIT_TASK_TABLE_SIZE 0
+
+#endif
+
+/*
+ * Default Device Driver Table. Each driver needed by the test is explicitly
+ * choosen by that test. There is always a null driver entry.
+ */
+
+#define NULL_DRIVER_TABLE_ENTRY \
+ { NULL, NULL, NULL, NULL, NULL, NULL }
+
+#ifdef CONFIGURE_TEST_NEEDS_TIMER_DRIVER
+#include <timerdrv.h>
+#endif
+
+#ifdef CONFIGURE_TEST_NEEDS_STUB_DRIVER
+#include <stubdrv.h>
+#endif
+
+#ifndef CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
+
+#ifdef CONFIGURE_INIT
+rtems_driver_address_table Device_drivers[] = {
+#ifdef CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
+ CONSOLE_DRIVER_TABLE_ENTRY,
+#endif
+#ifdef CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
+ CLOCK_DRIVER_TABLE_ENTRY,
+#endif
+#ifdef CONFIGURE_TEST_NEEDS_STUB_DRIVER
+ STUB_DRIVER_TABLE_ENTRY,
+#endif
+ NULL_DRIVER_TABLE_ENTRY
+};
+#endif
+
+#endif /* CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE */
+
+/*
+ * Default the number of devices per device driver. This value may be
+ * overridden by the user.
+ */
+
+#ifndef CONFIGURE_HAS_OWN_NUMBER_OF_DEVICES
+
+#ifndef CONFIGURE_MAXIMUM_DEVICES
+#define CONFIGURE_MAXIMUM_DEVICES 20
+#endif
+
+#endif /* CONFIGURE_HAS_OWN_NUMBER_OF_DEVICES */
+
+/*
+ * Default Configuration Table. This table contains the most values set in
+ * the RTEMS Test Suite. Each value may be overridden within each test to
+ * customize the environment.
+ */
+
+#ifdef CONFIGURE_MPTEST
+#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE
+
+#ifndef CONFIGURE_MP_NODE_NUMBER
+#define CONFIGURE_MP_NODE_NUMBER NODE_NUMBER
+#endif
+
+#ifndef CONFIGURE_MP_MAXIMUM_NODES
+#define CONFIGURE_MP_MAXIMUM_NODES 2
+#endif
+
+#ifndef CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+#define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS 32
+#endif
+
+#ifndef CONFIGURE_MP_MAXIMUM_PROXIES
+#define CONFIGURE_MP_MAXIMUM_PROXIES 32
+#endif
+
+#ifndef CONFIGURE_MP_MPCI_TABLE_POINTER
+#include <mpci.h>
+#define CONFIGURE_MP_MPCI_TABLE_POINTER &MPCI_table
+#endif
+
+#ifdef CONFIGURE_INIT
+rtems_multiprocessing_table Multiprocessing_configuration = {
+ CONFIGURE_MP_NODE_NUMBER, /* local node number */
+ CONFIGURE_MP_MAXIMUM_NODES, /* maximum # nodes in system */
+ CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS, /* maximum # global objects */
+ CONFIGURE_MP_MAXIMUM_PROXIES, /* maximum # proxies */
+ CONFIGURE_MP_MPCI_TABLE_POINTER /* pointer to MPCI config table */
+};
+#endif
+
+#define CONFIGURE_MULTIPROCESSING_TABLE &Multiprocessing_configuration
+
+#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */
+
+#else
+
+#define CONFIGURE_MULTIPROCESSING_TABLE NULL
+
+#endif /* CONFIGURE_MPTEST */
+
+/*
+ * Default Configuration Table. This table contains the most values set in
+ * the RTEMS Test Suite. Each value may be overridden within each test to
+ * customize the environment.
+ */
+
+#ifndef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
+
+#ifndef CONFIGURE_EXECUTIVE_RAM_WORK_AREA
+#define CONFIGURE_EXECUTIVE_RAM_WORK_AREA NULL
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_TASKS
+#define CONFIGURE_MAXIMUM_TASKS 10
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_TIMERS
+#define CONFIGURE_MAXIMUM_TIMERS 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_SEMAPHORES
+#define CONFIGURE_MAXIMUM_SEMAPHORES 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_PARTITIONS
+#define CONFIGURE_MAXIMUM_PARTITIONS 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_REGIONS
+#define CONFIGURE_MAXIMUM_REGIONS 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_PORTS
+#define CONFIGURE_MAXIMUM_PORTS 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_PERIODS
+#define CONFIGURE_MAXIMUM_PERIODS 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS
+#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 0
+#endif
+
+#ifndef CONFIGURE_MICROSECONDS_PER_TICK
+#define CONFIGURE_MICROSECONDS_PER_TICK RTEMS_MILLISECONDS_TO_MICROSECONDS(10)
+#endif
+
+#ifndef CONFIGURE_TICKS_PER_TIMESLICE
+#define CONFIGURE_TICKS_PER_TIMESLICE 50
+#endif
+
+#ifndef CONFIGURE_INITIAL_EXTENSIONS
+#define CONFIGURE_INITIAL_EXTENSIONS NULL
+#endif
+
+/*
+ * POSIX API Configuration Parameters
+ */
+
+#ifdef RTEMS_POSIX_API
+
+#ifndef CONFIGURE_MAXIMUM_POSIX_THREADS
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 10
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_POSIX_MUTEXES
+#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
+#define CONFIGURE_MAXIMUM_POSIX_KEYS 0
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
+#define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 0
+#endif
+
+#ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#ifdef CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
+
+/*
+ * The user is defining their own table information and setting the
+ * appropriate variables.
+ */
+
+#else
+
+#ifndef CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
+#define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT POSIX_Init
+#endif
+
+#ifdef CONFIGURE_INIT
+posix_initialization_threads_table POSIX_Initialization_threads[] = {
+ { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT }
+};
+#endif
+
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME POSIX_Initialization_threads
+
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE \
+ sizeof(CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME) / \
+ sizeof(posix_initialization_threads_table)
+
+#endif /* CONFIGURE_POSIX_HAS_OWN_INIT_TASK_TABLE */
+
+#else /* CONFIGURE_POSIX_INIT_THREAD_TABLE */
+
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME NULL
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE 0
+
+#endif
+
+#endif /* RTEMS_POSIX_API */
+
+/*
+ * Calculate the RAM size based on the maximum number of objects configured.
+ * The model is to estimate the memory required for each configured item,
+ * sum the memory requirements and insure that there is at least 32K greater
+ * than that for things not directly addressed such as:
+ *
+ * + stacks greater than minimum size
+ * + FP contexts
+ * + API areas (should be optional)
+ * + messages
+ * + object name and local pointer table overhead
+ * + per node memory requirements
+ * + executive fixed requirements (including at least internal threads
+ * and the Ready chains)
+ *
+ * NOTE: Eventually this should take into account some of the above.
+ * Basically, this is a "back of the envelope" estimate for
+ * memory requirements. It could be more accurate.
+ */
+
+#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE
+
+#define CONFIGURE_OBJECT_TABLE_STUFF \
+ ( sizeof(Objects_Control *) + sizeof(rtems_name *) + sizeof(rtems_name) )
+
+#define CONFIGURE_MEMORY_FOR_TASKS(_tasks) \
+ ((_tasks) * \
+ ((sizeof(Thread_Control) + CONTEXT_FP_SIZE + \
+ STACK_MINIMUM_SIZE + sizeof( RTEMS_API_Control ) + \
+ CONFIGURE_OBJECT_TABLE_STUFF)) \
+ )
+
+#define CONFIGURE_MEMORY_FOR_TIMERS(_timers) \
+ ((_timers) * ( sizeof(Timer_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \
+ ((_semaphores) * \
+ ( sizeof(Semaphore_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \
+ ( (_queues) * \
+ ( sizeof(Message_queue_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \
+ ( (_partitions) * \
+ ( sizeof(Partition_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_REGIONS(_regions) \
+ ( (_regions) * \
+ ( sizeof(Region_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_PORTS(_ports) \
+ ( (_ports) * \
+ ( sizeof(Dual_ported_memory_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_PERIODS(_periods) \
+ ( (_periods) * \
+ ( sizeof(Rate_monotonic_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \
+ ( (_extensions) * \
+ ( sizeof(Extension_Control) + CONFIGURE_OBJECT_TABLE_STUFF ) )
+
+#define CONFIGURE_MEMORY_FOR_DEVICES(_devices) \
+ (((_devices) + 1) * ( sizeof(rtems_driver_name_t) ) )
+
+#ifdef CONFIGURE_MPTEST
+
+#ifndef CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE
+
+#define CONFIGURE_MEMORY_FOR_PROXIES(_proxies) \
+ ( ((_proxies) + 1) * ( sizeof(Thread_Proxy_control) ) )
+
+#define CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \
+ ((_global_objects) * ( sizeof(Objects_MP_Control) ) )
+
+#define CONFIGURE_MEMORY_FOR_MP \
+ ( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \
+ CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) \
+ )
+
+#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */
+
+#else
+
+#define CONFIGURE_MEMORY_FOR_MP 0
+
+#endif
+#define CONFIGURE_EXECUTIVE_RAM_SIZE \
+(( CONFIGURE_MEMORY_FOR_TASKS(CONFIGURE_MAXIMUM_TASKS) + \
+ CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS) + \
+ CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_MAXIMUM_SEMAPHORES) + \
+ CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(CONFIGURE_MAXIMUM_MESSAGE_QUEUES) + \
+ CONFIGURE_MEMORY_FOR_PARTITIONS(CONFIGURE_MAXIMUM_PARTITIONS) + \
+ CONFIGURE_MEMORY_FOR_REGIONS(CONFIGURE_MAXIMUM_REGIONS) + \
+ CONFIGURE_MEMORY_FOR_PORTS(CONFIGURE_MAXIMUM_PORTS) + \
+ CONFIGURE_MEMORY_FOR_PERIODS(CONFIGURE_MAXIMUM_PERIODS) + \
+ CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(CONFIGURE_MAXIMUM_USER_EXTENSIONS) + \
+ CONFIGURE_MEMORY_FOR_DEVICES(CONFIGURE_MAXIMUM_DEVICES) + \
+ CONFIGURE_MEMORY_FOR_MP + \
+ (96*1024) \
+) & 0xffff8000)
+#endif
+
+#ifdef CONFIGURE_INIT
+
+rtems_api_configuration_table Configuration_RTEMS_API = {
+ CONFIGURE_MAXIMUM_TASKS,
+ CONFIGURE_MAXIMUM_TIMERS,
+ CONFIGURE_MAXIMUM_SEMAPHORES,
+ CONFIGURE_MAXIMUM_MESSAGE_QUEUES,
+ CONFIGURE_MAXIMUM_PARTITIONS,
+ CONFIGURE_MAXIMUM_REGIONS,
+ CONFIGURE_MAXIMUM_PORTS,
+ CONFIGURE_MAXIMUM_PERIODS,
+ CONFIGURE_INIT_TASK_TABLE_SIZE,
+ CONFIGURE_INIT_TASK_TABLE
+};
+
+#ifdef RTEMS_POSIX_API
+posix_api_configuration_table Configuration_POSIX_API = {
+ CONFIGURE_MAXIMUM_POSIX_THREADS,
+ CONFIGURE_MAXIMUM_POSIX_MUTEXES,
+ CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES,
+ CONFIGURE_MAXIMUM_POSIX_KEYS,
+ CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS,
+ CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE,
+ CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME
+};
+#endif
+
+rtems_configuration_table Configuration = {
+ CONFIGURE_EXECUTIVE_RAM_WORK_AREA,
+ CONFIGURE_EXECUTIVE_RAM_SIZE,
+ CONFIGURE_MAXIMUM_USER_EXTENSIONS,
+ CONFIGURE_MICROSECONDS_PER_TICK,
+ CONFIGURE_TICKS_PER_TIMESLICE,
+ CONFIGURE_MAXIMUM_DEVICES,
+ sizeof (Device_drivers)/
+ sizeof(rtems_driver_address_table), /* number of device drivers */
+ Device_drivers, /* pointer to driver table */
+ CONFIGURE_INITIAL_EXTENSIONS, /* pointer to initial extensions */
+ CONFIGURE_MULTIPROCESSING_TABLE, /* pointer to MP config table */
+ &Configuration_RTEMS_API, /* pointer to RTEMS API config */
+#ifdef RTEMS_POSIX_API
+ &Configuration_POSIX_API /* pointer to POSIX API config */
+#else
+ NULL /* pointer to POSIX API config */
+#endif
+};
+#endif
+
+#endif /* CONFIGURE_HAS_OWN_CONFIGURATION_TABLE */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */