RTEMS 6.3
Loading...
Searching...
No Matches
Application Configuration Information

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

Files

file  cpukit/include/rtems/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()
 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()
 Indicates if the RTEMS Workspace is configured to be zeroed during system initialization for this application.
#define rtems_configuration_get_idle_task_stack_size()
 Gets the IDLE task stack size in bytes of this application.
#define rtems_configuration_get_idle_task()
 Gets the IDLE task body of this application.
#define rtems_configuration_get_interrupt_stack_size()
 Gets the interrupt stack size in bytes of this application.
#define rtems_configuration_get_maximum_processors()
 Gets the maximum number of processors configured for this application.
#define rtems_configuration_get_microseconds_per_tick()
 Gets the number of microseconds per clock tick configured for this application.
#define rtems_configuration_get_milliseconds_per_tick()
 Gets the number of milliseconds per clock tick configured for this application.
#define rtems_configuration_get_nanoseconds_per_tick()
 Gets the number of microseconds per clock tick configured for this application.
#define rtems_configuration_get_number_of_initial_extensions()
 Gets the number of initial extensions configured for this application.
#define rtems_configuration_get_stack_allocate_for_idle_hook()
 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()
 Gets the task stack allocator allocate hook configured for this application.
#define rtems_configuration_get_stack_allocate_init_hook()
 Gets the task stack allocator initialization hook configured for this application.
#define rtems_configuration_get_stack_free_hook()
 Gets the task stack allocator free hook configured for this application.
#define rtems_configuration_get_ticks_per_timeslice()
 Gets the clock ticks per timeslice configured for this application.
#define rtems_configuration_get_unified_work_area()
 Indicates if the RTEMS Workspace and C Program Heap are configured to be unified for this application.
#define rtems_configuration_get_user_extension_table()
 Gets the initial extensions table configured for this application.
#define rtems_configuration_get_user_multiprocessing_table()
 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)
 Indicates if the resource is unlimited.
#define rtems_resource_maximum_per_allocation(_resource)
 Gets the maximum number per allocation of a resource number.
#define rtems_resource_unlimited(_resource)
 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_table * rtems_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 ( )
Value:
const bool _Memory_Zero_before_use
Indicates if the memory is zeroed during system initialization.
Definition memoryzerobeforeuse.c:43

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 ( )
Value:
const Thread_Idle_body _Thread_Idle_body
The idle thread body.
Definition threadidledefault.c:44

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 ( )
Value:
const size_t _Thread_Idle_stack_size
The idle thread stack size in bytes.

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 ( )
Value:
const char *const volatile _ISR_Stack_size_object
Provides the configured interrupt stack size through an object.
Definition isr.c:47

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 ( )
Value:
#define _SMP_Processor_configured_maximum
The configured processor maximum.
Definition smp.h:68

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 ( )
Value:
const uint32_t _Watchdog_Microseconds_per_tick
The 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 ( )
Value:

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 ( )
Value:
const uint32_t _Watchdog_Nanoseconds_per_tick
The 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 ( )
Value:
const size_t _User_extensions_Initial_count
The count of initial user extensions.

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 ( )
Value:
const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle
The stack allocator allocate stack for idle thread handler.

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 ( )
Value:
const Stack_Allocator_allocate _Stack_Allocator_allocate
The stack allocator allocate handler.
Definition stackallocator.c:47

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 ( )
Value:
const Stack_Allocator_initialize _Stack_Allocator_initialize
The stack allocator initialization handler.

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 ( )
Value:
const bool _Stack_Allocator_avoids_workspace
Indicates if the stack allocator avoids the workspace.
Definition stackallocator.c:45

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 ( )
Value:
const Stack_Allocator_free _Stack_Allocator_free
The stack allocator free handler.
Definition stackallocatorfree.c:44

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 ( )
Value:
const uint32_t _Watchdog_Ticks_per_timeslice
The watchdog ticks per timeslice.
Definition watchdogtimeslicedefault.c:43

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 ( )
Value:
const bool _Workspace_Is_unified
Indicates if the workspace and C program heap are unified.
Definition wkspaceisunifieddefault.c:43

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 ( )
Value:
const User_extensions_Table _User_extensions_Initial_extensions[]
The table of initial user 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 ( )
Value:
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)
Value:
#define _Objects_Is_unlimited(maximum)
Definition object.h:352

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)
Value:
_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)
Value:
( ( _resource ) | RTEMS_UNLIMITED_OBJECTS )
#define RTEMS_UNLIMITED_OBJECTS
This flag is used in augment a resource number so that it indicates an unlimited resource.
Definition config.h:141

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.