RTEMS CPU Kit with SuperCore  4.11.3
Macros | Variables
confdefs.h File Reference

Configuration Table Template that will be Instantiated by an Application. More...

#include <rtems.h>
#include <rtems/score/apimutex.h>
#include <rtems/score/percpu.h>
#include <rtems/score/wkspace.h>
#include <bsp.h>
#include <rtems/libio_.h>
#include <rtems/imfs.h>
#include <rtems/scheduler.h>
#include <rtems/malloc.h>
#include <rtems/posix/key.h>
Include dependency graph for confdefs.h:

Go to the source code of this file.

Macros

#define CONFIGURE_NEWLIB_EXTENSION   0
 This macro determines whether the RTEMS reentrancy support for the Newlib C Library is enabled.
 
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS   3
 This macro defines the number of POSIX file descriptors allocated and managed by libio. More...
 
#define CONFIGURE_LIBIO_SEMAPHORES   1
 Semaphore count used by the IO library.
 
#define CONFIGURE_LIBIO_POSIX_KEYS   1
 POSIX key count used by the IO library.
 
#define CONFIGURE_DRVMGR_SEMAPHORES   0
 Driver Manager Configuration.
 
#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS   1
 This macro determines if termios is disabled by this application. More...
 
#define CONFIGURE_TERMIOS_SEMAPHORES   ((CONFIGURE_NUMBER_OF_TERMIOS_PORTS * 4) + 1)
 This macro reserves the number of semaphores required by termios based upon the number of communication ports that will use it.
 
#define CONFIGURE_MAXIMUM_PTYS   0
 This macro specifies the number of PTYs that can be concurrently active.
 
#define CONFIGURE_MAXIMUM_FIFOS   0
 This is specified to configure the maximum number of POSIX FIFOs.
 
#define CONFIGURE_MAXIMUM_PIPES   0
 This is specified to configure the maximum number of POSIX named pipes.
 
#define CONFIGURE_BARRIERS_FOR_FIFOS   0
 This specifies the number of barriers required for the configured number of FIFOs and named pipes. More...
 
#define CONFIGURE_SEMAPHORES_FOR_FIFOS   0
 This specifies the number of semaphores required for the configured number of FIFOs and named pipes. More...
 
#define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK   IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK
 IMFS. More...
 
#define CONFIGURE_SEMAPHORES_FOR_NFS   0
 This defines the IMFS file system table entry. More...
 
#define CONFIGURE_SEMAPHORES_FOR_DOSFS   0
 DOSFS.
 
#define CONFIGURE_SEMAPHORES_FOR_RFS   0
 RFS.
 
#define CONFIGURE_SEMAPHORES_FOR_JFFS2   0
 JFFS2.
 
#define CONFIGURE_SEMAPHORES_FOR_FILE_SYSTEMS
 This computes the number of semaphores required for the various file systems including the FIFO plugin to the IMFS. More...
 
#define CONFIGURE_STACK_CHECKER_EXTENSION   0
 This configures the stack checker user extension.
 
#define CONFIGURE_MAXIMUM_PRIORITY   PRIORITY_DEFAULT_MAXIMUM
 Maximum priority configuration. More...
 
#define CONFIGURE_SCHEDULER_PRIORITY
 If no scheduler is specified in a uniprocessor configuration, the priority scheduler is default.
 
#define CONFIGURE_SCHEDULER_NAME   rtems_build_name('U', 'P', 'D', ' ')
 Configure the name of the scheduler instance.
 
#define CONFIGURE_SCHEDULER_CONTEXT
 Configure the context needed by the scheduler instance. More...
 
#define CONFIGURE_SCHEDULER_CONTROLS   RTEMS_SCHEDULER_CONTROL_PRIORITY(dflt, CONFIGURE_SCHEDULER_NAME)
 Configure the controls for this scheduler instance.
 
#define CONFIGURE_IDLE_TASK_BODY   _CPU_Thread_Idle_body
 Idle task body configuration. More...
 
#define CONFIGURE_MINIMUM_TASK_STACK_SIZE   CPU_STACK_MINIMUM_SIZE
 By default, use the minimum stack size requested by this port.
 
#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE   (2 * CONFIGURE_MINIMUM_TASK_STACK_SIZE)
 This specifies the default POSIX thread stack size. More...
 
#define CONFIGURE_IDLE_TASK_STACK_SIZE   CONFIGURE_MINIMUM_TASK_STACK_SIZE
 Idle task stack size configuration. More...
 
#define CONFIGURE_INTERRUPT_STACK_SIZE   CONFIGURE_MINIMUM_TASK_STACK_SIZE
 Interrupt stack size configuration. More...
 
