RTEMS 6.1-rc2
Loading...
Searching...
No Matches
Files | Data Structures | Macros | Typedefs | Functions
Application Configuration Information

The application configuration information group provides an API to get the configuration of an application. More...

Files

file  config.h
 This header file provides parts of the application configuration information API.
 

Data Structures

struct  rtems_api_configuration_table
 This structure contains a summary of the Classic API configuration. More...
 

Macros

#define RTEMS_UNLIMITED_OBJECTS   OBJECTS_UNLIMITED_OBJECTS
 This flag is used in augment a resource number so that it indicates an unlimited resource.
 
#define rtems_configuration_get_stack_allocator_avoids_work_space()    _Stack_Allocator_avoids_workspace
 Indicates if the task stack allocator is configured to avoid the RTEMS Workspace for this application.
 
#define RTEMS_HAS_HARDWARE_FP   CPU_HARDWARE_FP
 This constant evaluates to TRUE, if this processor variant has hardware floating point support, otherwise to FALSE.
 
#define rtems_configuration_get_do_zero_of_workspace()   _Memory_Zero_before_use
 Indicates if the RTEMS Workspace is configured to be zeroed during system initialization for this application.
 
#define rtems_configuration_get_idle_task_stack_size()   _Thread_Idle_stack_size
 Gets the IDLE task stack size in bytes of this application.
 
#define rtems_configuration_get_idle_task()   _Thread_Idle_body
 Gets the IDLE task body of this application.
 
#define rtems_configuration_get_interrupt_stack_size()    ((size_t) _ISR_Stack_size_object)
 Gets the interrupt stack size in bytes of this application.
 
#define rtems_configuration_get_maximum_processors()    _SMP_Processor_configured_maximum
 Gets the maximum number of processors configured for this application.
 
#define rtems_configuration_get_microseconds_per_tick()    _Watchdog_Microseconds_per_tick
 Gets the number of microseconds per clock tick configured for this application.
 
#define rtems_configuration_get_milliseconds_per_tick()    ( _Watchdog_Microseconds_per_tick / 1000 )
 Gets the number of milliseconds per clock tick configured for this application.
 
#define rtems_configuration_get_nanoseconds_per_tick()    _Watchdog_Nanoseconds_per_tick
 Gets the number of microseconds per clock tick configured for this application.
 
#define rtems_configuration_get_number_of_initial_extensions()    ((uint32_t) _User_extensions_Initial_count)
 Gets the number of initial extensions configured for this application.
 
#define rtems_configuration_get_stack_allocate_for_idle_hook()    _Stack_Allocator_allocate_for_idle
 Gets the task stack allocator allocate hook used to allocate the stack of each IDLE task configured for this application.
 
#define rtems_configuration_get_stack_allocate_hook()   _Stack_Allocator_allocate
 Gets the task stack allocator allocate hook configured for this application.
 
#define rtems_configuration_get_stack_allocate_init_hook()    _Stack_Allocator_initialize
 Gets the task stack allocator initialization hook configured for this application.
 
#define rtems_configuration_get_stack_free_hook()   _Stack_Allocator_free
 Gets the task stack allocator free hook configured for this application.
 
#define rtems_configuration_get_ticks_per_timeslice()    _Watchdog_Ticks_per_timeslice
 Gets the clock ticks per timeslice configured for this application.
 
#define rtems_configuration_get_unified_work_area()   _Workspace_Is_unified
 Indicates if the RTEMS Workspace and C Program Heap are configured to be unified for this application.
 
#define rtems_configuration_get_user_extension_table()    _User_extensions_Initial_extensions
 Gets the initial extensions table configured for this application.
 
#define rtems_configuration_get_user_multiprocessing_table()   NULL
 Gets the MPCI configuration table configured for this application.
 
#define rtems_configuration_get_work_space_size()
 Gets the RTEMS Workspace size in bytes configured for this application.
 
#define rtems_resource_is_unlimited(_resource)    _Objects_Is_unlimited( _resource )
 Indicates if the resource is unlimited.
 
#define rtems_resource_maximum_per_allocation(_resource)    _Objects_Maximum_per_allocation( _resource )
 Gets the maximum number per allocation of a resource number.
 
