Changeset 27f071cd in rtems


Ignore:
Timestamp:
Jan 8, 2013, 1:13:41 PM (7 years ago)
Author:
Alex Ivanov <alexivanov97@…>
Branches:
4.11, master
Children:
e354eb4f
Parents:
4027e63
git-author:
Alex Ivanov <alexivanov97@…> (01/08/13 13:13:41)
git-committer:
Jennifer Averett <jennifer.averett@…> (01/08/13 13:13:41)
Message:

sapi: Doxygen Clean Up Task #1

Location:
cpukit/sapi
Files:
18 edited

Legend:

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

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/confdefs.h
     2 * @file
    33 *
    44 * @brief Configuration Table Template that will be Instantiated
    55 * by an Application
    66 *
    7  *  This include file contains the configuration table template that will
    8  *  be instantiated by an application based on the setting of a number
    9  *  of macros.  The macros are documented in the Configuring a System
    10  *  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.
     7 * This include file contains the configuration table template that will
     8 * be instantiated by an application based on the setting of a number
     9 * of macros.  The macros are documented in the Configuring a System
     10 * 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.
    2929 */
    3030
     
    6262
    6363/**
    64  *  This macro determines whether the RTEMS reentrancy support for
    65  *  the Newlib C Library is enabled.
     64 * This macro determines whether the RTEMS reentrancy support for
     65 * the Newlib C Library is enabled.
    6666 */
    6767#ifdef RTEMS_SCHEDSIM
     
    111111
    112112/**
    113  *  This macro defines the number of POSIX file descriptors allocated
    114  *  and managed by libio.  These are the "integer" file descriptors that
    115  *  are used by calls like open(2) and read(2).
     113 * This macro defines the number of POSIX file descriptors allocated
     114 * and managed by libio.  These are the "integer" file descriptors that
     115 * are used by calls like open(2) and read(2).
    116116 */
    117117#ifndef CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS
     
    120120
    121121/**
    122  *  Semaphore count used by the IO library.
     122 * Semaphore count used by the IO library.
    123123 */
    124124#define CONFIGURE_LIBIO_SEMAPHORES 1
     
    126126#ifdef CONFIGURE_INIT
    127127  /**
    128    *  When instantiating the configuration tables, this variable is
    129    *  initialized to specify the maximum number of file descriptors.
     128   * When instantiating the configuration tables, this variable is
     129   * initialized to specify the maximum number of file descriptors.
    130130   */
    131131  uint32_t rtems_libio_number_iops = CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS;
     
    133133
    134134/**
    135  *  This macro determines if termios is disabled by this application.
    136  *  This only means that resources will not be reserved.  If you end
    137  *  up using termios, it will fail.
     135 * This macro determines if termios is disabled by this application.
     136 * This only means that resources will not be reserved.  If you end
     137 * up using termios, it will fail.
    138138 */
    139139#ifdef CONFIGURE_TERMIOS_DISABLED
     
    141141#else
    142142  /**
    143    *  This macro specifies the number of serial or PTY ports that will
    144    *  use termios.
     143   * This macro specifies the number of serial or PTY ports that will
     144   * use termios.
    145145   */
    146146  #ifndef CONFIGURE_NUMBER_OF_TERMIOS_PORTS
     
    149149
    150150  /**
    151    *  This macro reserves the number of semaphores required by termios
    152    *  based upon the number of communication ports that will use it.
     151   * This macro reserves the number of semaphores required by termios
     152   * based upon the number of communication ports that will use it.
    153153   */
    154154  #define CONFIGURE_TERMIOS_SEMAPHORES \
     
    157157
    158158/**
    159  *  This macro specifies the number of PTYs that can be concurrently
    160  *  active.
     159 * This macro specifies the number of PTYs that can be concurrently
     160 * active.
    161161 */
    162162#ifndef CONFIGURE_MAXIMUM_PTYS
     
    165165
    166166/**
    167  *  This variable contains the maximum number of PTYs that can be
    168  *  concurrently active.
     167 * This variable contains the maximum number of PTYs that can be
     168 * concurrently active.
    169169 */
    170170#ifdef CONFIGURE_INIT
     
    289289
    290290/**
    291  *  This specifies the number of bytes per block for files within the IMFS.
    292  *  There are a maximum number of blocks per file so this dictates the maximum
    293  *  size of a file.  This has to be balanced with the unused portion of each
    294  *  block that might be wasted.
     291 * This specifies the number of bytes per block for files within the IMFS.
     292 * There are a maximum number of blocks per file so this dictates the maximum
     293 * size of a file.  This has to be balanced with the unused portion of each
     294 * block that might be wasted.
    295295 */
    296296#ifndef CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
     
    300300
    301301/**
    302  *  This defines the miniIMFS file system table entry.
     302 * This defines the miniIMFS file system table entry.
    303303 */
    304304#if !defined(CONFIGURE_FILESYSTEM_ENTRY_miniIMFS) && \
     
    310310
    311311/**
    312  *  Internall it is called FIFOs not pipes
     312 * Internall it is called FIFOs not pipes
    313313 */
    314314#if defined(CONFIGURE_PIPES_ENABLED)
     
    318318#ifndef RTEMS_SCHEDSIM
    319319/**
    320  *  This defines the IMFS file system table entry.
     320 * This defines the IMFS file system table entry.
    321321 */
    322322#if !defined(CONFIGURE_FILESYSTEM_ENTRY_IMFS) && \
     
    333333
    334334/**
    335  *  This sets up the resources for the PIPES/FIFOs
     335 * This sets up the resources for the PIPES/FIFOs
    336336 */
    337337#if defined(CONFIGURE_FIFOS_ENABLED)
     
    419419
    420420  /**
    421    *  DEVFS variables.
     421   * DEVFS variables.
    422422   *
    423    *  The number of individual devices that may be registered
    424    *  in the system or the CONFIGURE_MAXIMUM_DEVICES variable
    425    *  is defaulted to 4 when a filesystem is enabled, unless
    426    *  the bsp overwrides this.  In which case the value is set
    427    *  to BSP_MAXIMUM_DEVICES.
     423   * The number of individual devices that may be registered
     424   * in the system or the CONFIGURE_MAXIMUM_DEVICES variable
     425   * is defaulted to 4 when a filesystem is enabled, unless
     426   * the bsp overwrides this.  In which case the value is set
     427   * to BSP_MAXIMUM_DEVICES.
    428428   */
    429429  #ifdef CONFIGURE_FILESYSTEM_DEVFS
     
    533533
    534534/**
    535  *  This configures the stack checker user extension.
     535 * This configures the stack checker user extension.
    536536 */
    537537#ifdef CONFIGURE_STACK_CHECKER_ENABLED
     
    542542
    543543/**
    544  *  @brief Maximum Priority configuration
    545  *
    546  *  This configures the maximum priority value that
    547  *  a task may have.
    548  *
    549  *  The following applies to the data space requirements
    550  *  of the Priority Scheduler.
    551  *
    552  *  By reducing the number of priorities in a system,
    553  *  the amount of RAM required by RTEMS can be significantly
    554  *  reduced.  RTEMS allocates a Chain_Control structure per
    555  *  priority and this structure contains 3 pointers.  So
    556  *  the default is (256 * 12) = 3K on 32-bit architectures.
    557  *
    558  *  This must be one less than a power of 2 between
    559  *  4 and 256.  Valid values along with the application
    560  *  priority levels and memory saved when pointers are
    561  *  32-bits in size are:
    562  *
    563  *    + 3,  2 application priorities, 3024 bytes saved
    564  *    + 7, 5 application priorities, 2976 bytes saved
    565  *    + 15, 13 application priorities, 2880 bytes saved
    566  *    + 31, 29 application priorities, 2688 bytes saved
    567  *    + 63, 61 application priorities, 2304 bytes saved
    568  *    + 127, 125 application priorities, 1536 bytes saved
    569  *    + 255, 253 application priorities, 0 bytes saved
    570  *
    571  *  It is specified in terms of Classic API priority values.
     544 * @brief Maximum priority configuration.
     545 *
     546 * This configures the maximum priority value that
     547 * a task may have.
     548 *
     549 * The following applies to the data space requirements
     550 * of the Priority Scheduler.
     551 *
     552 * By reducing the number of priorities in a system,
     553 * the amount of RAM required by RTEMS can be significantly
     554 * reduced.  RTEMS allocates a Chain_Control structure per
     555 * priority and this structure contains 3 pointers.  So
     556 * the default is (256 * 12) = 3K on 32-bit architectures.
     557 *
     558 * This must be one less than a power of 2 between
     559 * 4 and 256.  Valid values along with the application
     560 * priority levels and memory saved when pointers are
     561 * 32-bits in size are:
     562 *
     563 *   + 3,  2 application priorities, 3024 bytes saved
     564 *   + 7, 5 application priorities, 2976 bytes saved
     565 *   + 15, 13 application priorities, 2880 bytes saved
     566 *   + 31, 29 application priorities, 2688 bytes saved
     567 *   + 63, 61 application priorities, 2304 bytes saved
     568 *   + 127, 125 application priorities, 1536 bytes saved
     569 *   + 255, 253 application priorities, 0 bytes saved
     570 *
     571 * It is specified in terms of Classic API priority values.
    572572 */
    573573#ifndef CONFIGURE_MAXIMUM_PRIORITY
     
    730730
    731731/**
    732  *  @brief Idle task body configuration
    733  *
    734  *  There is a default IDLE thread body provided by RTEMS which
    735  *  has the possibility of being CPU specific.  There may be a
    736  *  BSP specific override of the RTEMS default body and in turn,
    737  *  the application may override and provide its own.
     732 * @brief Idle task body configuration.
     733 *
     734 * There is a default IDLE thread body provided by RTEMS which
     735 * has the possibility of being CPU specific.  There may be a
     736 * BSP specific override of the RTEMS default body and in turn,
     737 * the application may override and provide its own.
    738738 */
    739739#ifndef CONFIGURE_IDLE_TASK_BODY
     
    756756
    757757/**
    758  *  By default, use the minimum stack size requested by this port.
     758 * By default, use the minimum stack size requested by this port.
    759759 */
    760760#ifndef CONFIGURE_MINIMUM_TASK_STACK_SIZE
     
    766766
    767767/**
    768  *  @brief Idle task stack size configuration
    769  *
    770  *  By default, the IDLE task will have a stack of minimum size.
    771  *  The BSP or application may override this value.
     768 * @brief Idle task stack size configuration.
     769 *
     770 * By default, the IDLE task will have a stack of minimum size.
     771 * The BSP or application may override this value.
    772772 */
    773773#ifndef CONFIGURE_IDLE_TASK_STACK_SIZE
     
    783783
    784784/**
    785  *  @brief Interrupt stack size configuration
    786  *
    787  *  By default, the interrupt stack will be of minimum size.
    788  *  The BSP or application may override this value.
     785 * @brief Interrupt stack size configuration.
     786 *
     787 * By default, the interrupt stack will be of minimum size.
     788 * The BSP or application may override this value.
    789789 */
    790790#ifndef CONFIGURE_INTERRUPT_STACK_SIZE
     
    797797
    798798/**
    799  *  This reserves memory for the interrupt stack if it is to be allocated
    800  *  by RTEMS rather than the BSP.
    801  *
    802  *  @todo Try to get to the point where all BSPs support allocating the
    803  *        memory from the Workspace.
     799 * This reserves memory for the interrupt stack if it is to be allocated
     800 * by RTEMS rather than the BSP.
     801 *
     802 * @todo Try to get to the point where all BSPs support allocating the
     803 *       memory from the Workspace.
    804804 */
    805805#if (CPU_ALLOCATE_INTERRUPT_STACK == 0)
     
    811811
    812812/**
    813  *  Configure the very much optional task stack allocator initialization
     813 * Configure the very much optional task stack allocator initialization
    814814 */
    815815#ifndef CONFIGURE_TASK_STACK_ALLOCATOR_INIT
     
    832832
    833833/**
    834  *  Should the RTEMS Workspace and C Program Heap be cleared automatically
    835  *  at system start up?
     834 * Should the RTEMS Workspace and C Program Heap be cleared automatically
     835 * at system start up?
    836836 */
    837837#ifndef CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY
     
    852852#ifdef CONFIGURE_INIT
    853853  /**
    854    *  By default, RTEMS uses separate heaps for the RTEMS Workspace and
    855    *  the C Program Heap.  On many BSPs, these can be optionally
    856    *  combined provided one larger memory pool. This is particularly
    857    *  useful in combination with the unlimited objects configuration.
     854   * By default, RTEMS uses separate heaps for the RTEMS Workspace and
     855   * the C Program Heap.  On many BSPs, these can be optionally
     856   * combined provided one larger memory pool. This is particularly
     857   * useful in combination with the unlimited objects configuration.
    858858   */
    859859  #ifdef BSP_DEFAULT_UNIFIED_WORK_AREAS
     
    873873#ifdef CONFIGURE_INIT
    874874  /**
    875    *  This configures the malloc family statistics to be available.
    876    *  By default only function call counts are kept.
     875   * This configures the malloc family statistics to be available.
     876   * By default only function call counts are kept.
    877877   */
    878878  rtems_malloc_statistics_functions_t *rtems_malloc_statistics_helpers =
     
    886886#ifdef CONFIGURE_INIT
    887887  /**
    888    *  This configures the sbrk() support for the malloc family.
    889    *  By default it is assumed that the BSP provides all available
    890    *  RAM to the malloc family implementation so sbrk()'ing to get
    891    *  more memory would always fail anyway.
     888   * This configures the sbrk() support for the malloc family.
     889   * By default it is assumed that the BSP provides all available
     890   * RAM to the malloc family implementation so sbrk()'ing to get
     891   * more memory would always fail anyway.
    892892   */
    893893  const rtems_heap_extend_handler rtems_malloc_extend_handler =
     
    901901#ifdef CONFIGURE_INIT
    902902  /**
    903    *  This configures the malloc family plugin which dirties memory
    904    *  allocated.  This is helpful for finding unitialized data structure
    905    *  problems.
     903   * This configures the malloc family plugin which dirties memory
     904   * allocated.  This is helpful for finding unitialized data structure
     905   * problems.
    906906   */
    907907  rtems_malloc_dirtier_t rtems_malloc_dirty_helper =
     
    914914
    915915/**
    916  *  This is a helper macro used in calculations in this file.  It is used
    917  *  to noted when an element is allocated from the RTEMS Workspace and adds
    918  *  a factor to account for heap overhead plus an alignment factor that
    919  *  may be applied.
     916 * This is a helper macro used in calculations in this file.  It is used
     917 * to noted when an element is allocated from the RTEMS Workspace and adds
     918 * a factor to account for heap overhead plus an alignment factor that
     919 * may be applied.
    920920 */
    921921#define _Configure_From_workspace(_size) \
     
    923923
    924924/**
    925  *  This is a helper macro used in stack space calculations in this file.  It
    926  *  may be provided by the application in case a special task stack allocator
    927  *  is used.  The default is allocation from the RTEMS Workspace.
     925 * This is a helper macro used in stack space calculations in this file.  It
     926 * may be provided by the application in case a special task stack allocator
     927 * is used.  The default is allocation from the RTEMS Workspace.
    928928 */
    929929#ifdef CONFIGURE_TASK_STACK_FROM_ALLOCATOR
     
    936936
    937937/**
    938  *  Do not use the unlimited bit as part of the multiplication
    939  *  for memory usage.
     938 * Do not use the unlimited bit as part of the multiplication
     939 * for memory usage.
    940940 */
    941941#define _Configure_Max_Objects(_max) \
     
    943943
    944944/**
    945  *  This macro accounts for how memory for a set of configured objects is
    946  *  allocated from the Executive Workspace.
    947  *
    948  *  NOTE: It does NOT attempt to address the more complex case of unlimited
    949  *        objects.
     945 * This macro accounts for how memory for a set of configured objects is
     946 * allocated from the Executive Workspace.
     947 *
     948 * NOTE: It does NOT attempt to address the more complex case of unlimited
     949 *       objects.
    950950 */
    951951#define _Configure_Object_RAM(_number, _size) \
     
    11571157
    11581158/**
    1159  *  This specifies the maximum number of device drivers that
    1160  *  can be installed in the system at one time.  It must account
    1161  *  for both the statically and dynamically installed drivers.
     1159 * This specifies the maximum number of device drivers that
     1160 * can be installed in the system at one time.  It must account
     1161 * for both the statically and dynamically installed drivers.
    11621162 */
    11631163#ifndef CONFIGURE_MAXIMUM_DRIVERS
     
    14861486
    14871487  /**
    1488    *  This macro calculates the memory required for task variables.
     1488   * This macro calculates the memory required for task variables.
    14891489   *
    1490    *  @note Each task variable is individually allocated from the Workspace.
    1491    *        Hence, we do the multiplication on the configured size.
     1490   * NOTE: Each task variable is individually allocated from the Workspace.
     1491   *       Hence, we do the multiplication on the configured size.
    14921492   */
    14931493  #ifndef CONFIGURE_MAXIMUM_TASK_VARIABLES
     
    16631663
    16641664  /**
    1665    *  Account for the object control structures plus the name
    1666    *  of the object to be duplicated.
     1665   * Account for the object control structures plus the name
     1666   * of the object to be duplicated.
    16671667   */
    16681668  #define _Configure_POSIX_Named_Object_RAM(_number, _size) \
     
    18571857
    18581858  /**
    1859    *  The GNAT run-time needs something less than (10) POSIX mutexes.
    1860    *  We may be able to get by with less but why bother.
     1859   * The GNAT run-time needs something less than (10) POSIX mutexes.
     1860   * We may be able to get by with less but why bother.
    18611861   */
    18621862  #define CONFIGURE_GNAT_MUTEXES 10
    18631863
    18641864  /**
    1865    *  This is the maximum number of Ada tasks which can be concurrently
    1866    *  in existence.  Twenty (20) are required to run all tests in the
    1867    *  ACATS (formerly ACVC).
     1865   * This is the maximum number of Ada tasks which can be concurrently
     1866   * in existence.  Twenty (20) are required to run all tests in the
     1867   * ACATS (formerly ACVC).
    18681868   */
    18691869  #ifndef CONFIGURE_MAXIMUM_ADA_TASKS
     
    19201920#ifndef RTEMS_SCHEDSIM
    19211921/**
    1922  *  This macro specifies the amount of memory to be reserved for the
    1923  *  Newlib C Library reentrancy structure -- if we are using newlib.
     1922 * This macro specifies the amount of memory to be reserved for the
     1923 * Newlib C Library reentrancy structure -- if we are using newlib.
    19241924 */
    19251925
     
    19381938
    19391939/**
    1940  *  This is so we can account for tasks with stacks greater than minimum
    1941  *  size.  This is in bytes.
     1940 * This is so we can account for tasks with stacks greater than minimum
     1941 * size.  This is in bytes.
    19421942 */
    19431943#ifndef CONFIGURE_EXTRA_TASK_STACKS
     
    19521952
    19531953/**
    1954  *  Account for allocating the following per object
    1955  *    + array of object control structures
    1956  *    + local pointer table -- pointer per object plus a zero'th
    1957  *      entry in the local pointer table.
     1954 * Account for allocating the following per object
     1955 *   + array of object control structures
     1956 *   + local pointer table -- pointer per object plus a zero'th
     1957 *     entry in the local pointer table.
    19581958 */
    19591959
     
    19771977
    19781978/**
    1979  *  This defines the amount of memory configured for the multiprocessing
    1980  *  support required by this application.
     1979 * This defines the amount of memory configured for the multiprocessing
     1980 * support required by this application.
    19811981 */
    19821982#ifdef CONFIGURE_MP_APPLICATION
     
    19921992
    19931993/**
    1994  *  The following macro is used to calculate the memory allocated by RTEMS
    1995  *  for the message buffers associated with a particular message queue.
    1996  *  There is a fixed amount of overhead per message.
     1994 * The following macro is used to calculate the memory allocated by RTEMS
     1995 * for the message buffers associated with a particular message queue.
     1996 * There is a fixed amount of overhead per message.
    19971997 */
    19981998#define CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(_messages, _size) \
     
    20012001
    20022002/**
    2003  *  This macros is set to the amount of memory required for pending message
    2004  *  buffers in bytes.  It should be constructed by adding together a
    2005  *  set of values determined by CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE.
     2003 * This macros is set to the amount of memory required for pending message
     2004 * buffers in bytes.  It should be constructed by adding together a
     2005 * set of values determined by CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE.
    20062006 */
    20072007#ifndef CONFIGURE_MESSAGE_BUFFER_MEMORY
     
    20102010
    20112011/**
    2012  *  This macro is available just in case the confdefs.h file underallocates
    2013  *  memory for a particular application.  This lets the user add some extra
    2014  *  memory in case something broken and underestimates.
    2015  *
    2016  *  It is also possible for cases where confdefs.h overallocates memory,
    2017  *  you could substract memory from the allocated.  The estimate is just
    2018  *  that, an estimate, and assumes worst case alignment and padding on
    2019  *  each allocated element.  So in some cases it could be too conservative.
    2020  *
    2021  *  @note Historically this was used for message buffers.
     2012 * This macro is available just in case the confdefs.h file underallocates
     2013 * memory for a particular application.  This lets the user add some extra
     2014 * memory in case something broken and underestimates.
     2015 *
     2016 * It is also possible for cases where confdefs.h overallocates memory,
     2017 * you could substract memory from the allocated.  The estimate is just
     2018 * that, an estimate, and assumes worst case alignment and padding on
     2019 * each allocated element.  So in some cases it could be too conservative.
     2020 *
     2021 * NOTE: Historically this was used for message buffers.
    20222022 */
    20232023#ifndef CONFIGURE_MEMORY_OVERHEAD
     
    20262026
    20272027/**
    2028  *  On architectures that use Simple Vectored Interrupts, it is RTEMS
    2029  *  responsibility to allocate the vector table.  This avoids reserving
    2030  *  the memory on architectures that use the Programmable Interrupt
    2031  *  Controller Vectored Interrupts.
     2028 * On architectures that use Simple Vectored Interrupts, it is RTEMS
     2029 * responsibility to allocate the vector table.  This avoids reserving
     2030 * the memory on architectures that use the Programmable Interrupt
     2031 * Controller Vectored Interrupts.
    20322032 */
    20332033#if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE)
     
    20512051
    20522052/**
    2053  *  RTEMS uses one instance of an internal mutex class.  This accounts
    2054  *  for that mutex
     2053 * RTEMS uses one instance of an internal mutex class.  This accounts
     2054 * for that mutex
    20552055 */
    20562056#define CONFIGURE_API_MUTEX_MEMORY \
     
    20582058
    20592059/**
    2060  *  This calculates the amount of memory reserved for the IDLE tasks.
    2061  *  In an SMP system, each CPU core has its own idle task.
     2060 * This calculates the amount of memory reserved for the IDLE tasks.
     2061 * In an SMP system, each CPU core has its own idle task.
    20622062 */
    20632063#if defined(RTEMS_SMP)
     
    20682068
    20692069/**
    2070  *  This defines the formula used to compute the amount of memory
    2071  *  reserved for IDLE task control structures.
     2070 * This defines the formula used to compute the amount of memory
     2071 * reserved for IDLE task control structures.
    20722072 */
    20732073#define CONFIGURE_MEMORY_FOR_IDLE_TASK \
     
    20752075
    20762076/**
    2077  *  This macro accounts for general RTEMS system overhead.
     2077 * This macro accounts for general RTEMS system overhead.
    20782078 */
    20792079#define CONFIGURE_MEMORY_FOR_SYSTEM_OVERHEAD \
     
    20862086
    20872087/**
    2088  *  This macro provides a summation of the various task and thread
    2089  *  requirements.
     2088 * This macro provides a summation of the various task and thread
     2089 * requirements.
    20902090 */
    20912091#define CONFIGURE_TOTAL_TASKS_AND_THREADS \
     
    20952095
    20962096/**
    2097  *  This macro reserves the memory required by the statically configured
    2098  *  user extensions.
     2097 * This macro reserves the memory required by the statically configured
     2098 * user extensions.
    20992099 */
    21002100#define CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS \
     
    21062106
    21072107/**
    2108  *  This macro provides a summation of the memory required by the
    2109  *  Classic API as configured.
     2108 * This macro provides a summation of the memory required by the
     2109 * Classic API as configured.
    21102110 */
    21112111#define CONFIGURE_MEMORY_FOR_CLASSIC \
     
    21342134
    21352135/**
    2136  *  This calculates the memory required for the executive workspace.
     2136 * This calculates the memory required for the executive workspace.
    21372137 */
    21382138#define CONFIGURE_EXECUTIVE_RAM_SIZE \
     
    21562156
    21572157/**
    2158  *  This accounts for any extra memory required by the Classic API
    2159  *  Initialization Task.
     2158 * This accounts for any extra memory required by the Classic API
     2159 * Initialization Task.
    21602160 */
    21612161#if (CONFIGURE_INIT_TASK_STACK_SIZE > CONFIGURE_MINIMUM_TASK_STACK_SIZE)
     
    21672167
    21682168/**
    2169  *  This accounts for any extra memory required by the POSIX API
    2170  *  Initialization Thread.
     2169 * This accounts for any extra memory required by the POSIX API
     2170 * Initialization Thread.
    21712171 */
    21722172#if defined(RTEMS_POSIX_API) && \
     
    21812181
    21822182/**
    2183  *  This macro provides a summation of the various initialization task
    2184  *  and thread stack requirements.
     2183 * This macro provides a summation of the various initialization task
     2184 * and thread stack requirements.
    21852185 */
    21862186#define CONFIGURE_INITIALIZATION_THREADS_EXTRA_STACKS \
     
    22422242#ifdef CONFIGURE_INIT
    22432243  /**
    2244    *  This is the Classic API Configuration Table.
     2244   * This is the Classic API Configuration Table.
    22452245   */
    22462246  rtems_api_configuration_table Configuration_RTEMS_API = {
     
    22612261  #ifdef RTEMS_POSIX_API
    22622262    /**
    2263      *  This is the POSIX API Configuration Table.
     2263     * This is the POSIX API Configuration Table.
    22642264     */
    22652265    posix_api_configuration_table Configuration_POSIX_API = {
     
    22862286  #endif
    22872287
    2288   /** This variable specifies the minimum stack size for tasks in an RTEMS
    2289    *  application.
     2288  /**
     2289   * This variable specifies the minimum stack size for tasks in an RTEMS
     2290   * application.
    22902291   *
    2291    *  @note This is left as a simple uint32_t so it can be externed as
    2292    *        needed without requring being high enough logical to
    2293    *        include the full configuration table.
     2292   * NOTE: This is left as a simple uint32_t so it can be externed as
     2293   *       needed without requring being high enough logical to
     2294   *       include the full configuration table.
    22942295   */
    22952296  uint32_t rtems_minimum_stack_size =
    22962297    CONFIGURE_MINIMUM_TASK_STACK_SIZE;
    22972298
    2298   /** This variable specifies the maximum priority value that
    2299    *  a task may have.  This must be a power of 2 between 4
    2300    *  and 256 and is specified in terms of Classic API
    2301    *  priority values.
     2299  /**
     2300   * This variable specifies the maximum priority value that
     2301   * a task may have.  This must be a power of 2 between 4
     2302   * and 256 and is specified in terms of Classic API
     2303   * priority values.
    23022304   *
    2303    *  @note This is left as a simple uint8_t so it can be externed as
    2304    *        needed without requring being high enough logical to
    2305    *        include the full configuration table.
     2305   * NOTE: This is left as a simple uint8_t so it can be externed as
     2306   *       needed without requring being high enough logical to
     2307   *       include the full configuration table.
    23062308   */
    23072309  uint8_t rtems_maximum_priority = CONFIGURE_MAXIMUM_PRIORITY;
    23082310
    23092311  /**
    2310    *  This is the primary Configuration Table for this application.
     2312   * This is the primary Configuration Table for this application.
    23112313   */
    23122314  const rtems_configuration_table Configuration = {
     
    23512353#if defined(RTEMS_SMP)
    23522354  /**
    2353    *  Instantiate the variable which specifies the number of CPUs
    2354    *  in an SMP configuration.
     2355   * Instantiate the variable which specifies the number of CPUs
     2356   * in an SMP configuration.
    23552357   */
    23562358  #if defined(CONFIGURE_INIT)
     
    24152417#if defined(CONFIGURE_CONFDEFS_DEBUG) && defined(CONFIGURE_INIT)
    24162418  /**
    2417    *  This is a debug mechanism, so if you need to, the executable will
    2418    *  have a structure with various partial values.  Add to this as you
    2419    *  need to.  Viewing this structure in gdb combined with dumping
    2420    *  the Configuration structures generated should help a lot in tracing
    2421    *  down errors and analyzing where over and under allocations are.
     2419   * This is a debug mechanism, so if you need to, the executable will
     2420   * have a structure with various partial values.  Add to this as you
     2421   * need to.  Viewing this structure in gdb combined with dumping
     2422   * the Configuration structures generated should help a lot in tracing
     2423   * down errors and analyzing where over and under allocations are.
    24222424   */
    24232425  typedef struct {
  • cpukit/sapi/include/rtems/cbs.h

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/cbs.h
     2 * @file
    33 *
    44 * @brief Constants and Structures Associated
  • cpukit/sapi/include/rtems/chain.h

    r4027e63 r27f071cd  
    11/**
    22 * @file
    3  *
    4  * @ingroup ClassicChains
    5  *
    6  * @brief Chain API.
     3 *
     4 * @brief Chain API
    75 */
    86
     
    3432 * @ingroup ClassicRTEMS
    3533 *
    36  * @brief Chain API.
     34 * @brief Chain API
    3735 *
    3836 * @{
  • cpukit/sapi/include/rtems/config.h

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/config.h
     2 * @file
    33 *
    44 * @brief Table of User Defined Configuration Parameters
     
    8080  uint32_t            maximum_proxies;
    8181
    82   /** The MPCI Receive server is assumed to have a stack of at least
    83    *  minimum stack size.  This field specifies the amount of extra
    84    *  stack this task will be given in bytes.
     82  /**
     83   * The MPCI Receive server is assumed to have a stack of at least
     84   * minimum stack size.  This field specifies the amount of extra
     85   * stack this task will be given in bytes.
    8586   */
    8687  uint32_t            extra_mpci_receive_server_stack;
     
    9495 * @brief Task stack allocator initialization hook.
    9596 *
    96  * @param[in] stack_space_size Size of the stack space in bytes.
     97 * @param[in] stack_space_size is the size of the stack space in bytes.
    9798 */
    9899typedef void (*rtems_stack_allocate_init_hook)( size_t stack_space_size );
     
    101102 * @brief Task stack allocator hook.
    102103 *
    103  * @param[in] stack_size Size of the task stack in bytes.
     104 * @param[in] stack_size is the Size of the task stack in bytes.
    104105 *
    105106 * @retval NULL Not enough memory.
     
    111112 * @brief Task stack deallocator hook.
    112113 *
    113  * @param[in] addr Pointer to previously allocated task stack.
     114 * @param[in] addr is a pointer to previously allocated task stack.
    114115 */
    115116typedef void (*rtems_stack_free_hook)( void *addr );
     
    127128 */
    128129typedef struct {
    129   /** This field specifies the size in bytes of the RTEMS Workspace.
     130  /**
     131   * This field specifies the size in bytes of the RTEMS Workspace.
    130132   */
    131133  uintptr_t                      work_space_size;
    132134
    133   /** This field specifies the size in bytes of the RTEMS thread stack space.
     135  /**
     136   * This field specifies the size in bytes of the RTEMS thread stack space.
    134137   */
    135138  uintptr_t                      stack_space_size;
    136139
    137   /** This field specifies the maximum number of dynamically installed
    138    *  used extensions.
     140  /**
     141   * This field specifies the maximum number of dynamically installed
     142   * used extensions.
    139143   */
    140144  uint32_t                       maximum_extensions;
    141145
    142   /** This field specifies the number of microseconds which elapse
    143    *  between clock ticks.  This is the basis for RTEMS timing.
     146  /**
     147   * This field specifies the number of microseconds which elapse
     148   * between clock ticks.  This is the basis for RTEMS timing.
    144149   */
    145150  uint32_t                       microseconds_per_tick;
    146151
    147   /** This field specifies the number of nanoseconds which elapse
    148    *  between clock ticks.  This value is derived from the
    149    *  microseconds_per_tick field and provided to avoid calculation at
    150    *  run-time.
     152  /**
     153   * This field specifies the number of nanoseconds which elapse
     154   * between clock ticks.  This value is derived from the
     155   * microseconds_per_tick field and provided to avoid calculation at
     156   * run-time.
    151157   */
    152158  uint32_t                       nanoseconds_per_tick;
    153159
    154   /** This field specifies the number of ticks in each task's timeslice.
     160  /**
     161   * This field specifies the number of ticks in each task's timeslice.
    155162   */
    156163  uint32_t                       ticks_per_timeslice;
    157164
    158   /** This element points to the BSP's optional idle task which may override
    159    *  the default one provided with RTEMS.
     165  /**
     166   * This element points to the BSP's optional idle task which may override
     167   * the default one provided with RTEMS.
    160168   */
    161169  Thread                       (*idle_task)( uintptr_t );
    162170
    163   /** This field specifies the size of the IDLE task's stack.  If less than or
    164    *  equal to the minimum stack size, then the IDLE task will have the minimum
    165    *  stack size.
     171  /**
     172   * This field specifies the size of the IDLE task's stack.  If less than or
     173   * equal to the minimum stack size, then the IDLE task will have the minimum
     174   * stack size.
    166175   */
    167176  uint32_t                       idle_task_stack_size;
    168177
    169   /** This field specifies the size of the interrupt stack.  If less than or
    170    *  equal to the minimum stack size, then the interrupt stack will be of
    171    *  minimum stack size.
     178  /**
     179   * This field specifies the size of the interrupt stack.  If less than or
     180   * equal to the minimum stack size, then the interrupt stack will be of
     181   * minimum stack size.
    172182   */
    173183  uint32_t                       interrupt_stack_size;
     
    188198  rtems_stack_free_hook          stack_free_hook;
    189199
    190   /** If this element is TRUE, then RTEMS will zero the Executive Workspace.
    191    *  When this element is FALSE, it is assumed that the BSP or invoking
    192    *  environment has ensured that memory was cleared before RTEMS was
    193    *  invoked.
     200  /**
     201   * If this element is TRUE, then RTEMS will zero the Executive Workspace.
     202   * When this element is FALSE, it is assumed that the BSP or invoking
     203   * environment has ensured that memory was cleared before RTEMS was
     204   * invoked.
    194205   */
    195206  bool                           do_zero_of_workspace;
     
    223234
    224235/**
    225  *   This is the configuration table generated by confdefs.h.
     236 * This is the configuration table generated by confdefs.h.
    226237 */
    227238extern const rtems_configuration_table Configuration;
     
    229240#if defined(RTEMS_MULTIPROCESSING)
    230241  /**
    231    *   This points to the multiprocessing configuration table.
     242   *  This points to the multiprocessing configuration table.
    232243   */
    233244  SAPI_EXTERN rtems_multiprocessing_table  *_Configuration_MP_table;
     
    236247#if defined(RTEMS_MULTIPROCESSING)
    237248  /**
    238    *  @brief RTEMS Multiprocessing Configuration Table
     249   * @brief RTEMS multiprocessing configuration table.
    239250   *
    240    *  This is the RTEMS Multiprocessing Configuration Table expected to
    241    *  be generated by confdefs.h.
     251   * This is the RTEMS Multiprocessing Configuration Table expected to
     252   * be generated by confdefs.h.
    242253   */
    243254  extern rtems_multiprocessing_table  Multiprocessing_configuration;
     
    295306        (Configuration.stack_free_hook)
    296307
    297 /**
     308 /**
    298309  * This macro assists in accessing the field which indicates whether
    299310  * RTEMS is responsible for zeroing the Executive Workspace.
  • cpukit/sapi/include/rtems/extension.h

    r4027e63 r27f071cd  
    11/**
    22 * @file
    3  *
    4  * @ingroup ClassicUserExtensions
    5  *
     3 *
    64 * @brief User Extensions API.
    75 */
     
    4038
    4139/**
    42  *  @brief Initialize Extension Manager
     40 *  @brief Initialize extension manager.
    4341 *
    4442 *  This routine initializes all extension manager related data structures.
  • cpukit/sapi/include/rtems/fatal.h

    r4027e63 r27f071cd  
    11/**
    22 * @file
    3  *
    4  * @ingroup ClassicFatal
    53 *
    64 * @brief Fatal API.
     
    4341
    4442/**
    45  *  @brief Prints the exception frame via printk().
     43 * @brief Prints the exception frame via printk().
    4644 *
    47  *  @see rtems_fatal() and RTEMS_FATAL_SOURCE_EXCEPTION.
     45 * @see rtems_fatal() and RTEMS_FATAL_SOURCE_EXCEPTION.
    4846 */
    4947static inline void rtems_exception_frame_print(
     
    5856 * INTERNAL_ERROR_RTEMS_API and is internal set to false.
    5957 *
    60  * @param[in] the_error A 32-bit fatal error code.
    61  *
    62  * @return This function will not return.
     58 * @param[in] the_error is a 32-bit fatal error code.
    6359 *
    6460 * @see _Internal_error_Occurred().
     
    7167 * @brief Invokes the internal error handler with is internal set to false.
    7268 *
    73  * @param[in] source The fatal source.
    74  * @param[in] error The fatal code.
    75  *
    76  * @return This function will not return.
     69 * @param[in] source is the fatal source.
     70 * @param[in] error is the fatal code.
    7771 *
    7872 * @see _Internal_error_Occurred().
     
    8680 * @brief Returns a description for a fatal source.
    8781 *
    88  * @param[in] source The fatal source.
     82 * @param[in] source is the fatal source.
    8983 *
    90  * @return The fatal source description or "?" in case the passed fatal source
    91  * is invalid.
     84 * @retval description The fatal source description.
     85 * @retval ? The passed fatal source is invalid.
    9286 */
    9387const char *rtems_fatal_source_description( rtems_fatal_source source );
     
    9690 * @brief Returns a description for an internal error code.
    9791 *
    98  * @param[in] error The error code.
     92 * @param[in] error is the error code.
    9993 *
    100  * @return The error code description or "?" in case the passed error code is
    101  * invalid.
     94 * @retval description The error code description.
     95 * @retval ? The passed error code is invalid.
    10296 */
    10397const char *rtems_internal_error_description( rtems_fatal_code error );
  • cpukit/sapi/include/rtems/init.h

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/init.h
     2 * @file
    33 *
    44 * @brief Constants and Structures Associated
    55 * with the Initialization Manager
    66 *
    7  *  This include file contains all the constants and structures associated
    8  *  with the Initialization Manager.  This manager is responsible for
    9  *  initializing RTEMS, creating and starting all configured initialization
    10  *  tasks, invoking the initialization routine for each user-supplied device
    11  *  driver, and initializing the optional multiprocessor layer.
     7 * This include file contains all the constants and structures associated
     8 * with the Initialization Manager.  This manager is responsible for
     9 * initializing RTEMS, creating and starting all configured initialization
     10 * tasks, invoking the initialization routine for each user-supplied device
     11 * driver, and initializing the optional multiprocessor layer.
    1212 *
    13  *  This manager provides directives to:
     13 * This manager provides directives to:
    1414 *
    15  *     + initialize the RTEMS executive
    16  *     + shutdown the RTEMS executive
     15 *    + initialize the RTEMS executive
     16 *    + shutdown the RTEMS executive
    1717 */
    1818
     
    3939#if defined(RTEMS_MULTIPROCESSING)
    4040/**
    41  *  The following defines the default Multiprocessing Configuration
    42  *  Table.  This table is used in a single processor system.
     41 * The following defines the default Multiprocessing Configuration
     42 * Table.  This table is used in a single processor system.
    4343 */
    4444extern const rtems_multiprocessing_table
     
    4747
    4848/**
    49  *  @brief rtems_initialize_data_structures
     49 * @brief RTEMS data structures initialization.
    5050 *
    51  *  This routine implements the portion of the RTEMS initializatin process
    52  *  that involves initializing data structures to a state that scheduling
    53  *  can occur in a consistent manner.
     51 * This routine implements the portion of the RTEMS initializatin process
     52 * that involves initializing data structures to a state that scheduling
     53 * can occur in a consistent manner.
    5454 */
    5555void rtems_initialize_data_structures(void);
    5656
    5757/**
    58  *  @brief rtems_initialize_before_drivers
     58 * @brief RTEMS initialization before the device drivers are initialized.
    5959 *
    60  *  This routine implements the portion of RTEMS initialization that
    61  *  is done immediately before device drivers are initialized.
     60 * This routine implements the portion of RTEMS initialization that
     61 * is done immediately before device drivers are initialized.
    6262 */
    6363void rtems_initialize_before_drivers(void);
    6464
    6565/**
    66  *  @brief rtems_initialize_device_drivers
     66 * @brief RTEMS initialization that initializes all device drivers.
    6767 *
    68  *  This routine implements the portion of RTEMS initialization that
    69  *  initializes all device drivers.
     68 * This routine implements the portion of RTEMS initialization that
     69 * initializes all device drivers.
    7070 */
    7171void rtems_initialize_device_drivers(void);
    7272
    7373/**
    74  *  @brief Starts the multitasking.
     74 * @brief Starts the multitasking.
    7575 *
    76  *  This directive initiates multitasking and performs a context switch to the
    77  *  first user application task and may enable interrupts as a side-effect of
    78  *  that context switch.  The context switch saves the executing context.  The
    79  *  application runs now.  The directive rtems_shutdown_executive() will return
    80  *  to the saved context.  The exit() function will use this directive.
     76 * This directive initiates multitasking and performs a context switch to the
     77 * first user application task and may enable interrupts as a side-effect of
     78 * that context switch.  The context switch saves the executing context.  The
     79 * application runs now.  The directive rtems_shutdown_executive() will return
     80 * to the saved context.  The exit() function will use this directive.
    8181 *
    82  *  After a return to the saved context a fatal system state is reached.  The
    83  *  fatal source is RTEMS_FATAL_SOURCE_EXIT with a fatal code set to the value
    84  *  passed to rtems_shutdown_executive().
     82 * After a return to the saved context a fatal system state is reached.  The
     83 * fatal source is RTEMS_FATAL_SOURCE_EXIT with a fatal code set to the value
     84 * passed to rtems_shutdown_executive().
    8585 *
    86  *  This directive does not return.
     86 * This directive does not return.
    8787 */
    8888void rtems_initialize_start_multitasking(void)
     
    9090
    9191/**
    92  *  @brief Shutdown the RTEMS environment
     92 * @brief Shutdown the RTEMS environment.
    9393 *
    94  *  This routine implements the rtems_shutdown_executive directive.  The
    95  *  invocation of this directive results in the RTEMS environment being
    96  *  shutdown and multitasking halted.  From the application's perspective,
    97  *  invocation of this directive results in the rtems_initialize_executive
    98  *  directive exitting to the startup code which invoked it.
     94 * This routine implements the rtems_shutdown_executive directive.  The
     95 * invocation of this directive results in the RTEMS environment being
     96 * shutdown and multitasking halted.  From the application's perspective,
     97 * invocation of this directive results in the rtems_initialize_executive
     98 * directive exitting to the startup code which invoked it.
    9999 */
    100100void rtems_shutdown_executive(
  • cpukit/sapi/include/rtems/io.h

    r4027e63 r27f071cd  
    102102
    103103/**
    104  *  @brief Unregister a Driver from the Device Driver Table.
    105  *
    106  *  @param[in] major is the device major number.
    107  *
    108  *  @retval RTEMS_SUCCESSFUL Device driver successfully unregistered.
    109  *  @retval RTEMS_UNSATISFIED Invalid major number.
    110  *  @retval RTEMS_CALLED_FROM_ISR Called from interrupt context.
     104 * @brief Unregister a driver from the device driver table.
     105 *
     106 * @param[in] major is the device major number.
     107 *
     108 * @retval RTEMS_SUCCESSFUL Device driver successfully unregistered.
     109 * @retval RTEMS_UNSATISFIED Invalid major number.
     110 * @retval RTEMS_CALLED_FROM_ISR Called from interrupt context.
    111111 */
    112112rtems_status_code rtems_io_unregister_driver(
     
    132132
    133133/**
    134  *  @brief IO Driver Initialization
    135  *
    136  *  This routine is the initialization directive of the IO manager.
    137  *
    138  *  @param[in] major is the device drive number
    139  *  @param[in] minor is the device number
    140  *  @param[in] argument is the pointer to the argument(s)
    141  *
    142  *  @return status code
     134 * @brief IO driver initialization.
     135 *
     136 * This routine is the initialization directive of the IO manager.
     137 *
     138 * @param[in] major is the device drive number
     139 * @param[in] minor is the device number
     140 * @param[in] argument is the pointer to the argument(s)
     141 *
     142 * @return status code
    143143 */
    144144rtems_status_code rtems_io_initialize(
     
    149149
    150150/**
    151  *  @brief Opening for The IO Manager
    152  * 
    153  *  Opens a device driver with the number @a major.
    154  *
    155  *  @param[in] major is the device driver number.
    156  *  @param[in] minor is the device number.
    157  *  @param[in] argument is the pointer to the argument(s).
    158  *
    159  *  @return Status code.
     151 * @brief Opening for the IO manager.
     152 * 
     153 * Opens a device driver with the number @a major.
     154 *
     155 * @param[in] major is the device driver number.
     156 * @param[in] minor is the device number.
     157 * @param[in] argument is the pointer to the argument(s).
     158 *
     159 * @return Status code.
    160160 */
    161161rtems_status_code rtems_io_open(
     
    166166
    167167/**
    168  *  @brief Closing for The IO Manager
    169  * 
    170  *  This routine is the close directive of the IO manager.
    171  *
    172  *  @param[in] major is the device driver number.
    173  *  @param[in] minor is the device number.
    174  *  @param[in] argument is the pointer to the argument(s).
    175  *
    176  *  @return Status code.
     168 * @brief Closing for the IO manager.
     169 * 
     170 * This routine is the close directive of the IO manager.
     171 *
     172 * @param[in] major is the device driver number.
     173 * @param[in] minor is the device number.
     174 * @param[in] argument is the pointer to the argument(s).
     175 *
     176 * @return Status code.
    177177 */
    178178rtems_status_code rtems_io_close(
     
    183183
    184184/**
    185  *  @brief Reading for The IO Manager
    186  * 
    187  *  This routine is the read directive of the IO manager.
    188  *
    189  *  @param[in] major is the device driver number.
    190  *  @param[in] minor is the device number.
    191  *  @param[in] argument is the pointer to the argument(s).
    192  *
    193  *  @return Status code.
     185 * @brief Reading for the IO manager.
     186 * 
     187 * This routine is the read directive of the IO manager.
     188 *
     189 * @param[in] major is the device driver number.
     190 * @param[in] minor is the device number.
     191 * @param[in] argument is the pointer to the argument(s).
     192 *
     193 * @return Status code.
    194194 */
    195195rtems_status_code rtems_io_read(
     
    200200
    201201/**
    202  *  @brief Writing for The IO Manager
    203  * 
    204  *  This routine is the write directive of the IO manager.
    205  *
    206  *  @param[in] major is the device driver number.
    207  *  @param[in] minor is the device number.
    208  *  @param[in] argument is the pointer to the argument(s).
    209  *
    210  *  @return Status code.
     202 * @brief Writing for the IO manager.
     203 * 
     204 * This routine is the write directive of the IO manager.
     205 *
     206 * @param[in] major is the device driver number.
     207 * @param[in] minor is the device number.
     208 * @param[in] argument is the pointer to the argument(s).
     209 *
     210 * @return Status code.
    211211 */
    212212rtems_status_code rtems_io_write(
     
    217217
    218218/**
    219  *  @brief Control for The IO Manager
    220  * 
    221  *  This routine is the control directive of the IO manager.
    222  *
    223  *  @param[in] major is the device driver number.
    224  *  @param[in] minor is the device number.
    225  *  @param[in] argument is the pointer to the argument(s).
    226  *
    227  *  @return Status code.
     219 * @brief Control for the IO manager.
     220 * 
     221 * This routine is the control directive of the IO manager.
     222 *
     223 * @param[in] major is the device driver number.
     224 * @param[in] minor is the device number.
     225 * @param[in] argument is the pointer to the argument(s).
     226 *
     227 * @return Status code.
    228228 */
    229229rtems_status_code rtems_io_control(
     
    257257
    258258/**
    259  *  @brief Initialization of Device Drivers
    260  *
    261  *  @note The IO manager has been extended to support runtime driver
    262  *  registration. The driver table is now allocated in the
    263  *  workspace.
     259 * @brief Initialization of device drivers.
     260 *
     261 * NOTE: The IO manager has been extended to support runtime driver
     262 * registration. The driver table is now allocated in the
     263 * workspace.
    264264 */
    265265void _IO_Manager_initialization( void );
    266266
    267267/**
    268  *  @brief Initialization of All Device Drivers
    269  *
    270  *  Initializes all device drivers.
     268 * @brief Initialization of all device drivers.
     269 *
     270 * Initializes all device drivers.
    271271 */
    272272void _IO_Initialize_all_drivers( void );
  • cpukit/sapi/include/rtems/mptables.h

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/mptables.h
     2 * @file
    33 *
    44 * @brief Executive's Pre-Initialized Tables used in a
  • cpukit/sapi/include/rtems/rbheap.h

    r4027e63 r27f071cd  
    33 *
    44 * @brief Red-Black Tree Heap API
    5  *
    6  * @ingroup RBHeap
    75 */
    86
     
    3533 * @defgroup RBHeap Red-Black Tree Heap
    3634 *
    37  * @brief Red-Black Tree Heap API.
     35 * @brief Red-Black Tree Heap API
    3836 *
    3937 * The red-black tree heap provides a memory allocator suitable to implement
     
    147145 * @brief Initializes the red-black tree heap @a control.
    148146 *
    149  * @param[in, out] control The red-black tree heap.
    150  * @param[in] area_begin The managed memory area begin.
    151  * @param[in] area_size The managed memory area size.
    152  * @param[in] alignment The minimum chunk alignment.
    153  * @param[in] extend_descriptors The handler to extend the available chunk
     147 * @param[in, out] control is the red-black tree heap.
     148 * @param[in] area_begin is the managed memory area begin.
     149 * @param[in] area_size is the managed memory area size.
     150 * @param[in] alignment is the minimum chunk alignment.
     151 * @param[in] extend_descriptors is the handler to extend the available chunk
    154152 * descriptors.
    155  * @param[in] handler_arg The handler argument.
     153 * @param[in] handler_arg is the handler argument.
    156154 *
    157155 * @retval RTEMS_SUCCESSFUL Successful operation.
     
    176174 * rtems_rbheap_initialize().
    177175 *
    178  * @param[in, out] control The red-black tree heap.
    179  * @param[in] size The requested chunk size in bytes.
     176 * @param[in, out] control is the red-black tree heap.
     177 * @param[in] size is the requested chunk size in bytes.
    180178 *
    181179 * @retval NULL Not enough free space in the heap.
     
    185183
    186184/**
    187  * @brief Frees a chunk of memory @a ptr allocated from the red-black tree heap
    188  * @a control.
    189  *
    190  * @param[in, out] control The red-black tree heap.
    191  * @param[in] ptr The pointer to the chunk of memory.
     185 * @brief Frees a chunk of memory @a ptr allocated from the red-black
     186 * tree heap @a control.
     187 *
     188 * @param[in, out] control is the red-black tree heap.
     189 * @param[in] ptr is a pointer to the chunk of memory.
    192190 *
    193191 * @retval RTEMS_SUCCESSFUL Successful operation.
    194192 * @retval RTEMS_INVALID_ID The chunk of memory is not a valid chunk in the
    195193 * red-black tree heap.
    196  * @retval RTEMS_INCORRECT_STATE The chunk of memory is not in the right state.
     194 * @retval RTEMS_INCORRECT_STATE The chunk of memory is not in the
     195 * right state.
    197196 */
    198197rtems_status_code rtems_rbheap_free(rtems_rbheap_control *control, void *ptr);
  • cpukit/sapi/include/rtems/rbtree.h

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/rbtree.h
    3  *
    4  *  This include file contains all the constants and structures associated
    5  *  with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
    6  *  is part of the Super Core. This is the published interface to that
    7  *  code.
    8  *
     2 * @file
     3 *
     4 * @brief Constants and Structures Associated with the RBTree API in RTEMS
     5 *
     6 * This include file contains all the constants and structures associated
     7 * with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
     8 * is part of the Super Core. This is the published interface to that
     9 * code.
    910 */
    1011
     
    5152
    5253/**
    53  *  @brief RBTree initializer for an empty rbtree with designator @a name.
     54 * @brief RBTree initializer for an empty rbtree with designator @a name.
    5455 */
    5556#define RTEMS_RBTREE_INITIALIZER_EMPTY(name) \
     
    5758
    5859/**
    59  *  @brief RBTree definition for an empty rbtree with designator @a name.
     60 * @brief RBTree definition for an empty rbtree with designator @a name.
    6061 */
    6162#define RTEMS_RBTREE_DEFINE_EMPTY(name) \
  • cpukit/sapi/include/rtems/sptables.h

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/sptables.h
     2 * @file
     3 *
     4 * @brief Pre-Initialized Tables Used when in a Single Processor Configuration
    35 *
    4  *  This include file contains the executive's pre-initialized tables
    5  *  used when in a single processor configuration.
     6 * This include file contains the executive's pre-initialized tables
     7 * used when in a single processor configuration.
    68 */
    79
  • cpukit/sapi/include/rtems/timespec.h

    r4027e63 r27f071cd  
    2727 *
    2828 *  @brief Timespec API
     29 *
     30 * @{
    2931 *
    3032 */
    31 /**@{*/
    3233
    3334#include <stdbool.h> /* bool */
     
    4142#include <rtems/timespec.inl>
    4243
     44/** @} */
     45
    4346#ifdef __cplusplus
    4447}
    4548#endif
    4649
    47 /**@}*/
    48 
    4950#endif
    5051/* end of include file */
  • cpukit/sapi/inline/rtems/cbs.inl

    r4027e63 r27f071cd  
    11/**
    2  * @file cbs.inl
    3  *
    4  *  This include file contains all the constants and structures associated
    5  *  with the CBS library.
     2 * @file
     3 *
     4 * @brief Constants and Structures Associated with the CBS Library
     5 *
     6 * This include file contains all the constants and structures associated
     7 * with the CBS library.
    68 *
    79 */
     
    2325
    2426/**
    25  *  @brief rtems cbs init
    26  *
    27  *  Initializes the CBS library.
    28  *
    29  *  @return status code.
     27 * @brief Initialize the CBS library.
     28 *
     29 * Initializes the CBS library.
     30 *
     31 * @return status code.
    3032 */
    3133RTEMS_INLINE_ROUTINE int rtems_cbs_initialize ( void )
     
    3537
    3638/**
    37  *  @brief rtems cbs cleanup
    38  *
    39  *  Cleanup resources associated to the CBS Library.
    40  *
    41  *  @return status code.
     39 * @brief Cleanup resources associated to the CBS Library
     40 *
     41 * Cleanup resources associated to the CBS Library.
     42 *
     43 * @return status code.
    4244 */
    4345RTEMS_INLINE_ROUTINE int rtems_cbs_cleanup ( void )
     
    4749
    4850/**
    49  *  @brief rtems cbs create server
    50  *
    51  *  Create a new server with specified parameters.
    52  *
    53  *  @return status code.
     51 * @brief Create a new server with specified parameters.
     52 *
     53 * Create a new server with specified parameters.
     54 *
     55 * @return status code.
    5456 */
    5557RTEMS_INLINE_ROUTINE int rtems_cbs_create_server (
     
    6769
    6870/**
    69  *  @brief rtems cbs attach thread
    70  *
    71  *  Attach a task to an already existing server.
    72  *
    73  *  @return status code.
     71 * @brief Attach a task to an already existing server.
     72 *
     73 * Attach a task to an already existing server.
     74 *
     75 * @return status code.
    7476 */
    7577RTEMS_INLINE_ROUTINE int rtems_cbs_attach_thread (
     
    8284
    8385/**
    84  *  @brief rtems cbs detach thread
    85  *
    86  *  Detach from the CBS Server.
    87  *
    88  *  @return status code.
     86 * @brief Detach from the CBS server.
     87 *
     88 * Detach from the CBS Server.
     89 *
     90 * @return status code.
    8991 */
    9092RTEMS_INLINE_ROUTINE int rtems_cbs_detach_thread (
     
    9799
    98100/**
    99  *  @brief rtems cbs destroy server
    100  *
    101  *  Detach all tasks from a server and destroy it.
    102  *
    103  *  @return status code.
     101 * @brief Detach all tasks from a server and destroy it.
     102 *
     103 * Detach all tasks from a server and destroy it.
     104 *
     105 * @return status code.
    104106 */
    105107RTEMS_INLINE_ROUTINE int rtems_cbs_destroy_server (
     
    111113
    112114/**
    113  *  @brief rtems cbs get server id
    114  *
    115  *  Get a thread server id, or RTEMS_CBS_E_NOT_FOUND if it is not
    116  *  attached to any server.
    117  *
    118  *  @return status code.
     115 * @brief Get CBS server id.
     116 *
     117 * Get a thread server id, or RTEMS_CBS_E_NOT_FOUND if it is not
     118 * attached to any server.
     119 *
     120 * @return status code.
    119121 */
    120122RTEMS_INLINE_ROUTINE int rtems_cbs_get_server_id (
     
    127129
    128130/**
    129  *  @brief rtems cbs get parameters
    130  *
    131  *  Retrieve CBS scheduling parameters.
    132  *
    133  *  @return status code.
     131 * @brief Get CBS parameters.
     132 *
     133 * Retrieve CBS scheduling parameters.
     134 *
     135 * @return status code.
    134136 */
    135137RTEMS_INLINE_ROUTINE int rtems_cbs_get_parameters (
     
    142144
    143145/**
    144  *  @brief rtems cbs set parameters
    145  *
    146  *  Change CBS scheduling parameters.
    147  *
    148  *  @return status code.
     146 * @brief Set CBS parameters.
     147 *
     148 * Change CBS scheduling parameters.
     149 *
     150 * @return status code.
    149151 */
    150152RTEMS_INLINE_ROUTINE int rtems_cbs_set_parameters (
     
    157159
    158160/**
    159  *  @brief rtems cbs get execution time
    160  *
    161  *  Retrieve time info relative to the current server.
    162  *
    163  *  @return status code.
     161 * @brief Get the CBS get execution time.
     162 *
     163 * Retrieve time info relative to the current server.
     164 *
     165 * @return status code.
    164166 */
    165167RTEMS_INLINE_ROUTINE int rtems_cbs_get_execution_time (
     
    173175
    174176/**
    175  *  @brief rtems cbs get remaining budget
    176  *
    177  *  Retrieve remaining budget for the current server instance.
    178  *
    179  *  @return status code.
     177 * @brief Get the remaining CBS budget.
     178 *
     179 * Retrieve remaining budget for the current server instance.
     180 *
     181 * @return status code.
    180182 */
    181183RTEMS_INLINE_ROUTINE int rtems_cbs_get_remaining_budget (
     
    188190
    189191/**
    190  *  @brief rtems cbs get approved budget
    191  *
    192  *  Retrieve the budget that has been approved for the subsequent
    193  *  server instances.
    194  *
    195  *  @return status code.
     192 * @brief Get the approved CBS budget.
     193 *
     194 * Retrieve the budget that has been approved for the subsequent
     195 * server instances.
     196 *
     197 * @return status code.
    196198 */
    197199RTEMS_INLINE_ROUTINE int rtems_cbs_get_approved_budget (
  • cpukit/sapi/inline/rtems/chain.inl

    r4027e63 r27f071cd  
    22 * @file
    33 *
    4  * @ingroup ClassicChains
    5  *
    6  * @brief Chain API.
     4 * @brief Chain API
    75 */
    86 
     
    3432
    3533/**
    36  *  @brief Initialize a Chain Header
    37  *
    38  *  This routine initializes @a the_chain structure to manage the
    39  *  contiguous array of @a number_nodes nodes which starts at
    40  *  @a starting_address.  Each node is of @a node_size bytes.
    41  *
    42  *  @param[in] the_chain specifies the chain to initialize
    43  *  @param[in] starting_address is the starting address of the array
    44  *         of elements
    45  *  @param[in] number_nodes is the number of nodes that will be in the chain
    46  *  @param[in] node_size is the size of each node
     34 * @brief Initialize a chain Header.
     35 *
     36 * This routine initializes @a the_chain structure to manage the
     37 * contiguous array of @a number_nodes nodes which starts at
     38 * @a starting_address.  Each node is of @a node_size bytes.
     39 *
     40 * @param[in] the_chain specifies the chain to initialize
     41 * @param[in] starting_address is the starting address of the array
     42 *        of elements
     43 * @param[in] number_nodes is the number of nodes that will be in the chain
     44 * @param[in] node_size is the size of each node
    4745 */
    4846RTEMS_INLINE_ROUTINE void rtems_chain_initialize(
     
    5755
    5856/**
    59  *  @brief Initialize this Chain as Empty
    60  *
    61  *  This routine initializes the specified chain to contain zero nodes.
    62  *
    63  *  @param[in] the_chain is the chain to be initialized.
     57 * @brief Initialize this chain as empty.
     58 *
     59 * This routine initializes the specified chain to contain zero nodes.
     60 *
     61 * @param[in] the_chain is the chain to be initialized.
    6462 */
    6563RTEMS_INLINE_ROUTINE void rtems_chain_initialize_empty(
     
    7169
    7270/**
    73  *  @brief Set off chain
    74  *
    75  *  This function sets the next and previous fields of the @a node to NULL
    76  *  indicating the @a node is not part of a chain.
    77  *
    78  *  @param[in] node the node set to off chain.
     71 * @brief Set off chain.
     72 *
     73 * This function sets the next and previous fields of the @a node to NULL
     74 * indicating the @a node is not part of a chain.
     75 *
     76 * @param[in] node the node set to off chain.
    7977 */
    8078RTEMS_INLINE_ROUTINE void rtems_chain_set_off_chain(
     
    8684
    8785/**
    88  *  @brief Is the Node off Chain
    89  *
    90  *  This function returns true if the @a node is not on a chain. A @a node is
    91  *  off chain if the next and previous fields are set to NULL.
    92  *
    93  *  @param[in] node is the node off chain.
    94  *
    95  *  @return This function returns true if the @a node is off chain.
     86 * @brief Is the node off chain.
     87 *
     88 * This function returns true if the @a node is not on a chain. A @a node is
     89 * off chain if the next and previous fields are set to NULL.
     90 *
     91 * @param[in] node is the node off chain.
     92 *
     93 * @retval true The node is off chain.
     94 * @retval false The node is not off chain.
    9695 */
    9796RTEMS_INLINE_ROUTINE bool rtems_chain_is_node_off_chain(
     
    103102
    104103/**
    105  *  @brief Is the Chain Node Pointer NULL
    106  *
    107  *  This function returns true if the_node is NULL and false otherwise.
    108  *
    109  *  @param[in] the_node is the node pointer to check.
    110  *
    111  *  @return This method returns true if the_node is NULL and false otherwise.
     104 * @brief Is the chain node pointer NULL.
     105 *
     106 * This function returns true if the_node is NULL and false otherwise.
     107 *
     108 * @param[in] the_node is the node pointer to check.
     109 *
     110 * @retval true The chain node pointer is NULL.
     111 * @retval false The chain node pointer is not NULL.
    112112 */
    113113RTEMS_INLINE_ROUTINE bool rtems_chain_is_null_node(
     
    119119
    120120/**
    121  *  @brief Return pointer to Chain Head
    122  *
    123  *  This function returns a pointer to the first node on the chain.
    124  *
    125  *  @param[in] the_chain is the chain to be operated upon.
    126  *
    127  *  @return This method returns the permanent node of the chain.
     121 * @brief Return pointer to Chain Head
     122 *
     123 * This function returns a pointer to the first node on the chain.
     124 *
     125 * @param[in] the_chain is the chain to be operated upon.
     126 *
     127 * @return This method returns the permanent node of the chain.
    128128 */
    129129RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_head(
     
    134134}
    135135
    136 /** @brief Return pointer to immutable Chain Head
    137  *
    138  *  This function returns a pointer to the head node on the chain.
    139  *
    140  *  @param[in] the_chain is the chain to be operated upon.
    141  *
    142  *  @return This method returns the permanent head node of the chain.
     136/**
     137 * @brief Return pointer to immutable Chain Head
     138 *
     139 * This function returns a pointer to the head node on the chain.
     140 *
     141 * @param[in] the_chain is the chain to be operated upon.
     142 *
     143 * @return This method returns the permanent head node of the chain.
    143144 */
    144145RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_head(
     
    150151
    151152/**
    152  *  @brief Return pointer to Chain Tail
    153  *
    154  *  This function returns a pointer to the tail node on the chain.
    155  *
    156  *  @param[in] the_chain is the chain to be operated upon.
    157  *
    158  *  @return This method returns the permanent tail node of the chain.
     153 * @brief Return pointer to Chain Tail
     154 *
     155 * This function returns a pointer to the tail node on the chain.
     156 *
     157 * @param[in] the_chain is the chain to be operated upon.
     158 *
     159 * @return This method returns the permanent tail node of the chain.
    159160 */
    160161RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_tail(
     
    165166}
    166167
    167 /** @brief Return pointer to immutable Chain Tail
    168  *
    169  *  This function returns a pointer to the tail node on the chain.
    170  *
    171  *  @param[in] the_chain is the chain to be operated upon.
    172  *
    173  *  @return This method returns the permanent tail node of the chain.
     168/**
     169 * @brief Return pointer to immutable Chain Tail
     170 *
     171 * This function returns a pointer to the tail node on the chain.
     172 *
     173 * @param[in] the_chain is the chain to be operated upon.
     174 *
     175 * @return This method returns the permanent tail node of the chain.
    174176 */
    175177RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_tail(
     
    181183
    182184/**
    183  *  @brief Return pointer to Chain's First node after the permanent head.
    184  *
    185  *  This function returns a pointer to the first node on the chain after the
    186  *  head.
    187  *
    188  *  @param[in] the_chain is the chain to be operated upon.
    189  *
    190  *  @return This method returns the first node of the chain.
     185 * @brief Return pointer to Chain's First node after the permanent head.
     186 *
     187 * This function returns a pointer to the first node on the chain after the
     188 * head.
     189 *
     190 * @param[in] the_chain is the chain to be operated upon.
     191 *
     192 * @return This method returns the first node of the chain.
    191193 */
    192194RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_first(
     
    197199}
    198200
    199 /** @brief Return pointer to immutable Chain's First node
    200  *
    201  *  This function returns a pointer to the first node on the chain after the
    202  *  head.
    203  *
    204  *  @param[in] the_chain is the chain to be operated upon.
    205  *
    206  *  @return This method returns the first node of the chain.
     201/**
     202 * @brief Return pointer to immutable Chain's First node
     203 *
     204 * This function returns a pointer to the first node on the chain after the
     205 * head.
     206 *
     207 * @param[in] the_chain is the chain to be operated upon.
     208 *
     209 * @return This method returns the first node of the chain.
    207210 */
    208211RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_first(
     
    214217
    215218/**
    216  *  @brief Return pointer to Chain's Last node before the permanent tail.
    217  *
    218  *  This function returns a pointer to the last node on the chain just before
    219  *  the tail.
    220  *
    221  *  @param[in] the_chain is the chain to be operated upon.
    222  *
    223  *  @return This method returns the last node of the chain.
     219 * @brief Return pointer to Chain's Last node before the permanent tail.
     220 *
     221 * This function returns a pointer to the last node on the chain just before
     222 * the tail.
     223 *
     224 * @param[in] the_chain is the chain to be operated upon.
     225 *
     226 * @return This method returns the last node of the chain.
    224227 */
    225228RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_last(
     
    230233}
    231234
    232 /** @brief Return pointer to immutable Chain's Last node
    233  *
    234  *  This function returns a pointer to the last node on the chain just before
    235  *  the tail.
    236  *
    237  *  @param[in] the_chain is the chain to be operated upon.
    238  *
    239  *  @return This method returns the last node of the chain.
     235/**
     236 * @brief Return pointer to immutable Chain's Last node
     237 *
     238 * This function returns a pointer to the last node on the chain just before
     239 * the tail.
     240 *
     241 * @param[in] the_chain is the chain to be operated upon.
     242 *
     243 * @return This method returns the last node of the chain.
    240244 */
    241245RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_last(
     
    247251
    248252/**
    249  *  @brief Return pointer the next node from this node
    250  *
    251  *  This function returns a pointer to the next node after this node.
    252  *
    253  *  @param[in] the_node is the node to be operated upon.
    254  *
    255  *  @return This method returns the next node on the chain.
     253 * @brief Return pointer the next node from this node
     254 *
     255 * This function returns a pointer to the next node after this node.
     256 *
     257 * @param[in] the_node is the node to be operated upon.
     258 *
     259 * @return This method returns the next node on the chain.
    256260 */
    257261RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_next(
     
    262266}
    263267
    264 /** @brief Return pointer the immutable next node from this node
    265  *
    266  *  This function returns a pointer to the next node after this node.
    267  *
    268  *  @param[in] the_node is the node to be operated upon.
    269  *
    270  *  @return This method returns the next node on the chain.
     268/**
     269 * @brief Return pointer the immutable next node from this node
     270 *
     271 * This function returns a pointer to the next node after this node.
     272 *
     273 * @param[in] the_node is the node to be operated upon.
     274 *
     275 * @return This method returns the next node on the chain.
    271276 */
    272277RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_next(
     
    278283
    279284/**
    280  *  @brief Return pointer the previous node from this node
    281  *
    282  *  This function returns a pointer to the previous node on this chain.
    283  *
    284  *  @param[in] the_node is the node to be operated upon.
    285  *
    286  *  @return This method returns the previous node on the chain.
     285 * @brief Return pointer the previous node from this node
     286 *
     287 * This function returns a pointer to the previous node on this chain.
     288 *
     289 * @param[in] the_node is the node to be operated upon.
     290 *
     291 * @return This method returns the previous node on the chain.
    287292 */
    288293RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_previous(
     
    293298}
    294299
    295 /** @brief Return pointer the immutable previous node from this node
    296  *
    297  *  This function returns a pointer to the previous node on this chain.
    298  *
    299  *  @param[in] the_node is the node to be operated upon.
    300  *
    301  *  @return This method returns the previous node on the chain.
     300/**
     301 * @brief Return pointer the immutable previous node from this node.
     302 *
     303 * This function returns a pointer to the previous node on this chain.
     304 *
     305 * @param[in] the_node is the node to be operated upon.
     306 *
     307 * @return This method returns the previous node on the chain.
    302308 */
    303309RTEMS_INLINE_ROUTINE const rtems_chain_node *rtems_chain_immutable_previous(
     
    309315
    310316/**
    311  *  @brief Are Two Nodes Equal
    312  *
    313  *  This function returns true if @a left and @a right are equal,
    314  *  and false otherwise.
    315  *
    316  *  @param[in] left is the node on the left hand side of the comparison.
    317  *  @param[in] right is the node on the left hand side of the comparison.
    318  *
    319  *  @return This function returns true if @a left and @a right are equal,
    320  *          and false otherwise.
     317 * @brief Are Two nodes equal.
     318 *
     319 * This function returns true if @a left and @a right are equal,
     320 * and false otherwise.
     321 *
     322 * @param[in] left is the node on the left hand side of the comparison.
     323 * @param[in] right is the node on the left hand side of the comparison.
     324 *
     325 * @retval true @a left is equal to @a right.
     326 * @retval false @a left is not equal to @a right
    321327 */
    322328RTEMS_INLINE_ROUTINE bool rtems_chain_are_nodes_equal(
     
    329335
    330336/**
    331  *  @brief Is the Chain Empty
    332  *
    333  *  This function returns true if there a no nodes on @a the_chain and
    334  *  false otherwise.
    335  *
    336  *  @param[in] the_chain is the chain to be operated upon.
    337  *
    338  *  @return This function returns true if there a no nodes on @a the_chain and
    339  *  false otherwise.
     337 * @brief Is the chain empty
     338 *
     339 * This function returns true if there a no nodes on @a the_chain and
     340 * false otherwise.
     341 *
     342 * @param[in] the_chain is the chain to be operated upon.
     343 *
     344 * @retval true The chain is empty.
     345 * @retval false The chain is not empty.
    340346 */
    341347RTEMS_INLINE_ROUTINE bool rtems_chain_is_empty(
     
    347353
    348354/**
    349  *  @brief Is this the First Node on the Chain
    350  *
    351  *  This function returns true if the_node is the first node on a chain and
    352  *  false otherwise.
    353  *
    354  *  @param[in] the_node is the node the caller wants to know if it is
    355  *             the first node on a chain.
    356  *
    357  *  @return This function returns true if @a the_node is the first node on
    358  *          a chain and false otherwise.
     355 * @brief Is this the first node on the chain.
     356 *
     357 * This function returns true if the_node is the first node on a chain and
     358 * false otherwise.
     359 *
     360 * @param[in] the_node is the node the caller wants to know if it is
     361 *            the first node on a chain.
     362 *
     363 * @retval true @a the_node is the first node on a chain.
     364 * @retval false @a the_node is not the first node on a chain.
    359365 */
    360366RTEMS_INLINE_ROUTINE bool rtems_chain_is_first(
     
    366372
    367373/**
    368  *  @brief Is this the Last Node on the Chain
    369  *
    370  *  This function returns true if @a the_node is the last node on a chain and
    371  *  false otherwise.
    372  *
    373  *  @param[in] the_node is the node to check as the last node.
    374  *
    375  *  @return This function returns true if @a the_node is the last node on
    376  *          a chain and false otherwise.
     374 * @brief Is this the last node on the chain.
     375 *
     376 * This function returns true if @a the_node is the last node on a chain and
     377 * false otherwise.
     378 *
     379 * @param[in] the_node is the node to check as the last node.
     380 *
     381 * @retval true @a the_node is the last node on a chain.
     382 * @retval false @a the_node is not the last node on a chain
    377383 */
    378384RTEMS_INLINE_ROUTINE bool rtems_chain_is_last(
     
    384390
    385391/**
    386  *  @brief Does this Chain have only One Node
    387  *
    388  *  This function returns true if there is only one node on @a the_chain and
    389  *  false otherwise.
    390  *
    391  *  @param[in] the_chain is the chain to be operated upon.
    392  *
    393  *  @return This function returns true if there is only one node on
    394  *          @a the_chain and false otherwise.
     392 * @brief Does this chain have only one node.
     393 *
     394 * This function returns true if there is only one node on @a the_chain and
     395 * false otherwise.
     396 *
     397 * @param[in] the_chain is the chain to be operated upon.
     398 *
     399 * @retval true The chain has only one node.
     400 * @retval false The chain has more than one nodes.
    395401 */
    396402RTEMS_INLINE_ROUTINE bool rtems_chain_has_only_one_node(
     
    402408
    403409/**
    404  *  @brief Is this Node the Chain Head
    405  *
    406  *  This function returns true if @a the_node is the head of the_chain and
    407  *  false otherwise.
    408  *
    409  *  @param[in] the_chain is the chain to be operated upon.
    410  *  @param[in] the_node is the node to check for being the Chain Head.
    411  *
    412  *  @return This function returns true if @a the_node is the head of
    413  *          @a the_chain and false otherwise.
     410 * @brief Is this node the chain head.
     411 *
     412 * This function returns true if @a the_node is the head of the_chain and
     413 * false otherwise.
     414 *
     415 * @param[in] the_chain is the chain to be operated upon.
     416 * @param[in] the_node is the node to check for being the Chain Head.
     417 *
     418 * @retval true @a the_node is the head of @a the_chain.
     419 * @retval false @a the_node is not the head of @a the_chain.
    414420 */
    415421RTEMS_INLINE_ROUTINE bool rtems_chain_is_head(
     
    422428
    423429/**
    424  *  @brief Is this Node the Chail Tail
    425  *
    426  *  This function returns true if the_node is the tail of the_chain and
    427  *  false otherwise.
    428  *
    429  *  @param[in] the_chain is the chain to be operated upon.
    430  *  @param[in] the_node is the node to check for being the Chain Tail.
     430 * @brief Is this node the chain tail.
     431 *
     432 * This function returns true if the_node is the tail of the_chain and
     433 * false otherwise.
     434 *
     435 * @param[in] the_chain is the chain to be operated upon.
     436 * @param[in] the_node is the node to check for being the Chain Tail.
     437 *
     438 * @retval true @a the_node is the tail of @a the_chain.
     439 * @retval false @a the_node is not the tail of @a the_chain.
    431440 */
    432441RTEMS_INLINE_ROUTINE bool rtems_chain_is_tail(
     
    439448
    440449/**
    441  *  @brief Extract the specified node from a chain
    442  *
    443  *  This routine extracts @a the_node from the chain on which it resides.
    444  *  It disables interrupts to ensure the atomicity of the
    445  *  extract operation.
    446  *
    447  *  @arg the_node specifies the node to extract
     450 * @brief Extract the specified node from a chain.
     451 *
     452 * This routine extracts @a the_node from the chain on which it resides.
     453 * It disables interrupts to ensure the atomicity of the
     454 * extract operation.
     455 *
     456 * @arg the_node specifies the node to extract
    448457 */
    449458RTEMS_INLINE_ROUTINE void rtems_chain_extract(
     
    455464
    456465/**
    457  *  @brief Extract the specified node from a chain (unprotected).
    458  *
    459  *  This routine extracts @a the_node from the chain on which it resides.
    460  *
    461  *  @note It does NOT disable interrupts to ensure the atomicity of the
    462  *  append operation.
     466 * @brief Extract the specified node from a chain (unprotected).
     467 *
     468 * This routine extracts @a the_node from the chain on which it resides.
     469 *
     470 * NOTE: It does NOT disable interrupts to ensure the atomicity of the
     471 * append operation.
    463472 */
    464473RTEMS_INLINE_ROUTINE void rtems_chain_extract_unprotected(
     
    470479
    471480/**
    472  *  @brief Obtain the first node on a chain
    473  *
    474  *  This function removes the first node from @a the_chain and returns
    475  *  a pointer to that node.  If @a the_chain is empty, then NULL is returned.
    476  *
    477  *  @return This method returns a pointer a node.  If a node was removed,
    478  *          then a pointer to that node is returned.  If @a the_chain was
    479  *          empty, then NULL is returned.
    480  *
    481  *  @note It disables interrupts to ensure the atomicity of the get operation.
     481 * @brief Obtain the first node on a chain.
     482 *
     483 * This function removes the first node from @a the_chain and returns
     484 * a pointer to that node.  If @a the_chain is empty, then NULL is returned.
     485 *
     486 * @return This method returns a pointer a node.  If a node was removed,
     487 *         then a pointer to that node is returned.  If @a the_chain was
     488 *         empty, then NULL is returned.
     489 *
     490 *  NOTE: It disables interrupts to ensure the atomicity of the get operation.
    482491 */
    483492RTEMS_INLINE_ROUTINE rtems_chain_node *rtems_chain_get(
     
    499508
    500509/**
    501  *  @brief Insert a node on a chain
    502  *
    503  *  This routine inserts @a the_node on a chain immediately following
    504  *  @a after_node. 
    505  *
    506  *  @note It disables interrupts to ensure the atomicity
    507  *  of the extract operation.
     510 * @brief Insert a node on a chain
     511 *
     512 * This routine inserts @a the_node on a chain immediately following
     513 * @a after_node. 
     514 *
     515 * NOTE: It disables interrupts to ensure the atomicity
     516 * of the extract operation.
    508517 */
    509518RTEMS_INLINE_ROUTINE void rtems_chain_insert(
     
    527536
    528537/**
    529  *  @brief Append a node on the end of a chain
    530  *
    531  *  This routine appends @a the_node onto the end of @a the_chain.
    532  *
    533  *  @note It disables interrupts to ensure the atomicity of the
    534  *  append operation.
     538 * @brief Append a node on the end of a chain.
     539 *
     540 * This routine appends @a the_node onto the end of @a the_chain.
     541 *
     542 * NOTE: It disables interrupts to ensure the atomicity of the
     543 * append operation.
    535544 */
    536545RTEMS_INLINE_ROUTINE void rtems_chain_append(
     
    543552
    544553/**
    545  *  @brief Append a node on the end of a chain (unprotected)
    546  *
    547  *  This routine appends @a the_node onto the end of @a the_chain.
    548  *
    549  *  @note It does NOT disable interrupts to ensure the atomicity of the
    550  *  append operation.
     554 * @brief Append a node on the end of a chain (unprotected).
     555 *
     556 * This routine appends @a the_node onto the end of @a the_chain.
     557 *
     558 * NOTE: It does NOT disable interrupts to ensure the atomicity of the
     559 * append operation.
    551560 */
    552561RTEMS_INLINE_ROUTINE void rtems_chain_append_unprotected(
     
    558567}
    559568
    560 /** @brief Prepend a Node
    561  *
    562  *  This routine prepends the_node onto the front of the_chain.
    563  *
    564  *  @param[in] the_chain is the chain to be operated upon.
    565  *  @param[in] the_node is the node to be prepended.
    566  *
    567  *  @note It disables interrupts to ensure the atomicity of the
    568  *        prepend operation.
     569/**
     570 * @brief Prepend a node.
     571 *
     572 * This routine prepends the_node onto the front of the_chain.
     573 *
     574 * @param[in] the_chain is the chain to be operated upon.
     575 * @param[in] the_node is the node to be prepended.
     576 *
     577 * NOTE: It disables interrupts to ensure the atomicity of the
     578 *       prepend operation.
    569579 */
    570580RTEMS_INLINE_ROUTINE void rtems_chain_prepend(
     
    576586}
    577587
    578 /** @brief Prepend a Node (unprotected)
    579  *
    580  *  This routine prepends the_node onto the front of the_chain.
    581  *
    582  *  @param[in] the_chain is the chain to be operated upon.
    583  *  @param[in] the_node is the node to be prepended.
    584  *
    585  *  @note It does NOT disable interrupts to ensure the atomicity of the
    586  *        prepend operation.
     588/**
     589 * @brief Prepend a node (unprotected).
     590 *
     591 * This routine prepends the_node onto the front of the_chain.
     592 *
     593 * @param[in] the_chain is the chain to be operated upon.
     594 * @param[in] the_node is the node to be prepended.
     595 *
     596 * NOTE: It does NOT disable interrupts to ensure the atomicity of the
     597 *       prepend operation.
    587598 */
    588599RTEMS_INLINE_ROUTINE void rtems_chain_prepend_unprotected(
  • cpukit/sapi/inline/rtems/extension.inl

    r4027e63 r27f071cd  
    44 * @ingroup ClassicUserExtensions
    55 *
    6  * @brief User Extensions API.
     6 * @brief User Extensions API
    77 */
    88
  • cpukit/sapi/inline/rtems/rbtree.inl

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/rbtree.inl
    3  *
    4  *  This include file contains all the constants and structures associated
    5  *  with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
    6  *  is part of the Super Core. This is the published interface to that
    7  *  code.
     2 * @file
     3 *
     4 * @brief Constants and Structures Associated with the RBTree API in RTEMS
     5 *
     6 * This include file contains all the constants and structures associated
     7 * with the RBTree API in RTEMS. The rbtree is a Red Black Tree that
     8 * is part of the Super Core. This is the published interface to that
     9 * code.
    810 */
    911 
    1012/*
    11  *  Copyright (c) 2010-2012 Gedare Bloom.
    12  *
    13  *  The license and distribution terms for this file may be
    14  *  found in the file LICENSE in this distribution or at
    15  *  http://www.rtems.com/license/LICENSE.
     13 * Copyright (c) 2010-2012 Gedare Bloom.
     14 *
     15 * The license and distribution terms for this file may be
     16 * found in the file LICENSE in this distribution or at
     17 * http://www.rtems.com/license/LICENSE.
    1618 */
    1719
     
    2628
    2729/**
    28  *  @brief Initialize a RBTree Header
    29  *
    30  *  This routine initializes @a the_rbtree structure to manage the
    31  *  contiguous array of @a number_nodes nodes which starts at
    32  *  @a starting_address.  Each node is of @a node_size bytes.
     30 * @brief Initialize a RBTree header.
     31 *
     32 * This routine initializes @a the_rbtree structure to manage the
     33 * contiguous array of @a number_nodes nodes which starts at
     34 * @a starting_address.  Each node is of @a node_size bytes.
    3335 */
    3436RTEMS_INLINE_ROUTINE void rtems_rbtree_initialize(
     
    4648
    4749/**
    48  *  @brief Initialize this RBTree as Empty
    49  *
    50  *  This routine initializes @a the_rbtree to contain zero nodes.
     50 * @brief Initialize this RBTree as Empty
     51 *
     52 * This routine initializes @a the_rbtree to contain zero nodes.
    5153 */
    5254RTEMS_INLINE_ROUTINE void rtems_rbtree_initialize_empty(
     
    6062
    6163/**
    62  *  @brief Set off rbtree
    63  *
    64  *  This function sets the next and previous fields of the @a node to NULL
    65  *  indicating the @a node is not part of any rbtree.
     64 * @brief Set off RBtree.
     65 *
     66 * This function sets the next and previous fields of the @a node to NULL
     67 * indicating the @a node is not part of any rbtree.
    6668 */
    6769RTEMS_INLINE_ROUTINE void rtems_rbtree_set_off_rbtree(
     
    7375
    7476/**
    75  *  @brief Is the Node off RBTree
    76  *
    77  *  This function returns true if the @a node is not on a rbtree. A @a node is
    78  *  off rbtree if the next and previous fields are set to NULL.
     77 * @brief Is the Node off RBTree.
     78 *
     79 * This function returns true if the @a node is not on a rbtree. A @a node is
     80 * off rbtree if the next and previous fields are set to NULL.
    7981 */
    8082RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_node_off_rbtree(
     
    8688
    8789/**
    88  *  @brief Is the RBTree Node Pointer NULL
    89  *
    90  *  This function returns true if @a the_node is NULL and false otherwise.
     90 * @brief Is the RBTree Node Pointer NULL.
     91 *
     92 * This function returns true if @a the_node is NULL and false otherwise.
    9193 */
    9294RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_null_node(
     
    98100
    99101/**
    100  *  @brief Return pointer to RBTree Root
    101  *
    102  *  This function returns a pointer to the root node of @a the_rbtree.
     102 * @brief Return pointer to RBTree root.
     103 *
     104 * This function returns a pointer to the root node of @a the_rbtree.
    103105 */
    104106RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_root(
     
    110112
    111113/**
    112  *  @brief Return pointer to RBTree Minimum
    113  *
    114  *  This function returns a pointer to the minimum node of @a the_rbtree.
     114 * @brief Return pointer to RBTree Minimum
     115 *
     116 * This function returns a pointer to the minimum node of @a the_rbtree.
    115117 */
    116118RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_min(
     
    122124
    123125/**
    124  *  @brief Return pointer to RBTree Maximum
    125  *
    126  *  This function returns a pointer to the maximum node of @a the_rbtree.
     126 * @brief Return pointer to RBTree maximum.
     127 *
     128 * This function returns a pointer to the maximum node of @a the_rbtree.
    127129 */
    128130RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_max(
     
    134136
    135137/**
    136  *  @brief Return pointer to the left child node from this node
    137  *
    138  *  This function returns a pointer to the left child node of @a the_node.
     138 * @brief Return pointer to the left child node from this node.
     139 *
     140 * This function returns a pointer to the left child node of @a the_node.
    139141 */
    140142RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_left(
     
    146148
    147149/**
    148  *  @brief Return pointer to the right child node from this node
    149  *
    150  *  This function returns a pointer to the right child node of @a the_node.
     150 * @brief Return pointer to the right child node from this node.
     151 *
     152 * This function returns a pointer to the right child node of @a the_node.
    151153 */
    152154RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_right(
     
    158160
    159161/**
    160  *  @brief Return pointer to the parent child node from this node
    161  *
    162  *  This function returns a pointer to the parent node of @a the_node.
     162 * @brief Return pointer to the parent child node from this node.
     163 *
     164 * This function returns a pointer to the parent node of @a the_node.
    163165 */
    164166RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_parent(
     
    170172
    171173/**
    172  *  @brief Are Two Nodes Equal
    173  *
    174  *  This function returns true if @a left and @a right are equal,
    175  *  and false otherwise.
     174 * @brief Are two nodes equal.
     175 *
     176 * This function returns true if @a left and @a right are equal,
     177 * and false otherwise.
    176178 */
    177179RTEMS_INLINE_ROUTINE bool rtems_rbtree_are_nodes_equal(
     
    184186
    185187/**
    186  *  @brief Is the RBTree Empty
    187  *
    188  *  This function returns true if there a no nodes on @a the_rbtree and
    189  *  false otherwise.
     188 * @brief Is the RBTree empty.
     189 *
     190 * This function returns true if there a no nodes on @a the_rbtree and
     191 * false otherwise.
    190192 */
    191193RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_empty(
     
    197199
    198200/**
    199  *  @brief Is this the Minimum Node on the RBTree
    200  *
    201  *  This function returns true if @a the_node is the min node on @a the_rbtree
    202  *  and false otherwise.
     201 * @brief Is this the minimum node on the RBTree.
     202 *
     203 * This function returns true if @a the_node is the min node on @a the_rbtree
     204 * and false otherwise.
    203205 */
    204206RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_min(
     
    211213
    212214/**
    213  *  @brief Is this the Maximum Node on the RBTree
    214  *
    215  *  This function returns true if @a the_node is the max node on @a the_rbtree
    216  *  and false otherwise.
     215 * @brief Is this the maximum node on the RBTree.
     216 *
     217 * This function returns true if @a the_node is the max node on @a the_rbtree
     218 * and false otherwise.
    217219 */
    218220RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_max(
     
    226228
    227229/**
    228  *  @brief Does this RBTree have only One Node
    229  *
    230  *  This function returns true if there is only one node on @a the_rbtree and
    231  *  false otherwise.
     230 * @brief Does this RBTree have only one node.
     231 *
     232 * This function returns true if there is only one node on @a the_rbtree and
     233 * false otherwise.
    232234 */
    233235RTEMS_INLINE_ROUTINE bool rtems_rbtree_has_only_one_node(
     
    239241
    240242/**
    241  *  @brief Is this Node the RBTree Root
    242  *
    243  *  This function returns true if @a the_node is the root of @a the_rbtree and
    244  *  false otherwise.
     243 * @brief Is this node the RBTree root.
     244 *
     245 * This function returns true if @a the_node is the root of @a the_rbtree and
     246 * false otherwise.
    245247 */
    246248RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_root(
     
    263265}
    264266
    265 /** @brief Find the node with given key in the tree
    266  *
    267  *  This function returns a pointer to the node having key equal to the key
    268  *  of @a the_node if it exists within @a the_rbtree, and NULL if not.
    269  *  @a the_node has to be made up before a search.
    270  *
    271  *  @note If the tree is not unique and contains duplicate keys, the set
    272  *        of duplicate keys acts as FIFO.
     267/** @brief Find the node with given key in the tree.
     268 *
     269 * This function returns a pointer to the node having key equal to the key
     270 * of @a the_node if it exists within @a the_rbtree, and NULL if not.
     271 * @a the_node has to be made up before a search.
     272 *
     273 * @note If the tree is not unique and contains duplicate keys, the set
     274 *       of duplicate keys acts as FIFO.
    273275 */
    274276RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_find(
     
    332334
    333335/**
    334  *  @brief Extract the specified node from a rbtree
    335  *
    336  *  This routine extracts @a the_node from @a the_rbtree on which it resides.
    337  *  It disables interrupts to ensure the atomicity of the extract operation.
     336 * @brief Extract the specified node from a rbtree.
     337 *
     338 * This routine extracts @a the_node from @a the_rbtree on which it resides.
     339 * It disables interrupts to ensure the atomicity of the extract operation.
    338340 */
    339341RTEMS_INLINE_ROUTINE void rtems_rbtree_extract(
     
    346348
    347349/**
    348  *  @brief Obtain the min node on a rbtree
    349  *
    350  *  This function removes the min node from @a the_rbtree and returns
    351  *  a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
     350 * @brief Obtain the min node on a rbtree.
     351 *
     352 * This function removes the min node from @a the_rbtree and returns
     353 * a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
    352354 */
    353355
     
    360362
    361363/**
    362  *  @brief Obtain the min node on a rbtree
    363  *
    364  *  This function removes the min node from @a the_rbtree and returns
    365  *  a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
    366  *  It disables interrupts to ensure the atomicity of the get operation.
     364 * @brief Obtain the min node on a rbtree.
     365 *
     366 * This function removes the min node from @a the_rbtree and returns
     367 * a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
     368 * It disables interrupts to ensure the atomicity of the get operation.
    367369 */
    368370RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min(
     
    374376
    375377/**
    376  *  @brief Obtain the max node on a rbtree
    377  *
    378  *  This function removes the max node from @a the_rbtree and returns
    379  *  a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
     378 * @brief Obtain the max node on a rbtree.
     379 *
     380 * This function removes the max node from @a the_rbtree and returns
     381 * a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
    380382 */
    381383
     
    388390
    389391/**
    390  *  @brief Obtain the max node on a rbtree
    391  *
    392  *  This function removes the max node from @a the_rbtree and returns
    393  *  a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
    394  *  It disables interrupts to ensure the atomicity of the get operation.
     392 * @brief Obtain the max node on a rbtree.
     393 *
     394 * This function removes the max node from @a the_rbtree and returns
     395 * a pointer to that node.  If @a the_rbtree is empty, then NULL is returned.
     396 * It disables interrupts to ensure the atomicity of the get operation.
    395397 */
    396398RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_max(
     
    402404
    403405/**
    404  *  @brief Peek at the min node on a rbtree
    405  *
    406  *  This function returns a pointer to the min node from @a the_rbtree
    407  *  without changing the tree.  If @a the_rbtree is empty,
    408  *  then NULL is returned.
     406 * @brief Peek at the min node on a rbtree.
     407 *
     408 * This function returns a pointer to the min node from @a the_rbtree
     409 * without changing the tree.  If @a the_rbtree is empty,
     410 * then NULL is returned.
    409411 */
    410412RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_min(
     
    416418
    417419/**
    418  *  @brief Peek at the max node on a rbtree
    419  *
    420  *  This function returns a pointer to the max node from @a the_rbtree
    421  *  without changing the tree.  If @a the_rbtree is empty,
    422  *  then NULL is returned.
     420 * @brief Peek at the max node on a rbtree.
     421 *
     422 * This function returns a pointer to the max node from @a the_rbtree
     423 * without changing the tree.  If @a the_rbtree is empty,
     424 * then NULL is returned.
    423425 */
    424426RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_max(
     
    440442
    441443/**
    442  *  @brief Find the control header of the tree containing a given node.
    443  *
    444  *  This routine finds the rtems_rbtree_control structure of the tree
    445  *  containing @a the_node.
    446  *  It disables interrupts to ensure the atomicity of the find operation.
     444 * @brief Find the control header of the tree containing a given node.
     445 *
     446 * This routine finds the rtems_rbtree_control structure of the tree
     447 * containing @a the_node.
     448 * It disables interrupts to ensure the atomicity of the find operation.
    447449 */
    448450RTEMS_INLINE_ROUTINE rtems_rbtree_control *rtems_rbtree_find_header(
     
    465467
    466468/**
    467  *  @brief Insert a node on a rbtree
    468  *
    469  *  This routine inserts @a the_node on @a the_rbtree.
    470  *  It disables interrupts to ensure the atomicity of the insert operation.
    471  *
    472  *  @retval 0 Successfully inserted.
    473  *  @retval -1 NULL @a the_node.
    474  *  @retval RBTree_Node* if one with equal key to the key of @a the_node exists
    475  *          in an unique @a the_rbtree.
     469 * @brief Insert a node on a rbtree.
     470 *
     471 * This routine inserts @a the_node on @a the_rbtree.
     472 * It disables interrupts to ensure the atomicity of the insert operation.
     473 *
     474 * @retval 0 Successfully inserted.
     475 * @retval -1 NULL @a the_node.
     476 * @retval RBTree_Node* if one with equal key to the key of @a the_node exists
     477 *         in an unique @a the_rbtree.
    476478 */
    477479RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_insert(
     
    483485}
    484486
    485 /** @brief Determines whether the tree is unique
     487/**
     488 * @brief Determines whether the tree is unique.
    486489 */
    487490RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_unique(
  • cpukit/sapi/inline/rtems/timespec.inl

    r4027e63 r27f071cd  
    11/**
    2  * @file rtems/sapi/timespec.inl
    3  *
    4  * @ingroup
    5  *
    6  * @brief Timespec API.
     2 * @file
     3 *
     4 * @brief Timespec API
    75 */
    86 
     
    3230
    3331/**
    34  * @brief Is Timespec Valid
    35  *
    36  *  This method determines the validity of a timespec.
    37  *
    38  *  @param[in] time is the timespec instance to validate.
    39  *
    40  *  @return This method returns true if @a time is valid and
    41  *          false otherwise.
     32 * @brief Is timespec valid
     33 *
     34 * This method determines the validity of a timespec.
     35 *
     36 * @param[in] time is the timespec instance to validate.
     37 *
     38 * @retval true The timespec is valid.
     39 * @retval false The timespec is not valid.
    4240 */
    4341RTEMS_INLINE_ROUTINE bool rtems_timespec_is_valid(
     
    4947
    5048/**
    51  * @brief Timespec Less Than Operator
    52  *
    53  *  This method is the less than operator for timespecs.
    54  *
    55  *  @param[in] lhs is the left hand side timespec
    56  *  @param[in] rhs is the right hand side timespec
    57  *
    58  *  @return This method returns true if @a lhs is less than the @a rhs and
    59  *          false otherwise.
     49 * @brief Timespec less than operator.
     50 *
     51 * This method is the less than operator for timespecs.
     52 *
     53 * @param[in] lhs is the left hand side timespec
     54 * @param[in] rhs is the right hand side timespec
     55 *
     56 * @retval true @a lhs is less than @a rhr.
     57 * @retval false @a lhs is not less than @a rhr.
     58 *
    6059 */
    6160RTEMS_INLINE_ROUTINE bool rtems_timespec_less_than(
     
    6867
    6968/**
    70  * @brief Add to a Timespec
    71  *
    72  *  This routine adds two timespecs.  The second argument is added
    73  *  to the first.
    74  *
    75  *  @param[in] time is the base time to be added to
    76  *  @param[in] add is the timespec to add to the first argument
    77  *
    78  *  @return This method returns the number of seconds @a time increased by.
     69 * @brief Add to a timespec.
     70 *
     71 * This routine adds two timespecs.  The second argument is added
     72 * to the first.
     73 *
     74 * @param[in] time is the base time to be added to
     75 * @param[in] add is the timespec to add to the first argument
     76 *
     77 * @return This method returns the number of seconds @a time increased by.
    7978 */
    8079RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_add_to(
     
    8786
    8887/**
    89  * @brief Convert Timespec to Number of Ticks
    90  *
    91  *  This routine convert the @a time timespec to the corresponding number
    92  *  of clock ticks.
    93  *
    94  *  @param[in] time is the time to be converted
    95  *
    96  *  @return This method returns the number of ticks computed.
     88 * @brief Convert timespec to number of ticks.
     89 *
     90 * This routine convert the @a time timespec to the corresponding number
     91 * of clock ticks.
     92 *
     93 * @param[in] time is the time to be converted
     94 *
     95 * @return This method returns the number of ticks computed.
    9796 */
    9897RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_to_ticks(
     
    104103
    105104/**
    106  * @brief Convert Ticks to Timespec
    107  *
    108  *  This routine converts the @a ticks value to the corresponding
    109  *  timespec format @a time.
    110  *
    111  *  @param[in] time is the timespec format time result
    112  *  @param[in] ticks is the number of ticks to convert
     105 * @brief Convert ticks to timespec.
     106 *
     107 * This routine converts the @a ticks value to the corresponding
     108 * timespec format @a time.
     109 *
     110 * @param[in] time is the timespec format time result
     111 * @param[in] ticks is the number of ticks to convert
    113112 */
    114113
     
    122121
    123122/**
    124  * @brief Subtract Two Timespec
    125  *
    126  *  This routine subtracts two timespecs.  @a result is set to
    127  *  @a end - @a start.
    128  *
    129  *  @param[in] start is the starting time
    130  *  @param[in] end is the ending time
    131  *  @param[in] result is the difference between starting and ending time.
    132  *
    133  *  @return This method fills in @a result.
     123 * @brief Subtract two timespec.
     124 *
     125 * This routine subtracts two timespecs.  @a result is set to
     126 * @a end - @a start.
     127 *
     128 * @param[in] start is the starting time
     129 * @param[in] end is the ending time
     130 * @param[in] result is the difference between starting and ending time.
     131 *
     132 * @return This method fills in @a result.
    134133 */
    135134RTEMS_INLINE_ROUTINE void rtems_timespec_subtract(
     
    143142
    144143/**
    145  * @brief Divide Timespec By Integer
    146  *
    147  *  This routine divides a timespec by an integer value.  The expected
    148  *  use is to assist in benchmark calculations where you typically
    149  *  divide a duration by a number of iterations.
    150  *
    151  *  @param[in] time is the total
    152  *  @param[in] iterations is the number of iterations
    153  *  @param[in] result is the average time.
    154  *
    155  *  @return This method fills in @a result.
     144 * @brief Divide timespec by integer.
     145 *
     146 * This routine divides a timespec by an integer value.  The expected
     147 * use is to assist in benchmark calculations where you typically
     148 * divide a duration by a number of iterations.
     149 *
     150 * @param[in] time is the total
     151 * @param[in] iterations is the number of iterations
     152 * @param[in] result is the average time.
     153 *
     154 * @return This method fills in @a result.
    156155 */
    157156RTEMS_INLINE_ROUTINE void rtems_timespec_divide_by_integer(
     
    165164
    166165/**
    167  * @brief Divide Timespec
    168  *
    169  *  This routine divides a timespec by another timespec.  The
    170  *  intended use is for calculating percentages to three decimal points.
    171  *
    172  *  @param[in] lhs is the left hand number
    173  *  @param[in] rhs is the right hand number
    174  *  @param[in] ival_percentage is the integer portion of the average
    175  *  @param[in] fval_percentage is the thousandths of percentage
    176  *
    177  *  @return This method fills in @a result.
     166 * @brief Divide timespec.
     167 *
     168 * This routine divides a timespec by another timespec.  The
     169 * intended use is for calculating percentages to three decimal points.
     170 *
     171 * @param[in] lhs is the left hand number
     172 * @param[in] rhs is the right hand number
     173 * @param[in] ival_percentage is the integer portion of the average
     174 * @param[in] fval_percentage is the thousandths of percentage
     175 *
     176 * @return This method fills in @a result.
    178177 */
    179178RTEMS_INLINE_ROUTINE void rtems_timespec_divide(
     
    188187
    189188/**
    190  * @brief Set Timespec to Seconds Nanosecond
    191  *
    192  *  This method sets the timespec to the specified seconds and nanoseconds
    193  *  value.
    194  *
    195  *  @param[in] _time points to the timespec instance to validate.
    196  *  @param[in] _seconds is the seconds portion of the timespec
    197  *  @param[in] _nanoseconds is the nanoseconds portion of the timespec
     189 * @brief Set timespec to seconds nanosecond.
     190 *
     191 * This method sets the timespec to the specified seconds and nanoseconds
     192 * value.
     193 *
     194 * @param[in] _time points to the timespec instance to validate.
     195 * @param[in] _seconds is the seconds portion of the timespec
     196 * @param[in] _nanoseconds is the nanoseconds portion of the timespec
    198197 */
    199198RTEMS_INLINE_ROUTINE void rtems_timespec_set(
     
    207206
    208207/**
    209  * @brief Zero Timespec
    210  *
    211  *  This method sets the timespec to zero.
    212  *  value.
    213  *
    214  *  @param[in] _time points to the timespec instance to zero.
     208 * @brief Zero timespec.
     209 *
     210 * This method sets the timespec to zero.
     211 * value.
     212 *
     213 * @param[in] _time points to the timespec instance to zero.
    215214 */
    216215RTEMS_INLINE_ROUTINE void rtems_timespec_zero(
     
    222221
    223222/**
    224  * @brief Get Seconds Portion of Timespec
    225  *
    226  *  This method returns the seconds portion of the specified timespec
    227  *
    228  *  @param[in] _time points to the timespec
    229  *
    230  *  @return The seconds portion of @a _time.
     223 * @brief Get seconds portion of timespec.
     224 *
     225 * This method returns the seconds portion of the specified timespec
     226 *
     227 * @param[in] _time points to the timespec
     228 *
     229 * @return The seconds portion of @a _time.
    231230 */
    232231RTEMS_INLINE_ROUTINE time_t rtems_timespec_get_seconds(
     
    238237
    239238/**
    240  * @brief Get Nanoseconds Portion of Timespec
    241  *
    242  *  This method returns the nanoseconds portion of the specified timespec
    243  *
    244  *  @param[in] _time points to the timespec
    245  *
    246  *  @return The nanoseconds portion of @a _time.
     239 * @brief Get nanoseconds portion of timespec.
     240 *
     241 * This method returns the nanoseconds portion of the specified timespec
     242 *
     243 * @param[in] _time points to the timespec
     244 *
     245 * @return The nanoseconds portion of @a _time.
    247246 */
    248247RTEMS_INLINE_ROUTINE uint32_t rtems_timespec_get_nanoseconds(
     
    255254
    256255/**
    257  * @brief Timespec Greater Than Operator
    258  *
    259  *  This method is the greater than operator for timespecs.
    260  *
    261  *  @param[in] lhs is the left hand side timespec
    262  *  @param[in] rhs is the right hand side timespec
    263  *
    264  *  @return This method returns true if @a lhs is greater than the @a rhs and
    265  *          false otherwise.
     256 * @brief Timespec greater than operator.
     257 *
     258 * This method is the greater than operator for timespecs.
     259 *
     260 * @param[in] lhs is the left hand side timespec
     261 * @param[in] rhs is the right hand side timespec
     262 *
     263 * @retval true @a lhs is greater than @a rhr.
     264 * @retval false @a lhs is not greater than @a rhr.
    266265 */
    267266RTEMS_INLINE_ROUTINE bool rtems_timespec_greater_than(
     
    275274 * @brief Timespec equal to Operator
    276275 *
    277  *  This method is the is equal to than operator for timespecs.
    278  *
    279  *  @param[in] lhs is the left hand side timespec
    280  *  @param[in] rhs is the right hand side timespec
    281  *
    282  *  @return This method returns true if @a lhs is equal to  @a rhs and
    283  *          false otherwise.
     276 * This method is the is equal to than operator for timespecs.
     277 *
     278 * @param[in] lhs is the left hand side timespec
     279 * @param[in] rhs is the right hand side timespec
     280 *
     281 * @retval true @a lhs is equal to @a rhr.
     282 * @retval false @a lhs is not equal to @a rhr.
    284283 */
    285284RTEMS_INLINE_ROUTINE bool rtems_timespec_equal_to(
Note: See TracChangeset for help on using the changeset viewer.