#define CONFIGURE_INTERRUPT_STACK_MEMORY   0
 This reserves memory for the interrupt stack if it is to be allocated by RTEMS rather than the BSP. More...
 
#define CONFIGURE_TASK_STACK_ALLOCATOR_INIT   NULL
 Configure the very much optional task stack allocator initialization.
 
#define CONFIGURE_TASK_STACK_ALLOCATOR   _Workspace_Allocate
 This specifies the task stack allocator method.
 
#define CONFIGURE_TASK_STACK_DEALLOCATOR   _Workspace_Free
 This specifies the task stack deallocator method.
 
#define CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY   FALSE
 Should the RTEMS Workspace and C Program Heap be cleared automatically at system start up?
 
#define _Configure_Zero_or_One(_number)   ((_number) ? 1 : 0)
 Zero of one returns 0 if the parameter is 0 else 1 is returned.
 
#define _Configure_Align_up(_val, _align)   (((_val) + (_align) - 1) & ~((_align) - 1))
 General helper to aligned a value up to a power of two boundary.
 
#define _Configure_From_workspace(_size)
 This is a helper macro used in calculations in this file. More...
 
#define _Configure_From_stackspace(_stack_size)   _Configure_From_workspace(_stack_size)
 This is a helper macro used in stack space calculations in this file. More...
 
#define _Configure_Max_Objects(_max)   (_Configure_Zero_or_One(_max) * rtems_resource_maximum_per_allocation(_max))
 Do not use the unlimited bit as part of the multiplication for memory usage.
 
#define _Configure_Object_RAM(_number, _size)
 This macro accounts for how memory for a set of configured objects is allocated from the Executive Workspace. More...
 
#define CONFIGURE_INIT_TASK_TABLE   NULL
 This is the name of the Initialization Task when none is configured. More...
 
#define CONFIGURE_INIT_TASK_TABLE_SIZE   0
 This is the size of the Initialization Task when none is configured. More...
 
#define CONFIGURE_INIT_TASK_STACK_SIZE   0
 This is the stack size of the Initialization Task when none is configured. More...
 
#define NULL_DRIVER_TABLE_ENTRY   { NULL, NULL, NULL, NULL, NULL, NULL }
 This is an empty device driver slot.
 
#define CONFIGURE_MAXIMUM_DRIVERS
 This specifies the maximum number of device drivers that can be installed in the system at one time. More...
 
#define CONFIGURE_LIBBLOCK_TASKS   0
 This specifies the number of libblock tasks. More...
 
#define CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS   0
 This specifies the extra stack space configured for libblock tasks. More...
 
#define CONFIGURE_LIBBLOCK_SEMAPHORES   0
 This specifies the number of Classic API semaphores needed by libblock. More...
 
#define CONFIGURE_LIBBLOCK_POSIX_MUTEXES   0
 This specifies the number of POSIX Mutexes needed by libblock. More...
 
#define CONFIGURE_LIBBLOCK_POSIX_CONDITION_VARIABLES   0
 This specifies the number of POSIX Condition Variables needed by libblock.
 
#define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK   0
 This defines the extra stack space required for the MPCI server thread.
 
#define CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER   0
 This defines the timers required for the shared memory driver in a multiprocessing configuration.
 
#define CONFIGURE_MAXIMUM_TASKS   0
 This configures the maximum number of Classic API tasks. More...
 
#define CONFIGURE_TASKS   (CONFIGURE_MAXIMUM_TASKS + CONFIGURE_LIBBLOCK_TASKS)
 This is calculated to account for the maximum number of Classic API tasks used by the application and configured RTEMS capabilities. More...
 
#define CONFIGURE_NOTEPADS_ENABLED   FALSE
 This configuration parameter enables/disables Classic API notepads. More...
 
#define CONFIGURE_MAXIMUM_TASK_VARIABLES   0
 This macro calculates the memory required for task variables. More...
 
#define CONFIGURE_MEMORY_FOR_TASK_VARIABLES(_task_variables)   0
 This macro is calculated to specify the memory required for task variables. More...
 
#define CONFIGURE_MAXIMUM_TIMERS   0
 This specifies the maximum number of Classic API timers. More...
 
#define CONFIGURE_MEMORY_FOR_TIMERS(_timers)   0
 This macro is calculated to specify the memory required for Classic API timers. More...
 
#define CONFIGURE_MAXIMUM_SEMAPHORES   0
 This specifies the maximum number of Classic API semaphores. More...
 
#define CONFIGURE_NETWORKING_SEMAPHORES   0
 This specifies the number of Classic API semaphores required. More...
 