#define rtems_resource_unlimited(_resource)    ( ( _resource ) | RTEMS_UNLIMITED_OBJECTS )
 Augments the resource number so that it indicates an unlimited resource.
 

Typedefs

typedef Stack_Allocator_allocate rtems_stack_allocate_hook
 A thread stack allocator allocate handler shall have this type.
 
typedef Stack_Allocator_initialize rtems_stack_allocate_init_hook
 A task stack allocator initialization handler shall have this type.
 
typedef Stack_Allocator_free rtems_stack_free_hook
 A task stack allocator free handler shall have this type.
 

Functions

uintptr_t rtems_configuration_get_stack_space_size (void)
 Gets the configured size in bytes of the memory space used to allocate thread stacks for this application.
 
const char * rtems_get_build_label (void)
 Gets the RTEMS build label.
 
const char * rtems_get_copyright_notice (void)
 Gets the RTEMS copyright notice.
 
const char * rtems_get_target_hash (void)
 Gets the RTEMS target hash.
 
const char * rtems_get_version_string (void)
 Gets the RTEMS version string.
 
uint32_t rtems_configuration_get_maximum_extensions (void)
 Gets the resource number of User Extensions Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_barriers (void)
 Gets the resource number of Barrier Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_message_queues (void)
 Gets the resource number of Message Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_partitions (void)
 Gets the resource number of Partition Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_periods (void)
 Gets the resource number of Rate-Monotonic Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_ports (void)
 Gets the resource number of Dual-Ported Memory Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_regions (void)
 Gets the resource number of Region Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_semaphores (void)
 Gets the resource number of Semaphore Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_tasks (void)
 Gets the resource number of Task Manager objects configured for this application.
 
uint32_t rtems_configuration_get_maximum_timers (void)
 Gets the resource number of Timer Manager objects configured for this application.
 
const rtems_api_configuration_tablertems_configuration_get_rtems_api_configuration (void)
 Gets the Classic API Configuration Table of this application.
 

Detailed Description

The application configuration information group provides an API to get the configuration of an application.

RTEMS must be configured for an application. This configuration encompasses a variety of information including the length of each clock tick, the maximum number of each information RTEMS object that can be created, the application initialization tasks, the task scheduling algorithm to be used, and the device drivers in the application.

Although this information is contained in data structures that are used by RTEMS at system initialization time, the data structures themselves must not be generated by hand. RTEMS provides a set of macros system which provides a simple standard mechanism to automate the generation of these structures.

The RTEMS header file <rtems/confdefs.h> is at the core of the automatic generation of system configuration. It is based on the idea of setting macros which define configuration parameters of interest to the application and defaulting or calculating all others. This variety of macros can automatically produce all of the configuration data required for an RTEMS application. The term confdefs is shorthand for a Configuration Defaults.

As a general rule, application developers only specify values for the configuration parameters of interest to them. They define what resources or features they require. In most cases, when a parameter is not specified, it defaults to zero (0) instances, a standards compliant value, or disabled as appropriate. For example, by default there will be 256 task priority levels but this can be lowered by the application. This number of priority levels is required to be compliant with the RTEID/ORKID standards upon which the Classic API is based. There are similar cases where the default is selected to be compliant with the POSIX standard.

For each configuration parameter in the configuration tables, the macro corresponding to that field is discussed. The RTEMS Maintainers expect that all systems can be easily configured using the <rtems/confdefs.h> mechanism and that using this mechanism will avoid internal RTEMS configuration changes impacting applications.

Some application configuration settings and other system parameters can be queried by the application.

Macro Definition Documentation

◆ rtems_configuration_get_do_zero_of_workspace

#define rtems_configuration_get_do_zero_of_workspace ( )    _Memory_Zero_before_use

Indicates if the RTEMS Workspace is configured to be zeroed during system initialization for this application.

Returns
Returns true, if the RTEMS Workspace is configured to be zeroed during system initialization for this application, otherwise false.
Notes
The setting is defined by the CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_idle_task

#define rtems_configuration_get_idle_task ( )    _Thread_Idle_body

Gets the IDLE task body of this application.

Returns
Returns the IDLE task body of this application.
Notes
The IDLE task body is defined by the CONFIGURE_IDLE_TASK_BODY application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_idle_task_stack_size

#define rtems_configuration_get_idle_task_stack_size ( )    _Thread_Idle_stack_size

