mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-22 06:28:13 +08:00
cpukit/confdefs: reformat with clang-format
Updates #3860. Closes #5353.
This commit is contained in:
committed by
Kinsey Moore
parent
9da9c086e3
commit
63034d7368
@@ -58,73 +58,70 @@
|
||||
|
||||
#ifndef CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
|
||||
#define CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS \
|
||||
RTEMS_BDBUF_MAX_READ_AHEAD_BLOCKS_DEFAULT
|
||||
RTEMS_BDBUF_MAX_READ_AHEAD_BLOCKS_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
|
||||
#define CONFIGURE_BDBUF_MAX_WRITE_BLOCKS \
|
||||
RTEMS_BDBUF_MAX_WRITE_BLOCKS_DEFAULT
|
||||
#define CONFIGURE_BDBUF_MAX_WRITE_BLOCKS RTEMS_BDBUF_MAX_WRITE_BLOCKS_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_SWAPOUT_TASK_PRIORITY
|
||||
#define CONFIGURE_SWAPOUT_TASK_PRIORITY \
|
||||
RTEMS_BDBUF_SWAPOUT_TASK_PRIORITY_DEFAULT
|
||||
RTEMS_BDBUF_SWAPOUT_TASK_PRIORITY_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_SWAPOUT_SWAP_PERIOD
|
||||
#define CONFIGURE_SWAPOUT_SWAP_PERIOD \
|
||||
RTEMS_BDBUF_SWAPOUT_TASK_SWAP_PERIOD_DEFAULT
|
||||
RTEMS_BDBUF_SWAPOUT_TASK_SWAP_PERIOD_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_SWAPOUT_BLOCK_HOLD
|
||||
#define CONFIGURE_SWAPOUT_BLOCK_HOLD \
|
||||
RTEMS_BDBUF_SWAPOUT_TASK_BLOCK_HOLD_DEFAULT
|
||||
RTEMS_BDBUF_SWAPOUT_TASK_BLOCK_HOLD_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_SWAPOUT_WORKER_TASKS
|
||||
#define CONFIGURE_SWAPOUT_WORKER_TASKS \
|
||||
RTEMS_BDBUF_SWAPOUT_WORKER_TASKS_DEFAULT
|
||||
RTEMS_BDBUF_SWAPOUT_WORKER_TASKS_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
|
||||
#define CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY \
|
||||
RTEMS_BDBUF_SWAPOUT_WORKER_TASK_PRIORITY_DEFAULT
|
||||
RTEMS_BDBUF_SWAPOUT_WORKER_TASK_PRIORITY_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_BDBUF_TASK_STACK_SIZE
|
||||
#define CONFIGURE_BDBUF_TASK_STACK_SIZE \
|
||||
RTEMS_BDBUF_TASK_STACK_SIZE_DEFAULT
|
||||
#define CONFIGURE_BDBUF_TASK_STACK_SIZE RTEMS_BDBUF_TASK_STACK_SIZE_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
|
||||
#define CONFIGURE_BDBUF_CACHE_MEMORY_SIZE \
|
||||
RTEMS_BDBUF_CACHE_MEMORY_SIZE_DEFAULT
|
||||
RTEMS_BDBUF_CACHE_MEMORY_SIZE_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_BDBUF_BUFFER_MIN_SIZE
|
||||
#define CONFIGURE_BDBUF_BUFFER_MIN_SIZE \
|
||||
RTEMS_BDBUF_BUFFER_MIN_SIZE_DEFAULT
|
||||
#define CONFIGURE_BDBUF_BUFFER_MIN_SIZE RTEMS_BDBUF_BUFFER_MIN_SIZE_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_BDBUF_BUFFER_MAX_SIZE
|
||||
#define CONFIGURE_BDBUF_BUFFER_MAX_SIZE \
|
||||
RTEMS_BDBUF_BUFFER_MAX_SIZE_DEFAULT
|
||||
#define CONFIGURE_BDBUF_BUFFER_MAX_SIZE RTEMS_BDBUF_BUFFER_MAX_SIZE_DEFAULT
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
|
||||
#define CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY \
|
||||
RTEMS_BDBUF_READ_AHEAD_TASK_PRIORITY_DEFAULT
|
||||
RTEMS_BDBUF_READ_AHEAD_TASK_PRIORITY_DEFAULT
|
||||
#endif
|
||||
|
||||
#define _CONFIGURE_LIBBLOCK_TASKS \
|
||||
( 1 + CONFIGURE_SWAPOUT_WORKER_TASKS \
|
||||
+ ( CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS != 0 ) )
|
||||
#define _CONFIGURE_LIBBLOCK_TASKS \
|
||||
( 1 + CONFIGURE_SWAPOUT_WORKER_TASKS + \
|
||||
( CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS != 0 ) )
|
||||
|
||||
#define _CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA \
|
||||
( _CONFIGURE_LIBBLOCK_TASKS \
|
||||
* ( CONFIGURE_BDBUF_TASK_STACK_SIZE <= CONFIGURE_MINIMUM_TASK_STACK_SIZE ? \
|
||||
0 : \
|
||||
CONFIGURE_BDBUF_TASK_STACK_SIZE - CONFIGURE_MINIMUM_TASK_STACK_SIZE ) )
|
||||
#define _CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA \
|
||||
( _CONFIGURE_LIBBLOCK_TASKS * \
|
||||
( CONFIGURE_BDBUF_TASK_STACK_SIZE <= CONFIGURE_MINIMUM_TASK_STACK_SIZE \
|
||||
? 0 \
|
||||
: CONFIGURE_BDBUF_TASK_STACK_SIZE - \
|
||||
CONFIGURE_MINIMUM_TASK_STACK_SIZE ) )
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
#error "Do not include this file directly, use <rtems/confdefs.h> instead"
|
||||
#endif
|
||||
|
||||
#if defined(CONFIGURE_INIT) && !defined(CONFIGURE_DISABLE_BSP_SETTINGS)
|
||||
#if defined( CONFIGURE_INIT ) && !defined( CONFIGURE_DISABLE_BSP_SETTINGS )
|
||||
#include <bsp.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -45,16 +45,20 @@
|
||||
|
||||
#include <rtems/score/watchdogticks.h>
|
||||
|
||||
#if !defined(CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER) \
|
||||
&& !defined(CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER) \
|
||||
&& !defined(CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER)
|
||||
#error "You must define one of CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, and CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER"
|
||||
#if !defined( CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER ) && \
|
||||
!defined( CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER ) && \
|
||||
!defined( CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER )
|
||||
#error \
|
||||
"You must define one of CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, and CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER"
|
||||
#endif
|
||||
|
||||
#if ( defined(CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER) \
|
||||
+ defined(CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER) + \
|
||||
+ defined(CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER) ) > 1
|
||||
#error "CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, and CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER are mutually exclusive"
|
||||
#if ( \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER ) + \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER ) + \
|
||||
+defined( CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER ) \
|
||||
) > 1
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER, CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER, and CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER are mutually exclusive"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
@@ -70,8 +74,8 @@
|
||||
#warning "The clock ticks per second is not an integer"
|
||||
#endif
|
||||
|
||||
#if defined(CONFIGURE_TICKS_PER_TIMESLICE) \
|
||||
&& CONFIGURE_TICKS_PER_TIMESLICE <= 0
|
||||
#if defined( CONFIGURE_TICKS_PER_TIMESLICE ) && \
|
||||
CONFIGURE_TICKS_PER_TIMESLICE <= 0
|
||||
#error "CONFIGURE_TICKS_PER_TIMESLICE shall be greater than zero"
|
||||
#endif
|
||||
|
||||
@@ -84,26 +88,26 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Clock_Initialize,
|
||||
RTEMS_SYSINIT_DEVICE_DRIVERS,
|
||||
RTEMS_SYSINIT_ORDER_THIRD
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Clock_Initialize,
|
||||
RTEMS_SYSINIT_DEVICE_DRIVERS,
|
||||
RTEMS_SYSINIT_ORDER_THIRD
|
||||
);
|
||||
#endif
|
||||
|
||||
const uint32_t _Watchdog_Microseconds_per_tick =
|
||||
CONFIGURE_MICROSECONDS_PER_TICK;
|
||||
const uint32_t
|
||||
_Watchdog_Microseconds_per_tick = CONFIGURE_MICROSECONDS_PER_TICK;
|
||||
|
||||
const uint32_t _Watchdog_Nanoseconds_per_tick =
|
||||
(uint32_t) 1000 * CONFIGURE_MICROSECONDS_PER_TICK;
|
||||
const uint32_t
|
||||
_Watchdog_Nanoseconds_per_tick = (uint32_t) 1000 *
|
||||
CONFIGURE_MICROSECONDS_PER_TICK;
|
||||
|
||||
const uint32_t _Watchdog_Ticks_per_second =
|
||||
1000000 / CONFIGURE_MICROSECONDS_PER_TICK;
|
||||
const uint32_t _Watchdog_Ticks_per_second = 1000000 /
|
||||
CONFIGURE_MICROSECONDS_PER_TICK;
|
||||
|
||||
#if defined(CONFIGURE_TICKS_PER_TIMESLICE) \
|
||||
&& CONFIGURE_TICKS_PER_TIMESLICE != WATCHDOG_TICKS_PER_TIMESLICE_DEFAULT
|
||||
const uint32_t _Watchdog_Ticks_per_timeslice =
|
||||
CONFIGURE_TICKS_PER_TIMESLICE;
|
||||
#if defined( CONFIGURE_TICKS_PER_TIMESLICE ) && \
|
||||
CONFIGURE_TICKS_PER_TIMESLICE != WATCHDOG_TICKS_PER_TIMESLICE_DEFAULT
|
||||
const uint32_t _Watchdog_Ticks_per_timeslice = CONFIGURE_TICKS_PER_TIMESLICE;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -43,13 +43,14 @@
|
||||
|
||||
#ifdef CONFIGURE_INIT
|
||||
|
||||
#if defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) \
|
||||
&& defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER)
|
||||
#error "CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER and CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER are mutually exclusive"
|
||||
#if defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER ) && \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER )
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER and CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER are mutually exclusive"
|
||||
#endif
|
||||
|
||||
#if defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) \
|
||||
|| defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER)
|
||||
#if defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER )
|
||||
|
||||
#include <rtems/console.h>
|
||||
#include <rtems/sysinit.h>
|
||||
@@ -59,19 +60,19 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Console_simple_Initialize,
|
||||
RTEMS_SYSINIT_DEVICE_DRIVERS,
|
||||
RTEMS_SYSINIT_ORDER_SECOND
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Console_simple_Initialize,
|
||||
RTEMS_SYSINIT_DEVICE_DRIVERS,
|
||||
RTEMS_SYSINIT_ORDER_SECOND
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Console_simple_task_Initialize,
|
||||
RTEMS_SYSINIT_DEVICE_DRIVERS,
|
||||
RTEMS_SYSINIT_ORDER_SECOND
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Console_simple_task_Initialize,
|
||||
RTEMS_SYSINIT_DEVICE_DRIVERS,
|
||||
RTEMS_SYSINIT_ORDER_SECOND
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -62,7 +62,10 @@
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS > 0
|
||||
#if (CONFIGURE_RECORD_PER_PROCESSOR_ITEMS & (CONFIGURE_RECORD_PER_PROCESSOR_ITEMS - 1)) != 0
|
||||
#if ( \
|
||||
CONFIGURE_RECORD_PER_PROCESSOR_ITEMS & \
|
||||
( CONFIGURE_RECORD_PER_PROCESSOR_ITEMS - 1 ) \
|
||||
) != 0
|
||||
#error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be a power of two"
|
||||
#endif
|
||||
|
||||
@@ -70,9 +73,9 @@
|
||||
#error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be at least 16"
|
||||
#endif
|
||||
|
||||
#if defined(CONFIGURE_RECORD_EXTENSIONS_ENABLED) \
|
||||
|| defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64) \
|
||||
|| defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB)
|
||||
#if defined( CONFIGURE_RECORD_EXTENSIONS_ENABLED ) || \
|
||||
defined( CONFIGURE_RECORD_FATAL_DUMP_BASE64 ) || \
|
||||
defined( CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB )
|
||||
#define _CONFIGURE_RECORD_NEED_EXTENSION
|
||||
#endif
|
||||
|
||||
@@ -80,13 +83,16 @@
|
||||
#include <rtems/record.h>
|
||||
#else
|
||||
#ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED
|
||||
#warning "CONFIGURE_RECORD_EXTENSIONS_ENABLED defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
|
||||
#warning \
|
||||
"CONFIGURE_RECORD_EXTENSIONS_ENABLED defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
|
||||
#endif
|
||||
#ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64
|
||||
#warning "CONFIGURE_RECORD_FATAL_DUMP_BASE64 defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
|
||||
#warning \
|
||||
"CONFIGURE_RECORD_FATAL_DUMP_BASE64 defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
|
||||
#endif
|
||||
#ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
|
||||
#warning "CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
|
||||
#warning \
|
||||
"CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -102,129 +108,135 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_CONFIGURE_RECORD_NEED_EXTENSION) \
|
||||
|| defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) \
|
||||
|| defined(CONFIGURE_STACK_CHECKER_ENABLED) \
|
||||
|| defined(CONFIGURE_INITIAL_EXTENSIONS) \
|
||||
|| defined(BSP_INITIAL_EXTENSION)
|
||||
const User_extensions_Table _User_extensions_Initial_extensions[] = {
|
||||
#if defined( _CONFIGURE_RECORD_NEED_EXTENSION ) || \
|
||||
defined( _CONFIGURE_ENABLE_NEWLIB_REENTRANCY ) || \
|
||||
defined( CONFIGURE_STACK_CHECKER_ENABLED ) || \
|
||||
defined( CONFIGURE_INITIAL_EXTENSIONS ) || defined( BSP_INITIAL_EXTENSION )
|
||||
const User_extensions_Table _User_extensions_Initial_extensions[] = {
|
||||
#ifdef CONFIGURE_EXCEPTION_TO_SIGNAL_MAPPING
|
||||
{ .fatal = _Exception_Raise_signal },
|
||||
{ .fatal = _Exception_Raise_signal },
|
||||
#endif
|
||||
#ifdef _CONFIGURE_RECORD_NEED_EXTENSION
|
||||
{
|
||||
{
|
||||
#ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED
|
||||
_Record_Thread_create,
|
||||
_Record_Thread_start,
|
||||
_Record_Thread_restart,
|
||||
_Record_Thread_delete,
|
||||
_Record_Thread_switch,
|
||||
_Record_Thread_begin,
|
||||
_Record_Thread_exitted,
|
||||
_Record_Thread_create,
|
||||
_Record_Thread_start,
|
||||
_Record_Thread_restart,
|
||||
_Record_Thread_delete,
|
||||
_Record_Thread_switch,
|
||||
_Record_Thread_begin,
|
||||
_Record_Thread_exitted,
|
||||
#else
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
#endif
|
||||
#ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB
|
||||
_Record_Fatal_dump_base64_zlib,
|
||||
#elif defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64)
|
||||
_Record_Fatal_dump_base64,
|
||||
_Record_Fatal_dump_base64_zlib,
|
||||
#elif defined( CONFIGURE_RECORD_FATAL_DUMP_BASE64 )
|
||||
_Record_Fatal_dump_base64,
|
||||
#else
|
||||
NULL,
|
||||
NULL,
|
||||
#endif
|
||||
#ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED
|
||||
_Record_Thread_terminate
|
||||
_Record_Thread_terminate
|
||||
#else
|
||||
NULL
|
||||
NULL
|
||||
#endif
|
||||
},
|
||||
},
|
||||
#endif
|
||||
#ifdef _CONFIGURE_ENABLE_NEWLIB_REENTRANCY
|
||||
RTEMS_NEWLIB_EXTENSION,
|
||||
RTEMS_NEWLIB_EXTENSION,
|
||||
#endif
|
||||
#ifdef CONFIGURE_STACK_CHECKER_ENABLED
|
||||
RTEMS_STACK_CHECKER_EXTENSION,
|
||||
RTEMS_STACK_CHECKER_EXTENSION,
|
||||
#endif
|
||||
#ifdef CONFIGURE_INITIAL_EXTENSIONS
|
||||
CONFIGURE_INITIAL_EXTENSIONS,
|
||||
CONFIGURE_INITIAL_EXTENSIONS,
|
||||
#endif
|
||||
#if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
|
||||
defined(BSP_INITIAL_EXTENSION)
|
||||
BSP_INITIAL_EXTENSION
|
||||
#if !defined( CONFIGURE_DISABLE_BSP_SETTINGS ) && \
|
||||
defined( BSP_INITIAL_EXTENSION )
|
||||
BSP_INITIAL_EXTENSION
|
||||
#endif
|
||||
};
|
||||
};
|
||||
|
||||
const size_t _User_extensions_Initial_count =
|
||||
RTEMS_ARRAY_SIZE( _User_extensions_Initial_extensions );
|
||||
const size_t _User_extensions_Initial_count = RTEMS_ARRAY_SIZE(
|
||||
_User_extensions_Initial_extensions
|
||||
);
|
||||
|
||||
User_extensions_Switch_control _User_extensions_Initial_switch_controls[
|
||||
RTEMS_ARRAY_SIZE( _User_extensions_Initial_extensions )
|
||||
];
|
||||
User_extensions_Switch_control _User_extensions_Initial_switch_controls
|
||||
[ RTEMS_ARRAY_SIZE( _User_extensions_Initial_extensions ) ];
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_User_extensions_Handler_initialization,
|
||||
RTEMS_SYSINIT_INITIAL_EXTENSIONS,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_User_extensions_Handler_initialization,
|
||||
RTEMS_SYSINIT_INITIAL_EXTENSIONS,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0
|
||||
EXTENSION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_USER_EXTENSIONS );
|
||||
EXTENSION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_USER_EXTENSIONS );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS > 0
|
||||
typedef struct {
|
||||
Record_Control Control;
|
||||
rtems_record_item Items[ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS ];
|
||||
} Record_Configured_control;
|
||||
typedef struct {
|
||||
Record_Control Control;
|
||||
rtems_record_item Items[ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS ];
|
||||
} Record_Configured_control;
|
||||
|
||||
static Record_Configured_control _Record_Controls[ _CONFIGURE_MAXIMUM_PROCESSORS ];
|
||||
static Record_Configured_control
|
||||
_Record_Controls[ _CONFIGURE_MAXIMUM_PROCESSORS ];
|
||||
|
||||
const Record_Configuration _Record_Configuration = {
|
||||
CONFIGURE_RECORD_PER_PROCESSOR_ITEMS,
|
||||
&_Record_Controls[ 0 ].Control
|
||||
};
|
||||
const Record_Configuration _Record_Configuration = {
|
||||
CONFIGURE_RECORD_PER_PROCESSOR_ITEMS,
|
||||
&_Record_Controls[ 0 ].Control
|
||||
};
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Record_Initialize,
|
||||
RTEMS_SYSINIT_RECORD,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Record_Initialize,
|
||||
RTEMS_SYSINIT_RECORD,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
|
||||
#ifdef CONFIGURE_RECORD_INTERRUPTS_ENABLED
|
||||
rtems_interrupt_entry **bsp_interrupt_get_dispatch_table_slot(
|
||||
rtems_vector_number index
|
||||
);
|
||||
rtems_interrupt_entry **bsp_interrupt_get_dispatch_table_slot(
|
||||
rtems_vector_number index
|
||||
);
|
||||
|
||||
rtems_interrupt_entry **bsp_interrupt_get_dispatch_table_slot(
|
||||
rtems_vector_number index
|
||||
)
|
||||
{
|
||||
return &_Record_Interrupt_dispatch_table[ index ];
|
||||
}
|
||||
rtems_interrupt_entry **bsp_interrupt_get_dispatch_table_slot(
|
||||
rtems_vector_number index
|
||||
)
|
||||
{
|
||||
return &_Record_Interrupt_dispatch_table[ index ];
|
||||
}
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Record_Interrupt_initialize,
|
||||
RTEMS_SYSINIT_LAST,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Record_Interrupt_initialize,
|
||||
RTEMS_SYSINIT_LAST,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Sysinit_Verbose,
|
||||
RTEMS_SYSINIT_RECORD,
|
||||
RTEMS_SYSINIT_ORDER_LAST
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Sysinit_Verbose,
|
||||
RTEMS_SYSINIT_RECORD,
|
||||
RTEMS_SYSINIT_ORDER_LAST
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_STACK_CHECKER_ENABLED
|
||||
#ifdef CONFIGURE_STACK_CHECKER_REPORTER
|
||||
const Stack_checker_Reporter_handler Stack_checker_Reporter =
|
||||
CONFIGURE_STACK_CHECKER_REPORTER;
|
||||
const Stack_checker_Reporter_handler
|
||||
Stack_checker_Reporter = CONFIGURE_STACK_CHECKER_REPORTER;
|
||||
#else
|
||||
const Stack_checker_Reporter_handler Stack_checker_Reporter =
|
||||
rtems_stack_checker_reporter_quiet;
|
||||
const Stack_checker_Reporter_handler
|
||||
Stack_checker_Reporter = rtems_stack_checker_reporter_quiet;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -55,26 +55,24 @@
|
||||
|
||||
#include <rtems/posix/timer.h>
|
||||
|
||||
int _POSIX_Timer_Is_allowed(
|
||||
clockid_t clock_id
|
||||
)
|
||||
{
|
||||
/*
|
||||
int _POSIX_Timer_Is_allowed( clockid_t clock_id )
|
||||
{
|
||||
/*
|
||||
* Per the FACE Technical Standard, POSIX timers should not be
|
||||
* allowed on CLOCK_REALTIME for safety reasons. If the application
|
||||
* wants the FACE behavior, then this method is instantiated.
|
||||
*/
|
||||
if ( clock_id == CLOCK_REALTIME ) {
|
||||
return EPERM;
|
||||
}
|
||||
|
||||
if ( clock_id != CLOCK_MONOTONIC ) {
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
if ( clock_id == CLOCK_REALTIME ) {
|
||||
return EPERM;
|
||||
}
|
||||
|
||||
if ( clock_id != CLOCK_MONOTONIC ) {
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR */
|
||||
|
||||
#endif /* CONFIGURE_INIT */
|
||||
|
||||
@@ -47,8 +47,9 @@
|
||||
#ifdef CONFIGURE_INIT
|
||||
|
||||
#define _CONFIGURE_ASSERT_NOT_NULL( _type, _value ) \
|
||||
( ( _value ) != NULL ? ( _value ) : \
|
||||
( _type ) sizeof( int[ ( _value ) != NULL ? 1 : -1 ] ) )
|
||||
( ( _value ) != NULL \
|
||||
? ( _value ) \
|
||||
: (_type) sizeof( int[ ( _value ) != NULL ? 1 : -1 ] ) )
|
||||
|
||||
#ifdef CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
@@ -83,13 +84,13 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_INIT_TASK_ENTRY_POINT
|
||||
rtems_task Init( rtems_task_argument );
|
||||
rtems_task Init( rtems_task_argument );
|
||||
#define CONFIGURE_INIT_TASK_ENTRY_POINT Init
|
||||
|
||||
#ifndef CONFIGURE_INIT_TASK_ARGUMENTS
|
||||
extern const char *bsp_boot_cmdline;
|
||||
extern const char *bsp_boot_cmdline;
|
||||
#define CONFIGURE_INIT_TASK_ARGUMENTS \
|
||||
( (rtems_task_argument) &bsp_boot_cmdline )
|
||||
( ( rtems_task_argument ) & bsp_boot_cmdline )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -114,17 +115,20 @@ extern "C" {
|
||||
#ifdef CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE
|
||||
|
||||
#ifdef CONFIGURE_INIT_TASK_STACK_SIZE
|
||||
#error "CONFIGURE_INIT_TASK_STACK_SIZE and CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE are mutually exclusive"
|
||||
#error \
|
||||
"CONFIGURE_INIT_TASK_STACK_SIZE and CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE are mutually exclusive"
|
||||
#endif
|
||||
|
||||
RTEMS_STATIC_ASSERT(
|
||||
CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE >= CONFIGURE_MINIMUM_TASK_STACK_SIZE,
|
||||
CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE >=
|
||||
CONFIGURE_MINIMUM_TASK_STACK_SIZE,
|
||||
CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE_IS_TOO_SMALL
|
||||
);
|
||||
|
||||
static RTEMS_SECTION( ".rtemsstack.userinit" )
|
||||
RTEMS_ALIGNED( RTEMS_TASK_STORAGE_ALIGNMENT )
|
||||
char _RTEMS_tasks_User_task_storage[ CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE ];
|
||||
static RTEMS_SECTION( ".rtemsstack.userinit" ) RTEMS_ALIGNED(
|
||||
RTEMS_TASK_STORAGE_ALIGNMENT
|
||||
) char _RTEMS_tasks_User_task_storage
|
||||
[ CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE ];
|
||||
|
||||
const RTEMS_tasks_User_task_config _RTEMS_tasks_User_task_config = {
|
||||
{
|
||||
@@ -155,12 +159,13 @@ RTEMS_SYSINIT_ITEM(
|
||||
#ifndef CONFIGURE_INIT_TASK_STACK_SIZE
|
||||
#define CONFIGURE_INIT_TASK_STACK_SIZE CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
#elif CONFIGURE_INIT_TASK_STACK_SIZE < CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
#error "CONFIGURE_INIT_TASK_STACK_SIZE must be greater than or equal to CONFIGURE_MINIMUM_TASK_STACK_SIZE"
|
||||
#error \
|
||||
"CONFIGURE_INIT_TASK_STACK_SIZE must be greater than or equal to CONFIGURE_MINIMUM_TASK_STACK_SIZE"
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_INIT_TASK_STACK_SIZE > CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
#define _CONFIGURE_INIT_TASK_STACK_EXTRA \
|
||||
( CONFIGURE_INIT_TASK_STACK_SIZE - CONFIGURE_MINIMUM_TASK_STACK_SIZE )
|
||||
( CONFIGURE_INIT_TASK_STACK_SIZE - CONFIGURE_MINIMUM_TASK_STACK_SIZE )
|
||||
#endif
|
||||
|
||||
const rtems_initialization_tasks_table _RTEMS_tasks_User_task_table = {
|
||||
|
||||
@@ -58,14 +58,14 @@
|
||||
|
||||
#ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
|
||||
#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \
|
||||
> CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
|
||||
#if CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE > \
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
|
||||
#define _CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA \
|
||||
( CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - \
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE )
|
||||
( CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - \
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE )
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -45,36 +45,37 @@
|
||||
|
||||
#include <rtems/confdefs/bsp.h>
|
||||
|
||||
#if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
|
||||
defined(CONFIGURE_BSP_PREREQUISITE_DRIVERS)
|
||||
#if !defined( CONFIGURE_DISABLE_BSP_SETTINGS ) && \
|
||||
defined( CONFIGURE_BSP_PREREQUISITE_DRIVERS )
|
||||
#define _CONFIGURE_BSP_PREREQUISITE_DRIVERS CONFIGURE_BSP_PREREQUISITE_DRIVERS
|
||||
#endif
|
||||
|
||||
#if defined(_CONFIGURE_BSP_PREREQUISITE_DRIVERS) || \
|
||||
defined(CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_EXTRA_DRIVERS)
|
||||
#if defined( _CONFIGURE_BSP_PREREQUISITE_DRIVERS ) || \
|
||||
defined( CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_EXTRA_DRIVERS )
|
||||
#define _CONFIGURE_HAS_IO_DRIVERS
|
||||
#endif
|
||||
|
||||
#if defined(_CONFIGURE_HAS_IO_DRIVERS) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER) || \
|
||||
#if defined( _CONFIGURE_HAS_IO_DRIVERS ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER ) || \
|
||||
CONFIGURE_MAXIMUM_DRIVERS > 0
|
||||
|
||||
#include <rtems/ioimpl.h>
|
||||
#include <rtems/sysinit.h>
|
||||
|
||||
#ifdef CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||
#if defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) \
|
||||
|| defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER)
|
||||
#error "CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER, CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER are mutually exclusive"
|
||||
#if defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER )
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER, CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER, and CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER are mutually exclusive"
|
||||
#endif
|
||||
|
||||
#include <rtems/console.h>
|
||||
@@ -123,7 +124,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
rtems_driver_address_table
|
||||
_IO_Driver_address_table[ CONFIGURE_MAXIMUM_DRIVERS ] = {
|
||||
_IO_Driver_address_table[ CONFIGURE_MAXIMUM_DRIVERS ] = {
|
||||
#ifdef _CONFIGURE_BSP_PREREQUISITE_DRIVERS
|
||||
_CONFIGURE_BSP_PREREQUISITE_DRIVERS,
|
||||
#endif
|
||||
@@ -157,14 +158,15 @@ _IO_Driver_address_table[ CONFIGURE_MAXIMUM_DRIVERS ] = {
|
||||
#ifdef CONFIGURE_APPLICATION_EXTRA_DRIVERS
|
||||
CONFIGURE_APPLICATION_EXTRA_DRIVERS,
|
||||
#endif
|
||||
#if defined(CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER) || \
|
||||
!defined(_CONFIGURE_HAS_IO_DRIVERS)
|
||||
#if defined( CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER ) || \
|
||||
!defined( _CONFIGURE_HAS_IO_DRIVERS )
|
||||
NULL_DRIVER_TABLE_ENTRY
|
||||
#endif
|
||||
};
|
||||
|
||||
const size_t _IO_Number_of_drivers =
|
||||
RTEMS_ARRAY_SIZE( _IO_Driver_address_table );
|
||||
const size_t _IO_Number_of_drivers = RTEMS_ARRAY_SIZE(
|
||||
_IO_Driver_address_table
|
||||
);
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_IO_Initialize_all_drivers,
|
||||
@@ -177,8 +179,8 @@ RTEMS_SYSINIT_ITEM(
|
||||
#define CONFIGURE_ATA_DRIVER_TASK_PRIORITY ATA_DRIVER_TASK_DEFAULT_PRIORITY
|
||||
#endif
|
||||
|
||||
rtems_task_priority rtems_ata_driver_task_priority
|
||||
= CONFIGURE_ATA_DRIVER_TASK_PRIORITY;
|
||||
rtems_task_priority
|
||||
rtems_ata_driver_task_priority = CONFIGURE_ATA_DRIVER_TASK_PRIORITY;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -196,17 +198,17 @@ RTEMS_SYSINIT_ITEM(
|
||||
* NOTE: This also results in an atexit() handler being registered to close
|
||||
* /dev/console.
|
||||
*/
|
||||
#if defined(CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER) || \
|
||||
defined(CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER)
|
||||
#if defined( CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER ) || \
|
||||
defined( CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER )
|
||||
|
||||
#include <rtems/libio.h>
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
rtems_libio_post_driver,
|
||||
RTEMS_SYSINIT_STD_FILE_DESCRIPTORS,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
rtems_libio_post_driver,
|
||||
RTEMS_SYSINIT_STD_FILE_DESCRIPTORS,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
#endif
|
||||
|
||||
#endif /* CONFIGURE_INIT */
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
|
||||
#ifdef CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
||||
#ifdef CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
|
||||
#error "CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM cannot be used together with CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM"
|
||||
#error \
|
||||
"CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM cannot be used together with CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM"
|
||||
#endif
|
||||
|
||||
#define CONFIGURE_IMFS_DISABLE_CHMOD
|
||||
@@ -91,50 +92,60 @@
|
||||
#define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 3
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIGURE_APPLICATION_DISABLE_FILESYSTEM) || \
|
||||
#if !defined( CONFIGURE_APPLICATION_DISABLE_FILESYSTEM ) || \
|
||||
CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0
|
||||
#include <rtems/libio.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
|
||||
#ifdef CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_DOSFS
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_DOSFS"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_DOSFS"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_FATFS
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_FATFS"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_FATFS"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_FTPFS
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_FTPFS"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_FTPFS"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_IMFS
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_IMFS"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_IMFS"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_JFFS2
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_JFFS2"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_JFFS2"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_NFS
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_NFS"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_NFS"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_RFS
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_RFS"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_RFS"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_FILESYSTEM_TFTPFS
|
||||
#error "CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_TFTPFS"
|
||||
#error \
|
||||
"CONFIGURE_APPLICATION_DISABLE_FILESYSTEM cannot be used together with CONFIGURE_FILESYSTEM_TFTPFS"
|
||||
#endif
|
||||
#else
|
||||
#include <rtems/imfs.h>
|
||||
@@ -157,7 +168,7 @@
|
||||
|
||||
#ifndef CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY
|
||||
#define CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY \
|
||||
RTEMS_JFFS2_DELAYED_WRITE_TASK_PRIORITY_DEFAULT
|
||||
RTEMS_JFFS2_DELAYED_WRITE_TASK_PRIORITY_DEFAULT
|
||||
#endif
|
||||
|
||||
const rtems_jffs2_config jffs2_config = {
|
||||
@@ -186,21 +197,22 @@ extern "C" {
|
||||
|
||||
#ifndef CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
|
||||
#define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK \
|
||||
IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK
|
||||
IMFS_MEMFILE_DEFAULT_BYTES_PER_BLOCK
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 16 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 32 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 64 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 128 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 256 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 512 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 32 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 64 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 128 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 256 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 512 && \
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK != 1024
|
||||
#error "CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK must be a power of two between 16 and 1024"
|
||||
#error \
|
||||
"CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK must be a power of two between 16 and 1024"
|
||||
#endif
|
||||
|
||||
const size_t imfs_memfile_bytes_per_block =
|
||||
CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK;
|
||||
const size_t
|
||||
imfs_memfile_bytes_per_block = CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK;
|
||||
|
||||
/*
|
||||
* Using the default ops if user doesn't configure ops
|
||||
@@ -217,138 +229,130 @@ static const rtems_filesystem_operations_table IMFS_root_ops = {
|
||||
rtems_filesystem_default_lock,
|
||||
rtems_filesystem_default_unlock,
|
||||
#ifdef CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
|
||||
IMFS_eval_path_devfs,
|
||||
IMFS_eval_path_devfs,
|
||||
#else
|
||||
IMFS_eval_path,
|
||||
IMFS_eval_path,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_LINK
|
||||
rtems_filesystem_default_link,
|
||||
rtems_filesystem_default_link,
|
||||
#else
|
||||
IMFS_link,
|
||||
IMFS_link,
|
||||
#endif
|
||||
rtems_filesystem_default_are_nodes_equal,
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_MKNOD
|
||||
rtems_filesystem_default_mknod,
|
||||
rtems_filesystem_default_mknod,
|
||||
#else
|
||||
IMFS_mknod,
|
||||
IMFS_mknod,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_RMNOD
|
||||
rtems_filesystem_default_rmnod,
|
||||
rtems_filesystem_default_rmnod,
|
||||
#else
|
||||
IMFS_rmnod,
|
||||
IMFS_rmnod,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_CHMOD
|
||||
rtems_filesystem_default_fchmod,
|
||||
rtems_filesystem_default_fchmod,
|
||||
#else
|
||||
IMFS_fchmod,
|
||||
IMFS_fchmod,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_CHOWN
|
||||
rtems_filesystem_default_chown,
|
||||
rtems_filesystem_default_chown,
|
||||
#else
|
||||
IMFS_chown,
|
||||
IMFS_chown,
|
||||
#endif
|
||||
IMFS_node_clone,
|
||||
IMFS_node_free,
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_MOUNT
|
||||
rtems_filesystem_default_mount,
|
||||
rtems_filesystem_default_mount,
|
||||
#else
|
||||
IMFS_mount,
|
||||
IMFS_mount,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_UNMOUNT
|
||||
rtems_filesystem_default_unmount,
|
||||
rtems_filesystem_default_unmount,
|
||||
#else
|
||||
IMFS_unmount,
|
||||
IMFS_unmount,
|
||||
#endif
|
||||
rtems_filesystem_default_fsunmount,
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_UTIME
|
||||
rtems_filesystem_default_utimens,
|
||||
rtems_filesystem_default_utimens,
|
||||
#else
|
||||
IMFS_utimens,
|
||||
IMFS_utimens,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_SYMLINK
|
||||
rtems_filesystem_default_symlink,
|
||||
rtems_filesystem_default_symlink,
|
||||
#else
|
||||
IMFS_symlink,
|
||||
IMFS_symlink,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_READLINK
|
||||
rtems_filesystem_default_readlink,
|
||||
rtems_filesystem_default_readlink,
|
||||
#else
|
||||
IMFS_readlink,
|
||||
IMFS_readlink,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_RENAME
|
||||
rtems_filesystem_default_rename,
|
||||
rtems_filesystem_default_rename,
|
||||
#else
|
||||
IMFS_rename,
|
||||
IMFS_rename,
|
||||
#endif
|
||||
IMFS_statvfs
|
||||
};
|
||||
|
||||
static const IMFS_mknod_controls IMFS_root_mknod_controls = {
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_READDIR
|
||||
&IMFS_mknod_control_dir_minimal,
|
||||
&IMFS_mknod_control_dir_minimal,
|
||||
#else
|
||||
&IMFS_mknod_control_dir_default,
|
||||
&IMFS_mknod_control_dir_default,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE
|
||||
&IMFS_mknod_control_enosys,
|
||||
&IMFS_mknod_control_enosys,
|
||||
#else
|
||||
&IMFS_mknod_control_device,
|
||||
&IMFS_mknod_control_device,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_DISABLE_MKNOD_FILE
|
||||
&IMFS_mknod_control_enosys,
|
||||
&IMFS_mknod_control_enosys,
|
||||
#else
|
||||
&IMFS_mknod_control_memfile,
|
||||
&IMFS_mknod_control_memfile,
|
||||
#endif
|
||||
#ifdef CONFIGURE_IMFS_ENABLE_MKFIFO
|
||||
&IMFS_mknod_control_fifo
|
||||
&IMFS_mknod_control_fifo
|
||||
#else
|
||||
&IMFS_mknod_control_enosys
|
||||
&IMFS_mknod_control_enosys
|
||||
#endif
|
||||
};
|
||||
|
||||
static const IMFS_mount_data IMFS_root_mount_data = {
|
||||
&IMFS_root_fs_info,
|
||||
&IMFS_root_ops,
|
||||
&IMFS_root_mknod_controls
|
||||
};
|
||||
static const IMFS_mount_data IMFS_root_mount_data =
|
||||
{ &IMFS_root_fs_info, &IMFS_root_ops, &IMFS_root_mknod_controls };
|
||||
|
||||
const rtems_filesystem_table_t rtems_filesystem_table[] = {
|
||||
{ "/", IMFS_initialize_support },
|
||||
#ifdef CONFIGURE_FILESYSTEM_DOSFS
|
||||
{ RTEMS_FILESYSTEM_TYPE_DOSFS, rtems_dosfs_initialize },
|
||||
{ RTEMS_FILESYSTEM_TYPE_DOSFS, rtems_dosfs_initialize },
|
||||
#endif
|
||||
#ifdef CONFIGURE_FILESYSTEM_FATFS
|
||||
{ RTEMS_FILESYSTEM_TYPE_FATFS, rtems_fatfs_initialize },
|
||||
{ RTEMS_FILESYSTEM_TYPE_FATFS, rtems_fatfs_initialize },
|
||||
#endif
|
||||
#ifdef CONFIGURE_FILESYSTEM_FTPFS
|
||||
{ RTEMS_FILESYSTEM_TYPE_FTPFS, rtems_ftpfs_initialize },
|
||||
{ RTEMS_FILESYSTEM_TYPE_FTPFS, rtems_ftpfs_initialize },
|
||||
#endif
|
||||
#ifdef CONFIGURE_FILESYSTEM_IMFS
|
||||
{ RTEMS_FILESYSTEM_TYPE_IMFS, IMFS_initialize },
|
||||
{ RTEMS_FILESYSTEM_TYPE_IMFS, IMFS_initialize },
|
||||
#endif
|
||||
#ifdef CONFIGURE_FILESYSTEM_JFFS2
|
||||
{ RTEMS_FILESYSTEM_TYPE_JFFS2, rtems_jffs2_initialize },
|
||||
{ RTEMS_FILESYSTEM_TYPE_JFFS2, rtems_jffs2_initialize },
|
||||
#endif
|
||||
#ifdef CONFIGURE_FILESYSTEM_NFS
|
||||
{ RTEMS_FILESYSTEM_TYPE_NFS, rtems_nfs_initialize },
|
||||
{ RTEMS_FILESYSTEM_TYPE_NFS, rtems_nfs_initialize },
|
||||
#endif
|
||||
#ifdef CONFIGURE_FILESYSTEM_RFS
|
||||
{ RTEMS_FILESYSTEM_TYPE_RFS, rtems_rfs_rtems_initialise },
|
||||
{ RTEMS_FILESYSTEM_TYPE_RFS, rtems_rfs_rtems_initialise },
|
||||
#endif
|
||||
#ifdef CONFIGURE_FILESYSTEM_TFTPFS
|
||||
{ RTEMS_FILESYSTEM_TYPE_TFTPFS, rtems_tftpfs_initialize },
|
||||
{ RTEMS_FILESYSTEM_TYPE_TFTPFS, rtems_tftpfs_initialize },
|
||||
#endif
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
const rtems_filesystem_mount_configuration
|
||||
rtems_filesystem_root_configuration = {
|
||||
NULL,
|
||||
NULL,
|
||||
"/",
|
||||
RTEMS_FILESYSTEM_READ_WRITE,
|
||||
&IMFS_root_mount_data
|
||||
};
|
||||
rtems_filesystem_root_configuration =
|
||||
{ NULL, NULL, "/", RTEMS_FILESYSTEM_READ_WRITE, &IMFS_root_mount_data };
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
rtems_filesystem_initialize,
|
||||
@@ -359,9 +363,9 @@ RTEMS_SYSINIT_ITEM(
|
||||
#endif /* !CONFIGURE_APPLICATION_DISABLE_FILESYSTEM */
|
||||
|
||||
#if CONFIGURE_MAXIMUM_FILE_DESCRIPTORS > 0
|
||||
rtems_libio_t rtems_libio_iops[ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS ];
|
||||
rtems_libio_t rtems_libio_iops[ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS ];
|
||||
|
||||
const uint32_t rtems_libio_number_iops = RTEMS_ARRAY_SIZE( rtems_libio_iops );
|
||||
const uint32_t rtems_libio_number_iops = RTEMS_ARRAY_SIZE( rtems_libio_iops );
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -50,44 +50,44 @@ extern "C" {
|
||||
*/
|
||||
#ifdef RTEMS_PCI_CONFIG_LIB
|
||||
#ifdef CONFIGURE_INIT
|
||||
#define PCI_LIB_NONE 0
|
||||
#define PCI_LIB_AUTO 1
|
||||
#define PCI_LIB_STATIC 2
|
||||
#define PCI_LIB_READ 3
|
||||
#define PCI_LIB_NONE 0
|
||||
#define PCI_LIB_AUTO 1
|
||||
#define PCI_LIB_STATIC 2
|
||||
#define PCI_LIB_READ 3
|
||||
#define PCI_LIB_PERIPHERAL 4
|
||||
#if CONFIGURE_PCI_LIB == PCI_LIB_AUTO
|
||||
#define PCI_CFG_AUTO_LIB
|
||||
#include <pci/cfg.h>
|
||||
struct pci_bus pci_hb;
|
||||
#define PCI_LIB_INIT pci_config_auto
|
||||
struct pci_bus pci_hb;
|
||||
#define PCI_LIB_INIT pci_config_auto
|
||||
#define PCI_LIB_CONFIG pci_config_auto_register
|
||||
#elif CONFIGURE_PCI_LIB == PCI_LIB_STATIC
|
||||
#define PCI_CFG_STATIC_LIB
|
||||
#include <pci/cfg.h>
|
||||
#define PCI_LIB_INIT pci_config_static
|
||||
#define PCI_LIB_INIT pci_config_static
|
||||
#define PCI_LIB_CONFIG NULL
|
||||
/* Let user define PCI configuration (struct pci_bus pci_hb) */
|
||||
/* Let user define PCI configuration (struct pci_bus pci_hb) */
|
||||
#elif CONFIGURE_PCI_LIB == PCI_LIB_READ
|
||||
#define PCI_CFG_READ_LIB
|
||||
#include <pci/cfg.h>
|
||||
#define PCI_LIB_INIT pci_config_read
|
||||
#define PCI_LIB_INIT pci_config_read
|
||||
#define PCI_LIB_CONFIG NULL
|
||||
struct pci_bus pci_hb;
|
||||
struct pci_bus pci_hb;
|
||||
#elif CONFIGURE_PCI_LIB == PCI_LIB_PERIPHERAL
|
||||
#define PCI_LIB_INIT pci_config_peripheral
|
||||
#define PCI_LIB_INIT pci_config_peripheral
|
||||
#define PCI_LIB_CONFIG NULL
|
||||
/* Let user define PCI configuration (struct pci_bus pci_hb) */
|
||||
/* Let user define PCI configuration (struct pci_bus pci_hb) */
|
||||
#elif CONFIGURE_PCI_LIB == PCI_LIB_NONE
|
||||
#define PCI_LIB_INIT NULL
|
||||
#define PCI_LIB_INIT NULL
|
||||
#define PCI_LIB_CONFIG NULL
|
||||
/* No PCI Configuration at all, user can use/debug access routines */
|
||||
/* No PCI Configuration at all, user can use/debug access routines */
|
||||
#else
|
||||
#error NO PCI LIBRARY DEFINED
|
||||
#endif
|
||||
|
||||
const int pci_config_lib_type = CONFIGURE_PCI_LIB;
|
||||
int (*pci_config_lib_init)(void) = PCI_LIB_INIT;
|
||||
void (*pci_config_lib_register)(void *config) = PCI_LIB_CONFIG;
|
||||
const int pci_config_lib_type = CONFIGURE_PCI_LIB;
|
||||
int ( *pci_config_lib_init )( void ) = PCI_LIB_INIT;
|
||||
void ( *pci_config_lib_register )( void *config ) = PCI_LIB_CONFIG;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -45,12 +45,13 @@
|
||||
|
||||
#include <rtems/confdefs/bsp.h>
|
||||
|
||||
#if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
|
||||
defined(CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK)
|
||||
#if !defined( CONFIGURE_DISABLE_BSP_SETTINGS ) && \
|
||||
defined( CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK )
|
||||
#define _CONFIGURE_HEAP_EXTEND_VIA_SBRK
|
||||
#endif
|
||||
|
||||
#if defined(_CONFIGURE_HEAP_EXTEND_VIA_SBRK) || defined(CONFIGURE_MALLOC_DIRTY)
|
||||
#if defined( _CONFIGURE_HEAP_EXTEND_VIA_SBRK ) || \
|
||||
defined( CONFIGURE_MALLOC_DIRTY )
|
||||
#include <rtems/malloc.h>
|
||||
#endif
|
||||
|
||||
@@ -59,13 +60,12 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef _CONFIGURE_HEAP_EXTEND_VIA_SBRK
|
||||
const rtems_heap_extend_handler rtems_malloc_extend_handler =
|
||||
rtems_heap_extend_via_sbrk;
|
||||
const rtems_heap_extend_handler
|
||||
rtems_malloc_extend_handler = rtems_heap_extend_via_sbrk;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MALLOC_DIRTY
|
||||
rtems_malloc_dirtier_t rtems_malloc_dirty_helper =
|
||||
rtems_malloc_dirty_memory;
|
||||
rtems_malloc_dirtier_t rtems_malloc_dirty_helper = rtems_malloc_dirty_memory;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -80,28 +80,26 @@
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MP_NODE_NUMBER > CONFIGURE_MP_MAXIMUM_NODES
|
||||
#error "CONFIGURE_MP_NODE_NUMBER must be less than or equal to CONFIGURE_MP_MAXIMUM_NODES"
|
||||
#error \
|
||||
"CONFIGURE_MP_NODE_NUMBER must be less than or equal to CONFIGURE_MP_MAXIMUM_NODES"
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
Objects_MP_Control _Objects_MP_Controls[
|
||||
CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
|
||||
];
|
||||
Objects_MP_Control _Objects_MP_Controls[ CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS ];
|
||||
|
||||
struct Thread_Configured_proxy_control {
|
||||
Thread_Proxy_control Control;
|
||||
Thread_Proxy_control Control;
|
||||
Thread_queue_Configured_heads Heads;
|
||||
};
|
||||
|
||||
static Thread_Configured_proxy_control _Thread_MP_Configured_proxies[
|
||||
CONFIGURE_MP_MAXIMUM_PROXIES
|
||||
];
|
||||
static Thread_Configured_proxy_control
|
||||
_Thread_MP_Configured_proxies[ CONFIGURE_MP_MAXIMUM_PROXIES ];
|
||||
|
||||
Thread_Configured_proxy_control * const _Thread_MP_Proxies =
|
||||
&_Thread_MP_Configured_proxies[ 0 ];
|
||||
Thread_Configured_proxy_control *const
|
||||
_Thread_MP_Proxies = &_Thread_MP_Configured_proxies[ 0 ];
|
||||
|
||||
const MPCI_Configuration _MPCI_Configuration = {
|
||||
CONFIGURE_MP_NODE_NUMBER,
|
||||
@@ -112,13 +110,12 @@ const MPCI_Configuration _MPCI_Configuration = {
|
||||
CONFIGURE_MP_MPCI_TABLE_POINTER
|
||||
};
|
||||
|
||||
char _MPCI_Receive_server_stack[
|
||||
CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
+ CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
|
||||
+ CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK
|
||||
+ CPU_ALL_TASKS_ARE_FP * CONTEXT_FP_SIZE
|
||||
] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
|
||||
RTEMS_SECTION( ".rtemsstack.mpci" );
|
||||
char _MPCI_Receive_server_stack
|
||||
[ CONFIGURE_MINIMUM_TASK_STACK_SIZE +
|
||||
CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK +
|
||||
CPU_MPCI_RECEIVE_SERVER_EXTRA_STACK +
|
||||
CPU_ALL_TASKS_ARE_FP *
|
||||
CONTEXT_FP_SIZE ] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT ) RTEMS_SECTION( ".rtemsstack.mpci" );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@@ -129,7 +126,8 @@ RTEMS_SECTION( ".rtemsstack.mpci" );
|
||||
#else /* RTEMS_MULTIPROCESSING */
|
||||
|
||||
#ifdef CONFIGURE_MP_APPLICATION
|
||||
#error "CONFIGURE_MP_APPLICATION must not be defined if multiprocessing is disabled"
|
||||
#error \
|
||||
"CONFIGURE_MP_APPLICATION must not be defined if multiprocessing is disabled"
|
||||
#endif
|
||||
|
||||
#endif /* RTEMS_MULTIPROCESSING */
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
#ifdef CONFIGURE_INIT
|
||||
|
||||
#if defined(RTEMS_NEWLIB) && !defined(CONFIGURE_DISABLE_NEWLIB_REENTRANCY)
|
||||
#if defined( RTEMS_NEWLIB ) && !defined( CONFIGURE_DISABLE_NEWLIB_REENTRANCY )
|
||||
#include <rtems/score/percpu.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <sys/reent.h>
|
||||
@@ -57,12 +57,12 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) && \
|
||||
!defined(_REENT_THREAD_LOCAL)
|
||||
struct _reent *__getreent( void )
|
||||
{
|
||||
return _Thread_Get_executing()->libc_reent;
|
||||
}
|
||||
#if defined( _CONFIGURE_ENABLE_NEWLIB_REENTRANCY ) && \
|
||||
!defined( _REENT_THREAD_LOCAL )
|
||||
struct _reent *__getreent( void )
|
||||
{
|
||||
return _Thread_Get_executing()->libc_reent;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -85,38 +85,38 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_BARRIERS > 0
|
||||
BARRIER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_BARRIERS );
|
||||
BARRIER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_BARRIERS );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_MESSAGE_QUEUES > 0
|
||||
MESSAGE_QUEUE_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_MESSAGE_QUEUES );
|
||||
MESSAGE_QUEUE_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_MESSAGE_QUEUES );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_PARTITIONS > 0
|
||||
PARTITION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PARTITIONS );
|
||||
PARTITION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PARTITIONS );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_PERIODS > 0
|
||||
RATE_MONOTONIC_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PERIODS );
|
||||
RATE_MONOTONIC_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PERIODS );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_PORTS > 0
|
||||
DUAL_PORTED_MEMORY_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PORTS );
|
||||
DUAL_PORTED_MEMORY_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_PORTS );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_REGIONS > 0
|
||||
REGION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_REGIONS );
|
||||
REGION_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_REGIONS );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_SEMAPHORES > 0
|
||||
SEMAPHORE_INFORMATION_DEFINE(
|
||||
CONFIGURE_MAXIMUM_SEMAPHORES,
|
||||
_CONFIGURE_SCHEDULER_COUNT
|
||||
);
|
||||
SEMAPHORE_INFORMATION_DEFINE(
|
||||
CONFIGURE_MAXIMUM_SEMAPHORES,
|
||||
_CONFIGURE_SCHEDULER_COUNT
|
||||
);
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_TIMERS > 0
|
||||
TIMER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_TIMERS );
|
||||
TIMER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_TIMERS );
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -52,8 +52,8 @@
|
||||
#include <limits.h>
|
||||
|
||||
#define _Configure_Memory_for_named_objects( _number, _size ) \
|
||||
( rtems_resource_maximum_per_allocation( _number ) \
|
||||
* _Configure_From_workspace( _POSIX_PATH_MAX + 1 ) )
|
||||
( rtems_resource_maximum_per_allocation( _number ) * \
|
||||
_Configure_From_workspace( _POSIX_PATH_MAX + 1 ) )
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
|
||||
#define CONFIGURE_MAXIMUM_POSIX_KEYS 0
|
||||
@@ -61,21 +61,24 @@
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
|
||||
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS \
|
||||
( CONFIGURE_MAXIMUM_POSIX_KEYS * \
|
||||
( CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_TASKS ) )
|
||||
( CONFIGURE_MAXIMUM_POSIX_KEYS * \
|
||||
( CONFIGURE_MAXIMUM_POSIX_THREADS + CONFIGURE_MAXIMUM_TASKS ) )
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 \
|
||||
&& CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS < CONFIGURE_MAXIMUM_POSIX_KEYS
|
||||
#error "CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS must be greater than or equal to CONFIGURE_MAXIMUM_POSIX_KEYS"
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 && \
|
||||
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS < CONFIGURE_MAXIMUM_POSIX_KEYS
|
||||
#error \
|
||||
"CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS must be greater than or equal to CONFIGURE_MAXIMUM_POSIX_KEYS"
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEYS == 0 \
|
||||
&& CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
|
||||
#warning "If CONFIGURE_MAXIMUM_POSIX_KEYS is zero, then CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS should be zero as well"
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEYS == 0 && \
|
||||
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
|
||||
#warning \
|
||||
"If CONFIGURE_MAXIMUM_POSIX_KEYS is zero, then CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS should be zero as well"
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 || CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0 || \
|
||||
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
|
||||
#include <rtems/posix/key.h>
|
||||
#endif
|
||||
|
||||
@@ -104,94 +107,96 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEYS > 0
|
||||
POSIX_KEYS_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_KEYS );
|
||||
POSIX_KEYS_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_KEYS );
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS > 0
|
||||
POSIX_Keys_Key_value_pair _POSIX_Keys_Key_value_pairs[
|
||||
rtems_resource_maximum_per_allocation(
|
||||
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
|
||||
)
|
||||
];
|
||||
POSIX_Keys_Key_value_pair
|
||||
_POSIX_Keys_Key_value_pairs[ rtems_resource_maximum_per_allocation(
|
||||
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
|
||||
) ];
|
||||
|
||||
const uint32_t _POSIX_Keys_Key_value_pair_maximum =
|
||||
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS;
|
||||
const uint32_t
|
||||
_POSIX_Keys_Key_value_pair_maximum = CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS;
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES > 0
|
||||
POSIX_MESSAGE_QUEUE_INFORMATION_DEFINE(
|
||||
CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
|
||||
);
|
||||
POSIX_MESSAGE_QUEUE_INFORMATION_DEFINE(
|
||||
CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
|
||||
);
|
||||
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES \
|
||||
_Configure_Memory_for_named_objects( \
|
||||
CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES, \
|
||||
sizeof( POSIX_Message_queue_Control ) \
|
||||
)
|
||||
_Configure_Memory_for_named_objects( \
|
||||
CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES, \
|
||||
sizeof( POSIX_Message_queue_Control ) \
|
||||
)
|
||||
#else
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES 0
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_SEMAPHORES > 0
|
||||
POSIX_SEMAPHORE_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_SEMAPHORES );
|
||||
POSIX_SEMAPHORE_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_SEMAPHORES );
|
||||
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES \
|
||||
_Configure_Memory_for_named_objects( \
|
||||
CONFIGURE_MAXIMUM_POSIX_SEMAPHORES, \
|
||||
sizeof( POSIX_Semaphore_Control ) \
|
||||
)
|
||||
_Configure_Memory_for_named_objects( \
|
||||
CONFIGURE_MAXIMUM_POSIX_SEMAPHORES, \
|
||||
sizeof( POSIX_Semaphore_Control ) \
|
||||
)
|
||||
#else
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES 0
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_SHMS > 0
|
||||
POSIX_SHM_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_SHMS );
|
||||
POSIX_SHM_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_SHMS );
|
||||
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_SHMS \
|
||||
_Configure_Memory_for_named_objects( \
|
||||
CONFIGURE_MAXIMUM_POSIX_SHMS, \
|
||||
sizeof( POSIX_Shm_Control ) \
|
||||
)
|
||||
_Configure_Memory_for_named_objects( \
|
||||
CONFIGURE_MAXIMUM_POSIX_SHMS, \
|
||||
sizeof( POSIX_Shm_Control ) \
|
||||
)
|
||||
#else
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_SHMS 0
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS > 0
|
||||
#ifndef RTEMS_POSIX_API
|
||||
#error "CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS must be zero if POSIX API is disabled"
|
||||
#error \
|
||||
"CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS must be zero if POSIX API is disabled"
|
||||
#endif
|
||||
|
||||
const uint32_t _POSIX_signals_Maximum_queued_signals =
|
||||
CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS;
|
||||
const uint32_t _POSIX_signals_Maximum_queued_signals =
|
||||
CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS;
|
||||
|
||||
POSIX_signals_Siginfo_node _POSIX_signals_Siginfo_nodes[
|
||||
CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
|
||||
];
|
||||
POSIX_signals_Siginfo_node
|
||||
_POSIX_signals_Siginfo_nodes[ CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ];
|
||||
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS \
|
||||
_Configure_From_workspace( CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS \
|
||||
* sizeof( POSIX_signals_Siginfo_node ) )
|
||||
_Configure_From_workspace( \
|
||||
CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS * \
|
||||
sizeof( POSIX_signals_Siginfo_node ) \
|
||||
)
|
||||
#else
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS 0
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_TIMERS > 0
|
||||
#ifndef RTEMS_POSIX_API
|
||||
#error "CONFIGURE_MAXIMUM_POSIX_TIMERS must be zero if POSIX API is disabled"
|
||||
#error \
|
||||
"CONFIGURE_MAXIMUM_POSIX_TIMERS must be zero if POSIX API is disabled"
|
||||
#endif
|
||||
|
||||
POSIX_TIMER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_TIMERS );
|
||||
POSIX_TIMER_INFORMATION_DEFINE( CONFIGURE_MAXIMUM_POSIX_TIMERS );
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_OBJECTS \
|
||||
( _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES \
|
||||
+ _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS \
|
||||
+ _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES \
|
||||
+ _CONFIGURE_MEMORY_FOR_POSIX_SHMS )
|
||||
#define _CONFIGURE_MEMORY_FOR_POSIX_OBJECTS \
|
||||
( _CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES + \
|
||||
_CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS + \
|
||||
_CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES + \
|
||||
_CONFIGURE_MEMORY_FOR_POSIX_SHMS )
|
||||
|
||||
#endif /* CONFIGURE_INIT */
|
||||
|
||||
|
||||
@@ -59,135 +59,167 @@
|
||||
*/
|
||||
|
||||
#ifdef CONFIGURE_BDBUF_BUFFER_SIZE
|
||||
#error "The CONFIGURE_BDBUF_BUFFER_SIZE configuration option is obsolete since RTEMS 4.10.0"
|
||||
#error \
|
||||
"The CONFIGURE_BDBUF_BUFFER_SIZE configuration option is obsolete since RTEMS 4.10.0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_BDBUF_BUFFER_COUNT
|
||||
#error "The CONFIGURE_BDBUF_BUFFER_COUNT configuration option is obsolete since RTEMS 4.10.0"
|
||||
#error \
|
||||
"The CONFIGURE_BDBUF_BUFFER_COUNT configuration option is obsolete since RTEMS 4.10.0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_DEVICES
|
||||
#warning "The CONFIGURE_MAXIMUM_DEVICES configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_DEVICES configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_ENABLE_GO
|
||||
#warning "The CONFIGURE_ENABLE_GO configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_ENABLE_GO configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_GNAT_RTEMS
|
||||
#warning "The CONFIGURE_GNAT_RTEMS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_GNAT_RTEMS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
|
||||
#error "The CONFIGURE_HAS_OWN_CONFIGURATION_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#error \
|
||||
"The CONFIGURE_HAS_OWN_CONFIGURATION_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_HAS_OWN_BDBUF_TABLE
|
||||
#error "The CONFIGURE_HAS_BDBUF_TABLE configuration option is obsolete since RTEMS 4.10.0"
|
||||
#error \
|
||||
"The CONFIGURE_HAS_BDBUF_TABLE configuration option is obsolete since RTEMS 4.10.0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE
|
||||
#error "The CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#error \
|
||||
"The CONFIGURE_HAS_OWN_DEVICE_DRIVER_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_HAS_OWN_FILESYSTEM_TABLE
|
||||
#error "The CONFIGURE_HAS_OWN_FILESYSTEM_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#error \
|
||||
"The CONFIGURE_HAS_OWN_FILESYSTEM_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_HAS_OWN_INIT_TABLE
|
||||
#error "The CONFIGURE_HAS_OWN_INIT_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#error \
|
||||
"The CONFIGURE_HAS_OWN_INIT_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_HAS_OWN_MOUNT_TABLE
|
||||
#error "The CONFIGURE_HAS_OWN_MOUNT_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#error \
|
||||
"The CONFIGURE_HAS_OWN_MOUNT_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE
|
||||
#error "The CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#error \
|
||||
"The CONFIGURE_HAS_OWN_MULTIPROCESSING_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
|
||||
#warning "CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS has been renamed to CONFIGURE_MAXIMUM_FILE_DESCRIPTORS since RTEMS 5.1"
|
||||
#define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
|
||||
#warning \
|
||||
"CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS has been renamed to CONFIGURE_MAXIMUM_FILE_DESCRIPTORS since RTEMS 5.1"
|
||||
#define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS \
|
||||
CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_ADA_TASKS
|
||||
#warning "The CONFIGURE_MAXIMUM_ADA_TASKS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_ADA_TASKS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_FAKE_ADA_TASKS
|
||||
#warning "The CONFIGURE_MAXIMUM_FAKE_ADA_TASKS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_FAKE_ADA_TASKS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_FIFOS
|
||||
#warning "CONFIGURE_MAXIMUM_FIFOS is obsolete since RTEMS 5.1; use CONFIGURE_IMFS_ENABLE_MKFIFO instead"
|
||||
#warning \
|
||||
"CONFIGURE_MAXIMUM_FIFOS is obsolete since RTEMS 5.1; use CONFIGURE_IMFS_ENABLE_MKFIFO instead"
|
||||
#if CONFIGURE_MAXIMUM_FIFOS > 0
|
||||
#define CONFIGURE_IMFS_ENABLE_MKFIFO
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_GOROUTINES
|
||||
#warning "The CONFIGURE_MAXIMUM_GOROUTINES configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_GOROUTINES configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_GO_CHANNELS
|
||||
#warning "The CONFIGURE_MAXIMUM_GO_CHANNELS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_GO_CHANNELS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_MRSP_SEMAPHORES
|
||||
#warning "The CONFIGURE_MAXIMUM_MRSP_SEMAPHORES configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_MRSP_SEMAPHORES configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_PIPES
|
||||
#warning "CONFIGURE_MAXIMUM_PIPES is obsolete since RTEMS 5.1; use CONFIGURE_IMFS_ENABLE_MKFIFO instead"
|
||||
#warning \
|
||||
"CONFIGURE_MAXIMUM_PIPES is obsolete since RTEMS 5.1; use CONFIGURE_IMFS_ENABLE_MKFIFO instead"
|
||||
#if CONFIGURE_MAXIMUM_PIPES > 0
|
||||
#define CONFIGURE_IMFS_ENABLE_MKFIFO
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_POSIX_BARRIERS
|
||||
#warning "The CONFIGURE_MAXIMUM_POSIX_BARRIERS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_POSIX_BARRIERS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
|
||||
#warning "The CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS
|
||||
#warning "The CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_POSIX_MUTEXES
|
||||
#warning "The CONFIGURE_MAXIMUM_POSIX_MUTEXES configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_POSIX_MUTEXES configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_POSIX_RWLOCKS
|
||||
#warning "The CONFIGURE_MAXIMUM_POSIX_RWLOCKS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_POSIX_RWLOCKS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_POSIX_SPINLOCKS
|
||||
#warning "The CONFIGURE_MAXIMUM_POSIX_SPINLOCKS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_POSIX_SPINLOCKS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_MAXIMUM_PTYS
|
||||
#warning "The CONFIGURE_MAXIMUM_PTYS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_MAXIMUM_PTYS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_NUMBER_OF_TERMIOS_PORTS
|
||||
#warning "The CONFIGURE_NUMBER_OF_TERMIOS_PORTS configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_NUMBER_OF_TERMIOS_PORTS configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
|
||||
#error "The CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#error \
|
||||
"The CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_SCHEDULER_CONTEXT
|
||||
#warning "CONFIGURE_SCHEDULER_CONTEXT has been renamed to CONFIGURE_SCHEDULER since RTEMS 5.1"
|
||||
#warning \
|
||||
"CONFIGURE_SCHEDULER_CONTEXT has been renamed to CONFIGURE_SCHEDULER since RTEMS 5.1"
|
||||
#define CONFIGURE_SCHEDULER CONFIGURE_SCHEDULER_CONTEXT
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_SCHEDULER_CONTROLS
|
||||
#warning "CONFIGURE_SCHEDULER_CONTROLS has been renamed to CONFIGURE_SCHEDULER_TABLE_ENTRIES since RTEMS 5.1"
|
||||
#warning \
|
||||
"CONFIGURE_SCHEDULER_CONTROLS has been renamed to CONFIGURE_SCHEDULER_TABLE_ENTRIES since RTEMS 5.1"
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES CONFIGURE_SCHEDULER_CONTROLS
|
||||
#endif
|
||||
|
||||
@@ -196,41 +228,50 @@
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_SMP_MAXIMUM_PROCESSORS
|
||||
#warning "CONFIGURE_SMP_MAXIMUM_PROCESSORS has been renamed to CONFIGURE_MAXIMUM_PROCESSORS since RTEMS 5.1"
|
||||
#warning \
|
||||
"CONFIGURE_SMP_MAXIMUM_PROCESSORS has been renamed to CONFIGURE_MAXIMUM_PROCESSORS since RTEMS 5.1"
|
||||
#define CONFIGURE_MAXIMUM_PROCESSORS CONFIGURE_SMP_MAXIMUM_PROCESSORS
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_SMP_SCHEDULER_ASSIGNMENTS
|
||||
#warning "CONFIGURE_SMP_SCHEDULER_ASSIGNMENTS has been renamed to CONFIGURE_SCHEDULER_ASSIGNMENTS since RTEMS 5.1"
|
||||
#warning \
|
||||
"CONFIGURE_SMP_SCHEDULER_ASSIGNMENTS has been renamed to CONFIGURE_SCHEDULER_ASSIGNMENTS since RTEMS 5.1"
|
||||
#define CONFIGURE_SCHEDULER_ASSIGNMENTS CONFIGURE_SMP_SCHEDULER_ASSIGNMENTS
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_TERMIOS_DISABLED
|
||||
#warning "The CONFIGURE_TERMIOS_DISABLED configuration option is obsolete since RTEMS 5.1"
|
||||
#warning \
|
||||
"The CONFIGURE_TERMIOS_DISABLED configuration option is obsolete since RTEMS 5.1"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
|
||||
#error "The CONFIGURE_TEST_NEEDS_CLOCK_DRIVER configuration option is obsolete since at least RTEMS 4.5.0"
|
||||
#error \
|
||||
"The CONFIGURE_TEST_NEEDS_CLOCK_DRIVER configuration option is obsolete since at least RTEMS 4.5.0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
|
||||
#error "The CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#error \
|
||||
"The CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_TEST_NEEDS_RTC_DRIVER
|
||||
#error "The CONFIGURE_TEST_NEEDS_RTC_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#error \
|
||||
"The CONFIGURE_TEST_NEEDS_RTC_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_TEST_NEEDS_STUB_DRIVER
|
||||
#error "The CONFIGURE_TEST_NEEDS_STUB_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#error \
|
||||
"The CONFIGURE_TEST_NEEDS_STUB_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_TEST_NEEDS_TIMER_DRIVER
|
||||
#error "The CONFIGURE_TEST_NEEDS_TIMER_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#error \
|
||||
"The CONFIGURE_TEST_NEEDS_TIMER_DRIVER configuration option is obsolete at least RTEMS 4.5.0"
|
||||
#endif
|
||||
|
||||
#ifdef STACK_CHECKER_ON
|
||||
#warning "STACK_CHECKER_ON has been renamed to CONFIGURE_STACK_CHECKER_ENABLED since RTEMS 4.10.0"
|
||||
#warning \
|
||||
"STACK_CHECKER_ON has been renamed to CONFIGURE_STACK_CHECKER_ENABLED since RTEMS 4.10.0"
|
||||
#define CONFIGURE_STACK_CHECKER_ENABLED
|
||||
#endif
|
||||
|
||||
|
||||
@@ -61,25 +61,24 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/* Ensure that _CONFIGURE_MAXIMUM_PROCESSORS > 1 only in SMP configurations */
|
||||
#if defined(CONFIGURE_MAXIMUM_PROCESSORS) && defined(RTEMS_SMP)
|
||||
#if defined( CONFIGURE_MAXIMUM_PROCESSORS ) && defined( RTEMS_SMP )
|
||||
#define _CONFIGURE_MAXIMUM_PROCESSORS CONFIGURE_MAXIMUM_PROCESSORS
|
||||
#else
|
||||
#define _CONFIGURE_MAXIMUM_PROCESSORS 1
|
||||
#endif
|
||||
|
||||
#ifdef RTEMS_SMP
|
||||
const uint32_t _SMP_Processor_configured_maximum =
|
||||
_CONFIGURE_MAXIMUM_PROCESSORS;
|
||||
const uint32_t
|
||||
_SMP_Processor_configured_maximum = _CONFIGURE_MAXIMUM_PROCESSORS;
|
||||
|
||||
Per_CPU_Control_envelope
|
||||
_Per_CPU_Information[ _CONFIGURE_MAXIMUM_PROCESSORS ];
|
||||
Per_CPU_Control_envelope _Per_CPU_Information[ _CONFIGURE_MAXIMUM_PROCESSORS ];
|
||||
#endif
|
||||
|
||||
/* Interrupt stack configuration */
|
||||
|
||||
#ifndef CONFIGURE_INTERRUPT_STACK_SIZE
|
||||
#if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
|
||||
defined(BSP_INTERRUPT_STACK_SIZE)
|
||||
#if !defined( CONFIGURE_DISABLE_BSP_SETTINGS ) && \
|
||||
defined( BSP_INTERRUPT_STACK_SIZE )
|
||||
#define CONFIGURE_INTERRUPT_STACK_SIZE BSP_INTERRUPT_STACK_SIZE
|
||||
#else
|
||||
#define CONFIGURE_INTERRUPT_STACK_SIZE CPU_STACK_MINIMUM_SIZE
|
||||
@@ -87,25 +86,24 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_INTERRUPT_STACK_SIZE % CPU_INTERRUPT_STACK_ALIGNMENT != 0
|
||||
#error "CONFIGURE_INTERRUPT_STACK_SIZE fails to meet the CPU port interrupt stack alignment"
|
||||
#error \
|
||||
"CONFIGURE_INTERRUPT_STACK_SIZE fails to meet the CPU port interrupt stack alignment"
|
||||
#endif
|
||||
|
||||
RTEMS_DEFINE_GLOBAL_SYMBOL(
|
||||
_ISR_Stack_size,
|
||||
CONFIGURE_INTERRUPT_STACK_SIZE
|
||||
);
|
||||
RTEMS_DEFINE_GLOBAL_SYMBOL( _ISR_Stack_size, CONFIGURE_INTERRUPT_STACK_SIZE );
|
||||
|
||||
#define _CONFIGURE_INTERRUPT_STACK_AREA_SIZE \
|
||||
( CONFIGURE_INTERRUPT_STACK_SIZE * _CONFIGURE_MAXIMUM_PROCESSORS )
|
||||
|
||||
char _ISR_Stack_area_begin[ _CONFIGURE_INTERRUPT_STACK_AREA_SIZE ]
|
||||
RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
|
||||
RTEMS_SECTION( ".rtemsstack.interrupt" );
|
||||
char _ISR_Stack_area_begin
|
||||
[ _CONFIGURE_INTERRUPT_STACK_AREA_SIZE ] RTEMS_ALIGNED(
|
||||
CPU_INTERRUPT_STACK_ALIGNMENT
|
||||
) RTEMS_SECTION( ".rtemsstack.interrupt" );
|
||||
|
||||
RTEMS_DEFINE_GLOBAL_SYMBOL(
|
||||
_ISR_Stack_area_end,
|
||||
RTEMS_SYMBOL_NAME( _ISR_Stack_area_begin )
|
||||
+ _CONFIGURE_INTERRUPT_STACK_AREA_SIZE
|
||||
RTEMS_SYMBOL_NAME( _ISR_Stack_area_begin ) +
|
||||
_CONFIGURE_INTERRUPT_STACK_AREA_SIZE
|
||||
);
|
||||
|
||||
/* Thread stack size configuration */
|
||||
@@ -116,14 +114,14 @@ RTEMS_DEFINE_GLOBAL_SYMBOL(
|
||||
|
||||
#ifndef CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
|
||||
#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE \
|
||||
( 2 * CONFIGURE_MINIMUM_TASK_STACK_SIZE )
|
||||
( 2 * CONFIGURE_MINIMUM_TASK_STACK_SIZE )
|
||||
#endif
|
||||
|
||||
/* Idle thread configuration */
|
||||
|
||||
#ifndef CONFIGURE_IDLE_TASK_STACK_SIZE
|
||||
#if !defined(CONFIGURE_DISABLE_BSP_SETTINGS) && \
|
||||
defined(BSP_IDLE_TASK_STACK_SIZE)
|
||||
#if !defined( CONFIGURE_DISABLE_BSP_SETTINGS ) && \
|
||||
defined( BSP_IDLE_TASK_STACK_SIZE )
|
||||
#define CONFIGURE_IDLE_TASK_STACK_SIZE BSP_IDLE_TASK_STACK_SIZE
|
||||
#else
|
||||
#define CONFIGURE_IDLE_TASK_STACK_SIZE CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
@@ -131,23 +129,25 @@ RTEMS_DEFINE_GLOBAL_SYMBOL(
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_IDLE_TASK_STACK_SIZE < CONFIGURE_MINIMUM_TASK_STACK_SIZE
|
||||
#error "CONFIGURE_IDLE_TASK_STACK_SIZE less than CONFIGURE_MINIMUM_TASK_STACK_SIZE"
|
||||
#error \
|
||||
"CONFIGURE_IDLE_TASK_STACK_SIZE less than CONFIGURE_MINIMUM_TASK_STACK_SIZE"
|
||||
#endif
|
||||
|
||||
const size_t _Thread_Idle_stack_size = CONFIGURE_IDLE_TASK_STACK_SIZE;
|
||||
|
||||
#if defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) && \
|
||||
!defined(CONFIGURE_IDLE_TASK_BODY)
|
||||
#error "If you define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, then you must define CONFIGURE_IDLE_TASK_BODY as well"
|
||||
#if defined( CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION ) && \
|
||||
!defined( CONFIGURE_IDLE_TASK_BODY )
|
||||
#error \
|
||||
"If you define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, then you must define CONFIGURE_IDLE_TASK_BODY as well"
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIGURE_IDLE_TASK_BODY) && \
|
||||
!defined(CONFIGURE_DISABLE_BSP_SETTINGS) && defined(BSP_IDLE_TASK_BODY)
|
||||
#if !defined( CONFIGURE_IDLE_TASK_BODY ) && \
|
||||
!defined( CONFIGURE_DISABLE_BSP_SETTINGS ) && defined( BSP_IDLE_TASK_BODY )
|
||||
#define CONFIGURE_IDLE_TASK_BODY BSP_IDLE_TASK_BODY
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_IDLE_TASK_BODY
|
||||
const Thread_Idle_body _Thread_Idle_body = CONFIGURE_IDLE_TASK_BODY;
|
||||
const Thread_Idle_body _Thread_Idle_body = CONFIGURE_IDLE_TASK_BODY;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -45,17 +45,17 @@
|
||||
|
||||
#include <rtems/confdefs/percpu.h>
|
||||
|
||||
#if !defined(CONFIGURE_SCHEDULER_CBS) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_EDF) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_EDF_SMP) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_PRIORITY) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_PRIORITY_SMP) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_SIMPLE) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_SIMPLE_SMP) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_STRONG_APA) \
|
||||
&& !defined(CONFIGURE_SCHEDULER_USER)
|
||||
#if defined(RTEMS_SMP) && _CONFIGURE_MAXIMUM_PROCESSORS > 1
|
||||
#if !defined( CONFIGURE_SCHEDULER_CBS ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_EDF ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_EDF_SMP ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_PRIORITY ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_PRIORITY_SMP ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_SIMPLE ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_SIMPLE_SMP ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_STRONG_APA ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_USER )
|
||||
#if defined( RTEMS_SMP ) && _CONFIGURE_MAXIMUM_PROCESSORS > 1
|
||||
#define CONFIGURE_SCHEDULER_EDF_SMP
|
||||
#else
|
||||
#define CONFIGURE_SCHEDULER_PRIORITY
|
||||
@@ -72,22 +72,21 @@ extern "C" {
|
||||
#define CONFIGURE_MAXIMUM_PRIORITY PRIORITY_DEFAULT_MAXIMUM
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIGURE_SCHEDULER_EDF) && \
|
||||
!defined(CONFIGURE_SCHEDULER_EDF_SMP) && \
|
||||
!defined(CONFIGURE_SCHEDULER_CBS)
|
||||
#if !defined( CONFIGURE_SCHEDULER_EDF ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_EDF_SMP ) && \
|
||||
!defined( CONFIGURE_SCHEDULER_CBS )
|
||||
|
||||
#if CONFIGURE_MAXIMUM_PRIORITY != 3 \
|
||||
&& CONFIGURE_MAXIMUM_PRIORITY != 7 \
|
||||
&& CONFIGURE_MAXIMUM_PRIORITY != 15 \
|
||||
&& CONFIGURE_MAXIMUM_PRIORITY != 31 \
|
||||
&& CONFIGURE_MAXIMUM_PRIORITY != 63 \
|
||||
&& CONFIGURE_MAXIMUM_PRIORITY != 127 \
|
||||
&& CONFIGURE_MAXIMUM_PRIORITY != 255
|
||||
#error "CONFIGURE_MAXIMUM_PRIORITY must be one of 3, 7, 15, 31, 63, 127, and 255"
|
||||
#if CONFIGURE_MAXIMUM_PRIORITY != 3 && CONFIGURE_MAXIMUM_PRIORITY != 7 && \
|
||||
CONFIGURE_MAXIMUM_PRIORITY != 15 && CONFIGURE_MAXIMUM_PRIORITY != 31 && \
|
||||
CONFIGURE_MAXIMUM_PRIORITY != 63 && CONFIGURE_MAXIMUM_PRIORITY != 127 && \
|
||||
CONFIGURE_MAXIMUM_PRIORITY != 255
|
||||
#error \
|
||||
"CONFIGURE_MAXIMUM_PRIORITY must be one of 3, 7, 15, 31, 63, 127, and 255"
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_PRIORITY > PRIORITY_DEFAULT_MAXIMUM
|
||||
#error "CONFIGURE_SCHEDULER_PRIORITY must be less than or equal to the architecture defined maximum priority"
|
||||
#error \
|
||||
"CONFIGURE_SCHEDULER_PRIORITY must be less than or equal to the architecture defined maximum priority"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -99,13 +98,10 @@ extern "C" {
|
||||
|
||||
#ifndef CONFIGURE_SCHEDULER_TABLE_ENTRIES
|
||||
#define CONFIGURE_SCHEDULER \
|
||||
RTEMS_SCHEDULER_PRIORITY( \
|
||||
dflt, \
|
||||
CONFIGURE_MAXIMUM_PRIORITY + 1 \
|
||||
)
|
||||
RTEMS_SCHEDULER_PRIORITY( dflt, CONFIGURE_MAXIMUM_PRIORITY + 1 )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_PRIORITY( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_PRIORITY( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -116,13 +112,10 @@ extern "C" {
|
||||
|
||||
#ifndef CONFIGURE_SCHEDULER_TABLE_ENTRIES
|
||||
#define CONFIGURE_SCHEDULER \
|
||||
RTEMS_SCHEDULER_PRIORITY_SMP( \
|
||||
dflt, \
|
||||
CONFIGURE_MAXIMUM_PRIORITY + 1 \
|
||||
)
|
||||
RTEMS_SCHEDULER_PRIORITY_SMP( dflt, CONFIGURE_MAXIMUM_PRIORITY + 1 )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_PRIORITY_SMP( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_PRIORITY_SMP( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -133,16 +126,10 @@ extern "C" {
|
||||
|
||||
#ifndef CONFIGURE_SCHEDULER_TABLE_ENTRIES
|
||||
#define CONFIGURE_SCHEDULER \
|
||||
RTEMS_SCHEDULER_PRIORITY_AFFINITY_SMP( \
|
||||
dflt, \
|
||||
CONFIGURE_MAXIMUM_PRIORITY + 1 \
|
||||
)
|
||||
RTEMS_SCHEDULER_PRIORITY_AFFINITY_SMP( dflt, CONFIGURE_MAXIMUM_PRIORITY + 1 )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_PRIORITY_AFFINITY_SMP( \
|
||||
dflt, \
|
||||
CONFIGURE_SCHEDULER_NAME \
|
||||
)
|
||||
RTEMS_SCHEDULER_TABLE_PRIORITY_AFFINITY_SMP( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -153,13 +140,10 @@ extern "C" {
|
||||
|
||||
#ifndef CONFIGURE_SCHEDULER_TABLE_ENTRIES
|
||||
#define CONFIGURE_SCHEDULER \
|
||||
RTEMS_SCHEDULER_STRONG_APA( \
|
||||
dflt, \
|
||||
CONFIGURE_MAXIMUM_PRIORITY + 1 \
|
||||
)
|
||||
RTEMS_SCHEDULER_STRONG_APA( dflt, CONFIGURE_MAXIMUM_PRIORITY + 1 )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_STRONG_APA( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_STRONG_APA( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -172,7 +156,7 @@ extern "C" {
|
||||
#define CONFIGURE_SCHEDULER RTEMS_SCHEDULER_SIMPLE( dflt )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_SIMPLE( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_SIMPLE( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -182,11 +166,10 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_SCHEDULER_TABLE_ENTRIES
|
||||
#define CONFIGURE_SCHEDULER \
|
||||
RTEMS_SCHEDULER_SIMPLE_SMP( dflt )
|
||||
#define CONFIGURE_SCHEDULER RTEMS_SCHEDULER_SIMPLE_SMP( dflt )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_SIMPLE_SMP( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_SIMPLE_SMP( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -199,7 +182,7 @@ extern "C" {
|
||||
#define CONFIGURE_SCHEDULER RTEMS_SCHEDULER_EDF( dflt )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_EDF( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_EDF( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -212,7 +195,7 @@ extern "C" {
|
||||
#define CONFIGURE_SCHEDULER RTEMS_SCHEDULER_EDF_SMP( dflt )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_EDF_SMP( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_EDF_SMP( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -225,18 +208,17 @@ extern "C" {
|
||||
#define CONFIGURE_SCHEDULER RTEMS_SCHEDULER_CBS( dflt )
|
||||
|
||||
#define CONFIGURE_SCHEDULER_TABLE_ENTRIES \
|
||||
RTEMS_SCHEDULER_TABLE_CBS( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
RTEMS_SCHEDULER_TABLE_CBS( dflt, CONFIGURE_SCHEDULER_NAME )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_CBS_MAXIMUM_SERVERS
|
||||
#define CONFIGURE_CBS_MAXIMUM_SERVERS CONFIGURE_MAXIMUM_TASKS
|
||||
#endif
|
||||
|
||||
const uint32_t _Scheduler_CBS_Maximum_servers =
|
||||
CONFIGURE_CBS_MAXIMUM_SERVERS;
|
||||
const uint32_t _Scheduler_CBS_Maximum_servers = CONFIGURE_CBS_MAXIMUM_SERVERS;
|
||||
|
||||
Scheduler_CBS_Server
|
||||
_Scheduler_CBS_Server_list[ CONFIGURE_CBS_MAXIMUM_SERVERS ];
|
||||
Scheduler_CBS_Server
|
||||
_Scheduler_CBS_Server_list[ CONFIGURE_CBS_MAXIMUM_SERVERS ];
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_SCHEDULER
|
||||
@@ -249,7 +231,7 @@ extern "C" {
|
||||
*/
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
CONFIGURE_SCHEDULER;
|
||||
CONFIGURE_SCHEDULER;
|
||||
#pragma GCC diagnostic pop
|
||||
#endif
|
||||
|
||||
@@ -265,114 +247,142 @@ const size_t _Scheduler_Count = _CONFIGURE_SCHEDULER_COUNT;
|
||||
|
||||
const Scheduler_Assignment _Scheduler_Initial_assignments[] = {
|
||||
#ifdef CONFIGURE_SCHEDULER_ASSIGNMENTS
|
||||
CONFIGURE_SCHEDULER_ASSIGNMENTS
|
||||
CONFIGURE_SCHEDULER_ASSIGNMENTS
|
||||
#else
|
||||
#define _CONFIGURE_SCHEDULER_ASSIGN \
|
||||
RTEMS_SCHEDULER_ASSIGN( \
|
||||
0, \
|
||||
RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL \
|
||||
)
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
RTEMS_SCHEDULER_ASSIGN( 0, RTEMS_SCHEDULER_ASSIGN_PROCESSOR_OPTIONAL )
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 2
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 3
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 4
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 5
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 6
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 7
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 8
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 9
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 10
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 11
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 12
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 13
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 14
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 15
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 16
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 17
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 18
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 19
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 20
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 21
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 22
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 23
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 24
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 25
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 26
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 27
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 28
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 29
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 30
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 31
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#if _CONFIGURE_MAXIMUM_PROCESSORS >= 32
|
||||
, _CONFIGURE_SCHEDULER_ASSIGN
|
||||
,
|
||||
_CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
#undef _CONFIGURE_SCHEDULER_ASSIGN
|
||||
#endif
|
||||
};
|
||||
|
||||
RTEMS_STATIC_ASSERT(
|
||||
_CONFIGURE_MAXIMUM_PROCESSORS
|
||||
== RTEMS_ARRAY_SIZE( _Scheduler_Initial_assignments ),
|
||||
_CONFIGURE_MAXIMUM_PROCESSORS ==
|
||||
RTEMS_ARRAY_SIZE( _Scheduler_Initial_assignments ),
|
||||
_Scheduler_Initial_assignments
|
||||
);
|
||||
|
||||
|
||||
@@ -59,14 +59,17 @@
|
||||
#define CONFIGURE_MAXIMUM_TASKS 0
|
||||
#endif
|
||||
|
||||
#define _CONFIGURE_TASKS ( CONFIGURE_MAXIMUM_TASKS + _CONFIGURE_LIBBLOCK_TASKS )
|
||||
#define _CONFIGURE_TASKS \
|
||||
( CONFIGURE_MAXIMUM_TASKS + _CONFIGURE_LIBBLOCK_TASKS )
|
||||
|
||||
#ifndef CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE
|
||||
#define CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE 0
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE > CONFIGURE_MAXIMUM_TASKS
|
||||
#error "CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE shall be less than or equal to CONFIGURE_MAXIMUM_TASKS"
|
||||
#if CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE > \
|
||||
CONFIGURE_MAXIMUM_TASKS
|
||||
#error \
|
||||
"CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE shall be less than or equal to CONFIGURE_MAXIMUM_TASKS"
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_THREADS
|
||||
@@ -77,16 +80,17 @@
|
||||
#include <rtems/posix/pthread.h>
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION) \
|
||||
&& CONFIGURE_MAXIMUM_TASKS == 0 \
|
||||
&& CONFIGURE_MAXIMUM_POSIX_THREADS == 0
|
||||
#error "You must define one of CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, CONFIGURE_MAXIMUM_TASKS, and CONFIGURE_MAXIMUM_POSIX_THREADS"
|
||||
#if !defined( CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION ) && \
|
||||
CONFIGURE_MAXIMUM_TASKS == 0 && CONFIGURE_MAXIMUM_POSIX_THREADS == 0
|
||||
#error \
|
||||
"You must define one of CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, CONFIGURE_MAXIMUM_TASKS, and CONFIGURE_MAXIMUM_POSIX_THREADS"
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIGURE_RTEMS_INIT_TASKS_TABLE) \
|
||||
&& !defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) \
|
||||
&& !defined(CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION)
|
||||
#error "You must define one of CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, CONFIGURE_RTEMS_INIT_TASKS_TABLE, and CONFIGURE_POSIX_INIT_THREAD_TABLE"
|
||||
#if !defined( CONFIGURE_RTEMS_INIT_TASKS_TABLE ) && \
|
||||
!defined( CONFIGURE_POSIX_INIT_THREAD_TABLE ) && \
|
||||
!defined( CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION )
|
||||
#error \
|
||||
"You must define one of CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION, CONFIGURE_RTEMS_INIT_TASKS_TABLE, and CONFIGURE_POSIX_INIT_THREAD_TABLE"
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
|
||||
@@ -104,47 +108,48 @@ extern "C" {
|
||||
typedef union {
|
||||
Scheduler_Node Base;
|
||||
#ifdef CONFIGURE_SCHEDULER_CBS
|
||||
Scheduler_CBS_Node CBS;
|
||||
Scheduler_CBS_Node CBS;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_EDF
|
||||
Scheduler_EDF_Node EDF;
|
||||
Scheduler_EDF_Node EDF;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_EDF_SMP
|
||||
Scheduler_EDF_SMP_Node EDF_SMP;
|
||||
Scheduler_EDF_SMP_Node EDF_SMP;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_PRIORITY
|
||||
Scheduler_priority_Node Priority;
|
||||
Scheduler_priority_Node Priority;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_SIMPLE_SMP
|
||||
Scheduler_SMP_Node Simple_SMP;
|
||||
Scheduler_SMP_Node Simple_SMP;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_PRIORITY_SMP
|
||||
Scheduler_priority_SMP_Node Priority_SMP;
|
||||
Scheduler_priority_SMP_Node Priority_SMP;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP
|
||||
Scheduler_priority_affinity_SMP_Node Priority_affinity_SMP;
|
||||
Scheduler_priority_affinity_SMP_Node Priority_affinity_SMP;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_STRONG_APA
|
||||
Scheduler_strong_APA_Node Strong_APA;
|
||||
Scheduler_strong_APA_Node Strong_APA;
|
||||
#endif
|
||||
#ifdef CONFIGURE_SCHEDULER_USER_PER_THREAD
|
||||
CONFIGURE_SCHEDULER_USER_PER_THREAD User;
|
||||
CONFIGURE_SCHEDULER_USER_PER_THREAD User;
|
||||
#endif
|
||||
} Configuration_Scheduler_node;
|
||||
|
||||
#ifdef RTEMS_SMP
|
||||
const size_t _Scheduler_Node_size = sizeof( Configuration_Scheduler_node );
|
||||
const size_t _Scheduler_Node_size = sizeof( Configuration_Scheduler_node );
|
||||
#endif
|
||||
|
||||
const size_t _Thread_Maximum_name_size = CONFIGURE_MAXIMUM_THREAD_NAME_SIZE;
|
||||
|
||||
RTEMS_STATIC_ASSERT(
|
||||
CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE % RTEMS_TASK_STORAGE_ALIGNMENT == 0,
|
||||
CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE % RTEMS_TASK_STORAGE_ALIGNMENT ==
|
||||
0,
|
||||
CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
|
||||
);
|
||||
|
||||
const size_t _Thread_Maximum_TLS_size =
|
||||
CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE;
|
||||
const size_t
|
||||
_Thread_Maximum_TLS_size = CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE;
|
||||
|
||||
struct Thread_Configured_control {
|
||||
/*
|
||||
@@ -157,92 +162,82 @@ struct Thread_Configured_control {
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0
|
||||
void *extensions[ CONFIGURE_MAXIMUM_USER_EXTENSIONS + 1 ];
|
||||
void *extensions[ CONFIGURE_MAXIMUM_USER_EXTENSIONS + 1 ];
|
||||
#endif
|
||||
Configuration_Scheduler_node Scheduler_nodes[ _CONFIGURE_SCHEDULER_COUNT ];
|
||||
RTEMS_API_Control API_RTEMS;
|
||||
RTEMS_API_Control API_RTEMS;
|
||||
#ifdef RTEMS_POSIX_API
|
||||
POSIX_API_Control API_POSIX;
|
||||
POSIX_API_Control API_POSIX;
|
||||
#endif
|
||||
#if CONFIGURE_MAXIMUM_THREAD_NAME_SIZE > 1
|
||||
char name[ CONFIGURE_MAXIMUM_THREAD_NAME_SIZE ];
|
||||
char name[ CONFIGURE_MAXIMUM_THREAD_NAME_SIZE ];
|
||||
#endif
|
||||
#if defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) && \
|
||||
!defined(_REENT_THREAD_LOCAL)
|
||||
struct _reent Newlib;
|
||||
#if defined( _CONFIGURE_ENABLE_NEWLIB_REENTRANCY ) && \
|
||||
!defined( _REENT_THREAD_LOCAL )
|
||||
struct _reent Newlib;
|
||||
#endif
|
||||
};
|
||||
|
||||
const Thread_Control_add_on _Thread_Control_add_ons[] = {
|
||||
{
|
||||
offsetof( Thread_Configured_control, Control.Scheduler.nodes ),
|
||||
offsetof( Thread_Configured_control, Scheduler_nodes )
|
||||
}, {
|
||||
offsetof(
|
||||
{ offsetof( Thread_Configured_control, Control.Scheduler.nodes ),
|
||||
offsetof( Thread_Configured_control, Scheduler_nodes ) },
|
||||
{ offsetof(
|
||||
Thread_Configured_control,
|
||||
Control.API_Extensions[ THREAD_API_RTEMS ]
|
||||
),
|
||||
offsetof( Thread_Configured_control, API_RTEMS )
|
||||
}
|
||||
#if defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) && \
|
||||
!defined(_REENT_THREAD_LOCAL)
|
||||
, {
|
||||
offsetof(
|
||||
Thread_Configured_control,
|
||||
Control.libc_reent
|
||||
),
|
||||
offsetof( Thread_Configured_control, Newlib )
|
||||
}
|
||||
offsetof( Thread_Configured_control, API_RTEMS ) }
|
||||
#if defined( _CONFIGURE_ENABLE_NEWLIB_REENTRANCY ) && \
|
||||
!defined( _REENT_THREAD_LOCAL )
|
||||
,
|
||||
{ offsetof( Thread_Configured_control, Control.libc_reent ),
|
||||
offsetof( Thread_Configured_control, Newlib ) }
|
||||
#endif
|
||||
#if CONFIGURE_MAXIMUM_THREAD_NAME_SIZE > 1
|
||||
, {
|
||||
offsetof(
|
||||
Thread_Configured_control,
|
||||
Control.Join_queue.Queue.name
|
||||
),
|
||||
offsetof( Thread_Configured_control, name )
|
||||
}
|
||||
,
|
||||
{ offsetof( Thread_Configured_control, Control.Join_queue.Queue.name ),
|
||||
offsetof( Thread_Configured_control, name ) }
|
||||
#endif
|
||||
#ifdef RTEMS_POSIX_API
|
||||
, {
|
||||
offsetof(
|
||||
Thread_Configured_control,
|
||||
Control.API_Extensions[ THREAD_API_POSIX ]
|
||||
),
|
||||
offsetof( Thread_Configured_control, API_POSIX )
|
||||
}
|
||||
,
|
||||
{ offsetof(
|
||||
Thread_Configured_control,
|
||||
Control.API_Extensions[ THREAD_API_POSIX ]
|
||||
),
|
||||
offsetof( Thread_Configured_control, API_POSIX ) }
|
||||
#endif
|
||||
};
|
||||
|
||||
const size_t _Thread_Control_add_on_count =
|
||||
RTEMS_ARRAY_SIZE( _Thread_Control_add_ons );
|
||||
const size_t _Thread_Control_add_on_count = RTEMS_ARRAY_SIZE(
|
||||
_Thread_Control_add_ons
|
||||
);
|
||||
|
||||
#ifdef RTEMS_SMP
|
||||
struct Thread_queue_Configured_heads {
|
||||
struct Thread_queue_Configured_heads {
|
||||
/*
|
||||
* This was put in to address the following warning.
|
||||
* warning: invalid use of structure with flexible array member
|
||||
*/
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wpedantic"
|
||||
Thread_queue_Heads Heads;
|
||||
Thread_queue_Heads Heads;
|
||||
#pragma GCC diagnostic pop
|
||||
Thread_queue_Priority_queue Priority[ _CONFIGURE_SCHEDULER_COUNT ];
|
||||
};
|
||||
Thread_queue_Priority_queue Priority[ _CONFIGURE_SCHEDULER_COUNT ];
|
||||
};
|
||||
|
||||
const size_t _Thread_queue_Heads_size =
|
||||
sizeof( Thread_queue_Configured_heads );
|
||||
const size_t _Thread_queue_Heads_size = sizeof(
|
||||
Thread_queue_Configured_heads
|
||||
);
|
||||
#endif
|
||||
|
||||
const size_t _Thread_Initial_thread_count =
|
||||
#if !defined(CONFIGURE_IDLE_TASK_STORAGE_SIZE) && \
|
||||
!defined(CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE)
|
||||
#if !defined( CONFIGURE_IDLE_TASK_STORAGE_SIZE ) && \
|
||||
!defined( CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE )
|
||||
_CONFIGURE_MAXIMUM_PROCESSORS +
|
||||
#endif
|
||||
rtems_resource_maximum_per_allocation( _CONFIGURE_TASKS ) +
|
||||
rtems_resource_maximum_per_allocation( CONFIGURE_MAXIMUM_POSIX_THREADS );
|
||||
|
||||
#if defined(RTEMS_MULTIPROCESSING) && defined(CONFIGURE_MP_APPLICATION)
|
||||
#if defined( RTEMS_MULTIPROCESSING ) && defined( CONFIGURE_MP_APPLICATION )
|
||||
#define _CONFIGURE_MPCI_RECEIVE_SERVER_COUNT 1
|
||||
#else
|
||||
#define _CONFIGURE_MPCI_RECEIVE_SERVER_COUNT 0
|
||||
@@ -256,24 +251,24 @@ THREAD_INFORMATION_DEFINE(
|
||||
);
|
||||
|
||||
#if _CONFIGURE_TASKS > 0
|
||||
THREAD_INFORMATION_DEFINE(
|
||||
_RTEMS_tasks,
|
||||
OBJECTS_CLASSIC_API,
|
||||
OBJECTS_RTEMS_TASKS,
|
||||
_CONFIGURE_TASKS
|
||||
);
|
||||
THREAD_INFORMATION_DEFINE(
|
||||
_RTEMS_tasks,
|
||||
OBJECTS_CLASSIC_API,
|
||||
OBJECTS_RTEMS_TASKS,
|
||||
_CONFIGURE_TASKS
|
||||
);
|
||||
#endif
|
||||
|
||||
#if CONFIGURE_MAXIMUM_POSIX_THREADS > 0
|
||||
const size_t _POSIX_Threads_Minimum_stack_size =
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE;
|
||||
const size_t _POSIX_Threads_Minimum_stack_size =
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE;
|
||||
|
||||
THREAD_INFORMATION_DEFINE(
|
||||
_POSIX_Threads,
|
||||
OBJECTS_POSIX_API,
|
||||
OBJECTS_POSIX_THREADS,
|
||||
CONFIGURE_MAXIMUM_POSIX_THREADS
|
||||
);
|
||||
THREAD_INFORMATION_DEFINE(
|
||||
_POSIX_Threads,
|
||||
OBJECTS_POSIX_API,
|
||||
OBJECTS_POSIX_THREADS,
|
||||
CONFIGURE_MAXIMUM_POSIX_THREADS
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -47,10 +47,11 @@
|
||||
|
||||
#include <rtems/config.h>
|
||||
|
||||
#if !defined(CONFIGURE_UNIFIED_WORK_AREAS) \
|
||||
&& !defined(CONFIGURE_EXECUTIVE_RAM_SIZE) \
|
||||
&& !defined(CONFIGURE_MEMORY_OVERHEAD)
|
||||
#error "CONFIGURE_UNLIMITED_OBJECTS requires one of CONFIGURE_UNIFIED_WORK_AREAS, CONFIGURE_EXECUTIVE_RAM_SIZE, and CONFIGURE_MEMORY_OVERHEAD"
|
||||
#if !defined( CONFIGURE_UNIFIED_WORK_AREAS ) && \
|
||||
!defined( CONFIGURE_EXECUTIVE_RAM_SIZE ) && \
|
||||
!defined( CONFIGURE_MEMORY_OVERHEAD )
|
||||
#error \
|
||||
"CONFIGURE_UNLIMITED_OBJECTS requires one of CONFIGURE_UNIFIED_WORK_AREAS, CONFIGURE_EXECUTIVE_RAM_SIZE, and CONFIGURE_MEMORY_OVERHEAD"
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_UNLIMITED_ALLOCATION_SIZE
|
||||
@@ -59,82 +60,82 @@
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_TASKS
|
||||
#define CONFIGURE_MAXIMUM_TASKS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_TIMERS
|
||||
#define CONFIGURE_MAXIMUM_TIMERS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_SEMAPHORES
|
||||
#define CONFIGURE_MAXIMUM_SEMAPHORES \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES
|
||||
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_PARTITIONS
|
||||
#define CONFIGURE_MAXIMUM_PARTITIONS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_REGIONS
|
||||
#define CONFIGURE_MAXIMUM_REGIONS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_PORTS
|
||||
#define CONFIGURE_MAXIMUM_PORTS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_PERIODS
|
||||
#define CONFIGURE_MAXIMUM_PERIODS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_BARRIERS
|
||||
#define CONFIGURE_MAXIMUM_BARRIERS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
|
||||
#define CONFIGURE_MAXIMUM_POSIX_KEYS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
|
||||
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
|
||||
#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
|
||||
#define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_SHMS
|
||||
#define CONFIGURE_MAXIMUM_POSIX_SHMS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_MAXIMUM_POSIX_THREADS
|
||||
#define CONFIGURE_MAXIMUM_POSIX_THREADS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#if defined(RTEMS_POSIX_API) && !defined(CONFIGURE_MAXIMUM_POSIX_TIMERS)
|
||||
#if defined( RTEMS_POSIX_API ) && !defined( CONFIGURE_MAXIMUM_POSIX_TIMERS )
|
||||
#define CONFIGURE_MAXIMUM_POSIX_TIMERS \
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
rtems_resource_unlimited( CONFIGURE_UNLIMITED_ALLOCATION_SIZE )
|
||||
#endif
|
||||
|
||||
#endif /* CONFIGURE_UNLIMITED_OBJECTS */
|
||||
|
||||
@@ -58,25 +58,24 @@
|
||||
|
||||
#if CPU_STACK_ALIGNMENT > CPU_HEAP_ALIGNMENT
|
||||
#define _CONFIGURE_TASK_STACK_ALLOC_SIZE( _stack_size ) \
|
||||
( RTEMS_ALIGN_UP( \
|
||||
( _stack_size ) + CONTEXT_FP_SIZE, \
|
||||
CPU_STACK_ALIGNMENT \
|
||||
) + CPU_STACK_ALIGNMENT - CPU_HEAP_ALIGNMENT )
|
||||
( RTEMS_ALIGN_UP( \
|
||||
( _stack_size ) + CONTEXT_FP_SIZE, \
|
||||
CPU_STACK_ALIGNMENT \
|
||||
) + \
|
||||
CPU_STACK_ALIGNMENT - CPU_HEAP_ALIGNMENT )
|
||||
#else
|
||||
#define _CONFIGURE_TASK_STACK_ALLOC_SIZE( _stack_size ) \
|
||||
RTEMS_ALIGN_UP( ( _stack_size ) + CONTEXT_FP_SIZE, CPU_STACK_ALIGNMENT )
|
||||
RTEMS_ALIGN_UP( ( _stack_size ) + CONTEXT_FP_SIZE, CPU_STACK_ALIGNMENT )
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_TASK_STACK_FROM_ALLOCATOR
|
||||
#define _Configure_From_stackspace( _stack_size ) \
|
||||
CONFIGURE_TASK_STACK_FROM_ALLOCATOR( \
|
||||
_CONFIGURE_TASK_STACK_ALLOC_SIZE( _stack_size ) \
|
||||
)
|
||||
CONFIGURE_TASK_STACK_FROM_ALLOCATOR( \
|
||||
_CONFIGURE_TASK_STACK_ALLOC_SIZE( _stack_size ) \
|
||||
)
|
||||
#else
|
||||
#define _Configure_From_stackspace( _stack_size ) \
|
||||
_Configure_From_workspace( \
|
||||
_CONFIGURE_TASK_STACK_ALLOC_SIZE( _stack_size ) \
|
||||
)
|
||||
_Configure_From_workspace( _CONFIGURE_TASK_STACK_ALLOC_SIZE( _stack_size ) )
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_EXTRA_TASK_STACKS
|
||||
@@ -85,10 +84,11 @@
|
||||
|
||||
#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE
|
||||
|
||||
#define CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( _messages, _size ) \
|
||||
_Configure_From_workspace( \
|
||||
( _messages ) * ( _Configure_Align_up( _size, sizeof( uintptr_t ) ) \
|
||||
+ sizeof( CORE_message_queue_Buffer ) ) )
|
||||
#define CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE( _messages, _size ) \
|
||||
_Configure_From_workspace( \
|
||||
( _messages ) * ( _Configure_Align_up( _size, sizeof( uintptr_t ) ) + \
|
||||
sizeof( CORE_message_queue_Buffer ) ) \
|
||||
)
|
||||
|
||||
#ifndef CONFIGURE_MESSAGE_BUFFER_MEMORY
|
||||
#define CONFIGURE_MESSAGE_BUFFER_MEMORY 0
|
||||
@@ -106,39 +106,40 @@
|
||||
#define _CONFIGURE_HEAP_HANDLER_OVERHEAD \
|
||||
_Configure_Align_up( HEAP_BLOCK_HEADER_SIZE, CPU_HEAP_ALIGNMENT )
|
||||
|
||||
#define CONFIGURE_EXECUTIVE_RAM_SIZE \
|
||||
( _CONFIGURE_MEMORY_FOR_POSIX_OBJECTS \
|
||||
+ CONFIGURE_MESSAGE_BUFFER_MEMORY \
|
||||
+ 1024 * CONFIGURE_MEMORY_OVERHEAD \
|
||||
+ _CONFIGURE_HEAP_HANDLER_OVERHEAD )
|
||||
#define CONFIGURE_EXECUTIVE_RAM_SIZE \
|
||||
( _CONFIGURE_MEMORY_FOR_POSIX_OBJECTS + CONFIGURE_MESSAGE_BUFFER_MEMORY + \
|
||||
1024 * CONFIGURE_MEMORY_OVERHEAD + _CONFIGURE_HEAP_HANDLER_OVERHEAD )
|
||||
|
||||
#if defined(CONFIGURE_IDLE_TASK_STORAGE_SIZE) || \
|
||||
defined(CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE)
|
||||
#if defined( CONFIGURE_IDLE_TASK_STORAGE_SIZE ) || \
|
||||
defined( CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE )
|
||||
#define _CONFIGURE_IDLE_TASK_STACKS 0
|
||||
#else
|
||||
#define _CONFIGURE_IDLE_TASK_STACKS \
|
||||
( _CONFIGURE_MAXIMUM_PROCESSORS * \
|
||||
_Configure_From_stackspace( CONFIGURE_IDLE_TASK_STACK_SIZE ) )
|
||||
( _CONFIGURE_MAXIMUM_PROCESSORS * \
|
||||
_Configure_From_stackspace( CONFIGURE_IDLE_TASK_STACK_SIZE ) )
|
||||
#endif
|
||||
|
||||
#define _CONFIGURE_STACK_SPACE_SIZE \
|
||||
( _CONFIGURE_INIT_TASK_STACK_EXTRA \
|
||||
+ _CONFIGURE_IDLE_TASK_STACKS \
|
||||
+ _CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA \
|
||||
+ _CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA \
|
||||
+ CONFIGURE_EXTRA_TASK_STACKS \
|
||||
+ rtems_resource_maximum_per_allocation( \
|
||||
_CONFIGURE_TASKS - CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE \
|
||||
) \
|
||||
* _Configure_From_stackspace( CONFIGURE_MINIMUM_TASK_STACK_SIZE ) \
|
||||
+ rtems_resource_maximum_per_allocation( CONFIGURE_MAXIMUM_POSIX_THREADS ) \
|
||||
* _Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) \
|
||||
+ _CONFIGURE_HEAP_HANDLER_OVERHEAD )
|
||||
#define _CONFIGURE_STACK_SPACE_SIZE \
|
||||
( _CONFIGURE_INIT_TASK_STACK_EXTRA + _CONFIGURE_IDLE_TASK_STACKS + \
|
||||
_CONFIGURE_POSIX_INIT_THREAD_STACK_EXTRA + \
|
||||
_CONFIGURE_LIBBLOCK_TASKS_STACK_EXTRA + CONFIGURE_EXTRA_TASK_STACKS + \
|
||||
rtems_resource_maximum_per_allocation( \
|
||||
_CONFIGURE_TASKS - CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE \
|
||||
) * \
|
||||
_Configure_From_stackspace( CONFIGURE_MINIMUM_TASK_STACK_SIZE ) + \
|
||||
rtems_resource_maximum_per_allocation( \
|
||||
CONFIGURE_MAXIMUM_POSIX_THREADS \
|
||||
) * \
|
||||
_Configure_From_stackspace( \
|
||||
CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE \
|
||||
) + \
|
||||
_CONFIGURE_HEAP_HANDLER_OVERHEAD )
|
||||
|
||||
#else /* CONFIGURE_EXECUTIVE_RAM_SIZE */
|
||||
|
||||
#if CONFIGURE_EXTRA_TASK_STACKS != 0
|
||||
#error "CONFIGURE_EXECUTIVE_RAM_SIZE defined with request for CONFIGURE_EXTRA_TASK_STACKS"
|
||||
#error \
|
||||
"CONFIGURE_EXECUTIVE_RAM_SIZE defined with request for CONFIGURE_EXTRA_TASK_STACKS"
|
||||
#endif
|
||||
|
||||
#define _CONFIGURE_STACK_SPACE_SIZE 0
|
||||
@@ -152,18 +153,18 @@ extern "C" {
|
||||
const uintptr_t _Workspace_Size = CONFIGURE_EXECUTIVE_RAM_SIZE;
|
||||
|
||||
#ifdef CONFIGURE_UNIFIED_WORK_AREAS
|
||||
const bool _Workspace_Is_unified = true;
|
||||
const bool _Workspace_Is_unified = true;
|
||||
|
||||
struct Heap_Control *( * const _Workspace_Malloc_initializer )( void ) =
|
||||
_Workspace_Malloc_initialize_unified;
|
||||
struct Heap_Control *( *const _Workspace_Malloc_initializer )( void ) =
|
||||
_Workspace_Malloc_initialize_unified;
|
||||
#endif
|
||||
|
||||
uint32_t rtems_minimum_stack_size = CONFIGURE_MINIMUM_TASK_STACK_SIZE;
|
||||
|
||||
const uintptr_t _Stack_Space_size = _CONFIGURE_STACK_SPACE_SIZE;
|
||||
|
||||
#if defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
|
||||
&& defined(CONFIGURE_TASK_STACK_DEALLOCATOR)
|
||||
#if defined( CONFIGURE_TASK_STACK_ALLOCATOR ) && \
|
||||
defined( CONFIGURE_TASK_STACK_DEALLOCATOR )
|
||||
/*
|
||||
* Ignore the following warnings from g++ and clang in the uses of
|
||||
* _CONFIGURE_ASSERT_NOT_NULL() below:
|
||||
@@ -178,101 +179,102 @@ const uintptr_t _Stack_Space_size = _CONFIGURE_STACK_SPACE_SIZE;
|
||||
#pragma GCC diagnostic ignored "-Wpragmas"
|
||||
#pragma GCC diagnostic ignored "-Wtautological-pointer-compare"
|
||||
|
||||
/* Custom allocator may or may not use the work space. */
|
||||
/* Custom allocator may or may not use the work space. */
|
||||
#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
|
||||
const bool _Stack_Allocator_avoids_workspace = true;
|
||||
const bool _Stack_Allocator_avoids_workspace = true;
|
||||
#else
|
||||
const bool _Stack_Allocator_avoids_workspace = false;
|
||||
const bool _Stack_Allocator_avoids_workspace = false;
|
||||
#endif
|
||||
|
||||
/* Custom allocator may or may not need initialization. */
|
||||
#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_INIT
|
||||
const Stack_Allocator_initialize _Stack_Allocator_initialize =
|
||||
_CONFIGURE_ASSERT_NOT_NULL(
|
||||
Stack_Allocator_initialize,
|
||||
CONFIGURE_TASK_STACK_ALLOCATOR_INIT
|
||||
);
|
||||
const Stack_Allocator_initialize
|
||||
_Stack_Allocator_initialize = _CONFIGURE_ASSERT_NOT_NULL(
|
||||
Stack_Allocator_initialize,
|
||||
CONFIGURE_TASK_STACK_ALLOCATOR_INIT
|
||||
);
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Stack_Allocator_do_initialize,
|
||||
RTEMS_SYSINIT_STACK_ALLOCATOR,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Stack_Allocator_do_initialize,
|
||||
RTEMS_SYSINIT_STACK_ALLOCATOR,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
#endif
|
||||
|
||||
/* Custom allocator must include allocate and free */
|
||||
const Stack_Allocator_allocate _Stack_Allocator_allocate =
|
||||
_CONFIGURE_ASSERT_NOT_NULL(
|
||||
Stack_Allocator_allocate,
|
||||
CONFIGURE_TASK_STACK_ALLOCATOR
|
||||
);
|
||||
/* Custom allocator must include allocate and free */
|
||||
const Stack_Allocator_allocate
|
||||
_Stack_Allocator_allocate = _CONFIGURE_ASSERT_NOT_NULL(
|
||||
Stack_Allocator_allocate,
|
||||
CONFIGURE_TASK_STACK_ALLOCATOR
|
||||
);
|
||||
|
||||
const Stack_Allocator_free _Stack_Allocator_free =
|
||||
_CONFIGURE_ASSERT_NOT_NULL(
|
||||
Stack_Allocator_free,
|
||||
CONFIGURE_TASK_STACK_DEALLOCATOR
|
||||
);
|
||||
const Stack_Allocator_free _Stack_Allocator_free = _CONFIGURE_ASSERT_NOT_NULL(
|
||||
Stack_Allocator_free,
|
||||
CONFIGURE_TASK_STACK_DEALLOCATOR
|
||||
);
|
||||
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
/*
|
||||
* Must provide both a custom stack allocator and deallocator
|
||||
*/
|
||||
#elif defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
|
||||
|| defined(CONFIGURE_TASK_STACK_DEALLOCATOR)
|
||||
#error "CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR must be both defined or both undefined"
|
||||
#elif defined( CONFIGURE_TASK_STACK_ALLOCATOR ) || \
|
||||
defined( CONFIGURE_TASK_STACK_DEALLOCATOR )
|
||||
#error \
|
||||
"CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR must be both defined or both undefined"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_IDLE_TASK_STORAGE_SIZE
|
||||
#ifdef CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
|
||||
#error "CONFIGURE_IDLE_TASK_STORAGE_SIZE and CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE are mutually exclusive"
|
||||
#error \
|
||||
"CONFIGURE_IDLE_TASK_STORAGE_SIZE and CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE are mutually exclusive"
|
||||
#endif
|
||||
|
||||
#define _CONFIGURE_IDLE_TASK_STORAGE_SIZE \
|
||||
RTEMS_ALIGN_UP( \
|
||||
RTEMS_TASK_STORAGE_SIZE( \
|
||||
CONFIGURE_IDLE_TASK_STORAGE_SIZE, \
|
||||
RTEMS_DEFAULT_ATTRIBUTES \
|
||||
), \
|
||||
CPU_INTERRUPT_STACK_ALIGNMENT \
|
||||
)
|
||||
RTEMS_ALIGN_UP( \
|
||||
RTEMS_TASK_STORAGE_SIZE( \
|
||||
CONFIGURE_IDLE_TASK_STORAGE_SIZE, \
|
||||
RTEMS_DEFAULT_ATTRIBUTES \
|
||||
), \
|
||||
CPU_INTERRUPT_STACK_ALIGNMENT \
|
||||
)
|
||||
|
||||
const size_t _Stack_Allocator_allocate_for_idle_storage_size =
|
||||
_CONFIGURE_IDLE_TASK_STORAGE_SIZE;
|
||||
const size_t _Stack_Allocator_allocate_for_idle_storage_size =
|
||||
_CONFIGURE_IDLE_TASK_STORAGE_SIZE;
|
||||
|
||||
char _Stack_Allocator_allocate_for_idle_storage_areas[
|
||||
_CONFIGURE_MAXIMUM_PROCESSORS * _CONFIGURE_IDLE_TASK_STORAGE_SIZE
|
||||
] RTEMS_ALIGNED( CPU_INTERRUPT_STACK_ALIGNMENT )
|
||||
RTEMS_SECTION( ".rtemsstack.idle" );
|
||||
char _Stack_Allocator_allocate_for_idle_storage_areas
|
||||
[ _CONFIGURE_MAXIMUM_PROCESSORS * _CONFIGURE_IDLE_TASK_STORAGE_SIZE ] RTEMS_ALIGNED(
|
||||
CPU_INTERRUPT_STACK_ALIGNMENT
|
||||
) RTEMS_SECTION( ".rtemsstack.idle" );
|
||||
|
||||
#define CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE \
|
||||
_Stack_Allocator_allocate_for_idle_static
|
||||
_Stack_Allocator_allocate_for_idle_static
|
||||
#endif
|
||||
|
||||
#ifndef CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE
|
||||
#define CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE \
|
||||
_Stack_Allocator_allocate_for_idle_workspace
|
||||
_Stack_Allocator_allocate_for_idle_workspace
|
||||
#endif
|
||||
|
||||
const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle =
|
||||
CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE;
|
||||
const Stack_Allocator_allocate_for_idle
|
||||
_Stack_Allocator_allocate_for_idle = CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE;
|
||||
|
||||
#ifdef CONFIGURE_DIRTY_MEMORY
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Memory_Dirty_free_areas,
|
||||
RTEMS_SYSINIT_DIRTY_MEMORY,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Memory_Dirty_free_areas,
|
||||
RTEMS_SYSINIT_DIRTY_MEMORY,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
|
||||
const bool _Memory_Zero_before_use = true;
|
||||
const bool _Memory_Zero_before_use = true;
|
||||
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Memory_Zero_free_areas,
|
||||
RTEMS_SYSINIT_ZERO_MEMORY,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
RTEMS_SYSINIT_ITEM(
|
||||
_Memory_Zero_free_areas,
|
||||
RTEMS_SYSINIT_ZERO_MEMORY,
|
||||
RTEMS_SYSINIT_ORDER_MIDDLE
|
||||
);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -48,17 +48,18 @@
|
||||
#define _Configure_Zero_or_one( _number ) ( ( _number ) != 0 ? 1 : 0 )
|
||||
|
||||
#define _Configure_Align_up( _val, _align ) \
|
||||
( ( ( _val ) + ( _align ) - 1) - ( ( _val ) + ( _align ) - 1 ) % ( _align ) )
|
||||
( ( ( _val ) + ( _align ) - 1 ) - \
|
||||
( ( _val ) + ( _align ) - 1 ) % ( _align ) )
|
||||
|
||||
#define _CONFIGURE_HEAP_MIN_BLOCK_SIZE \
|
||||
_Configure_Align_up( sizeof( Heap_Block ), CPU_HEAP_ALIGNMENT )
|
||||
|
||||
#define _Configure_From_workspace( _size ) \
|
||||
( (uintptr_t) ( _Configure_Zero_or_one( _size ) \
|
||||
* _Configure_Align_up( \
|
||||
_size + HEAP_BLOCK_HEADER_SIZE, \
|
||||
_CONFIGURE_HEAP_MIN_BLOCK_SIZE \
|
||||
) ) )
|
||||
#define _Configure_From_workspace( _size ) \
|
||||
( (uintptr_t) ( _Configure_Zero_or_one( _size ) * \
|
||||
_Configure_Align_up( \
|
||||
_size + HEAP_BLOCK_HEADER_SIZE, \
|
||||
_CONFIGURE_HEAP_MIN_BLOCK_SIZE \
|
||||
) ) )
|
||||
|
||||
#endif /* CONFIGURE_INIT */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user