#define CONFIGURE_SEMAPHORES
 This macro is calculated to specify the number of Classic API semaphores required by the application and configured RTEMS capabilities. More...
 
#define CONFIGURE_MEMORY_FOR_MRSP_SEMAPHORES   0
 This macro is calculated to specify the memory required for Classic API Semaphores using MRSP. More...
 
#define CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores)
 This macro is calculated to specify the memory required for Classic API Semaphores. More...
 
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES   0
 This configuration parameter specifies the maximum number of Classic API Message Queues.
 
#define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues)   0
 This macro is calculated to specify the RTEMS Workspace required for the Classic API Message Queues. More...
 
#define CONFIGURE_MAXIMUM_PARTITIONS   0
 This configuration parameter specifies the maximum number of Classic API Partitions.
 
#define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions)   0
 This macro is calculated to specify the memory required for Classic API. More...
 
#define CONFIGURE_MAXIMUM_REGIONS   0
 This configuration parameter specifies the maximum number of Classic API Regions.
 
#define CONFIGURE_MEMORY_FOR_REGIONS(_regions)   0
 This macro is calculated to specify the memory required for Classic API Regions. More...
 
#define CONFIGURE_MAXIMUM_PORTS   0
 This configuration parameter specifies the maximum number of Classic API Dual-Ported Memory Ports.
 
#define CONFIGURE_MEMORY_FOR_PORTS(_ports)   0
 This macro is calculated to specify the memory required for Classic API Dual-Ported Memory Ports. More...
 
#define CONFIGURE_MAXIMUM_PERIODS   0
 This configuration parameter specifies the maximum number of Classic API Rate Monotonic Periods.
 
#define CONFIGURE_MEMORY_FOR_PERIODS(_periods)   0
 This macro is calculated to specify the memory required for Classic API Rate Monotonic Periods. More...
 
#define CONFIGURE_MAXIMUM_BARRIERS   0
 This configuration parameter specifies the maximum number of Classic API Barriers.
 
#define CONFIGURE_BARRIERS   (CONFIGURE_MAXIMUM_BARRIERS + CONFIGURE_BARRIERS_FOR_FIFOS)
 This macro is calculated to specify the number of Classic API Barriers required by the application and configured capabilities. More...
 
#define CONFIGURE_MEMORY_FOR_BARRIERS(_barriers)   0
 This macro is calculated to specify the memory required for Classic API Barriers. More...
 
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS   0
 This configuration parameter specifies the maximum number of Classic API User Extensions.
 
#define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions)   0
 This macro is calculated to specify the memory required for Classic API User Extensions. More...
 
#define CONFIGURE_MICROSECONDS_PER_TICK   RTEMS_MILLISECONDS_TO_MICROSECONDS(10)
 The configures the number of microseconds per clock tick. More...
 
#define CONFIGURE_TICKS_PER_TIMESLICE   50
 The configures the number of clock ticks per timeslice. More...
 
#define CONFIGURE_MAXIMUM_POSIX_KEYS   0
 This configuration parameter specifies the maximum number of POSIX API keys. More...
 
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
 This macro is calculated to specify the memory required for POSIX API key/value pairs. More...
 
#define CONFIGURE_POSIX_KEYS   (CONFIGURE_MAXIMUM_POSIX_KEYS + CONFIGURE_LIBIO_POSIX_KEYS)
 This macro is calculated to specify the total number of POSIX API keys required by the application and configured system capabilities. More...
 
#define CONFIGURE_MEMORY_FOR_POSIX_KEYS(_keys, _key_value_pairs)
 This macro is calculated to specify the memory required for POSIX API keys. More...
 
#define CONFIGURE_MAXIMUM_POSIX_THREADS   0
 This configuration parameter specifies the maximum number of POSIX API threads.
 
#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE   0
 This configuration parameter specifies the stack size of the POSIX API Initialization thread (if used).
 
#define CONFIGURE_GNAT_MUTEXES   0
 This defines he number of POSIX mutexes GNAT needs. More...
 
#define CONFIGURE_MAXIMUM_ADA_TASKS   0
 This defines he number of Ada tasks needed by the application. More...
 
#define CONFIGURE_MAXIMUM_FAKE_ADA_TASKS   0
 This defines he number of non-Ada tasks/threads that will invoke Ada subprograms or functions.
 
#define CONFIGURE_GO_INIT_MUTEXES   0
 This specifies the number of mutexes required by the Go run-time for its own use. More...
 
#define CONFIGURE_GO_INIT_CONDITION_VARIABLES   0
 This specifies the number of condition variables required by the Go run-time for its own use. More...
 
#define CONFIGURE_MAXIMUM_GOROUTINES   0
 This specifies the maximum number of Go co-routines. More...
 
