19 #ifndef _RTEMS_CONFIG_H 20 #define _RTEMS_CONFIG_H 36 #if defined(RTEMS_MULTIPROCESSING) 44 #define RTEMS_UNLIMITED_OBJECTS OBJECTS_UNLIMITED_OBJECTS 46 #define rtems_resource_unlimited(resource) \ 47 ( resource | RTEMS_UNLIMITED_OBJECTS ) 49 #define rtems_resource_is_unlimited(resource) \ 50 _Objects_Is_unlimited(resource) 52 #define rtems_resource_maximum_per_allocation(resource) \ 53 _Objects_Maximum_per_allocation(resource) 55 #if defined(RTEMS_MULTIPROCESSING) 66 uint32_t maximum_nodes;
68 uint32_t maximum_global_objects;
70 uint32_t maximum_proxies;
77 uint32_t extra_mpci_receive_server_stack;
80 rtems_mpci_table *User_mpci_table;
81 } rtems_multiprocessing_table;
99 typedef void *(*rtems_stack_allocate_hook)(
size_t stack_size );
155 void *(*idle_task)( uintptr_t );
208 uint32_t number_of_initial_extensions;
210 #if defined(RTEMS_MULTIPROCESSING) 211 rtems_multiprocessing_table *User_multiprocessing_table;
214 uint32_t maximum_processors;
223 #if defined(RTEMS_MULTIPROCESSING) 227 extern rtems_multiprocessing_table *_Configuration_MP_table;
230 #if defined(RTEMS_MULTIPROCESSING) 237 extern rtems_multiprocessing_table Multiprocessing_configuration;
243 extern const rtems_multiprocessing_table
244 _Initialization_Default_multiprocessing_table;
253 #define rtems_configuration_get_unified_work_area() \ 254 (Configuration.unified_work_area) 256 #define rtems_configuration_get_stack_allocator_avoids_work_space() \ 257 (Configuration.stack_allocator_avoids_work_space) 259 #define rtems_configuration_get_stack_space_size() \ 260 (Configuration.stack_space_size) 262 #define rtems_configuration_get_work_space_size() \ 263 (Configuration.work_space_size + \ 264 (rtems_configuration_get_stack_allocator_avoids_work_space() ? \ 265 0 : rtems_configuration_get_stack_space_size())) 267 uint32_t rtems_configuration_get_maximum_extensions(
void );
269 #define rtems_configuration_get_microseconds_per_tick() \ 270 (Configuration.microseconds_per_tick) 271 #define rtems_configuration_get_milliseconds_per_tick() \ 272 (Configuration.microseconds_per_tick / 1000) 273 #define rtems_configuration_get_nanoseconds_per_tick() \ 274 (_Watchdog_Nanoseconds_per_tick) 276 #define rtems_configuration_get_ticks_per_timeslice() \ 277 (Configuration.ticks_per_timeslice) 279 #define rtems_configuration_get_idle_task() \ 280 (Configuration.idle_task) 282 #define rtems_configuration_get_idle_task_stack_size() \ 283 (Configuration.idle_task_stack_size) 285 #define rtems_configuration_get_interrupt_stack_size() \ 286 ((size_t) _ISR_Stack_size) 288 #define rtems_configuration_get_stack_allocate_init_hook() \ 289 (Configuration.stack_allocate_init_hook) 291 #define rtems_configuration_get_stack_allocate_hook() \ 292 (Configuration.stack_allocate_hook) 294 #define rtems_configuration_get_stack_free_hook() \ 295 (Configuration.stack_free_hook) 301 #define rtems_configuration_get_do_zero_of_workspace() \ 302 (Configuration.do_zero_of_workspace) 304 #define rtems_configuration_get_number_of_initial_extensions() \ 305 (Configuration.number_of_initial_extensions) 307 #define rtems_configuration_get_user_extension_table() \ 308 (Configuration.User_extension_table) 310 #if defined(RTEMS_MULTIPROCESSING) 311 #define rtems_configuration_get_user_multiprocessing_table() \ 312 (Configuration.User_multiprocessing_table) 314 #define rtems_configuration_get_user_multiprocessing_table() \ 329 #define rtems_configuration_is_smp_enabled() \ 330 (Configuration.smp_enabled) 332 #define rtems_configuration_is_smp_enabled() \ 348 #define rtems_configuration_get_maximum_processors() \ 349 (Configuration.maximum_processors) 351 #define rtems_configuration_get_maximum_processors() \ 355 #define rtems_configuration_get_rtems_api_configuration() \ 356 (&Configuration_RTEMS_API) 358 #define rtems_configuration_get_posix_api_configuration() \ 359 (&Configuration_POSIX_API) uintptr_t stack_space_size
Definition: config.h:128
uint32_t microseconds_per_tick
Definition: config.h:144
void *(* rtems_stack_allocate_hook)(size_t stack_size)
Task stack allocator hook.
Definition: config.h:99
bool stack_allocator_avoids_work_space
Specifies if the stack allocator avoids the work space.
Definition: config.h:202
rtems_stack_allocate_hook stack_allocate_hook
Optional task stack allocator hook.
Definition: config.h:172
uintptr_t work_space_size
Definition: config.h:123
Data Related to the Management of Processor Interrupt Levels.
bool unified_work_area
Specifies if a unified work area is used or not.
Definition: config.h:193
Constants and Structures Associated with the Object Handler.
User Defined Configuration Parameters Specific For The POSIX API.
void(* rtems_stack_free_hook)(void *addr)
Task stack deallocator hook.
Definition: config.h:106
bool do_zero_of_workspace
Definition: config.h:185
void(* rtems_stack_allocate_init_hook)(size_t stack_space_size)
Task stack allocator initialization hook.
Definition: config.h:89
uint32_t idle_task_stack_size
Definition: config.h:162
uint32_t ticks_per_timeslice
Definition: config.h:149
rtems_stack_free_hook stack_free_hook
Optional task stack free hook.
Definition: config.h:177
const rtems_configuration_table Configuration
User extension table.
Definition: userext.h:232
uint32_t maximum_key_value_pairs
Definition: config.h:138
rtems_stack_allocate_init_hook stack_allocate_init_hook
Optional task stack allocator initialization hook.
Definition: config.h:167