cpukit/confdefs: reformat with clang-format

Updates #3860.
Closes #5353.
This commit is contained in:
Gedare Bloom
2026-02-02 14:45:09 -06:00
committed by Kinsey Moore
parent 9da9c086e3
commit 63034d7368
23 changed files with 855 additions and 779 deletions
+21 -24
View File
@@ -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" {
+1 -1
View File
@@ -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
+29 -25
View File
@@ -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
+16 -15
View File
@@ -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
+97 -85
View File
@@ -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
+12 -14
View File
@@ -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 */
+17 -12
View File
@@ -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 = {
+5 -5
View File
@@ -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
+35 -33
View File
@@ -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 */
+80 -76
View File
@@ -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
+17 -17
View File
@@ -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
+7 -7
View File
@@ -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
+16 -18
View File
@@ -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 */
+7 -7
View File
@@ -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
+11 -11
View File
@@ -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
+56 -51
View File
@@ -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 */
+82 -41
View File
@@ -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
+27 -27
View File
@@ -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
+107 -97
View File
@@ -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
);
+81 -86
View File
@@ -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
+22 -21
View File
@@ -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 */
+101 -99
View File
@@ -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 */