#define CONFIGURE_GOROUTINES_TASK_VARIABLES   0
 This specifies the maximum number of Go per-task variables required. More...
 
#define CONFIGURE_MAXIMUM_GO_CHANNELS   0
 This specifies the maximum number of Go channels required. More...
 
#define CONFIGURE_EXTRA_TASK_STACKS   0
 This is so we can account for tasks with stacks greater than minimum size. More...
 
#define CONFIGURE_POSIX_THREADS
 This macro provides a summation of the various POSIX thread requirements. More...
 
#define CONFIGURE_MEMORY_FOR_POSIX   0
 This macro is calculated to specify the memory required for the POSIX API in its entirety. More...
 
#define CONFIGURE_HEAP_HANDLER_OVERHEAD   _Configure_Align_up( HEAP_BLOCK_HEADER_SIZE, CPU_HEAP_ALIGNMENT )
 
#define CONFIGURE_MEMORY_FOR_TASKS(_tasks, _number_FP_tasks)
 Account for allocating the following per object. More...
 
#define CONFIGURE_MEMORY_FOR_MP   0
 This defines the amount of memory configured for the multiprocessing support required by this application. More...
 
#define CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(_messages, _size)
 The following macro is used to calculate the memory allocated by RTEMS for the message buffers associated with a particular message queue. More...
 
#define CONFIGURE_MESSAGE_BUFFER_MEMORY   0
 This macro is set to the amount of memory required for pending message buffers in bytes. More...
 
#define CONFIGURE_MEMORY_OVERHEAD   0
 This macro is available just in case the confdefs.h file underallocates memory for a particular application. More...
 
#define CONFIGURE_API_MUTEX_MEMORY   _Configure_Object_RAM(2, sizeof(API_Mutex_Control))
 RTEMS uses two instance of an internal mutex class. More...
 
#define CONFIGURE_IDLE_TASKS_COUNT   1
 This calculates the amount of memory reserved for the IDLE tasks. More...
 
#define CONFIGURE_MEMORY_FOR_IDLE_TASK
 This defines the formula used to compute the amount of memory reserved for IDLE task control structures. More...
 
#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD
 This macro accounts for general RTEMS system overhead. More...
 
#define CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS
 This macro reserves the memory required by the statically configured user extensions. More...
 
#define CONFIGURE_MEMORY_FOR_CLASSIC
 This macro provides a summation of the memory required by the Classic API as configured. More...
 
#define CONFIGURE_MEMORY_FOR_SMP   0
 This macro provides a summation of the memory required by SMP as configured. More...
 
#define CONFIGURE_EXECUTIVE_RAM_SIZE
 This calculates the memory required for the executive workspace. More...
 
#define CONFIGURE_INITIALIZATION_THREADS_STACKS_CLASSIC_PART   0
 This accounts for any extra memory required by the Classic API Initialization Task. More...
 
#define CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART   0
 This accounts for any extra memory required by the POSIX API Initialization Thread. More...
 
#define CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS
 This macro provides a summation of the various initialization task and thread stack requirements. More...
 
#define CONFIGURE_IDLE_TASKS_STACK
 This macro is calculated to specify the memory required for the Idle tasks(s) stack. More...
 
#define CONFIGURE_TASKS_STACK
 This macro is calculated to specify the memory required for the stacks of all tasks. More...
 
#define CONFIGURE_POSIX_THREADS_STACK
 This macro is calculated to specify the memory required for the stacks of all POSIX threads. More...
 
#define CONFIGURE_ADA_TASKS_STACK
 This macro is calculated to specify the memory required for the stacks of all Ada tasks. More...
 
#define CONFIGURE_GOROUTINES_STACK
 This macro is calculated to specify the memory required for the stacks of all Go routines. More...
 
#define CONFIGURE_STACK_SPACE_SIZE
 This macro is calculated to specify the memory required for all tasks and threads of all varieties. More...
 

Variables

rtems_initialization_tasks_table Initialization_tasks []
 This is the Classic API initialization tasks table.
 
int rtems_telnetd_maximum_ptys
 This variable contains the maximum number of PTYs that can be concurrently active.
 

Detailed Description

Configuration Table Template that will be Instantiated by an Application.

This include file contains the configuration table template that will be instantiated by an application based on the setting of a number of macros. The macros are documented in the Configuring a System chapter of the Classic API User's Guide

Macro Definition Documentation

◆ CONFIGURE_ADA_TASKS_STACK

