Changeset cc43dc3e in rtems


Ignore:
Timestamp:
10/04/22 08:44:10 (2 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
b57c6541
Parents:
3af84c1
Message:

rtems: Clarify application config info API

Update #3993.

Location:
cpukit/include/rtems
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/include/rtems/config.h

    r3af84c1 rcc43dc3e  
    1111
    1212/*
    13  * Copyright (C) 2021 On-Line Applications Research Corporation (OAR)
    1413 * Copyright (C) 2009, 2021 embedded brains GmbH (http://www.embedded-brains.de)
     14 * Copyright (C) 1988, 2021 On-Line Applications Research Corporation (OAR)
    1515 *
    1616 * Redistribution and use in source and binary forms, with or without
     
    9292 *   get the configuration of an application.
    9393 *
    94  * Some interfaces of this API are also used to define application
    95  * configuration option values, for example rtems_resource_unlimited().
    96  */
     94 * RTEMS must be configured for an application.  This configuration encompasses
     95 * a variety of information including the length of each clock tick, the
     96 * maximum number of each information RTEMS object that can be created, the
     97 * application initialization tasks, the task scheduling algorithm to be used,
     98 * and the device drivers in the application.
     99 *
     100 * Although this information is contained in data structures that are used by
     101 * RTEMS at system initialization time, the data structures themselves must not
     102 * be generated by hand. RTEMS provides a set of macros system which provides a
     103 * simple standard mechanism to automate the generation of these structures.
     104 *
     105 * The RTEMS header file ``<rtems/confdefs.h>`` is at the core of the automatic
     106 * generation of system configuration. It is based on the idea of setting
     107 * macros which define configuration parameters of interest to the application
     108 * and defaulting or calculating all others. This variety of macros can
     109 * automatically produce all of the configuration data required for an RTEMS
     110 * application.  The term ``confdefs`` is shorthand for a *Configuration
     111 * Defaults*.
     112 *
     113 * As a general rule, application developers only specify values for the
     114 * configuration parameters of interest to them. They define what resources or
     115 * features they require. In most cases, when a parameter is not specified, it
     116 * defaults to zero (0) instances, a standards compliant value, or disabled as
     117 * appropriate. For example, by default there will be 256 task priority levels
     118 * but this can be lowered by the application. This number of priority levels
     119 * is required to be compliant with the RTEID/ORKID standards upon which the
     120 * Classic API is based. There are similar cases where the default is selected
     121 * to be compliant with the POSIX standard.
     122 *
     123 * For each configuration parameter in the configuration tables, the macro
     124 * corresponding to that field is discussed. The RTEMS Maintainers expect that
     125 * all systems can be easily configured using the ``<rtems/confdefs.h>``
     126 * mechanism and that using this mechanism will avoid internal RTEMS
     127 * configuration changes impacting applications.
     128 *
     129 * Some application configuration settings and other system parameters can be
     130 * queried by the application.
     131 */
     132
     133/* Generated from spec:/rtems/config/if/unlimited-objects */
     134
     135/**
     136 * @ingroup RTEMSAPIConfig
     137 *
     138 * @brief This flag is used in augment a resource number so that it indicates
     139 *   an unlimited resource.
     140 */
     141#define RTEMS_UNLIMITED_OBJECTS OBJECTS_UNLIMITED_OBJECTS
     142
     143/* Generated from spec:/rtems/config/if/get-stack-allocator-avoids-work-space */
     144
     145/**
     146 * @ingroup RTEMSAPIConfig
     147 *
     148 * @brief Indicates if the task stack allocator is configured to avoid the
     149 *   RTEMS Workspace for this application.
     150 *
     151 * @return Returns true, if the task stack allocator is configured to avoid the
     152 *   RTEMS Workspace for this application, otherwise false.
     153 *
     154 * @par Notes
     155 * The setting is defined by the
     156 * #CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE application configuration
     157 * option.
     158 *
     159 * @par Constraints
     160 * @parblock
     161 * The following constraints apply to this directive:
     162 *
     163 * * The directive may be called from within any runtime context.
     164 *
     165 * * The directive will not cause the calling task to be preempted.
     166 * @endparblock
     167 */
     168#define rtems_configuration_get_stack_allocator_avoids_work_space() \
     169  _Stack_Allocator_avoids_workspace
     170
     171/* Generated from spec:/rtems/config/if/get-stack-space-size */
     172
     173/**
     174 * @ingroup RTEMSAPIConfig
     175 *
     176 * @brief Gets the configured size in bytes of the memory space used to
     177 *   allocate thread stacks for this application.
     178 *
     179 * @return Returns the configured size in bytes of the memory space used to
     180 *   allocate thread stacks for this application.
     181 *
     182 * @par Notes
     183 * The size takes only threads and tasks into account with are known at the
     184 * application configuration time.
     185 *
     186 * @par Constraints
     187 * @parblock
     188 * The following constraints apply to this directive:
     189 *
     190 * * The directive may be called from within any runtime context.
     191 *
     192 * * The directive will not cause the calling task to be preempted.
     193 * @endparblock
     194 */
     195uintptr_t rtems_configuration_get_stack_space_size( void );
     196
     197/* Generated from spec:/rtems/config/if/has-hardware-fp */
     198
     199/**
     200 * @ingroup RTEMSAPIConfig
     201 *
     202 * @brief This constant evaluates to #TRUE, if this processor variant has
     203 *   hardware floating point support, otherwise to #FALSE.
     204 */
     205#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
     206
     207/* Generated from spec:/rtems/config/if/stack-allocate-hook */
     208
     209/**
     210 * @ingroup RTEMSAPIConfig
     211 *
     212 * @brief A thread stack allocator allocate handler shall have this type.
     213 */
     214typedef Stack_Allocator_allocate rtems_stack_allocate_hook;
     215
     216/* Generated from spec:/rtems/config/if/stack-allocate-init-hook */
     217
     218/**
     219 * @ingroup RTEMSAPIConfig
     220 *
     221 * @brief A task stack allocator initialization handler shall have this type.
     222 */
     223typedef Stack_Allocator_initialize rtems_stack_allocate_init_hook;
     224
     225/* Generated from spec:/rtems/config/if/stack-free-hook */
     226
     227/**
     228 * @ingroup RTEMSAPIConfig
     229 *
     230 * @brief A task stack allocator free handler shall have this type.
     231 */
     232typedef Stack_Allocator_free rtems_stack_free_hook;
    97233
    98234/* Generated from spec:/rtems/config/if/get-build-label */
     
    103239 * @brief Gets the RTEMS build label.
    104240 *
    105  * The build label is a user-provided string defined by the build
    106  * configuration.
    107  *
    108  * @return Returns the pointer to the RTEMS build label.
     241 * The build label is a user-provided string defined by the build configuration
     242 * through the ``RTEMS_BUILD_LABEL`` build option.  The format of the string is
     243 * completely user-defined.
     244 *
     245 * @return Returns a pointer to the RTEMS build label.
    109246 *
    110247 * @par Notes
     
    134271 * @brief Gets the RTEMS copyright notice.
    135272 *
    136  * @return Returns the pointer to the RTEMS copyright notice.
     273 * @return Returns a pointer to the RTEMS copyright notice.
     274 *
     275 * @par Constraints
     276 * @parblock
     277 * The following constraints apply to this directive:
     278 *
     279 * * The directive may be called from within any runtime context.
     280 *
     281 * * The directive will not cause the calling task to be preempted.
     282 * @endparblock
    137283 */
    138284const char *rtems_get_copyright_notice( void );
     285
     286/* Generated from spec:/rtems/config/if/get-target-hash */
     287
     288/**
     289 * @ingroup RTEMSAPIConfig
     290 *
     291 * @brief Gets the RTEMS target hash.
     292 *
     293 * The target hash is calculated from BSP-specific values which characterize a
     294 * target system.  The target hash is encoded as a base64url string.  The
     295 * target hash algorithm is unspecified.
     296 *
     297 * @return Returns a pointer to the RTEMS target hash.
     298 *
     299 * @par Notes
     300 * @parblock
     301 * For example, the device tree, settings of the memory controller, processor
     302 * and bus frequencies, a serial number of a chip may be used to calculate the
     303 * target hash.
     304 *
     305 * The target hash can be used to distinguish test suite results obtained from
     306 * different target systems.  See also rtems_get_build_label().
     307 * @endparblock
     308 *
     309 * @par Constraints
     310 * @parblock
     311 * The following constraints apply to this directive:
     312 *
     313 * * The directive may be called from within any runtime context.
     314 *
     315 * * The directive will not cause the calling task to be preempted.
     316 * @endparblock
     317 */
     318const char *rtems_get_target_hash( void );
     319
     320/* Generated from spec:/rtems/config/if/get-version-string */
     321
     322/**
     323 * @ingroup RTEMSAPIConfig
     324 *
     325 * @brief Gets the RTEMS version string.
     326 *
     327 * @return Returns a pointer to the RTEMS version string.
     328 *
     329 * @par Notes
     330 * The version string has no particular format.  Parsing the string may break
     331 * across RTEMS releases.
     332 *
     333 * @par Constraints
     334 * @parblock
     335 * The following constraints apply to this directive:
     336 *
     337 * * The directive may be called from within any runtime context.
     338 *
     339 * * The directive will not cause the calling task to be preempted.
     340 * @endparblock
     341 */
     342const char *rtems_get_version_string( void );
    139343
    140344/* Generated from spec:/rtems/config/if/get-do-zero-of-workspace */
     
    150354 *
    151355 * @par Notes
    152  * See #CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY.
     356 * The setting is defined by the #CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
     357 * application configuration option.
     358 *
     359 * @par Constraints
     360 * @parblock
     361 * The following constraints apply to this directive:
     362 *
     363 * * The directive may be called from within any runtime context.
     364 *
     365 * * The directive will not cause the calling task to be preempted.
     366 * @endparblock
    153367 */
    154368#define rtems_configuration_get_do_zero_of_workspace() _Memory_Zero_before_use
    155369
     370/* Generated from spec:/rtems/config/if/get-idle-task-stack-size */
     371
     372/**
     373 * @ingroup RTEMSAPIConfig
     374 *
     375 * @brief Gets the IDLE task stack size in bytes of this application.
     376 *
     377 * @return Returns the IDLE task stack size in bytes of this application.
     378 *
     379 * @par Notes
     380 * The IDLE task stack size is defined by the #CONFIGURE_IDLE_TASK_STACK_SIZE
     381 * application configuration option.
     382 *
     383 * @par Constraints
     384 * @parblock
     385 * The following constraints apply to this directive:
     386 *
     387 * * The directive may be called from within any runtime context.
     388 *
     389 * * The directive will not cause the calling task to be preempted.
     390 * @endparblock
     391 */
     392#define rtems_configuration_get_idle_task_stack_size() _Thread_Idle_stack_size
     393
    156394/* Generated from spec:/rtems/config/if/get-idle-task */
    157395
     
    159397 * @ingroup RTEMSAPIConfig
    160398 *
    161  * @brief Gets the IDLE task entry of this application.
    162  *
    163  * @return Returns the IDLE task entry of this application.
    164  *
    165  * @par Notes
    166  * See #CONFIGURE_IDLE_TASK_BODY.
     399 * @brief Gets the IDLE task body of this application.
     400 *
     401 * @return Returns the IDLE task body of this application.
     402 *
     403 * @par Notes
     404 * The IDLE task body is defined by the #CONFIGURE_IDLE_TASK_BODY application
     405 * configuration option.
     406 *
     407 * @par Constraints
     408 * @parblock
     409 * The following constraints apply to this directive:
     410 *
     411 * * The directive may be called from within any runtime context.
     412 *
     413 * * The directive will not cause the calling task to be preempted.
     414 * @endparblock
    167415 */
    168416#define rtems_configuration_get_idle_task() _Thread_Idle_body
    169417
    170 /* Generated from spec:/rtems/config/if/get-idle-task-stack-size */
    171 
    172 /**
    173  * @ingroup RTEMSAPIConfig
    174  *
    175  * @brief Gets the IDLE task stack size in bytes of this application.
    176  *
    177  * @return Returns the IDLE task stack size in bytes of this application.
    178  *
    179  * @par Notes
    180  * See #CONFIGURE_IDLE_TASK_STACK_SIZE.
    181  */
    182 #define rtems_configuration_get_idle_task_stack_size() _Thread_Idle_stack_size
    183 
    184418/* Generated from spec:/rtems/config/if/get-interrupt-stack-size */
    185419
     
    192426 *
    193427 * @par Notes
    194  * See #CONFIGURE_INTERRUPT_STACK_SIZE.
     428 * The interrupt stack size is defined by the #CONFIGURE_INTERRUPT_STACK_SIZE
     429 * application configuration option.
     430 *
     431 * @par Constraints
     432 * @parblock
     433 * The following constraints apply to this directive:
     434 *
     435 * * The directive may be called from within any runtime context.
     436 *
     437 * * The directive will not cause the calling task to be preempted.
     438 * @endparblock
    195439 */
    196440#define rtems_configuration_get_interrupt_stack_size() \
     
    202446 * @ingroup RTEMSAPIConfig
    203447 *
    204  * @brief Gets the maximum number of Classic API User Extensions configured for
    205  *   this application.
    206  *
    207  * @return Returns the maximum number of Classic API User Extensions configured
    208  *   for this application.
    209  *
    210  * @par Notes
    211  * See #CONFIGURE_MAXIMUM_USER_EXTENSIONS.
     448 * @brief Gets the resource number of @ref RTEMSAPIClassicUserExt objects
     449 *   configured for this application.
     450 *
     451 * @return Returns the resource number of @ref RTEMSAPIClassicUserExt objects
     452 *   configured for this application.
     453 *
     454 * @par Notes
     455 * The resource number is defined by the #CONFIGURE_MAXIMUM_USER_EXTENSIONS
     456 * application configuration option.  See also rtems_resource_is_unlimited()
     457 * and rtems_resource_maximum_per_allocation().
     458 *
     459 * @par Constraints
     460 * @parblock
     461 * The following constraints apply to this directive:
     462 *
     463 * * The directive may be called from within any runtime context.
     464 *
     465 * * The directive will not cause the calling task to be preempted.
     466 * @endparblock
    212467 */
    213468uint32_t rtems_configuration_get_maximum_extensions( void );
     
    233488 * evaluates to one.
    234489 * @endparblock
     490 *
     491 * @par Constraints
     492 * @parblock
     493 * The following constraints apply to this directive:
     494 *
     495 * * The directive may be called from within any runtime context.
     496 *
     497 * * The directive will not cause the calling task to be preempted.
     498 * @endparblock
    235499 */
    236500#define rtems_configuration_get_maximum_processors() \
     
    249513 *
    250514 * @par Notes
    251  * See #CONFIGURE_MICROSECONDS_PER_TICK.
     515 * The number of microseconds per clock tick is defined by the
     516 * #CONFIGURE_MICROSECONDS_PER_TICK application configuration option.
     517 *
     518 * @par Constraints
     519 * @parblock
     520 * The following constraints apply to this directive:
     521 *
     522 * * The directive may be called from within any runtime context.
     523 *
     524 * * The directive will not cause the calling task to be preempted.
     525 * @endparblock
    252526 */
    253527#define rtems_configuration_get_microseconds_per_tick() \
     
    266540 *
    267541 * @par Notes
    268  * See #CONFIGURE_MICROSECONDS_PER_TICK.
     542 * The number of milliseconds per clock tick is defined by the
     543 * #CONFIGURE_MICROSECONDS_PER_TICK application configuration option.
     544 *
     545 * @par Constraints
     546 * @parblock
     547 * The following constraints apply to this directive:
     548 *
     549 * * The directive may be called from within any runtime context.
     550 *
     551 * * The directive will not cause the calling task to be preempted.
     552 * @endparblock
    269553 */
    270554#define rtems_configuration_get_milliseconds_per_tick() \
     
    283567 *
    284568 * @par Notes
    285  * See #CONFIGURE_MICROSECONDS_PER_TICK.
     569 * The number of nanoseconds per clock tick is defined by the
     570 * #CONFIGURE_MICROSECONDS_PER_TICK application configuration option.
     571 *
     572 * @par Constraints
     573 * @parblock
     574 * The following constraints apply to this directive:
     575 *
     576 * * The directive may be called from within any runtime context.
     577 *
     578 * * The directive will not cause the calling task to be preempted.
     579 * @endparblock
    286580 */
    287581#define rtems_configuration_get_nanoseconds_per_tick() \
     
    300594 *
    301595 * @par Notes
    302  * See #CONFIGURE_INITIAL_EXTENSIONS.
     596 * The number of initial extensions is defined by the
     597 * #CONFIGURE_INITIAL_EXTENSIONS application configuration option and related
     598 * options.
     599 *
     600 * @par Constraints
     601 * @parblock
     602 * The following constraints apply to this directive:
     603 *
     604 * * The directive may be called from within any runtime context.
     605 *
     606 * * The directive will not cause the calling task to be preempted.
     607 * @endparblock
    303608 */
    304609#define rtems_configuration_get_number_of_initial_extensions() \
     
    310615 * @ingroup RTEMSAPIConfig
    311616 *
    312  * @brief Gets the thread stack allocator allocate hook used to allocate the
     617 * @brief Gets the task stack allocator allocate hook used to allocate the
    313618 *   stack of each IDLE task configured for this application.
    314619 *
    315  * @return Returns the thread stack allocator allocate hook used to allocate
    316  *   the stack of each IDLE task configured for this application.
    317  *
    318  * @par Notes
    319  * See #CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE.
     620 * @return Returns the task stack allocator allocate hook used to allocate the
     621 *   stack of each IDLE task configured for this application.
     622 *
     623 * @par Notes
     624 * The task stack allocator allocate hook for idle tasks is defined by the
     625 * #CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE application configuration option.
     626 *
     627 * @par Constraints
     628 * @parblock
     629 * The following constraints apply to this directive:
     630 *
     631 * * The directive may be called from within any runtime context.
     632 *
     633 * * The directive will not cause the calling task to be preempted.
     634 * @endparblock
    320635 */
    321636#define rtems_configuration_get_stack_allocate_for_idle_hook() \
     
    327642 * @ingroup RTEMSAPIConfig
    328643 *
    329  * @brief Gets the thread stack allocator allocate hook configured for this
    330  *   application.
    331  *
    332  * @return Returns the thread stack allocator allocate hook configured for this
    333  *   application.
    334  *
    335  * @par Notes
    336  * See #CONFIGURE_TASK_STACK_ALLOCATOR.
     644 * @brief Gets the task stack allocator allocate hook configured for this
     645 *   application.
     646 *
     647 * @return Returns the task stack allocator allocate hook configured for this
     648 *   application.
     649 *
     650 * @par Notes
     651 * The task stack allocator allocate hook is defined by the
     652 * #CONFIGURE_TASK_STACK_ALLOCATOR application configuration option.
     653 *
     654 * @par Constraints
     655 * @parblock
     656 * The following constraints apply to this directive:
     657 *
     658 * * The directive may be called from within any runtime context.
     659 *
     660 * * The directive will not cause the calling task to be preempted.
     661 * @endparblock
    337662 */
    338663#define rtems_configuration_get_stack_allocate_hook() _Stack_Allocator_allocate
     
    343668 * @ingroup RTEMSAPIConfig
    344669 *
    345  * @brief Gets the thread stack allocator initialization hook configured for
     670 * @brief Gets the task stack allocator initialization hook configured for this
     671 *   application.
     672 *
     673 * @return Returns the task stack allocator initialization hook configured for
    346674 *   this application.
    347675 *
    348  * @return Returns the thread stack allocator initialization hook configured
    349  *   for this application.
    350  *
    351  * @par Notes
    352  * See #CONFIGURE_TASK_STACK_ALLOCATOR_INIT.
     676 * @par Notes
     677 * The task stack allocator initialization hook is defined by the
     678 * #CONFIGURE_TASK_STACK_ALLOCATOR_INIT application configuration option.
     679 *
     680 * @par Constraints
     681 * @parblock
     682 * The following constraints apply to this directive:
     683 *
     684 * * The directive may be called from within any runtime context.
     685 *
     686 * * The directive will not cause the calling task to be preempted.
     687 * @endparblock
    353688 */
    354689#define rtems_configuration_get_stack_allocate_init_hook() \
    355690  _Stack_Allocator_initialize
    356691
    357 /* Generated from spec:/rtems/config/if/get-stack-allocator-avoids-work-space */
    358 
    359 /**
    360  * @ingroup RTEMSAPIConfig
    361  *
    362  * @brief Indicates if the thread stack allocator is configured to avoid the
    363  *   RTEMS Workspace for this application.
    364  *
    365  * @return Returns true, if the thread stack allocator is configured to avoid
    366  *   the RTEMS Workspace for this application, otherwise false.
    367  *
    368  * @par Notes
    369  * See #CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE.
    370  */
    371 #define rtems_configuration_get_stack_allocator_avoids_work_space() \
    372   _Stack_Allocator_avoids_workspace
    373 
    374692/* Generated from spec:/rtems/config/if/get-stack-free-hook */
    375693
     
    377695 * @ingroup RTEMSAPIConfig
    378696 *
    379  * @brief Gets the thread stack allocator free hook configured for this
    380  *   application.
    381  *
    382  * @return Returns the thread stack allocator free hook configured for this
    383  *   application.
    384  *
    385  * @par Notes
    386  * See #CONFIGURE_TASK_STACK_DEALLOCATOR.
     697 * @brief Gets the task stack allocator free hook configured for this
     698 *   application.
     699 *
     700 * @return Returns the task stack allocator free hook configured for this
     701 *   application.
     702 *
     703 * @par Notes
     704 * The task stack allocator free hook is defined by the
     705 * #CONFIGURE_TASK_STACK_DEALLOCATOR application configuration option.
     706 *
     707 * @par Constraints
     708 * @parblock
     709 * The following constraints apply to this directive:
     710 *
     711 * * The directive may be called from within any runtime context.
     712 *
     713 * * The directive will not cause the calling task to be preempted.
     714 * @endparblock
    387715 */
    388716#define rtems_configuration_get_stack_free_hook() _Stack_Allocator_free
    389717
    390 /* Generated from spec:/rtems/config/if/get-stack-space-size */
    391 
    392 /**
    393  * @ingroup RTEMSAPIConfig
    394  *
    395  * @brief Gets the thread stack space size in bytes of configured for this
    396  *   application.
    397  *
    398  * @return Returns the thread stack space size in bytes of configured for this
    399  *   application.
    400  */
    401 uintptr_t rtems_configuration_get_stack_space_size( void );
    402 
    403 /* Generated from spec:/rtems/config/if/get-target-hash */
    404 
    405 /**
    406  * @ingroup RTEMSAPIConfig
    407  *
    408  * @brief Gets the RTEMS target hash.
    409  *
    410  * The target hash is calculated from BSP-specific values which characterize a
    411  * target system.
    412  *
    413  * @return Returns the pointer to the RTEMS target hash.
    414  *
    415  * @par Notes
    416  * @parblock
    417  * For example, the device tree, settings of the memory controller, processor
    418  * and bus frequencies, a serial number of a chip may be used to calculate the
    419  * target hash.
    420  *
    421  * The target hash can be used to distinguish test suite results obtained from
    422  * different target systems.  See also rtems_get_build_label().
    423  * @endparblock
    424  *
    425  * @par Constraints
    426  * @parblock
    427  * The following constraints apply to this directive:
    428  *
    429  * * The directive may be called from within any runtime context.
    430  *
    431  * * The directive will not cause the calling task to be preempted.
    432  * @endparblock
    433  */
    434 const char *rtems_get_target_hash( void );
    435 
    436718/* Generated from spec:/rtems/config/if/get-ticks-per-timeslice */
    437719
     
    445727 *
    446728 * @par Notes
    447  * See #CONFIGURE_TICKS_PER_TIMESLICE.
     729 * The clock ticks per timeslice is defined by the
     730 * #CONFIGURE_TICKS_PER_TIMESLICE application configuration option.
     731 *
     732 * @par Constraints
     733 * @parblock
     734 * The following constraints apply to this directive:
     735 *
     736 * * The directive may be called from within any runtime context.
     737 *
     738 * * The directive will not cause the calling task to be preempted.
     739 * @endparblock
    448740 */
    449741#define rtems_configuration_get_ticks_per_timeslice() \
     
    462754 *
    463755 * @par Notes
    464  * See #CONFIGURE_UNIFIED_WORK_AREAS.
     756 * The setting is defined by the #CONFIGURE_UNIFIED_WORK_AREAS application
     757 * configuration option.
     758 *
     759 * @par Constraints
     760 * @parblock
     761 * The following constraints apply to this directive:
     762 *
     763 * * The directive may be called from within any runtime context.
     764 *
     765 * * The directive will not cause the calling task to be preempted.
     766 * @endparblock
    465767 */
    466768#define rtems_configuration_get_unified_work_area() _Workspace_Is_unified
     
    473775 * @brief Gets the initial extensions table configured for this application.
    474776 *
    475  * @return Returns the pointer to the initial extensions table configured for
     777 * @return Returns a pointer to the initial extensions table configured for
    476778 *   this application.
     779 *
     780 * @par Constraints
     781 * @parblock
     782 * The following constraints apply to this directive:
     783 *
     784 * * The directive may be called from within any runtime context.
     785 *
     786 * * The directive will not cause the calling task to be preempted.
     787 * @endparblock
    477788 */
    478789#define rtems_configuration_get_user_extension_table() \
     
    486797 * @brief Gets the MPCI configuration table configured for this application.
    487798 *
    488  * @return Returns the pointer to the MPCI configuration table configured for
     799 * @return Returns a pointer to the MPCI configuration table configured for
    489800 *   this application.
     801 *
     802 * @par Constraints
     803 * @parblock
     804 * The following constraints apply to this directive:
     805 *
     806 * * The directive may be called from within any runtime context.
     807 *
     808 * * The directive will not cause the calling task to be preempted.
     809 * @endparblock
    490810 */
    491811#if defined(RTEMS_MULTIPROCESSING)
     
    496816#endif
    497817
    498 /* Generated from spec:/rtems/config/if/get-version-string */
    499 
    500 /**
    501  * @ingroup RTEMSAPIConfig
    502  *
    503  * @brief Gets the RTEMS version string.
    504  *
    505  * @return Returns the pointer to the RTEMS version string.
    506  */
    507 const char *rtems_get_version_string( void );
    508 
    509818/* Generated from spec:/rtems/config/if/get-work-space-size */
    510819
     
    517826 * @return Returns the RTEMS Workspace size in bytes configured for this
    518827 *   application.
     828 *
     829 * @par Constraints
     830 * @parblock
     831 * The following constraints apply to this directive:
     832 *
     833 * * The directive may be called from within any runtime context.
     834 *
     835 * * The directive will not cause the calling task to be preempted.
     836 * @endparblock
    519837 */
    520838#define rtems_configuration_get_work_space_size() \
     
    523841      0 : rtems_configuration_get_stack_space_size() ) )
    524842
    525 /* Generated from spec:/rtems/config/if/has-hardware-fp */
    526 
    527 /**
    528  * @ingroup RTEMSAPIConfig
    529  *
    530  * @brief This constant evaluates to #TRUE, if this processor variant has
    531  *   hardware floating point support, otherwise to #FALSE.
    532  */
    533 #define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
    534 
    535843/* Generated from spec:/rtems/config/if/resource-is-unlimited */
    536844
     
    544852 * @return Returns true, if the resource is unlimited, otherwise false.
    545853 *
    546  * @par Notes
    547  * This function is implemented as a macro and can be used to define compile
    548  * time constants.
     854 * @par Constraints
     855 * @parblock
     856 * The following constraints apply to this directive:
     857 *
     858 * * The directive is implemented by a macro and may be called from within
     859 *   C/C++ constant expressions.  In addition, a function implementation of the
     860 *   directive exists for bindings to other programming languages.
     861 *
     862 * * The directive will not cause the calling task to be preempted.
     863 * @endparblock
    549864 */
    550865#define rtems_resource_is_unlimited( _resource ) \
     
    562877 * @return Returns the maximum number per allocation of a resource number.
    563878 *
    564  * @par Notes
    565  * This function is implemented as a macro and can be used to define compile
    566  * time constants.
     879 * @par Constraints
     880 * @parblock
     881 * The following constraints apply to this directive:
     882 *
     883 * * The directive is implemented by a macro and may be called from within
     884 *   C/C++ constant expressions.  In addition, a function implementation of the
     885 *   directive exists for bindings to other programming languages.
     886 *
     887 * * The directive will not cause the calling task to be preempted.
     888 * @endparblock
    567889 */
    568890#define rtems_resource_maximum_per_allocation( _resource ) \
    569891  _Objects_Maximum_per_allocation( _resource )
    570892
    571 /* Generated from spec:/rtems/config/if/stack-allocate-hook */
    572 
    573 /**
    574  * @ingroup RTEMSAPIConfig
    575  *
    576  * @brief A thread stack allocator allocate handler shall have this type.
    577  */
    578 typedef Stack_Allocator_allocate rtems_stack_allocate_hook;
    579 
    580 /* Generated from spec:/rtems/config/if/stack-allocate-init-hook */
    581 
    582 /**
    583  * @ingroup RTEMSAPIConfig
    584  *
    585  * @brief A thread stack allocator initialization handler shall have this type.
    586  */
    587 typedef Stack_Allocator_initialize rtems_stack_allocate_init_hook;
    588 
    589 /* Generated from spec:/rtems/config/if/stack-free-hook */
    590 
    591 /**
    592  * @ingroup RTEMSAPIConfig
    593  *
    594  * @brief A thread stack allocator free handler shall have this type.
    595  */
    596 typedef Stack_Allocator_free rtems_stack_free_hook;
    597 
    598 /* Generated from spec:/rtems/config/if/unlimited-objects */
    599 
    600 /**
    601  * @ingroup RTEMSAPIConfig
    602  *
    603  * @brief This flag is used in augment a resource number so that it indicates
    604  *   an unlimited resource.
    605  */
    606 #define RTEMS_UNLIMITED_OBJECTS OBJECTS_UNLIMITED_OBJECTS
    607 
    608893/* Generated from spec:/rtems/config/if/resource-unlimited */
    609894
     
    620905 *
    621906 * @par Notes
    622  * This function is implemented as a macro and can be used to define compile
    623  * time constants.
     907 * This directive should be used to configure unlimited objects, see Unlimited
     908 * Objects.
     909 *
     910 * @par Constraints
     911 * @parblock
     912 * The following constraints apply to this directive:
     913 *
     914 * * The directive is implemented by a macro and may be called from within
     915 *   C/C++ constant expressions.  In addition, a function implementation of the
     916 *   directive exists for bindings to other programming languages.
     917 *
     918 * * The directive will not cause the calling task to be preempted.
     919 * @endparblock
    624920 */
    625921#define rtems_resource_unlimited( _resource ) \
  • cpukit/include/rtems/rtems/config.h

    r3af84c1 rcc43dc3e  
    172172} rtems_api_configuration_table;
    173173
     174/* Generated from spec:/rtems/config/if/get-maximum-barriers */
     175
     176/**
     177 * @ingroup RTEMSAPIConfig
     178 *
     179 * @brief Gets the resource number of @ref RTEMSAPIClassicBarrier objects
     180 *   configured for this application.
     181 *
     182 * @return Returns the resource number of @ref RTEMSAPIClassicBarrier objects
     183 *   configured for this application.
     184 *
     185 * @par Notes
     186 * The resource number is defined by the #CONFIGURE_MAXIMUM_BARRIERS
     187 * application configuration option.  See also rtems_resource_is_unlimited()
     188 * and rtems_resource_maximum_per_allocation().
     189 *
     190 * @par Constraints
     191 * @parblock
     192 * The following constraints apply to this directive:
     193 *
     194 * * The directive may be called from within any runtime context.
     195 *
     196 * * The directive will not cause the calling task to be preempted.
     197 * @endparblock
     198 */
     199uint32_t rtems_configuration_get_maximum_barriers( void );
     200
     201/* Generated from spec:/rtems/config/if/get-maximum-message-queues */
     202
     203/**
     204 * @ingroup RTEMSAPIConfig
     205 *
     206 * @brief Gets the resource number of @ref RTEMSAPIClassicMessage objects
     207 *   configured for this application.
     208 *
     209 * @return Returns the resource number of @ref RTEMSAPIClassicMessage objects
     210 *   configured for this application.
     211 *
     212 * @par Notes
     213 * The resource number is defined by the #CONFIGURE_MAXIMUM_MESSAGE_QUEUES
     214 * application configuration option.  See also rtems_resource_is_unlimited()
     215 * and rtems_resource_maximum_per_allocation().
     216 *
     217 * @par Constraints
     218 * @parblock
     219 * The following constraints apply to this directive:
     220 *
     221 * * The directive may be called from within any runtime context.
     222 *
     223 * * The directive will not cause the calling task to be preempted.
     224 * @endparblock
     225 */
     226uint32_t rtems_configuration_get_maximum_message_queues( void );
     227
     228/* Generated from spec:/rtems/config/if/get-maximum-partitions */
     229
     230/**
     231 * @ingroup RTEMSAPIConfig
     232 *
     233 * @brief Gets the resource number of @ref RTEMSAPIClassicPart objects
     234 *   configured for this application.
     235 *
     236 * @return Returns the resource number of @ref RTEMSAPIClassicPart objects
     237 *   configured for this application.
     238 *
     239 * @par Notes
     240 * The resource number is defined by the #CONFIGURE_MAXIMUM_PARTITIONS
     241 * application configuration option.  See also rtems_resource_is_unlimited()
     242 * and rtems_resource_maximum_per_allocation().
     243 *
     244 * @par Constraints
     245 * @parblock
     246 * The following constraints apply to this directive:
     247 *
     248 * * The directive may be called from within any runtime context.
     249 *
     250 * * The directive will not cause the calling task to be preempted.
     251 * @endparblock
     252 */
     253uint32_t rtems_configuration_get_maximum_partitions( void );
     254
     255/* Generated from spec:/rtems/config/if/get-maximum-periods */
     256
     257/**
     258 * @ingroup RTEMSAPIConfig
     259 *
     260 * @brief Gets the resource number of @ref RTEMSAPIClassicRatemon objects
     261 *   configured for this application.
     262 *
     263 * @return Returns the resource number of @ref RTEMSAPIClassicRatemon objects
     264 *   configured for this application.
     265 *
     266 * @par Notes
     267 * The resource number is defined by the #CONFIGURE_MAXIMUM_PERIODS application
     268 * configuration option.  See also rtems_resource_is_unlimited() and
     269 * rtems_resource_maximum_per_allocation().
     270 *
     271 * @par Constraints
     272 * @parblock
     273 * The following constraints apply to this directive:
     274 *
     275 * * The directive may be called from within any runtime context.
     276 *
     277 * * The directive will not cause the calling task to be preempted.
     278 * @endparblock
     279 */
     280uint32_t rtems_configuration_get_maximum_periods( void );
     281
     282/* Generated from spec:/rtems/config/if/get-maximum-ports */
     283
     284/**
     285 * @ingroup RTEMSAPIConfig
     286 *
     287 * @brief Gets the resource number of @ref RTEMSAPIClassicDPMem objects
     288 *   configured for this application.
     289 *
     290 * @return Returns the resource number of @ref RTEMSAPIClassicDPMem objects
     291 *   configured for this application.
     292 *
     293 * @par Notes
     294 * The resource number is defined by the #CONFIGURE_MAXIMUM_PORTS application
     295 * configuration option.  See also rtems_resource_is_unlimited() and
     296 * rtems_resource_maximum_per_allocation().
     297 *
     298 * @par Constraints
     299 * @parblock
     300 * The following constraints apply to this directive:
     301 *
     302 * * The directive may be called from within any runtime context.
     303 *
     304 * * The directive will not cause the calling task to be preempted.
     305 * @endparblock
     306 */
     307uint32_t rtems_configuration_get_maximum_ports( void );
     308
     309/* Generated from spec:/rtems/config/if/get-maximum-regions */
     310
     311/**
     312 * @ingroup RTEMSAPIConfig
     313 *
     314 * @brief Gets the resource number of @ref RTEMSAPIClassicRegion objects
     315 *   configured for this application.
     316 *
     317 * @return Returns the resource number of @ref RTEMSAPIClassicRegion objects
     318 *   configured for this application.
     319 *
     320 * @par Notes
     321 * The resource number is defined by the #CONFIGURE_MAXIMUM_REGIONS application
     322 * configuration option.  See also rtems_resource_is_unlimited() and
     323 * rtems_resource_maximum_per_allocation().
     324 *
     325 * @par Constraints
     326 * @parblock
     327 * The following constraints apply to this directive:
     328 *
     329 * * The directive may be called from within any runtime context.
     330 *
     331 * * The directive will not cause the calling task to be preempted.
     332 * @endparblock
     333 */
     334uint32_t rtems_configuration_get_maximum_regions( void );
     335
     336/* Generated from spec:/rtems/config/if/get-maximum-semaphores */
     337
     338/**
     339 * @ingroup RTEMSAPIConfig
     340 *
     341 * @brief Gets the resource number of @ref RTEMSAPIClassicSem objects
     342 *   configured for this application.
     343 *
     344 * @return Returns the resource number of @ref RTEMSAPIClassicSem objects
     345 *   configured for this application.
     346 *
     347 * @par Notes
     348 * The resource number is defined by the #CONFIGURE_MAXIMUM_SEMAPHORES
     349 * application configuration option.  See also rtems_resource_is_unlimited()
     350 * and rtems_resource_maximum_per_allocation().
     351 *
     352 * @par Constraints
     353 * @parblock
     354 * The following constraints apply to this directive:
     355 *
     356 * * The directive may be called from within any runtime context.
     357 *
     358 * * The directive will not cause the calling task to be preempted.
     359 * @endparblock
     360 */
     361uint32_t rtems_configuration_get_maximum_semaphores( void );
     362
     363/* Generated from spec:/rtems/config/if/get-maximum-tasks */
     364
     365/**
     366 * @ingroup RTEMSAPIConfig
     367 *
     368 * @brief Gets the resource number of @ref RTEMSAPIClassicTasks objects
     369 *   configured for this application.
     370 *
     371 * @return Returns the resource number of @ref RTEMSAPIClassicTasks objects
     372 *   configured for this application.
     373 *
     374 * @par Notes
     375 * The resource number is defined by the #CONFIGURE_MAXIMUM_TASKS application
     376 * configuration option.  See also rtems_resource_is_unlimited() and
     377 * rtems_resource_maximum_per_allocation().
     378 *
     379 * @par Constraints
     380 * @parblock
     381 * The following constraints apply to this directive:
     382 *
     383 * * The directive may be called from within any runtime context.
     384 *
     385 * * The directive will not cause the calling task to be preempted.
     386 * @endparblock
     387 */
     388uint32_t rtems_configuration_get_maximum_tasks( void );
     389
     390/* Generated from spec:/rtems/config/if/get-maximum-timers */
     391
     392/**
     393 * @ingroup RTEMSAPIConfig
     394 *
     395 * @brief Gets the resource number of @ref RTEMSAPIClassicTimer objects
     396 *   configured for this application.
     397 *
     398 * @return Returns the resource number of @ref RTEMSAPIClassicTimer objects
     399 *   configured for this application.
     400 *
     401 * @par Notes
     402 * The resource number is defined by the #CONFIGURE_MAXIMUM_TIMERS application
     403 * configuration option.  See also rtems_resource_is_unlimited() and
     404 * rtems_resource_maximum_per_allocation().
     405 *
     406 * @par Constraints
     407 * @parblock
     408 * The following constraints apply to this directive:
     409 *
     410 * * The directive may be called from within any runtime context.
     411 *
     412 * * The directive will not cause the calling task to be preempted.
     413 * @endparblock
     414 */
     415uint32_t rtems_configuration_get_maximum_timers( void );
     416
    174417/* Generated from spec:/rtems/config/if/get-api-configuration */
    175418
     
    179422 * @brief Gets the Classic API Configuration Table of this application.
    180423 *
    181  * @return Returns the pointer to the Classic API Configuration Table of this
     424 * @return Returns a pointer to the Classic API Configuration Table of this
    182425 *   application.
     426 *
     427 * @par Constraints
     428 * @parblock
     429 * The following constraints apply to this directive:
     430 *
     431 * * The directive may be called from within any runtime context.
     432 *
     433 * * The directive will not cause the calling task to be preempted.
     434 * @endparblock
    183435 */
    184436const rtems_api_configuration_table *
    185437rtems_configuration_get_rtems_api_configuration( void );
    186 
    187 /* Generated from spec:/rtems/config/if/get-maximum-barriers */
    188 
    189 /**
    190  * @ingroup RTEMSAPIConfig
    191  *
    192  * @brief Gets the maximum number of Classic API Barriers configured for this
    193  *   application.
    194  *
    195  * @return Returns the maximum number of Classic API Barriers configured for
    196  *   this application.
    197  *
    198  * @par Notes
    199  * See #CONFIGURE_MAXIMUM_BARRIERS.
    200  */
    201 uint32_t rtems_configuration_get_maximum_barriers( void );
    202 
    203 /* Generated from spec:/rtems/config/if/get-maximum-message-queues */
    204 
    205 /**
    206  * @ingroup RTEMSAPIConfig
    207  *
    208  * @brief Gets the maximum number of Classic API Message Queues configured for
    209  *   this application.
    210  *
    211  * @return Returns the maximum number of Classic API Message Queues configured
    212  *   for this application.
    213  *
    214  * @par Notes
    215  * See #CONFIGURE_MAXIMUM_MESSAGE_QUEUES.
    216  */
    217 uint32_t rtems_configuration_get_maximum_message_queues( void );
    218 
    219 /* Generated from spec:/rtems/config/if/get-maximum-partitions */
    220 
    221 /**
    222  * @ingroup RTEMSAPIConfig
    223  *
    224  * @brief Gets the maximum number of Classic API Partitions configured for this
    225  *   application.
    226  *
    227  * @return Returns the maximum number of Classic API Partitions configured for
    228  *   this application.
    229  *
    230  * @par Notes
    231  * See #CONFIGURE_MAXIMUM_PARTITIONS.
    232  */
    233 uint32_t rtems_configuration_get_maximum_partitions( void );
    234 
    235 /* Generated from spec:/rtems/config/if/get-maximum-periods */
    236 
    237 /**
    238  * @ingroup RTEMSAPIConfig
    239  *
    240  * @brief Gets the maximum number of Classic API Rate Monotonic Periods
    241  *   configured for this application.
    242  *
    243  * @return Returns the maximum number of Classic API Rate Monotonic Periods
    244  *   configured for this application.
    245  *
    246  * @par Notes
    247  * See #CONFIGURE_MAXIMUM_PERIODS.
    248  */
    249 uint32_t rtems_configuration_get_maximum_periods( void );
    250 
    251 /* Generated from spec:/rtems/config/if/get-maximum-ports */
    252 
    253 /**
    254  * @ingroup RTEMSAPIConfig
    255  *
    256  * @brief Gets the maximum number of Classic API Dual-Ported Memories
    257  *   configured for this application.
    258  *
    259  * @return Returns the maximum number of Classic API Dual-Ported Memories
    260  *   configured for this application.
    261  *
    262  * @par Notes
    263  * See #CONFIGURE_MAXIMUM_PORTS.
    264  */
    265 uint32_t rtems_configuration_get_maximum_ports( void );
    266 
    267 /* Generated from spec:/rtems/config/if/get-maximum-regions */
    268 
    269 /**
    270  * @ingroup RTEMSAPIConfig
    271  *
    272  * @brief Gets the maximum number of Classic API Regions configured for this
    273  *   application.
    274  *
    275  * @return Returns the maximum number of Classic API Regions configured for
    276  *   this application.
    277  *
    278  * @par Notes
    279  * See #CONFIGURE_MAXIMUM_REGIONS.
    280  */
    281 uint32_t rtems_configuration_get_maximum_regions( void );
    282 
    283 /* Generated from spec:/rtems/config/if/get-maximum-semaphores */
    284 
    285 /**
    286  * @ingroup RTEMSAPIConfig
    287  *
    288  * @brief Gets the maximum number of Classic API Semaphores configured for this
    289  *   application.
    290  *
    291  * @return Returns the maximum number of Classic API Semaphores configured for
    292  *   this application.
    293  *
    294  * @par Notes
    295  * See #CONFIGURE_MAXIMUM_SEMAPHORES.
    296  */
    297 uint32_t rtems_configuration_get_maximum_semaphores( void );
    298 
    299 /* Generated from spec:/rtems/config/if/get-maximum-tasks */
    300 
    301 /**
    302  * @ingroup RTEMSAPIConfig
    303  *
    304  * @brief Gets the maximum number of Classic API Tasks configured for this
    305  *   application.
    306  *
    307  * @return Returns the maximum number of Classic API Tasks configured for this
    308  *   application.
    309  *
    310  * @par Notes
    311  * See #CONFIGURE_MAXIMUM_TASKS.
    312  */
    313 uint32_t rtems_configuration_get_maximum_tasks( void );
    314 
    315 /* Generated from spec:/rtems/config/if/get-maximum-timers */
    316 
    317 /**
    318  * @ingroup RTEMSAPIConfig
    319  *
    320  * @brief Gets the maximum number of Classic API Timers configured for this
    321  *   application.
    322  *
    323  * @return Returns the maximum number of Classic API Timers configured for this
    324  *   application.
    325  *
    326  * @par Notes
    327  * See #CONFIGURE_MAXIMUM_TIMERS.
    328  */
    329 uint32_t rtems_configuration_get_maximum_timers( void );
    330438
    331439#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.