36 #ifndef _RTEMS_CONFDEFS_EXTENSIONS_H 37 #define _RTEMS_CONFDEFS_EXTENSIONS_H 39 #ifndef __CONFIGURATION_TEMPLATE_h 40 #error "Do not include this file directly, use <rtems/confdefs.h> instead" 48 #include <rtems/sysinit.h> 50 #ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS 51 #define CONFIGURE_MAXIMUM_USER_EXTENSIONS 0 54 #if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0 58 #ifdef _CONFIGURE_ENABLE_NEWLIB_REENTRANCY 62 #if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS > 0 63 #if (CONFIGURE_RECORD_PER_PROCESSOR_ITEMS & (CONFIGURE_RECORD_PER_PROCESSOR_ITEMS - 1)) != 0 64 #error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be a power of two" 67 #if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS < 16 68 #error "CONFIGURE_RECORD_PER_PROCESSOR_ITEMS must be at least 16" 71 #if defined(CONFIGURE_RECORD_EXTENSIONS_ENABLED) \ 72 || defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64) \ 73 || defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB) 74 #define _CONFIGURE_RECORD_NEED_EXTENSION 78 #include <rtems/record.h> 80 #ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED 81 #warning "CONFIGURE_RECORD_EXTENSIONS_ENABLED defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS" 83 #ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64 84 #warning "CONFIGURE_RECORD_FATAL_DUMP_BASE64 defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS" 86 #ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB 87 #warning "CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB defined without CONFIGURE_RECORD_PER_PROCESSOR_ITEMS" 91 #ifdef CONFIGURE_STACK_CHECKER_ENABLED 92 #include <rtems/stackchk.h> 99 #if defined(_CONFIGURE_RECORD_NEED_EXTENSION) \ 100 || defined(_CONFIGURE_ENABLE_NEWLIB_REENTRANCY) \ 101 || defined(CONFIGURE_STACK_CHECKER_ENABLED) \ 102 || defined(CONFIGURE_INITIAL_EXTENSIONS) \ 103 || defined(BSP_INITIAL_EXTENSION) 105 #ifdef _CONFIGURE_RECORD_NEED_EXTENSION 107 #ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED 108 _Record_Thread_create,
109 _Record_Thread_start,
110 _Record_Thread_restart,
111 _Record_Thread_delete,
112 _Record_Thread_switch,
113 _Record_Thread_begin,
114 _Record_Thread_exitted,
116 NULL, NULL, NULL, NULL, NULL, NULL, NULL,
118 #ifdef CONFIGURE_RECORD_FATAL_DUMP_BASE64_ZLIB 119 _Record_Fatal_dump_base64_zlib,
120 #elif defined(CONFIGURE_RECORD_FATAL_DUMP_BASE64) 121 _Record_Fatal_dump_base64,
125 #ifdef CONFIGURE_RECORD_EXTENSIONS_ENABLED 126 _Record_Thread_terminate
132 #ifdef _CONFIGURE_ENABLE_NEWLIB_REENTRANCY 133 RTEMS_NEWLIB_EXTENSION,
135 #ifdef CONFIGURE_STACK_CHECKER_ENABLED 136 RTEMS_STACK_CHECKER_EXTENSION,
138 #ifdef CONFIGURE_INITIAL_EXTENSIONS 141 #ifdef BSP_INITIAL_EXTENSION 155 RTEMS_SYSINIT_INITIAL_EXTENSIONS,
156 RTEMS_SYSINIT_ORDER_MIDDLE
160 #if CONFIGURE_MAXIMUM_USER_EXTENSIONS > 0 164 #if CONFIGURE_RECORD_PER_PROCESSOR_ITEMS > 0 166 Record_Control Control;
168 } Record_Configured_control;
170 static Record_Configured_control _Record_Controls[ _CONFIGURE_MAXIMUM_PROCESSORS ];
172 const Record_Configuration _Record_Configuration = {
174 &_Record_Controls[ 0 ].Control
179 RTEMS_SYSINIT_RECORD,
180 RTEMS_SYSINIT_ORDER_MIDDLE
184 #ifdef CONFIGURE_VERBOSE_SYSTEM_INITIALIZATION 187 RTEMS_SYSINIT_RECORD,
188 RTEMS_SYSINIT_ORDER_LAST
Manages the switch callouts.
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS
This configuration option is an integer define.
Classic User Extensions Data Structures.
Evaluate Per-CPU Configuration Options.
#define CONFIGURE_INITIAL_EXTENSIONS
This configuration option is an initializer define.
const size_t _User_extensions_Initial_count
The count of initial user extensions.
User Extension Handler API.
const User_extensions_Table _User_extensions_Initial_extensions[]
The table of initial user extensions.
#define CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
This configuration option is an integer define.
void _User_extensions_Handler_initialization(void)
Initializes the user extensions handler.
Evaluate Newlib Configuration Options.
#define EXTENSION_INFORMATION_DEFINE(max)
Macro to define the objects information for the Classic Extensions objects.
Standard C Library Support.
User_extensions_Switch_control _User_extensions_Initial_switch_controls[]
A spare switch control for each initial user extension.
Evaluate BSP Related Configuration Options.
#define RTEMS_ARRAY_SIZE(_array)
Returns the element count of the specified array.