#define CONFIGURE_ADA_TASKS_STACK
Value:
_Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) )
#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
This specifies the default POSIX thread stack size.
Definition: confdefs.h:1196
#define _Configure_Max_Objects(_max)
Do not use the unlimited bit as part of the multiplication for memory usage.
Definition: confdefs.h:1393
#define CONFIGURE_MAXIMUM_ADA_TASKS
This defines he number of Ada tasks needed by the application.
Definition: confdefs.h:2801

This macro is calculated to specify the memory required for the stacks of all Ada tasks.

This is an internal parameter.

◆ CONFIGURE_API_MUTEX_MEMORY

#define CONFIGURE_API_MUTEX_MEMORY   _Configure_Object_RAM(2, sizeof(API_Mutex_Control))

RTEMS uses two instance of an internal mutex class.

This accounts for these mutexes.

◆ CONFIGURE_BARRIERS_FOR_FIFOS

#define CONFIGURE_BARRIERS_FOR_FIFOS   0

This specifies the number of barriers required for the configured number of FIFOs and named pipes.

This is an internal parameter.

◆ CONFIGURE_EXECUTIVE_RAM_SIZE

#define CONFIGURE_EXECUTIVE_RAM_SIZE
Value:
( \
CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD + \
CONFIGURE_MEMORY_FOR_TASKS( \
CONFIGURE_MEMORY_FOR_TASKS( \
CONFIGURE_MEMORY_FOR_CLASSIC + \
CONFIGURE_MEMORY_FOR_POSIX_KEYS( \
CONFIGURE_MEMORY_FOR_POSIX + \
CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS + \
CONFIGURE_MEMORY_FOR_MP + \
CONFIGURE_MEMORY_FOR_SMP + \
CONFIGURE_MESSAGE_BUFFER_MEMORY + \
CONFIGURE_HEAP_HANDLER_OVERHEAD \
)
#define CONFIGURE_POSIX_THREADS
This macro provides a summation of the various POSIX thread requirements.
Definition: confdefs.h:2884
#define CONFIGURE_TASKS
This is calculated to account for the maximum number of Classic API tasks used by the application and...
Definition: confdefs.h:2084
#define CONFIGURE_MEMORY_OVERHEAD
This macro is available just in case the confdefs.h file underallocates memory for a particular appli...
Definition: confdefs.h:3027
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
This macro is calculated to specify the memory required for POSIX API key/value pairs.
Definition: confdefs.h:2459
#define CONFIGURE_POSIX_KEYS
This macro is calculated to specify the total number of POSIX API keys required by the application an...
Definition: confdefs.h:2471

This calculates the memory required for the executive workspace.

This is an internal parameter.

◆ CONFIGURE_EXTRA_TASK_STACKS

#define CONFIGURE_EXTRA_TASK_STACKS   0

This is so we can account for tasks with stacks greater than minimum size.

This is in bytes.

◆ CONFIGURE_GOROUTINES_STACK

#define CONFIGURE_GOROUTINES_STACK
Value:
_Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) )
#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
This specifies the default POSIX thread stack size.
Definition: confdefs.h:1196
#define CONFIGURE_MAXIMUM_GOROUTINES
This specifies the maximum number of Go co-routines.
Definition: confdefs.h:2863
#define _Configure_Max_Objects(_max)
Do not use the unlimited bit as part of the multiplication for memory usage.
Definition: confdefs.h:1393

This macro is calculated to specify the memory required for the stacks of all Go routines.

This is an internal parameter.

◆ CONFIGURE_IDLE_TASK_BODY

#define CONFIGURE_IDLE_TASK_BODY   _CPU_Thread_Idle_body

Idle task body configuration.

There is a default IDLE thread body provided by RTEMS which has the possibility of being CPU specific. There may be a BSP specific override of the RTEMS default body and in turn, the application may override and provide its own.

◆ CONFIGURE_IDLE_TASK_STACK_SIZE

#define CONFIGURE_IDLE_TASK_STACK_SIZE   CONFIGURE_MINIMUM_TASK_STACK_SIZE

Idle task stack size configuration.

By default, the IDLE task will have a stack of minimum size. The BSP or application may override this value.

◆ CONFIGURE_IDLE_TASKS_COUNT

#define CONFIGURE_IDLE_TASKS_COUNT   1

This calculates the amount of memory reserved for the IDLE tasks.

In an SMP system, each CPU core has its own idle task.

◆ CONFIGURE_IDLE_TASKS_STACK

#define CONFIGURE_IDLE_TASKS_STACK
Value:
_Configure_From_stackspace( CONFIGURE_IDLE_TASK_STACK_SIZE ) )
#define CONFIGURE_IDLE_TASK_STACK_SIZE
Idle task stack size configuration.
Definition: confdefs.h:1209
#define CONFIGURE_IDLE_TASKS_COUNT
This calculates the amount of memory reserved for the IDLE tasks.
Definition: confdefs.h:3044

