Changeset bfe6391 in rtems


Ignore:
Timestamp:
Mar 11, 2015, 4:01:53 PM (4 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.11, master
Children:
d88b0b78
Parents:
78d5448
git-author:
Joel Sherrill <joel.sherrill@…> (03/11/15 16:01:53)
git-committer:
Joel Sherrill <joel.sherrill@…> (03/11/15 21:18:29)
Message:

confdefs.h: Improve the Doxygen

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/sapi/include/confdefs.h

    r78d5448 rbfe6391  
    99 * of macros.  The macros are documented in the Configuring a System
    1010 * chapter of the Classic API User's Guide
    11  *
    12  * The model is to estimate the memory required for each configured item
    13  * and sum those estimates.  The estimate can be too high or too low for
    14  * a variety of reasons:
    15  *
    16  * Reasons estimate is too high:
    17  *   + FP contexts (not all tasks are FP)
    18  *
    19  * Reasons estimate is too low:
    20  *   + stacks greater than minimum size
    21  *   + messages
    22  *   + application must account for device driver resources
    23  *   + application must account for add-on library resource requirements
    24  *
    25  * NOTE:  Eventually this may be able to take into account some of
    26  *        the above.  This procedure has evolved from just enough to
    27  *        support the RTEMS Test Suites into something that can be
    28  *        used remarkably reliably by most applications.
    2911 */
    3012
    3113/*
    32  *  COPYRIGHT (c) 1989-2014.
     14 *  COPYRIGHT (c) 1989-2015.
    3315 *  On-Line Applications Research Corporation (OAR).
    3416 *
     
    7052#endif
    7153
     54/**
     55 * @defgroup Configuration RTEMS Configuration
     56 *
     57 * This module contains all RTEMS Configuration parameters.
     58 *
     59 * The model is to estimate the memory required for each configured item
     60 * and sum those estimates.  The estimate can be too high or too low for
     61 * a variety of reasons:
     62 *
     63 * Reasons estimate is too high:
     64 *   + FP contexts (not all tasks are FP)
     65 *
     66 * Reasons estimate is too low:
     67 *   + stacks greater than minimum size
     68 *   + messages
     69 *   + application must account for device driver resources
     70 *   + application must account for add-on library resource requirements
     71 *
     72 * NOTE:  Eventually this may be able to take into account some of
     73 *        the above.  This procedure has evolved from just enough to
     74 *        support the RTEMS Test Suites into something that can be
     75 *        used remarkably reliably by most applications.
     76 */
     77
     78/**
     79 * This is the Classic API initialization tasks table.
     80 */
    7281extern rtems_initialization_tasks_table Initialization_tasks[];
     82
    7383#if defined(RTEMS_MULTIPROCESSING)
     84  /**
     85   * This it the distributed multiprocessing configuration table.
     86   */
    7487  extern rtems_multiprocessing_table      Multiprocessing_configuration;
    7588#endif
     89
    7690#ifdef RTEMS_POSIX_API
     91  /**
     92   * This it the POSIX API configuration table.
     93   */
    7794  extern posix_api_configuration_table    Configuration_POSIX_API;
    7895#endif
     
    216233 */
    217234
     235/**
     236 * This is specified to configure the maximum number of POSIX FIFOs.
     237 */
    218238#if !defined(CONFIGURE_MAXIMUM_FIFOS)
    219239  #define CONFIGURE_MAXIMUM_FIFOS 0
    220240#endif
    221241
     242/**
     243 * This is specified to configure the maximum number of POSIX named pipes.
     244 */
    222245#if !defined(CONFIGURE_MAXIMUM_PIPES)
    223246  #define CONFIGURE_MAXIMUM_PIPES 0
    224247#endif
    225248
     249/**
     250 * This specifies the number of barriers required for the configured
     251 * number of FIFOs and named pipes.
     252 *
     253 * This is an internal parameter.
     254 */
    226255#if CONFIGURE_MAXIMUM_FIFOS > 0 || CONFIGURE_MAXIMUM_PIPES > 0
    227256  #define CONFIGURE_BARRIERS_FOR_FIFOS \
    228257    (2 * (CONFIGURE_MAXIMUM_FIFOS + CONFIGURE_MAXIMUM_PIPES))
     258#else
     259  #define CONFIGURE_BARRIERS_FOR_FIFOS   0
     260#endif
     261
     262/**
     263 * This specifies the number of semaphores required for the configured
     264 * number of FIFOs and named pipes.
     265 *
     266 * This is an internal parameter.
     267 */
     268#if CONFIGURE_MAXIMUM_FIFOS > 0 || CONFIGURE_MAXIMUM_PIPES > 0
    229269  #define CONFIGURE_SEMAPHORES_FOR_FIFOS \
    230270    (1 + (CONFIGURE_MAXIMUM_FIFOS + CONFIGURE_MAXIMUM_PIPES))
    231271#else
    232   #define CONFIGURE_BARRIERS_FOR_FIFOS   0
    233272  #define CONFIGURE_SEMAPHORES_FOR_FIFOS 0
    234273#endif
    235274
    236 /*
    237  *  Filesystems and Mount Table Configuration.
     275/**
     276 *  @defgroup ConfigFilesystems Filesystems and Mount Table Configuration
     277 *
     278 *  @ingroup Configuration
    238279 *
    239280 *  Defines to control the file system:
    240281 *
    241  *   CONFIGURE_APPLICATION_DISABLE_FILESYSTEM:
     282 *   - CONFIGURE_APPLICATION_DISABLE_FILESYSTEM:
    242283 *     Disable the RTEMS filesystems. You get an empty DEVFS.
    243284 *
    244  *   CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM:
     285 *   - CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM:
    245286 *     Use the DEVFS as the root file system. Limited functions are
    246287 *     provided when this is used.
    247288 *
    248  *   CONFIGURE_FILESYSTEM_ALL:
     289 *   - CONFIGURE_FILESYSTEM_ALL:
    249290 *     Add file filesystems to the default filesystem table.
    250291 *
    251292 *   List of available file systems. You can define as many as you like:
    252  *     CONFIGURE_FILESYSTEM_IMFS     - In Memory File System (IMFS)
    253  *     CONFIGURE_FILESYSTEM_DEVFS    - Device File System (DSVFS)
    254  *     CONFIGURE_FILESYSTEM_TFTPFS  - TFTP File System, networking enabled
    255  *     CONFIGURE_FILESYSTEM_FTPFS    - FTP File System, networking enabled
    256  *     CONFIGURE_FILESYSTEM_NFS      - Network File System, networking enabled
    257  *     CONFIGURE_FILESYSTEM_DOSFS    - DOS File System, uses libblock
    258  *     CONFIGURE_FILESYSTEM_RFS      - RTEMS File System (RFS), uses libblock
    259  *     CONFIGURE_FILESYSTEM_JFFS2    - Journalling Flash File System, Version 2
     293 *     - CONFIGURE_FILESYSTEM_IMFS   - In Memory File System (IMFS)
     294 *     - CONFIGURE_FILESYSTEM_DEVFS  - Device File System (DSVFS)
     295 *     - CONFIGURE_FILESYSTEM_TFTPFS - TFTP File System, networking enabled
     296 *     - CONFIGURE_FILESYSTEM_FTPFS  - FTP File System, networking enabled
     297 *     - CONFIGURE_FILESYSTEM_NFS    - Network File System, networking enabled
     298 *     - CONFIGURE_FILESYSTEM_DOSFS  - DOS File System, uses libblock
     299 *     - CONFIGURE_FILESYSTEM_RFS    - RTEMS File System (RFS), uses libblock
     300 *     - CONFIGURE_FILESYSTEM_JFFS2  - Journalling Flash File System, Version 2
    260301 *
    261302 *   Combinations:
     
    269310 *      are disabled by force and DEVFS is defined.
    270311 */
     312/**@{*/
    271313
    272314#ifdef CONFIGURE_INIT
     
    456498#endif
    457499
    458 #define CONFIGURE_SEMAPHORES_FOR_FILE_SYSTEMS (CONFIGURE_SEMAPHORES_FOR_FIFOS + \
    459                                                CONFIGURE_SEMAPHORES_FOR_NFS + \
    460                                                CONFIGURE_SEMAPHORES_FOR_DOSFS + \
    461                                                CONFIGURE_SEMAPHORES_FOR_RFS + \
    462                                                CONFIGURE_SEMAPHORES_FOR_JFFS2)
     500/**
     501 * This computes the number of semaphores required for the various
     502 * file systems including the FIFO plugin to the IMFS.
     503 *
     504 * This is an internal parameter.
     505 */
     506#define CONFIGURE_SEMAPHORES_FOR_FILE_SYSTEMS \
     507    (CONFIGURE_SEMAPHORES_FOR_FIFOS + \
     508     CONFIGURE_SEMAPHORES_FOR_NFS + \
     509     CONFIGURE_SEMAPHORES_FOR_DOSFS + \
     510     CONFIGURE_SEMAPHORES_FOR_RFS + \
     511     CONFIGURE_SEMAPHORES_FOR_JFFS2)
    463512
    464513#ifdef CONFIGURE_INIT
     
    665714#endif
    666715#endif
     716/**@}*/ /* end of file system group */
    667717
    668718/*
     
    717767#endif
    718768
    719 /*
    720  * Scheduler configuration.
     769/**
     770 *  @defgroup ConfigScheduler Scheduler configuration
     771 *
     772 *  @ingroup Configuration
    721773 *
    722774 * The scheduler configuration allows an application to select the
    723775 * scheduling policy to use.  The supported configurations are:
    724  *  CONFIGURE_SCHEDULER_USER       - user provided scheduler
    725  *  CONFIGURE_SCHEDULER_PRIORITY   - Deterministic Priority Scheduler
    726  *  CONFIGURE_SCHEDULER_PRIORITY_SMP - Deterministic Priority SMP Scheduler
    727  *  CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP - Deterministic Priority SMP Affinity Scheduler
    728  *  CONFIGURE_SCHEDULER_SIMPLE     - Light-weight Priority Scheduler
    729  *  CONFIGURE_SCHEDULER_SIMPLE_SMP - Simple SMP Priority Scheduler
    730  *  CONFIGURE_SCHEDULER_EDF        - EDF Scheduler
    731  *  CONFIGURE_SCHEDULER_CBS        - CBS Scheduler
    732  *
    733  * If no configuration is specified by the application, then
    734  * CONFIGURE_SCHEDULER_PRIORITY is assumed to be the default.
     776 *
     777 *  - CONFIGURE_SCHEDULER_PRIORITY - Deterministic Priority Scheduler
     778 *  - CONFIGURE_SCHEDULER_PRIORITY_SMP - Deterministic Priority SMP Scheduler
     779 *  - CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP - Deterministic
     780 *    Priority SMP Affinity Scheduler
     781 *  - CONFIGURE_SCHEDULER_SIMPLE - Light-weight Priority Scheduler
     782 *  - CONFIGURE_SCHEDULER_SIMPLE_SMP - Simple SMP Priority Scheduler
     783 *  - CONFIGURE_SCHEDULER_EDF - EDF Scheduler
     784 *  - CONFIGURE_SCHEDULER_CBS - CBS Scheduler
     785 *  - CONFIGURE_SCHEDULER_USER  - user provided scheduler
     786 *
     787 * If no configuration is specified by the application in a uniprocessor
     788 * configuration, then CONFIGURE_SCHEDULER_PRIORITY is the default.
     789 *
     790 * If no configuration is specified by the application in SMP
     791 * configuration, then CONFIGURE_SCHEDULER_PRIORITY_SMP is the default.
    735792 *
    736793 * An application can define its own scheduling policy by defining
    737794 * CONFIGURE_SCHEDULER_USER and the following:
     795 *
    738796 *    - CONFIGURE_SCHEDULER_CONTEXT
    739797 *    - CONFIGURE_SCHEDULER_CONTROLS
     
    741799 */
    742800
    743 /* If no scheduler is specified, the priority scheduler is default. */
    744801#if !defined(CONFIGURE_SCHEDULER_USER) && \
    745802    !defined(CONFIGURE_SCHEDULER_PRIORITY) && \
     
    751808    !defined(CONFIGURE_SCHEDULER_CBS)
    752809  #if defined(RTEMS_SMP) && defined(CONFIGURE_SMP_APPLICATION)
     810    /**
     811     * If no scheduler is specified in an SMP configuration, the
     812     * priority scheduler is default.
     813     */
    753814    #define CONFIGURE_SCHEDULER_PRIORITY_SMP
    754815  #else
     816    /**
     817     * If no scheduler is specified in a uniprocessor configuration, the
     818     * priority scheduler is default.
     819     */
    755820    #define CONFIGURE_SCHEDULER_PRIORITY
    756821  #endif
     
    764829#if defined(CONFIGURE_SCHEDULER_PRIORITY)
    765830  #if !defined(CONFIGURE_SCHEDULER_NAME)
     831    /** Configure the name of the scheduler instance */
    766832    #define CONFIGURE_SCHEDULER_NAME rtems_build_name('U', 'P', 'D', ' ')
    767833  #endif
    768834
    769835  #if !defined(CONFIGURE_SCHEDULER_CONTROLS)
     836    /** Configure the context needed by the scheduler instance */
    770837    #define CONFIGURE_SCHEDULER_CONTEXT \
    771838      RTEMS_SCHEDULER_CONTEXT_PRIORITY( \
     
    774841      )
    775842
     843    /** Configure the controls for this scheduler instance */
    776844    #define CONFIGURE_SCHEDULER_CONTROLS \
    777845      RTEMS_SCHEDULER_CONTROL_PRIORITY(dflt, CONFIGURE_SCHEDULER_NAME)
     
    785853#if defined(CONFIGURE_SCHEDULER_PRIORITY_SMP)
    786854  #if !defined(CONFIGURE_SCHEDULER_NAME)
     855    /** Configure the name of the scheduler instance */
    787856    #define CONFIGURE_SCHEDULER_NAME rtems_build_name('M', 'P', 'D', ' ')
    788857  #endif
    789858
    790859  #if !defined(CONFIGURE_SCHEDULER_CONTROLS)
     860    /** Configure the context needed by the scheduler instance */
    791861    #define CONFIGURE_SCHEDULER_CONTEXT \
    792862      RTEMS_SCHEDULER_CONTEXT_PRIORITY_SMP( \
     
    795865      )
    796866
     867    /** Configure the controls for this scheduler instance */
    797868    #define CONFIGURE_SCHEDULER_CONTROLS \
    798869      RTEMS_SCHEDULER_CONTROL_PRIORITY_SMP(dflt, CONFIGURE_SCHEDULER_NAME)
     
    806877#if defined(CONFIGURE_SCHEDULER_PRIORITY_AFFINITY_SMP)
    807878  #if !defined(CONFIGURE_SCHEDULER_NAME)
     879    /** Configure the name of the scheduler instance */
    808880    #define CONFIGURE_SCHEDULER_NAME rtems_build_name('M', 'P', 'A', ' ')
    809881  #endif
    810882
    811883  #if !defined(CONFIGURE_SCHEDULER_CONTROLS)
     884    /** Configure the context needed by the scheduler instance */
    812885    #define CONFIGURE_SCHEDULER_CONTEXT \
    813886      RTEMS_SCHEDULER_CONTEXT_PRIORITY_AFFINITY_SMP( \
     
    829902#if defined(CONFIGURE_SCHEDULER_SIMPLE)
    830903  #if !defined(CONFIGURE_SCHEDULER_NAME)
     904    /** Configure the name of the scheduler instance */
    831905    #define CONFIGURE_SCHEDULER_NAME rtems_build_name('U', 'P', 'S', ' ')
    832906  #endif
    833907
    834908  #if !defined(CONFIGURE_SCHEDULER_CONTROLS)
     909    /** Configure the context needed by the scheduler instance */
    835910    #define CONFIGURE_SCHEDULER_CONTEXT RTEMS_SCHEDULER_CONTEXT_SIMPLE(dflt)
    836911
     912    /** Configure the controls for this scheduler instance */
    837913    #define CONFIGURE_SCHEDULER_CONTROLS \
    838914      RTEMS_SCHEDULER_CONTROL_SIMPLE(dflt, CONFIGURE_SCHEDULER_NAME)
     
    845921#if defined(CONFIGURE_SCHEDULER_SIMPLE_SMP)
    846922  #if !defined(CONFIGURE_SCHEDULER_NAME)
     923    /** Configure the name of the scheduler instance */
    847924    #define CONFIGURE_SCHEDULER_NAME rtems_build_name('M', 'P', 'S', ' ')
    848925  #endif
    849926
    850927  #if !defined(CONFIGURE_SCHEDULER_CONTROLS)
     928    /** Configure the context needed by the scheduler instance */
    851929    #define CONFIGURE_SCHEDULER_CONTEXT \
    852930      RTEMS_SCHEDULER_CONTEXT_SIMPLE_SMP(dflt)
    853931
     932    /** Configure the controls for this scheduler instance */
    854933    #define CONFIGURE_SCHEDULER_CONTROLS \
    855934      RTEMS_SCHEDULER_CONTROL_SIMPLE_SMP(dflt, CONFIGURE_SCHEDULER_NAME)
     
    862941#if defined(CONFIGURE_SCHEDULER_EDF)
    863942  #if !defined(CONFIGURE_SCHEDULER_NAME)
     943    /** Configure the name of the scheduler instance */
    864944    #define CONFIGURE_SCHEDULER_NAME rtems_build_name('U', 'E', 'D', 'F')
    865945  #endif
    866946
    867947  #if !defined(CONFIGURE_SCHEDULER_CONTROLS)
     948    /** Configure the context needed by the scheduler instance */
    868949    #define CONFIGURE_SCHEDULER_CONTEXT RTEMS_SCHEDULER_CONTEXT_EDF(dflt)
    869950
     951    /** Configure the controls for this scheduler instance */
    870952    #define CONFIGURE_SCHEDULER_CONTROLS \
    871953      RTEMS_SCHEDULER_CONTROL_EDF(dflt, CONFIGURE_SCHEDULER_NAME)
     
    878960#if defined(CONFIGURE_SCHEDULER_CBS)
    879961  #if !defined(CONFIGURE_SCHEDULER_NAME)
     962    /** Configure the name of the scheduler instance */
    880963    #define CONFIGURE_SCHEDULER_NAME rtems_build_name('U', 'C', 'B', 'S')
    881964  #endif
    882965
    883966  #if !defined(CONFIGURE_SCHEDULER_CONTROLS)
     967    /** Configure the context needed by the scheduler instance */
    884968    #define CONFIGURE_SCHEDULER_CONTEXT RTEMS_SCHEDULER_CONTEXT_CBS(dflt)
    885969
     970    /** Configure the controls for this scheduler instance */
    886971    #define CONFIGURE_SCHEDULER_CONTROLS \
    887972      RTEMS_SCHEDULER_CONTROL_CBS(dflt, CONFIGURE_SCHEDULER_NAME)
     
    10321117  #endif
    10331118#endif
     1119/**@}*/ /* end of Scheduler Configuration */
     1120
     1121/**
     1122 * @defgroup ConfigurationIdle IDLE Thread Configuration
     1123 *
     1124 * @addtogroup Configuration
     1125 *
     1126 * This module contains configuration parameters related to the
     1127 * set of IDLE threads. On a uniprocessor system, there is one
     1128 * IDLE thread. On an SMP system, there is one for each core.
     1129 */
    10341130
    10351131/*
     
    10671163  #endif
    10681164#endif
     1165/**@}*/ /* end of IDLE thread configuration */
     1166
     1167/**
     1168 * @defgroup ConfigurationStackSize Configuration Thread Stack Size
     1169 *
     1170 * @addtogroup Configuration
     1171 *
     1172 * This module contains parameters related to thread aand interrupt stacks.
     1173 */
    10691174
    10701175/**
     
    10751180#endif
    10761181
     1182/**
     1183 * This specifies the default POSIX thread stack size. By default, it is
     1184 * twice that recommended for the port.
     1185 */
    10771186#define CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE \
    10781187  (2 * CONFIGURE_MINIMUM_TASK_STACK_SIZE)
     
    11351244#if !defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
    11361245  && !defined(CONFIGURE_TASK_STACK_DEALLOCATOR)
     1246  /**
     1247   * This specifies the task stack allocator method.
     1248   */
    11371249  #define CONFIGURE_TASK_STACK_ALLOCATOR _Workspace_Allocate
     1250  /**
     1251   * This specifies the task stack deallocator method.
     1252   */
    11381253  #define CONFIGURE_TASK_STACK_DEALLOCATOR _Workspace_Free
    11391254#elif (defined(CONFIGURE_TASK_STACK_ALLOCATOR) \
     
    11431258  #error "CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR must be both defined or both undefined"
    11441259#endif
     1260/**@}*/ /* end of thread/interrupt stack configuration */
     1261
     1262/**
     1263 * @addtogroup Configuration
     1264 */
     1265/**@{*/
    11451266
    11461267/**
     
    11561277  #endif
    11571278#endif
    1158 
    1159 /*
    1160  *  RTEMS Malloc configuration
    1161  */
    1162 
     1279/**@}*/ /* end of add to group Configuration */
     1280
     1281/**
     1282 * @defgroup ConfigurationMalloc RTEMS Malloc configuration
     1283 *
     1284 * This module contains parameters related to configuration of the RTEMS
     1285 * Malloc implementation.
     1286 */
     1287/**@{*/
    11631288#include <rtems/malloc.h>
    11641289
     
    12061331    #endif
    12071332#endif
     1333/**@}*/  /* end of Malloc Configuration */
     1334
     1335/**
     1336 * @defgroup ConfigurationHelpers Configuration Helpers
     1337 *
     1338 * @ingroup Configuration
     1339 *
     1340 * This module contains items which are used internally to ease
     1341 * the configuration calculations.
     1342 */
     1343/**@{*/
    12081344
    12091345/**
     
    12121348#define _Configure_Zero_or_One(_number) ((_number) ? 1 : 0)
    12131349
     1350/**
     1351 * General helper to aligned a value up to a power of two boundary.
     1352 */
    12141353#define _Configure_Align_up(_val, _align) \
    12151354  (((_val) + (_align) - 1) & ~((_align) - 1))
     
    12621401    ) \
    12631402  )
    1264 
    1265 /*
     1403/**@}*/
     1404
     1405/**
     1406 * @defgroup ConfigurationInitTasksTable Initialization Tasks Configuration
     1407 *
     1408 * @addtogroup Configuration
     1409 *
     1410 * This group contains the elements needed to define the Classic API
     1411 * Initialization Tasks Table.
     1412 *
    12661413 *  Default User Initialization Task Table.  This table guarantees that
    12671414 *  one user initialization table is defined.
    12681415 */
    1269 
    12701416#ifdef CONFIGURE_RTEMS_INIT_TASKS_TABLE
    12711417
     
    12791425#else
    12801426
     1427/**
     1428 * When using the default Classic API Initialization Tasks Table, this is
     1429 * used to specify the name of the single Classic API task.
     1430 */
    12811431#ifndef CONFIGURE_INIT_TASK_NAME
    12821432  #define CONFIGURE_INIT_TASK_NAME          rtems_build_name('U', 'I', '1', ' ')
    12831433#endif
    12841434
     1435/**
     1436 * When using the default Classic API Initialization Tasks Table, this is
     1437 * used to specify the stack size of the single Classic API task.
     1438 */
    12851439#ifndef CONFIGURE_INIT_TASK_STACK_SIZE
    12861440  #define CONFIGURE_INIT_TASK_STACK_SIZE    CONFIGURE_MINIMUM_TASK_STACK_SIZE
    12871441#endif
    12881442
     1443/**
     1444 * When using the default Classic API Initialization Tasks Table, this is
     1445 * used to specify the priority of the single Classic API task.
     1446 */
    12891447#ifndef CONFIGURE_INIT_TASK_PRIORITY
    12901448  #define CONFIGURE_INIT_TASK_PRIORITY      1
    12911449#endif
    12921450
     1451/**
     1452 * When using the default Classic API Initialization Tasks Table, this is
     1453 * used to specify the attributes size of the single Classic API task.
     1454 */
    12931455#ifndef CONFIGURE_INIT_TASK_ATTRIBUTES
    12941456  #define CONFIGURE_INIT_TASK_ATTRIBUTES    RTEMS_DEFAULT_ATTRIBUTES
    12951457#endif
    12961458
     1459/**
     1460 * When using the default Classic API Initialization Tasks Table, this is
     1461 * used to specify the entry point of the single Classic API task.
     1462 */
    12971463#ifndef CONFIGURE_INIT_TASK_ENTRY_POINT
    12981464  #ifdef __cplusplus
     
    13081474#endif
    13091475
     1476/**
     1477 * When using the default Classic API Initialization Tasks Table, this is
     1478 * used to specify the initial execution mode of the single Classic API task.
     1479 */
    13101480#ifndef CONFIGURE_INIT_TASK_INITIAL_MODES
    13111481  #if defined(RTEMS_SMP) && defined(CONFIGURE_SMP_APPLICATION)
     
    13161486#endif
    13171487
     1488/**
     1489 * When using the default Classic API Initialization Tasks Table, this is
     1490 * used to specify the initial argument to the single Classic API task.
     1491 */
    13181492#ifndef CONFIGURE_INIT_TASK_ARGUMENTS
    13191493  #define CONFIGURE_INIT_TASK_ARGUMENTS     0
     
    13331507#endif
    13341508
     1509/**
     1510 * This is the name of the Initialization Tasks Table generated.
     1511 *
     1512 * This is an internal parameter.
     1513 */
    13351514#define CONFIGURE_INIT_TASK_TABLE Initialization_tasks
    13361515
     1516/**
     1517 * This is the size of the Initialization Tasks Table generated.
     1518 *
     1519 * This is an internal parameter.
     1520 */
    13371521#define CONFIGURE_INIT_TASK_TABLE_SIZE \
    13381522  RTEMS_ARRAY_SIZE(CONFIGURE_INIT_TASK_TABLE)
     
    13421526#else     /* CONFIGURE_RTEMS_INIT_TASKS_TABLE */
    13431527
     1528/**
     1529 * This is the name of the Initialization Task when none is configured.
     1530 *
     1531 * This is an internal parameter.
     1532 */
    13441533#define CONFIGURE_INIT_TASK_TABLE      NULL
     1534
     1535/**
     1536 * This is the size of the Initialization Task when none is configured.
     1537 *
     1538 * This is an internal parameter.
     1539 */
    13451540#define CONFIGURE_INIT_TASK_TABLE_SIZE 0
     1541
     1542/**
     1543 * This is the stack size of the Initialization Task when none is configured.
     1544 *
     1545 * This is an internal parameter.
     1546 */
    13461547#define CONFIGURE_INIT_TASK_STACK_SIZE 0
    13471548
    13481549#endif
    1349 
    1350 /*
    1351  *  Default Device Driver Table.  Each driver needed by the test is explicitly
    1352  *  choosen by that test.  There is always a null driver entry.
    1353  */
    1354 
     1550/**@}*/  /* end of Classic API Initialization Tasks Table */
     1551
     1552/**
     1553 * @defgroup ConfigurationDriverTable Device Driver Table Configuration
     1554 *
     1555 * @addtogroup Configuration
     1556 *
     1557 * This group contains parameters related to generating a Device Driver
     1558 * Table.
     1559 *
     1560 * Default Device Driver Table.  Each driver needed by the test is explicitly
     1561 * choosen by the application.  There is always a null driver entry.
     1562 */
     1563/**@{*/
     1564
     1565/**
     1566 * This is an empty device driver slot.
     1567 */
    13551568#define NULL_DRIVER_TABLE_ENTRY \
    13561569 { NULL, NULL, NULL, NULL, NULL, NULL }
     
    14831696  #endif /* CONFIGURE_INIT */
    14841697#endif
    1485 
    1486 /*
    1487  * add bdbuf configuration and values for swapout task priority
    1488  */
     1698/**@}*/ /* end of Device Driver Table Configuration */
     1699
     1700/**
     1701 * @defgroup ConfigurationLibBlock Configuration of LIBBLOCK
     1702 *
     1703 * @addtogroup Configuration
     1704 *
     1705 * This module contains parameters related to the LIBBLOCK buffering
     1706 * and caching subsystem. It requires tasks to swap out data to be
     1707 * written to non-volatile storage.
     1708 */
     1709/**@{*/
    14891710#ifdef CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
    14901711  #include <rtems/bdbuf.h>
     
    16091830  #endif
    16101831#else
     1832  /** This specifies the number of libblock tasks. */
    16111833  #define CONFIGURE_LIBBLOCK_TASKS 0
     1834  /** This specifies the extra stack space configured for libblock tasks. */
    16121835  #define CONFIGURE_LIBBLOCK_TASK_EXTRA_STACKS 0
     1836  /** This specifies the number of Classic API semaphores needed by libblock. */
    16131837  #define CONFIGURE_LIBBLOCK_SEMAPHORES 0
     1838  /** This specifies the number of POSIX Mutexes needed by libblock. */
    16141839  #define CONFIGURE_LIBBLOCK_POSIX_MUTEXES 0
     1840  /**
     1841   * This specifies the number of POSIX Condition Variables needed
     1842   * by libblock.
     1843   */
    16151844  #define CONFIGURE_LIBBLOCK_POSIX_CONDITION_VARIABLES 0
    16161845#endif /* CONFIGURE_APPLICATION_NEEDS_LIBBLOCK */
    1617 
     1846/**@}*/
     1847
     1848/**
     1849 * @defgroup ConfigurationMultiprocessing Multiprocessing Configuration
     1850 *
     1851 * @addtogroup Configuration
     1852 *
     1853 * This module contains the parameters related to the Multiprocessing
     1854 * configuration of RTEMS.
     1855 *
     1856 * In a single processor or SMP configuration, only two parameters are
     1857 * needed and they are defaulted. The user should not have to specify
     1858 * any parameters.
     1859 */
     1860/**@{*/
     1861
     1862/**
     1863 * This defines the extra stack space required for the MPCI server thread.
     1864 */
    16181865#ifndef CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
    16191866  #define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK 0
    16201867#endif
     1868
     1869/**
     1870 * This defines the timers required for the shared memory driver in
     1871 * a multiprocessing configuration.
     1872 */
     1873#ifndef CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER
     1874  #define CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER 0
     1875#endif
     1876
    16211877
    16221878#if defined(RTEMS_MULTIPROCESSING)
     
    16781934  #endif /* CONFIGURE_MP_APPLICATION */
    16791935#endif /* RTEMS_MULTIPROCESSING */
    1680 
    1681 #ifndef CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER
    1682   #define CONFIGURE_TIMER_FOR_SHARED_MEMORY_DRIVER 0
    1683 #endif
    1684 
     1936/**@}*/ /* end of Multiprocessing Configuration */
    16851937
    16861938/**
     
    17982050
    17992051
    1800 /*
    1801  *  Default Configuration Table.
    1802  */
    1803 
     2052/**
     2053 * @defgroup ConfigurationClassicAPI Classic API Configuration
     2054 *
     2055 * @ingroup Configuration
     2056 *
     2057 * This module contains the parameters related to configuration
     2058 * of the Classic API services.
     2059 */
     2060/**@{*/
    18042061#ifndef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
    18052062
     2063  /** This configures the maximum number of Classic API tasks. */
    18062064  #ifndef CONFIGURE_MAXIMUM_TASKS
    18072065    #define CONFIGURE_MAXIMUM_TASKS               0
    18082066  #endif
    18092067
     2068  /**
     2069   * This is calculated to account for the maximum number of Classic API
     2070   * tasks used by the application and configured RTEMS capabilities.
     2071   *
     2072   * This is an internal parameter.
     2073   */
    18102074  #define CONFIGURE_TASKS \
    18112075    (CONFIGURE_MAXIMUM_TASKS + CONFIGURE_LIBBLOCK_TASKS)
    18122076
     2077  /*
     2078   * Classic API notepads are a deprecated feature and will be removed
     2079   * in a future release of RTEMS. Warn the user who uses them.
     2080   */
    18132081  #if defined(CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS)
    1814     #warning "CONFIGURE_DISABLE_CLASSIC_API_NOTEPADS is deprecated and will be removed."
     2082    #warning "Classic API Notepads are deprecated and will be removed."
    18152083  #endif
    18162084  #if defined(CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS)
    1817     #warning "CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS is deprecated and will be removed."
     2085    #warning "Classic API Notepads are deprecated and will be removed."
     2086  #endif
     2087
     2088  /** This configuration parameter enables/disables Classic API notepads. */
     2089  #ifdef CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
    18182090    #define CONFIGURE_NOTEPADS_ENABLED           TRUE
    18192091  #else
     
    18212093  #endif
    18222094
    1823 /**
    1824  * This macro calculates the memory required for task variables.
    1825  *
    1826  * @deprecated Task variables are deprecated.
    1827  *
    1828  * Each task variable is individually allocated from the Workspace.
    1829  * Hence, we do the multiplication on the configured size.
    1830  *
    1831  * @note Per-task variables are disabled for SMP configurations.
    1832  */
    1833 #if defined(RTEMS_SMP)
    1834   #ifdef CONFIGURE_MAXIMUM_TASK_VARIABLES
    1835     #error "Per-Task Variables are not safe for SMP systems and disabled"
    1836   #endif
    1837   #define CONFIGURE_MAXIMUM_TASK_VARIABLES                     0
    1838   #define CONFIGURE_MEMORY_FOR_TASK_VARIABLES(_task_variables) 0
    1839 #else
    1840   #ifndef CONFIGURE_MAXIMUM_TASK_VARIABLES
     2095  /**
     2096   * This macro calculates the memory required for task variables.
     2097   *
     2098   * @deprecated Task variables are deprecated.
     2099   *
     2100   * Each task variable is individually allocated from the Workspace.
     2101   * Hence, we do the multiplication on the configured size.
     2102   *
     2103   * @note Per-task variables are disabled for SMP configurations.
     2104   */
     2105  #if defined(RTEMS_SMP)
     2106    #ifdef CONFIGURE_MAXIMUM_TASK_VARIABLES
     2107      #warning "Per-Task Variables are deprecated and will be removed."
     2108      #error "Per-Task Variables are not safe for SMP systems and disabled."
     2109    #endif
    18412110    #define CONFIGURE_MAXIMUM_TASK_VARIABLES                     0
    18422111    #define CONFIGURE_MEMORY_FOR_TASK_VARIABLES(_task_variables) 0
    18432112  #else
    1844     #warning "Per-Task Variables are deprecated and will be removed."
    1845     #define CONFIGURE_MEMORY_FOR_TASK_VARIABLES(_task_variables) \
    1846       (_task_variables) * \
    1847          _Configure_From_workspace(sizeof(rtems_task_variable_t))
    1848   #endif
    1849 #endif
     2113    #ifndef CONFIGURE_MAXIMUM_TASK_VARIABLES
     2114      /** This macro specifies the maximum number of task variables. */
     2115      #define CONFIGURE_MAXIMUM_TASK_VARIABLES                     0
     2116      /**
     2117       * This macro is calculated to specify the memory required for task
     2118       * variables.
     2119       *
     2120       * This is an internal parameter.
     2121       */
     2122      #define CONFIGURE_MEMORY_FOR_TASK_VARIABLES(_task_variables) 0
     2123    #else
     2124      #warning "Per-Task Variables are deprecated and will be removed."
     2125      #define CONFIGURE_MEMORY_FOR_TASK_VARIABLES(_task_variables) \
     2126        (_task_variables) * \
     2127           _Configure_From_workspace(sizeof(rtems_task_variable_t))
     2128    #endif
     2129  #endif
    18502130
    18512131  #ifndef CONFIGURE_MAXIMUM_TIMERS
     2132    /** This specifies the maximum number of Classic API timers. */
    18522133    #define CONFIGURE_MAXIMUM_TIMERS             0
     2134    /**
     2135     * This macro is calculated to specify the memory required for
     2136     * Classic API timers.
     2137     *
     2138     * This is an internal parameter.
     2139     */
    18532140    #define CONFIGURE_MEMORY_FOR_TIMERS(_timers) 0
    18542141  #else
     
    18582145
    18592146  #ifndef CONFIGURE_MAXIMUM_SEMAPHORES
     2147    /** This specifies the maximum number of Classic API semaphores. */
    18602148    #define CONFIGURE_MAXIMUM_SEMAPHORES                 0
    18612149  #endif
    18622150
     2151  /**
     2152   * This specifies the number of Classic API semaphores required
     2153   *
     2154   * This is an internal parameter.
     2155   */
    18632156  #ifdef RTEMS_NETWORKING
    18642157    #define CONFIGURE_NETWORKING_SEMAPHORES 1
     
    18672160  #endif
    18682161
     2162  /**
     2163   * This macro is calculated to specify the number of Classic API
     2164   * semaphores required by the application and configured RTEMS
     2165   * capabilities.
     2166   *
     2167   * This is an internal parameter.
     2168   */
    18692169  #define CONFIGURE_SEMAPHORES \
    18702170    (CONFIGURE_MAXIMUM_SEMAPHORES + CONFIGURE_LIBIO_SEMAPHORES + \
     
    18732173      CONFIGURE_NETWORKING_SEMAPHORES)
    18742174
     2175  /**
     2176   * This macro is calculated to specify the memory required for
     2177   * Classic API Semaphores using MRSP. This is only available in
     2178   * SMP configurations.
     2179   *
     2180   * This is an internal parameter.
     2181   */
    18752182  #if !defined(RTEMS_SMP) || \
    18762183    !defined(CONFIGURE_MAXIMUM_MRSP_SEMAPHORES)
     
    18842191  #endif
    18852192
    1886   /*
     2193  /**
     2194   * This macro is calculated to specify the memory required for
     2195   * Classic API Semaphores.
     2196   *
    18872197   * If there are no user or support semaphores defined, then we can assume
    18882198   * that no memory need be allocated at all for semaphores.
     2199   *
     2200   * This is an internal parameter.
    18892201   */
    18902202  #if CONFIGURE_SEMAPHORES == 0
     
    18972209
    18982210  #ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES
     2211    /**
     2212     * This configuration parameter specifies the maximum number of
     2213     * Classic API Message Queues.
     2214     */
    18992215    #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES             0
     2216    /**
     2217     * This macro is calculated to specify the RTEMS Workspace required for
     2218     * the Classic API Message Queues.
     2219     *
     2220     * This is an internal parameter.
     2221     */
    19002222    #define CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) 0
    19012223  #else
     
    19052227
    19062228  #ifndef CONFIGURE_MAXIMUM_PARTITIONS
     2229    /**
     2230     * This configuration parameter specifies the maximum number of
     2231     * Classic API Partitions.
     2232     */
    19072233    #define CONFIGURE_MAXIMUM_PARTITIONS                 0
     2234    /**
     2235     * This macro is calculated to specify the memory required for
     2236     * Classic API
     2237     *
     2238     * This is an internal parameter.
     2239     */
    19082240    #define CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) 0
    19092241  #else
     
    19132245
    19142246  #ifndef CONFIGURE_MAXIMUM_REGIONS
     2247    /**
     2248     * This configuration parameter specifies the maximum number of
     2249     * Classic API Regions.
     2250     */
    19152251    #define CONFIGURE_MAXIMUM_REGIONS              0
     2252    /**
     2253     * This macro is calculated to specify the memory required for
     2254     * Classic API Regions.
     2255     *
     2256     * This is an internal parameter.
     2257     */
    19162258    #define CONFIGURE_MEMORY_FOR_REGIONS(_regions) 0
    19172259  #else
     
    19212263
    19222264  #ifndef CONFIGURE_MAXIMUM_PORTS
     2265    /**
     2266     * This configuration parameter specifies the maximum number of
     2267     * Classic API Dual-Ported Memory Ports.
     2268     */
    19232269    #define CONFIGURE_MAXIMUM_PORTS            0
     2270    /**
     2271     * This macro is calculated to specify the memory required for
     2272     * Classic API Dual-Ported Memory Ports.
     2273     *
     2274     * This is an internal parameter.
     2275     */
    19242276    #define CONFIGURE_MEMORY_FOR_PORTS(_ports) 0
    19252277  #else
     
    19292281
    19302282  #ifndef CONFIGURE_MAXIMUM_PERIODS
     2283    /**
     2284     * This configuration parameter specifies the maximum number of
     2285     * Classic API Rate Monotonic Periods.
     2286     */
    19312287    #define CONFIGURE_MAXIMUM_PERIODS              0
    1932     #define CONFIGURE_MEMORY_FOR_PERIODS(_periods) 0
    1933   #else
     2288    /**
     2289     * This macro is calculated to specify the memory required for
     2290     * Classic API Rate Monotonic Periods.
     2291     *
     2292     * This is an internal parameter.
     2293     */
     2294  #define CONFIGURE_MEMORY_FOR_PERIODS(_periods) 0
     2295#else
    19342296    #define CONFIGURE_MEMORY_FOR_PERIODS(_periods) \
    19352297      _Configure_Object_RAM(_periods, sizeof(Rate_monotonic_Control) )
    19362298  #endif
    19372299
     2300  /**
     2301   * This configuration parameter specifies the maximum number of
     2302   * Classic API Barriers.
     2303   */
    19382304  #ifndef CONFIGURE_MAXIMUM_BARRIERS
    19392305    #define CONFIGURE_MAXIMUM_BARRIERS               0
    19402306  #endif
    19412307
     2308  /**
     2309   * This macro is calculated to specify the number of Classic API
     2310   * Barriers required by the application and configured capabilities.
     2311   *
     2312   * This is an internal parameter.
     2313   */
    19422314  #define CONFIGURE_BARRIERS \
    19432315     (CONFIGURE_MAXIMUM_BARRIERS + CONFIGURE_BARRIERS_FOR_FIFOS)
    19442316
     2317  /**
     2318   * This macro is calculated to specify the memory required for
     2319   * Classic API Barriers.
     2320   *
     2321   * This is an internal parameter.
     2322   */
    19452323  #if CONFIGURE_BARRIERS == 0
    19462324    #define CONFIGURE_MEMORY_FOR_BARRIERS(_barriers) 0
     
    19512329
    19522330  #ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS
     2331    /**
     2332     * This configuration parameter specifies the maximum number of
     2333     * Classic API User Extensions.
     2334     */
    19532335    #define CONFIGURE_MAXIMUM_USER_EXTENSIONS                 0
     2336    /**
     2337     * This macro is calculated to specify the memory required for
     2338     * Classic API User Extensions.
     2339     *
     2340     * This is an internal parameter.
     2341     */
    19542342    #define CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) 0
    19552343  #else
     
    19572345      _Configure_Object_RAM(_extensions, sizeof(Extension_Control) )
    19582346  #endif
    1959 
     2347  /**@}*/ /* end of Classic API Configuration */
     2348
     2349  /**
     2350   * @defgroup ConfigurationGeneral General System Configuration
     2351   *
     2352   * @ingroup Configuration
     2353   *
     2354   * This module contains configuration parameters that are independent
     2355   * of any API but impact general system configuration.
     2356   */
     2357  /**@{*/
     2358
     2359  /** The configures the number of microseconds per clock tick. */
    19602360  #ifndef CONFIGURE_MICROSECONDS_PER_TICK
    19612361    #define CONFIGURE_MICROSECONDS_PER_TICK \
     
    19632363  #endif
    19642364
     2365  /** The configures the number of clock ticks per timeslice. */
    19652366  #ifndef CONFIGURE_TICKS_PER_TIMESLICE
    19662367    #define CONFIGURE_TICKS_PER_TIMESLICE        50
    19672368  #endif
     2369
     2370/**@}*/ /* end of General Configuration */
    19682371
    19692372/*
     
    20172420#endif
    20182421
    2019 /*
    2020  *  POSIX API Configuration Parameters
    2021  */
    2022 
    2023 /*
    2024  *  POSIX Keys are available whether or not the POSIX API is enabled.
    2025  */
     2422/**
     2423 * @defgroup ConfigurationPOSIXAPI POSIX API Configuration Parameters
     2424 *
     2425 * This module contains the parameters related to configuration
     2426 * of the POSIX API services.
     2427 */
     2428/**@{*/
     2429
    20262430#include <rtems/posix/key.h>
    20272431
     2432/**
     2433 * This configuration parameter specifies the maximum number of
     2434 * POSIX API keys.
     2435 *
     2436 * POSIX Keys are available whether or not the POSIX API is enabled.
     2437 */
    20282438#ifndef CONFIGURE_MAXIMUM_POSIX_KEYS
    20292439  #define CONFIGURE_MAXIMUM_POSIX_KEYS 0
    20302440#endif
    20312441
     2442/**
     2443 * This macro is calculated to specify the memory required for
     2444 * POSIX API key/value pairs.
     2445 *
     2446 * This is an internal parameter.
     2447 */
    20322448#ifndef CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
    20332449  #define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS \
     
    20362452#endif
    20372453
     2454/**
     2455 * This macro is calculated to specify the total number of
     2456 * POSIX API keys required by the application and configured
     2457 * system capabilities.
     2458 *
     2459 * This is an internal parameter.
     2460 */
    20382461#define CONFIGURE_POSIX_KEYS \
    20392462  (CONFIGURE_MAXIMUM_POSIX_KEYS + CONFIGURE_LIBIO_POSIX_KEYS)
    20402463
     2464/**
     2465 * This macro is calculated to specify the memory required for
     2466 * POSIX API keys.
     2467 *
     2468 * This is an internal parameter.
     2469 */
    20412470#define CONFIGURE_MEMORY_FOR_POSIX_KEYS(_keys, _key_value_pairs) \
    20422471   (_Configure_Object_RAM(_keys, sizeof(POSIX_Keys_Control) ) \
     
    20482477 *  POSIX is enabled.
    20492478 */
    2050 
    20512479#ifdef RTEMS_POSIX_API
    20522480  #include <sys/types.h>
     
    20692497   * Account for the object control structures plus the name
    20702498   * of the object to be duplicated.
     2499   *
     2500   * This is an internal macro.
    20712501   */
    20722502  #define _Configure_POSIX_Named_Object_RAM(_number, _size) \
     
    20742504    (_Configure_Max_Objects(_number) * _Configure_From_workspace(NAME_MAX) )
    20752505
     2506  /**
     2507   * This configuration parameter specifies the maximum number of
     2508   * POSIX API threads.
     2509   */
    20762510  #ifndef CONFIGURE_MAXIMUM_POSIX_THREADS
    20772511    #define CONFIGURE_MAXIMUM_POSIX_THREADS 0
    20782512  #endif
    20792513
     2514  /**
     2515   * This configuration parameter specifies the maximum number of
     2516   * POSIX API mutexes.
     2517   */
    20802518  #ifndef CONFIGURE_MAXIMUM_POSIX_MUTEXES
    20812519    #define CONFIGURE_MAXIMUM_POSIX_MUTEXES 0
    20822520  #endif
     2521
     2522  /**
     2523   * This macro is calculated to specify the memory required for
     2524   * POSIX API mutexes.
     2525   *
     2526   * This is an internal parameter.
     2527   */
    20832528  #define CONFIGURE_MEMORY_FOR_POSIX_MUTEXES(_mutexes) \
    20842529    _Configure_Object_RAM(_mutexes, sizeof(POSIX_Mutex_Control) )
    20852530
     2531  /**
     2532   * This configuration parameter specifies the maximum number of
     2533   * POSIX API condition variables.
     2534   */
    20862535  #ifndef CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES
    20872536    #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 0
    20882537  #endif
     2538
     2539  /**
     2540   * This macro is calculated to specify the memory required for
     2541   * POSIX API condition variables.
     2542   *
     2543   * This is an internal parameter.
     2544   */
    20892545  #define CONFIGURE_MEMORY_FOR_POSIX_CONDITION_VARIABLES(_condvars) \
    20902546      _Configure_Object_RAM(_condvars, \
    20912547                          sizeof(POSIX_Condition_variables_Control) )
    20922548
     2549  /**
     2550   * This configuration parameter specifies the maximum number of
     2551   * POSIX API timers.
     2552   */
    20932553  #ifndef CONFIGURE_MAXIMUM_POSIX_TIMERS
    20942554    #define CONFIGURE_MAXIMUM_POSIX_TIMERS 0
    20952555  #endif
     2556
     2557  /**
     2558   * This macro is calculated to specify the memory required for
     2559   * POSIX API timers.
     2560   *
     2561   * This is an internal parameter.
     2562   */
    20962563  #define CONFIGURE_MEMORY_FOR_POSIX_TIMERS(_timers) \
    20972564    _Configure_Object_RAM(_timers, sizeof(POSIX_Timer_Control) )
    20982565
     2566  /**
     2567   * This configuration parameter specifies the maximum number of
     2568   * POSIX API queued signals.
     2569   */
    20992570  #ifndef CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
    21002571    #define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 0
    21012572  #endif
     2573
     2574  /**
     2575   * This macro is calculated to specify the memory required for
     2576   * POSIX API queued signals.
     2577   *
     2578   * This is an internal parameter.
     2579   */
    21022580  #define CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS(_queued_signals) \
    21032581    _Configure_From_workspace( \
    21042582      (_queued_signals) * (sizeof(POSIX_signals_Siginfo_node)) )
    21052583
     2584  /**
     2585   * This configuration parameter specifies the maximum number of
     2586   * POSIX API message queues.
     2587   */
    21062588  #ifndef CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
    21072589    #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES                     0
    2108     #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS          0
    2109   #else
    2110     /* default to same number */
    2111     #ifndef CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS
    2112        #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS \
    2113                CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
    2114     #endif
    2115   #endif
    2116 
     2590  #endif
     2591
     2592  /**
     2593   * This configuration parameter specifies the maximum number of
     2594   * POSIX API messages queue descriptors.
     2595   *
     2596   * This defaults to the number of POSIX API message queues.
     2597   */
     2598  #ifndef CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS
     2599     #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUE_DESCRIPTORS \
     2600             CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
     2601  #endif
     2602
     2603  /**
     2604   * This macro is calculated to specify the memory required for
     2605   * POSIX API message queues.
     2606   *
     2607   * This is an internal parameter.
     2608   */
    21172609  #define CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES(_message_queues) \
    21182610    _Configure_POSIX_Named_Object_RAM( \
    21192611       _message_queues, sizeof(POSIX_Message_queue_Control) )
    21202612
     2613  /**
     2614   * This macro is calculated to specify the memory required for
     2615   * POSIX API message queue descriptors.
     2616   *
     2617   * This is an internal parameter.
     2618   */
    21212619  #define CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUE_DESCRIPTORS(_mqueue_fds) \
    21222620    _Configure_Object_RAM( \
    21232621       _mqueue_fds, sizeof(POSIX_Message_queue_Control_fd) )
    21242622
     2623  /**
     2624   * This configuration parameter specifies the maximum number of
     2625   * POSIX API semaphores.
     2626   */
    21252627  #ifndef CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
    21262628    #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 0
    21272629  #endif
     2630
     2631  /**
     2632   * This macro is calculated to specify the memory required for
     2633   * POSIX API semaphores.
     2634   *
     2635   * This is an internal parameter.
     2636   */
    21282637  #define CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES(_semaphores) \
    21292638    _Configure_POSIX_Named_Object_RAM( \
    21302639       _semaphores, sizeof(POSIX_Semaphore_Control) )
    21312640
     2641  /**
     2642   * This configuration parameter specifies the maximum number of
     2643   * POSIX API barriers.
     2644   */
    21322645  #ifndef CONFIGURE_MAXIMUM_POSIX_BARRIERS
    21332646    #define CONFIGURE_MAXIMUM_POSIX_BARRIERS 0
    21342647  #endif
     2648
     2649  /**
     2650   * This macro is calculated to specify the memory required for
     2651   * POSIX API barriers.
     2652   *
     2653   * This is an internal parameter.
     2654   */
    21352655  #define CONFIGURE_MEMORY_FOR_POSIX_BARRIERS(_barriers) \
    21362656    _Configure_Object_RAM(_barriers, sizeof(POSIX_Barrier_Control) )
    21372657
     2658  /**
     2659   * This configuration parameter specifies the maximum number of
     2660   * POSIX API spinlocks.
     2661   */
    21382662  #ifndef CONFIGURE_MAXIMUM_POSIX_SPINLOCKS
    21392663    #define CONFIGURE_MAXIMUM_POSIX_SPINLOCKS 0
    21402664  #endif
     2665
     2666  /**
     2667   * This macro is calculated to specify the memory required for
     2668   * POSIX API spinlocks.
     2669   *
     2670   * This is an internal parameter.
     2671   */
    21412672  #define CONFIGURE_MEMORY_FOR_POSIX_SPINLOCKS(_spinlocks) \
    21422673    _Configure_Object_RAM(_spinlocks, sizeof(POSIX_Spinlock_Control) )
    21432674
     2675  /**
     2676   * This configuration parameter specifies the maximum number of
     2677   * POSIX API rwlocks.
     2678   */
    21442679  #ifndef CONFIGURE_MAXIMUM_POSIX_RWLOCKS
    21452680    #define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 0
    21462681  #endif
     2682
     2683  /**
     2684   * This macro is calculated to specify the memory required for
     2685   * POSIX API rwlocks.
     2686   *
     2687   * This is an internal parameter.
     2688   */
    21472689  #define CONFIGURE_MEMORY_FOR_POSIX_RWLOCKS(_rwlocks) \
    21482690    _Configure_Object_RAM(_rwlocks, sizeof(POSIX_RWLock_Control) )
     
    21922734#else
    21932735
     2736  /**
     2737   * This configuration parameter specifies the maximum number of
     2738   * POSIX API threads.
     2739   */
    21942740  #define CONFIGURE_MAXIMUM_POSIX_THREADS         0
    21952741
    21962742#endif    /* RTEMS_POSIX_API */
    21972743
     2744/**
     2745 * This configuration parameter specifies the stack size of the
     2746 * POSIX API Initialization thread (if used).
     2747 */
    21982748#ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
    21992749  #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE    0
    22002750#endif
    2201 
    2202 /*
    2203  *  This block of defines are for applications which use GNAT/RTEMS.
    2204  *  GNAT implements each Ada task as a POSIX thread.
    2205  */
     2751/**@}*/  /* end of POSIX API Configuration */
     2752
     2753/**
     2754 * @defgroup ConfigurationGNAT GNAT/RTEMS Configuration
     2755 *
     2756 * @addtogroup Configuration
     2757 *
     2758 *  This modules includes configuration parameters for applications which
     2759 *  use GNAT/RTEMS. GNAT implements each Ada task as a POSIX thread.
     2760 */
     2761/**@{*/
    22062762#ifdef CONFIGURE_GNAT_RTEMS
    22072763
     
    22292785
    22302786#else
     2787  /** This defines he number of POSIX mutexes GNAT needs. */
    22312788  #define CONFIGURE_GNAT_MUTEXES           0
     2789  /** This defines he number of Ada tasks needed by the application. */
    22322790  #define CONFIGURE_MAXIMUM_ADA_TASKS      0
     2791  /**
     2792   * This defines he number of non-Ada tasks/threads that will invoke
     2793   * Ada subprograms or functions.
     2794   */
    22332795  #define CONFIGURE_MAXIMUM_FAKE_ADA_TASKS 0
    22342796#endif
    2235 
     2797/**@}*/  /* end of GNAT Configuration */
     2798
     2799/**
     2800 * @defgroup ConfigurationGo GCC Go Configuration
     2801 *
     2802 * @addtogroup Configuration
     2803 *
     2804 *  This modules includes configuration parameters for applications which
     2805 *  use GCC Go.
     2806 */
     2807/**@{*/
    22362808#ifdef CONFIGURE_ENABLE_GO
    22372809
     
    22612833
    22622834#else
     2835  /**
     2836   * This specifies the number of mutexes required by the Go run-time
     2837   * for its own use.
     2838   *
     2839   * This is an internal parameter.
     2840   */
    22632841  #define CONFIGURE_GO_INIT_MUTEXES             0
     2842
     2843  /**
     2844   * This specifies the number of condition variables required by the Go
     2845   * run-time for its own use.
     2846   *
     2847   * This is an internal parameter.
     2848   */
    22642849  #define CONFIGURE_GO_INIT_CONDITION_VARIABLES 0
     2850
     2851  /** This specifies the maximum number of Go co-routines. */
    22652852  #define CONFIGURE_MAXIMUM_GOROUTINES          0
     2853
     2854  /** This specifies the maximum number of Go per-task variables required. */
    22662855  #define CONFIGURE_GOROUTINES_TASK_VARIABLES   0
     2856
     2857  /** This specifies the maximum number of Go channels required. */
    22672858  #define CONFIGURE_MAXIMUM_GO_CHANNELS         0
    22682859#endif
     2860/**@}*/  /* end of Go Configuration */
    22692861
    22702862/**
     
    22992891  /**
    23002892   * This macro provides summation of the POSIX Condition Variables.
     2893   *
     2894   * This is an internal parameter.
    23012895   */
    23022896  #define CONFIGURE_POSIX_CONDITION_VARIABLES \
     
    23082902      CONFIGURE_MAXIMUM_GO_CHANNELS)
    23092903
     2904  /**
     2905   * This macro is calculated to specify the memory required for
     2906   * the POSIX API in its entirety.
     2907   *
     2908   * This is an internal parameter.
     2909   */
    23102910  #define CONFIGURE_MEMORY_FOR_POSIX \
    23112911    (CONFIGURE_MEMORY_FOR_POSIX_MUTEXES(CONFIGURE_POSIX_MUTEXES) + \
     
    23272927      CONFIGURE_MEMORY_FOR_POSIX_TIMERS(CONFIGURE_MAXIMUM_POSIX_TIMERS))
    23282928#else
     2929  /**
     2930   * This macro is calculated to specify the memory required for
     2931   * the POSIX API in its entirety.
     2932   *
     2933   * This is an internal parameter.
     2934   */
    23292935  #define CONFIGURE_MEMORY_FOR_POSIX 0
    23302936#endif
     
    23332939 *  Calculate the RAM size based on the maximum number of objects configured.
    23342940 */
    2335 
    23362941#ifndef CONFIGURE_EXECUTIVE_RAM_SIZE
    23372942
     
    23412946 *   + local pointer table -- pointer per object plus a zero'th
    23422947 *     entry in the local pointer table.
    2343  */
    2344 
     2948 *
     2949 * This is an internal parameter.
     2950 */
    23452951#define CONFIGURE_MEMORY_FOR_TASKS(_tasks, _number_FP_tasks) \
    23462952  ( \
     
    23542960 * This defines the amount of memory configured for the multiprocessing
    23552961 * support required by this application.
     2962 *
     2963 * This is an internal parameter.
    23562964 */
    23572965#ifdef CONFIGURE_MP_APPLICATION
     
    23762984
    23772985/**
    2378  * This macros is set to the amount of memory required for pending message
     2986 * This macro is set to the amount of memory required for pending message
    23792987 * buffers in bytes.  It should be constructed by adding together a
    23802988 * set of values determined by CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE.
     2989 *
     2990 * This is an internal parameter.
    23812991 */
    23822992#ifndef CONFIGURE_MESSAGE_BUFFER_MEMORY
     
    24693079  )
    24703080
     3081/**
     3082 * This macro provides a summation of the memory required by SMP as configured.
     3083 *
     3084 * This is an internal parameter.
     3085 */
    24713086#if defined(RTEMS_SMP)
    24723087  #define CONFIGURE_MEMORY_FOR_SMP \
     
    24803095/**
    24813096 * This calculates the memory required for the executive workspace.
     3097 *
     3098 * This is an internal parameter.
    24823099 */
    24833100#define CONFIGURE_EXECUTIVE_RAM_SIZE \
     
    25083125 * This accounts for any extra memory required by the Classic API
    25093126 * Initialization Task.
     3127 *
     3128 * This is an internal parameter.
    25103129 */
    25113130#if (CONFIGURE_INIT_TASK_STACK_SIZE > CONFIGURE_MINIMUM_TASK_STACK_SIZE)
     
    25193138 * This accounts for any extra memory required by the POSIX API
    25203139 * Initialization Thread.
     3140 *
     3141 * This is an internal parameter.
    25213142 */
    25223143#if defined(RTEMS_POSIX_API) && \
     
    25333154 * This macro provides a summation of the various initialization task
    25343155 * and thread stack requirements.
     3156 *
     3157 * This is an internal parameter.
    25353158 */
    25363159#define CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS \
     
    25383161    CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART)
    25393162
     3163/**
     3164 * This macro is calculated to specify the memory required for
     3165 * the Idle tasks(s) stack.
     3166 *
     3167 * This is an internal parameter.
     3168 */
    25403169#define CONFIGURE_IDLE_TASKS_STACK \
    25413170  (CONFIGURE_IDLE_TASKS_COUNT * \
    25423171    _Configure_From_stackspace( CONFIGURE_IDLE_TASK_STACK_SIZE ) )
    25433172
     3173/**
     3174 * This macro is calculated to specify the memory required for
     3175 * the stacks of all tasks.
     3176 *
     3177 * This is an internal parameter.
     3178 */
    25443179#define CONFIGURE_TASKS_STACK \
    25453180  (_Configure_Max_Objects( CONFIGURE_TASKS ) * \
    25463181    _Configure_From_stackspace( CONFIGURE_MINIMUM_TASK_STACK_SIZE ) )
    25473182
     3183/**
     3184 * This macro is calculated to specify the memory required for
     3185 * the stacks of all POSIX threads.
     3186 *
     3187 * This is an internal parameter.
     3188 */
    25483189#define CONFIGURE_POSIX_THREADS_STACK \
    25493190  (_Configure_Max_Objects( CONFIGURE_MAXIMUM_POSIX_THREADS ) * \
    25503191    _Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) )
    25513192
     3193/**
     3194 * This macro is calculated to specify the memory required for
     3195 * the stacks of all Ada tasks.
     3196 *
     3197 * This is an internal parameter.
     3198 */
     3199#define CONFIGURE_ADA_TASKS_STACK \
     3200  (_Configure_Max_Objects( CONFIGURE_MAXIMUM_ADA_TASKS ) * \
     3201    _Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) )
     3202
     3203/**
     3204 * This macro is calculated to specify the memory required for
     3205 * the stacks of all Go routines.
     3206 *
     3207 * This is an internal parameter.
     3208 */
    25523209#define CONFIGURE_GOROUTINES_STACK \
    25533210  (_Configure_Max_Objects( CONFIGURE_MAXIMUM_GOROUTINES ) * \
    2554     _Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) )
    2555 
    2556 #define CONFIGURE_ADA_TASKS_STACK \
    2557   (_Configure_Max_Objects( CONFIGURE_MAXIMUM_ADA_TASKS ) * \
    25583211    _Configure_From_stackspace( CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE ) )
    25593212
     
    25773230#endif /* CONFIGURE_EXECUTIVE_RAM_SIZE */
    25783231
     3232/**
     3233 * This macro is calculated to specify the memory required for
     3234 * all tasks and threads of all varieties.
     3235 *
     3236 * This is an internal parameter.
     3237 */
    25793238#define CONFIGURE_STACK_SPACE_SIZE \
    25803239  ( \
Note: See TracChangeset for help on using the changeset viewer.