Gets the IDLE task stack size in bytes of this application.

Returns
Returns the IDLE task stack size in bytes of this application.
Notes
The IDLE task stack size is defined by the CONFIGURE_IDLE_TASK_STACK_SIZE application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_interrupt_stack_size

#define rtems_configuration_get_interrupt_stack_size ( )     ((size_t) _ISR_Stack_size_object)

Gets the interrupt stack size in bytes of this application.

Returns
Returns the interrupt stack size in bytes of this application.
Notes
The interrupt stack size is defined by the CONFIGURE_INTERRUPT_STACK_SIZE application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_processors

#define rtems_configuration_get_maximum_processors ( )     _SMP_Processor_configured_maximum

Gets the maximum number of processors configured for this application.

Returns
Returns the maximum number of processors configured for this application.
Notes

The actual number of processors available to the application is returned by rtems_scheduler_get_processor_maximum() which less than or equal to the configured maximum number of processors (CONFIGURE_MAXIMUM_PROCESSORS).

In uniprocessor configurations, this macro is a compile time constant which evaluates to one.

Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_microseconds_per_tick

#define rtems_configuration_get_microseconds_per_tick ( )     _Watchdog_Microseconds_per_tick

Gets the number of microseconds per clock tick configured for this application.

Returns
Returns the number of microseconds per clock tick configured for this application.
Notes
The number of microseconds per clock tick is defined by the CONFIGURE_MICROSECONDS_PER_TICK application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_milliseconds_per_tick

#define rtems_configuration_get_milliseconds_per_tick ( )     ( _Watchdog_Microseconds_per_tick / 1000 )

Gets the number of milliseconds per clock tick configured for this application.

Returns
Returns the number of milliseconds per clock tick configured for this application.
Notes
The number of milliseconds per clock tick is defined by the CONFIGURE_MICROSECONDS_PER_TICK application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_nanoseconds_per_tick

#define rtems_configuration_get_nanoseconds_per_tick ( )     _Watchdog_Nanoseconds_per_tick

Gets the number of microseconds per clock tick configured for this application.

Returns
Returns the number of microseconds per clock tick configured for this application.
Notes
The number of nanoseconds per clock tick is defined by the CONFIGURE_MICROSECONDS_PER_TICK application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_number_of_initial_extensions

#define rtems_configuration_get_number_of_initial_extensions ( )     ((uint32_t) _User_extensions_Initial_count)

Gets the number of initial extensions configured for this application.

Returns
Returns the number of initial extensions configured for this application.
Notes
The number of initial extensions is defined by the CONFIGURE_INITIAL_EXTENSIONS application configuration option and related options.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_stack_allocate_for_idle_hook

#define rtems_configuration_get_stack_allocate_for_idle_hook ( )     _Stack_Allocator_allocate_for_idle

Gets the task stack allocator allocate hook used to allocate the stack of each IDLE task configured for this application.

Returns
Returns the task stack allocator allocate hook used to allocate the stack of each IDLE task configured for this application.
Notes
The task stack allocator allocate hook for idle tasks is defined by the CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_stack_allocate_hook

#define rtems_configuration_get_stack_allocate_hook ( )    _Stack_Allocator_allocate

Gets the task stack allocator allocate hook configured for this application.

Returns
Returns the task stack allocator allocate hook configured for this application.
Notes
The task stack allocator allocate hook is defined by the CONFIGURE_TASK_STACK_ALLOCATOR application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_stack_allocate_init_hook

#define rtems_configuration_get_stack_allocate_init_hook ( )     _Stack_Allocator_initialize

Gets the task stack allocator initialization hook configured for this application.

Returns
Returns the task stack allocator initialization hook configured for this application.
Notes
The task stack allocator initialization hook is defined by the CONFIGURE_TASK_STACK_ALLOCATOR_INIT application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_stack_allocator_avoids_work_space

#define rtems_configuration_get_stack_allocator_avoids_work_space ( )     _Stack_Allocator_avoids_workspace

Indicates if the task stack allocator is configured to avoid the RTEMS Workspace for this application.

Returns
Returns true, if the task stack allocator is configured to avoid the RTEMS Workspace for this application, otherwise false.
Notes
The setting is defined by the CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_stack_free_hook