This macro is calculated to specify the memory required for the Idle tasks(s) stack.

This is an internal parameter.

◆ CONFIGURE_INIT_TASK_STACK_SIZE

#define CONFIGURE_INIT_TASK_STACK_SIZE   0

This is the stack size of the Initialization Task when none is configured.

This is an internal parameter.

◆ CONFIGURE_INIT_TASK_TABLE

#define CONFIGURE_INIT_TASK_TABLE   NULL

This is the name of the Initialization Task when none is configured.

This is an internal parameter.

◆ CONFIGURE_INIT_TASK_TABLE_SIZE

#define CONFIGURE_INIT_TASK_TABLE_SIZE   0

This is the size of the Initialization Task when none is configured.

This is an internal parameter.

◆ CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS

#define CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS
Value:
CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART)
#define CONFIGURE_INITIALIZATION_THREADS_STACKS_CLASSIC_PART
This accounts for any extra memory required by the Classic API Initialization Task.
Definition: confdefs.h:3153

This macro provides a summation of the various initialization task and thread stack requirements.

This is an internal parameter.

◆ CONFIGURE_INITIALIZATION_THREADS_STACKS_CLASSIC_PART

#define CONFIGURE_INITIALIZATION_THREADS_STACKS_CLASSIC_PART   0

This accounts for any extra memory required by the Classic API Initialization Task.

This is an internal parameter.

◆ CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART

#define CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART   0

This accounts for any extra memory required by the POSIX API Initialization Thread.

This is an internal parameter.

◆ CONFIGURE_INTERRUPT_STACK_MEMORY

#define CONFIGURE_INTERRUPT_STACK_MEMORY   0

This reserves memory for the interrupt stack if it is to be allocated by RTEMS rather than the BSP.

Todo:
Try to get to the point where all BSPs support allocating the memory from the Workspace.

◆ CONFIGURE_INTERRUPT_STACK_SIZE

#define CONFIGURE_INTERRUPT_STACK_SIZE   CONFIGURE_MINIMUM_TASK_STACK_SIZE

Interrupt stack size configuration.

By default, the interrupt stack will be of minimum size. The BSP or application may override this value.

◆ CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS

#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS   3

This macro defines the number of POSIX file descriptors allocated and managed by libio.

These are the "integer" file descriptors that are used by calls like open(2) and read(2).

◆ CONFIGURE_MAXIMUM_PRIORITY

#define CONFIGURE_MAXIMUM_PRIORITY   PRIORITY_DEFAULT_MAXIMUM

Maximum priority configuration.

This configures the maximum priority value that a task may have.

The following applies to the data space requirements of the Priority Scheduler.

By reducing the number of priorities in a system, the amount of RAM required by RTEMS can be significantly reduced. RTEMS allocates a Chain_Control structure per priority and this structure contains 3 pointers. So the default is (256 * 12) = 3K on 32-bit architectures.

This must be one less than a power of 2 between 4 and 256. Valid values along with the application priority levels and memory saved when pointers are 32-bits in size are:

  • 3, 2 application priorities, 3024 bytes saved
  • 7, 5 application priorities, 2976 bytes saved
  • 15, 13 application priorities, 2880 bytes saved
  • 31, 29 application priorities, 2688 bytes saved
  • 63, 61 application priorities, 2304 bytes saved
  • 127, 125 application priorities, 1536 bytes saved
  • 255, 253 application priorities, 0 bytes saved

It is specified in terms of Classic API priority values.

◆ CONFIGURE_MEMORY_FOR_CLASSIC

