19 #ifndef _RTEMS_CONFIG_H 20 #define _RTEMS_CONFIG_H 35 #define RTEMS_UNLIMITED_OBJECTS OBJECTS_UNLIMITED_OBJECTS 37 #define rtems_resource_unlimited(resource) \ 38 ( resource | RTEMS_UNLIMITED_OBJECTS ) 40 #define rtems_resource_is_unlimited(resource) \ 41 _Objects_Is_unlimited(resource) 43 #define rtems_resource_maximum_per_allocation(resource) \ 44 _Objects_Maximum_per_allocation(resource) 51 #ifdef RTEMS_POSIX_API 60 #if defined(RTEMS_MULTIPROCESSING) 64 #if defined(RTEMS_MULTIPROCESSING) 75 uint32_t maximum_nodes;
77 uint32_t maximum_global_objects;
79 uint32_t maximum_proxies;
86 uint32_t extra_mpci_receive_server_stack;
89 rtems_mpci_table *User_mpci_table;
90 } rtems_multiprocessing_table;
108 typedef void *(*rtems_stack_allocate_hook)(
size_t stack_size );
244 uint32_t number_of_initial_extensions;
246 #if defined(RTEMS_MULTIPROCESSING) 247 rtems_multiprocessing_table *User_multiprocessing_table;
250 uint32_t maximum_processors;
259 #if defined(RTEMS_MULTIPROCESSING) 263 SAPI_EXTERN rtems_multiprocessing_table *_Configuration_MP_table;
266 #if defined(RTEMS_MULTIPROCESSING) 273 extern rtems_multiprocessing_table Multiprocessing_configuration;
282 #define rtems_configuration_get_unified_work_area() \ 283 (Configuration.unified_work_area) 285 #define rtems_configuration_get_stack_allocator_avoids_work_space() \ 286 (Configuration.stack_allocator_avoids_work_space) 288 #define rtems_configuration_get_stack_space_size() \ 289 (Configuration.stack_space_size) 291 #define rtems_configuration_get_work_space_size() \ 292 (Configuration.work_space_size + \ 293 (rtems_configuration_get_stack_allocator_avoids_work_space() ? \ 294 0 : rtems_configuration_get_stack_space_size())) 296 #define rtems_configuration_get_maximum_extensions() \ 297 (Configuration.maximum_extensions) 299 #define rtems_configuration_get_microseconds_per_tick() \ 300 (Configuration.microseconds_per_tick) 301 #define rtems_configuration_get_milliseconds_per_tick() \ 302 (Configuration.microseconds_per_tick / 1000) 303 #define rtems_configuration_get_nanoseconds_per_tick() \ 304 (Configuration.nanoseconds_per_tick) 306 #define rtems_configuration_get_ticks_per_timeslice() \ 307 (Configuration.ticks_per_timeslice) 309 #define rtems_configuration_get_idle_task() \ 310 (Configuration.idle_task) 312 #define rtems_configuration_get_idle_task_stack_size() \ 313 (Configuration.idle_task_stack_size) 315 #define rtems_configuration_get_interrupt_stack_size() \ 316 (Configuration.interrupt_stack_size) 318 #define rtems_configuration_get_stack_allocate_init_hook() \ 319 (Configuration.stack_allocate_init_hook) 321 #define rtems_configuration_get_stack_allocate_hook() \ 322 (Configuration.stack_allocate_hook) 324 #define rtems_configuration_get_stack_free_hook() \ 325 (Configuration.stack_free_hook) 331 #define rtems_configuration_get_do_zero_of_workspace() \ 332 (Configuration.do_zero_of_workspace) 334 #define rtems_configuration_get_number_of_initial_extensions() \ 335 (Configuration.number_of_initial_extensions) 337 #define rtems_configuration_get_user_extension_table() \ 338 (Configuration.User_extension_table) 340 #if defined(RTEMS_MULTIPROCESSING) 341 #define rtems_configuration_get_user_multiprocessing_table() \ 342 (Configuration.User_multiprocessing_table) 344 #define rtems_configuration_get_user_multiprocessing_table() \ 359 #define rtems_configuration_is_smp_enabled() \ 360 (Configuration.smp_enabled) 362 #define rtems_configuration_is_smp_enabled() \ 378 #define rtems_configuration_get_maximum_processors() \ 379 (Configuration.maximum_processors) 381 #define rtems_configuration_get_maximum_processors() \ 385 #define rtems_configuration_get_rtems_api_configuration() \ 386 (&Configuration_RTEMS_API) 388 #define rtems_configuration_get_posix_api_configuration() \ 389 (&Configuration_POSIX_API) Constants and Structures Associated with the Object Handler.
uintptr_t stack_space_size
This field specifies the size in bytes of the RTEMS thread stack space.
Definition: config.h:137
The following records define the POSIX Configuration Table.
Definition: config.h:58
uint32_t microseconds_per_tick
This field specifies the number of microseconds which elapse between clock ticks. ...
Definition: config.h:165
bool stack_allocator_avoids_work_space
Specifies if the stack allocator avoids the work space.
Definition: config.h:238
rtems_stack_allocate_hook stack_allocate_hook
Optional task stack allocator hook.
Definition: config.h:208
uintptr_t work_space_size
This field specifies the size in bytes of the RTEMS Workspace.
Definition: config.h:132
bool unified_work_area
Specifies if a unified work area is used or not.
Definition: config.h:229
void(* rtems_stack_allocate_init_hook)(size_t stack_space_size)
Task stack allocator initialization hook.
Definition: config.h:98
const rtems_configuration_table Configuration
This is the configuration table generated by confdefs.h.
uint32_t maximum_extensions
This field specifies the maximum number of dynamically installed used extensions. ...
Definition: config.h:143
void(* rtems_stack_free_hook)(void *addr)
Task stack deallocator hook.
Definition: config.h:115
#define SAPI_EXTERN
The following ensures that all data is declared in the space of the initialization routine for either...
Definition: basedefs.h:95
uint32_t nanoseconds_per_tick
This field specifies the number of nanoseconds which elapse between clock ticks.
Definition: config.h:173
User Defined Configuration Parameters Specific For The POSIX API.
bool do_zero_of_workspace
If this element is TRUE, then RTEMS will zero the Executive Workspace.
Definition: config.h:221
uint32_t idle_task_stack_size
This field specifies the size of the IDLE task's stack.
Definition: config.h:191
uint32_t ticks_per_timeslice
This field specifies the number of ticks in each task's timeslice.
Definition: config.h:178
rtems_stack_free_hook stack_free_hook
Optional task stack free hook.
Definition: config.h:213
uint32_t interrupt_stack_size
This field specifies the size of the interrupt stack.
Definition: config.h:198
User extension table.
Definition: userext.h:232
void * Thread
The following defines the "return type" of a thread.
Definition: thread.h:99
uint32_t maximum_keys
This field contains the maximum number of POSIX API keys which are configured for this application...
Definition: config.h:149
uint32_t maximum_key_value_pairs
This field contains the maximum number of POSIX API key value pairs which are configured for this app...
Definition: config.h:159
void *(* rtems_stack_allocate_hook)(size_t stack_size)
Task stack allocator hook.
Definition: config.h:108
rtems_stack_allocate_init_hook stack_allocate_init_hook
Optional task stack allocator initialization hook.
Definition: config.h:203