#define rtems_configuration_get_stack_free_hook ( )    _Stack_Allocator_free

Gets the task stack allocator free hook configured for this application.

Returns
Returns the task stack allocator free hook configured for this application.
Notes
The task stack allocator free hook is defined by the CONFIGURE_TASK_STACK_DEALLOCATOR application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_ticks_per_timeslice

#define rtems_configuration_get_ticks_per_timeslice ( )     _Watchdog_Ticks_per_timeslice

Gets the clock ticks per timeslice configured for this application.

Returns
Returns the clock ticks per timeslice configured for this application.
Notes
The clock ticks per timeslice is defined by the CONFIGURE_TICKS_PER_TIMESLICE application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_unified_work_area

#define rtems_configuration_get_unified_work_area ( )    _Workspace_Is_unified

Indicates if the RTEMS Workspace and C Program Heap are configured to be unified for this application.

Returns
Returns true, if the RTEMS Workspace and C Program Heap are configured to be unified for this application, otherwise false.
Notes
The setting is defined by the CONFIGURE_UNIFIED_WORK_AREAS application configuration option.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_user_extension_table

#define rtems_configuration_get_user_extension_table ( )     _User_extensions_Initial_extensions

Gets the initial extensions table configured for this application.

Returns
Returns a pointer to the initial extensions table configured for this application.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_user_multiprocessing_table

#define rtems_configuration_get_user_multiprocessing_table ( )    NULL

Gets the MPCI configuration table configured for this application.

Returns
Returns a pointer to the MPCI configuration table configured for this application.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_work_space_size

#define rtems_configuration_get_work_space_size ( )
Value:
uintptr_t rtems_configuration_get_stack_space_size(void)
Gets the configured size in bytes of the memory space used to allocate thread stacks for this applica...
Definition: configstackspacesize.c:45
#define rtems_configuration_get_stack_allocator_avoids_work_space()
Indicates if the task stack allocator is configured to avoid the RTEMS Workspace for this application...
Definition: config.h:168
const uintptr_t _Workspace_Size
The workspace size in bytes.

Gets the RTEMS Workspace size in bytes configured for this application.

Returns
Returns the RTEMS Workspace size in bytes configured for this application.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_resource_is_unlimited

#define rtems_resource_is_unlimited (   _resource)     _Objects_Is_unlimited( _resource )

Indicates if the resource is unlimited.

Parameters
_resourceis the resource number.
Returns
Returns true, if the resource is unlimited, otherwise false.
Constraints

The following constraints apply to this directive:

  • The directive is implemented by a macro and may be called from within C/C++ constant expressions. In addition, a function implementation of the directive exists for bindings to other programming languages.
  • The directive will not cause the calling task to be preempted.

◆ rtems_resource_maximum_per_allocation

#define rtems_resource_maximum_per_allocation (   _resource)     _Objects_Maximum_per_allocation( _resource )

Gets the maximum number per allocation of a resource number.

Parameters
_resourceis the resource number.
Returns
Returns the maximum number per allocation of a resource number.
Constraints

The following constraints apply to this directive:

  • The directive is implemented by a macro and may be called from within C/C++ constant expressions. In addition, a function implementation of the directive exists for bindings to other programming languages.
  • The directive will not cause the calling task to be preempted.

◆ rtems_resource_unlimited

#define rtems_resource_unlimited (   _resource)     ( ( _resource ) | RTEMS_UNLIMITED_OBJECTS )

Augments the resource number so that it indicates an unlimited resource.

Parameters
_resourceis the resource number to augment.
Returns
Returns the resource number augmented to indicate an unlimited resource.
Notes
This directive should be used to configure unlimited objects, see Unlimited Objects.
Constraints

The following constraints apply to this directive:

  • The directive is implemented by a macro and may be called from within C/C++ constant expressions. In addition, a function implementation of the directive exists for bindings to other programming languages.
  • The directive will not cause the calling task to be preempted.

Function Documentation

◆ rtems_configuration_get_maximum_barriers()

uint32_t rtems_configuration_get_maximum_barriers ( void  )

Gets the resource number of Barrier Manager objects configured for this application.

Returns
Returns the resource number of Barrier Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_BARRIERS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_extensions()

uint32_t rtems_configuration_get_maximum_extensions ( void  )