#define CONFIGURE_MEMORY_FOR_CLASSIC
Value:
CONFIGURE_MEMORY_FOR_TIMERS(CONFIGURE_MAXIMUM_TIMERS + \
CONFIGURE_MEMORY_FOR_SEMAPHORES(CONFIGURE_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_BARRIERS(CONFIGURE_BARRIERS) + \
CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(CONFIGURE_MAXIMUM_USER_EXTENSIONS) \
)
#define CONFIGURE_MEMORY_FOR_TASK_VARIABLES(_task_variables)
This macro is calculated to specify the memory required for task variables.
Definition: confdefs.h:2132
#define CONFIGURE_MAXIMUM_TIMERS
This specifies the maximum number of Classic API timers.
Definition: confdefs.h:2143
#define CONFIGURE_MAXIMUM_TASK_VARIABLES
This macro calculates the memory required for task variables.
Definition: confdefs.h:2125
#define CONFIGURE_MAXIMUM_PORTS
This configuration parameter specifies the maximum number of Classic API Dual-Ported Memory Ports...
Definition: confdefs.h:2279
#define CONFIGURE_MAXIMUM_REGIONS
This configuration parameter specifies the maximum number of Classic API Regions. ...
Definition: confdefs.h:2261
#define CONFIGURE_SEMAPHORES
This macro is calculated to specify the number of Classic API semaphores required by the application ...
Definition: confdefs.h:2179
#define CONFIGURE_MAXIMUM_PARTITIONS
This configuration parameter specifies the maximum number of Classic API Partitions.
Definition: confdefs.h:2243
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS
This configuration parameter specifies the maximum number of Classic API User Extensions.
Definition: confdefs.h:2345
#define CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER
This defines the timers required for the shared memory driver in a multiprocessing configuration...
Definition: confdefs.h:1884
#define CONFIGURE_BARRIERS
This macro is calculated to specify the number of Classic API Barriers required by the application an...
Definition: confdefs.h:2324
#define CONFIGURE_GOROUTINES_TASK_VARIABLES
This specifies the maximum number of Go per-task variables required.
Definition: confdefs.h:2866
#define CONFIGURE_MAXIMUM_PERIODS
This configuration parameter specifies the maximum number of Classic API Rate Monotonic Periods...
Definition: confdefs.h:2297
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES
This configuration parameter specifies the maximum number of Classic API Message Queues.
Definition: confdefs.h:2225

This macro provides a summation of the memory required by the Classic API as configured.

◆ CONFIGURE_MEMORY_FOR_IDLE_TASK

#define CONFIGURE_MEMORY_FOR_IDLE_TASK
Value:
#define CONFIGURE_MEMORY_FOR_TASKS(_tasks, _number_FP_tasks)
Account for allocating the following per object.
Definition: confdefs.h:2970
#define CONFIGURE_IDLE_TASKS_COUNT
This calculates the amount of memory reserved for the IDLE tasks.
Definition: confdefs.h:3044

This defines the formula used to compute the amount of memory reserved for IDLE task control structures.

◆ CONFIGURE_MEMORY_FOR_MP

#define CONFIGURE_MEMORY_FOR_MP   0

This defines the amount of memory configured for the multiprocessing support required by this application.

This is an internal parameter.

◆ CONFIGURE_MEMORY_FOR_POSIX

#define CONFIGURE_MEMORY_FOR_POSIX   0

This macro is calculated to specify the memory required for the POSIX API in its entirety.

This is an internal parameter.

◆ CONFIGURE_MEMORY_FOR_SMP

#define CONFIGURE_MEMORY_FOR_SMP   0

This macro provides a summation of the memory required by SMP as configured.

This is an internal parameter.

◆ CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS

#define CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS
Value:
(CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS == 0 ? 0 : \
_Configure_From_workspace( \
CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS \
))
Manages the switch callouts.
Definition: userext.h:249

This macro reserves the memory required by the statically configured user extensions.

◆ CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD

#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD
Value:
( CONFIGURE_MEMORY_FOR_IDLE_TASK + /* IDLE and stack */ \
CONFIGURE_INTERRUPT_STACK_MEMORY + /* interrupt stack */ \
CONFIGURE_API_MUTEX_MEMORY /* allocation mutex */ \
)
#define CONFIGURE_MEMORY_FOR_IDLE_TASK
This defines the formula used to compute the amount of memory reserved for IDLE task control structur...
Definition: confdefs.h:3052

This macro accounts for general RTEMS system overhead.

◆ CONFIGURE_MEMORY_FOR_TASKS

#define CONFIGURE_MEMORY_FOR_TASKS (   _tasks,
  _number_FP_tasks 
)
Value:
( \
_Configure_Object_RAM(_tasks, sizeof(Configuration_Thread_control)) \
+ _Configure_Max_Objects(_number_FP_tasks) \
)
#define _Configure_From_workspace(_size)
This is a helper macro used in calculations in this file.
Definition: confdefs.h:1372
#define _Configure_Max_Objects(_max)
Do not use the unlimited bit as part of the multiplication for memory usage.
Definition: confdefs.h:1393
#define CONTEXT_FP_SIZE
Size of floating point context area.
Definition: context.h:47

Account for allocating the following per object.

  • array of object control structures
  • local pointer table – pointer per object plus a zero'th entry in the local pointer table.

This is an internal parameter.

◆ CONFIGURE_MEMORY_OVERHEAD

#define CONFIGURE_MEMORY_OVERHEAD   0

This macro is available just in case the confdefs.h file underallocates memory for a particular application.

This lets the user add some extra memory in case something broken and underestimates.

It is also possible for cases where confdefs.h overallocates memory, you could substract memory from the allocated. The estimate is just that, an estimate, and assumes worst case alignment and padding on each allocated element. So in some cases it could be too conservative.

NOTE: Historically this was used for message buffers.

◆ CONFIGURE_MESSAGE_BUFFER_MEMORY

#define CONFIGURE_MESSAGE_BUFFER_MEMORY   0

This macro is set to the amount of memory required for pending message buffers in bytes.

It should be constructed by adding together a set of values determined by CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE.

This is an internal parameter.

◆ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE

#define CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE (   _messages,
  _size 
)
Value:
(_messages) * ((_size) + sizeof(CORE_message_queue_Buffer_control)))
The organization of a message buffer.
Definition: coremsg.h:88
#define _Configure_From_workspace(_size)
This is a helper macro used in calculations in this file.
Definition: confdefs.h:1372

The following macro is used to calculate the memory allocated by RTEMS for the message buffers associated with a particular message queue.

There is a fixed amount of overhead per message.

◆ CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE

#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE   (2 * CONFIGURE_MINIMUM_TASK_STACK_SIZE)

This specifies the default POSIX thread stack size.

By default, it is twice that recommended for the port.

◆ CONFIGURE_NUMBER_OF_TERMIOS_PORTS

#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS   1

This macro determines if termios is disabled by this application.

This only means that resources will not be reserved. If you end up using termios, it will fail. This macro specifies the number of serial or PTY ports that will use termios.

◆ CONFIGURE_POSIX_THREADS

#define CONFIGURE_POSIX_THREADS
Value:
CONFIGURE_MAXIMUM_ADA_TASKS + \
CONFIGURE_MAXIMUM_GOROUTINES)
#define CONFIGURE_MAXIMUM_POSIX_THREADS
This configuration parameter specifies the maximum number of POSIX API threads.
Definition: confdefs.h:2751

This macro provides a summation of the various POSIX thread requirements.

◆ CONFIGURE_POSIX_THREADS_STACK

#define CONFIGURE_POSIX_THREADS_STACK
Value:
_Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) )
#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
This specifies the default POSIX thread stack size.
Definition: confdefs.h:1196
#define _Configure_Max_Objects(_max)
Do not use the unlimited bit as part of the multiplication for memory usage.
Definition: confdefs.h:1393
#define CONFIGURE_MAXIMUM_POSIX_THREADS
This configuration parameter specifies the maximum number of POSIX API threads.
Definition: confdefs.h:2751

This macro is calculated to specify the memory required for the stacks of all POSIX threads.

This is an internal parameter.

◆ CONFIGURE_SCHEDULER_CONTEXT

#define CONFIGURE_SCHEDULER_CONTEXT
Value:
RTEMS_SCHEDULER_CONTEXT_PRIORITY( \
dflt, \
)
#define CONFIGURE_MAXIMUM_PRIORITY
Maximum priority configuration.
Definition: confdefs.h:776

Configure the context needed by the scheduler instance.

◆ CONFIGURE_SEMAPHORES_FOR_FIFOS

#define CONFIGURE_SEMAPHORES_FOR_FIFOS   0

This specifies the number of semaphores required for the configured number of FIFOs and named pipes.

This is an internal parameter.

◆ CONFIGURE_STACK_SPACE_SIZE

#define CONFIGURE_STACK_SPACE_SIZE
Value:
( \
CONFIGURE_IDLE_TASKS_STACK + \
CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS + \
CONFIGURE_TASKS_STACK + \
CONFIGURE_POSIX_THREADS_STACK + \
CONFIGURE_GOROUTINES_STACK + \
CONFIGURE_ADA_TASKS_STACK + \
CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK + \
CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS + \
CONFIGURE_EXTRA_TASK_STACKS + \
CONFIGURE_HEAP_HANDLER_OVERHEAD \
)

This macro is calculated to specify the memory required for all tasks and threads of all varieties.

This is an internal parameter.

◆ CONFIGURE_TASKS_STACK

#define CONFIGURE_TASKS_STACK
Value:
_Configure_From_stackspace( CONFIGURE_MINIMUM_TASK_STACK_SIZE ) )
#define CONFIGURE_MINIMUM_TASK_STACK_SIZE
By default, use the minimum stack size requested by this port.
Definition: confdefs.h:1189
#define CONFIGURE_TASKS
This is calculated to account for the maximum number of Classic API tasks used by the application and...
Definition: confdefs.h:2084
#define _Configure_Max_Objects(_max)
Do not use the unlimited bit as part of the multiplication for memory usage.
Definition: confdefs.h:1393

This macro is calculated to specify the memory required for the stacks of all tasks.

This is an internal parameter.