Gets the resource number of User Extensions Manager objects configured for this application.

Returns
Returns the resource number of User Extensions Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_USER_EXTENSIONS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_message_queues()

uint32_t rtems_configuration_get_maximum_message_queues ( void  )

Gets the resource number of Message Manager objects configured for this application.

Returns
Returns the resource number of Message Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_MESSAGE_QUEUES application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_partitions()

uint32_t rtems_configuration_get_maximum_partitions ( void  )

Gets the resource number of Partition Manager objects configured for this application.

Returns
Returns the resource number of Partition Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_PARTITIONS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_periods()

uint32_t rtems_configuration_get_maximum_periods ( void  )

Gets the resource number of Rate-Monotonic Manager objects configured for this application.

Returns
Returns the resource number of Rate-Monotonic Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_PERIODS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_ports()

uint32_t rtems_configuration_get_maximum_ports ( void  )

Gets the resource number of Dual-Ported Memory Manager objects configured for this application.

Returns
Returns the resource number of Dual-Ported Memory Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_PORTS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_regions()

uint32_t rtems_configuration_get_maximum_regions ( void  )

Gets the resource number of Region Manager objects configured for this application.

Returns
Returns the resource number of Region Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_REGIONS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_semaphores()

uint32_t rtems_configuration_get_maximum_semaphores ( void  )

Gets the resource number of Semaphore Manager objects configured for this application.

Returns
Returns the resource number of Semaphore Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_SEMAPHORES application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_tasks()

uint32_t rtems_configuration_get_maximum_tasks ( void  )

Gets the resource number of Task Manager objects configured for this application.

Returns
Returns the resource number of Task Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_TASKS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_maximum_timers()

uint32_t rtems_configuration_get_maximum_timers ( void  )

Gets the resource number of Timer Manager objects configured for this application.

Returns
Returns the resource number of Timer Manager objects configured for this application.
Notes
The resource number is defined by the CONFIGURE_MAXIMUM_TIMERS application configuration option. See also rtems_resource_is_unlimited() and rtems_resource_maximum_per_allocation().
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_rtems_api_configuration()

const rtems_api_configuration_table * rtems_configuration_get_rtems_api_configuration ( void  )

Gets the Classic API Configuration Table of this application.

Returns
Returns a pointer to the Classic API Configuration Table of this application.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_configuration_get_stack_space_size()

uintptr_t rtems_configuration_get_stack_space_size ( void  )

Gets the configured size in bytes of the memory space used to allocate thread stacks for this application.

Returns
Returns the configured size in bytes of the memory space used to allocate thread stacks for this application.
Notes
The size takes only threads and tasks into account with are known at the application configuration time.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_get_build_label()

const char * rtems_get_build_label ( void  )

Gets the RTEMS build label.

The build label is a user-provided string defined by the build configuration through the RTEMS_BUILD_LABEL build option. The format of the string is completely user-defined.

Returns
Returns a pointer to the RTEMS build label.
Notes
The build label can be used to distinguish test suite results obtained from different build configurations. A use case is to record test results with performance data to track performance regressions. For this a database of performance limits is required. The build label and the target hash obtained from rtems_get_target_hash() can be used as a key to obtain performance limits.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_get_copyright_notice()

const char * rtems_get_copyright_notice ( void  )

Gets the RTEMS copyright notice.

Returns
Returns a pointer to the RTEMS copyright notice.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_get_target_hash()

const char * rtems_get_target_hash ( void  )

Gets the RTEMS target hash.

The target hash is calculated from BSP-specific values which characterize a target system. The target hash is encoded as a base64url string. The target hash algorithm is unspecified.

Returns
Returns a pointer to the RTEMS target hash.
Notes

For example, the device tree, settings of the memory controller, processor and bus frequencies, a serial number of a chip may be used to calculate the target hash.

The target hash can be used to distinguish test suite results obtained from different target systems. See also rtems_get_build_label().

Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.

◆ rtems_get_version_string()

const char * rtems_get_version_string ( void  )

Gets the RTEMS version string.

Returns
Returns a pointer to the RTEMS version string.
Notes
The version string has no particular format. Parsing the string may break across RTEMS releases.
Constraints

The following constraints apply to this directive:

  • The directive may be called from within any runtime context.
  • The directive will not cause the calling task to be preempted.