Changeset c85ab23 in rtems


Ignore:
Timestamp:
Aug 5, 2009, 6:17:12 PM (10 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, master
Children:
21de9dc
Parents:
b053cab
Message:

2009-08-05 Sebastian Huber <sebastian.huber@…>

  • libcsupport/include/rtems/libio_.h, libcsupport/src/fs_null_handlers.c: Null handlers are now const.
  • libi2c/libi2c.c, libi2c/libi2c.h: Documentation. Do not create semaphores on the fly.
  • cpukit/libblock/src/bdpart.c: Fixed format specifier.
  • cpukit/libblock/include/rtems/bdbuf.h, rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/support.inl: Documentation.
  • include/rtems/irq-extension.h: Documentation. Added API for interrupt servers.
Location:
cpukit
Files:
43 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    rb053cab rc85ab23  
     12009-08-05      Sebastian Huber <sebastian.huber@embedded-brains.de>
     2
     3        * libcsupport/include/rtems/libio_.h,
     4        libcsupport/src/fs_null_handlers.c: Null handlers are now const.
     5        * libi2c/libi2c.c, libi2c/libi2c.h: Documentation. Do not create
     6        semaphores on the fly.
     7        * cpukit/libblock/src/bdpart.c: Fixed format specifier.
     8        * cpukit/libblock/include/rtems/bdbuf.h, rtems/include/rtems.h,
     9        rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h,
     10        rtems/include/rtems/rtems/barrier.h,
     11        rtems/include/rtems/rtems/barriermp.h,
     12        rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h,
     13        rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h,
     14        rtems/include/rtems/rtems/event.h,
     15        rtems/include/rtems/rtems/eventmp.h,
     16        rtems/include/rtems/rtems/eventset.h,
     17        rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h,
     18        rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h,
     19        rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h,
     20        rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h,
     21        rtems/include/rtems/rtems/ratemon.h,
     22        rtems/include/rtems/rtems/region.h,
     23        rtems/include/rtems/rtems/regionmp.h,
     24        rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h,
     25        rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h,
     26        rtems/include/rtems/rtems/signalmp.h,
     27        rtems/include/rtems/rtems/status.h,
     28        rtems/include/rtems/rtems/support.h,
     29        rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h,
     30        rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h,
     31        rtems/inline/rtems/rtems/support.inl: Documentation.
     32        * include/rtems/irq-extension.h: Documentation. Added API for
     33        interrupt servers.
     34
    1352009-08-05      Joel Sherrill <joel.sherrill@oarcorp.com>
    236
  • cpukit/include/rtems/irq-extension.h

    rb053cab rc85ab23  
    4343
    4444/**
     45 * @brief Makes the interrupt handler unique.  Prevents other handler from
     46 * using the same interrupt vector.
     47 */
     48#define RTEMS_INTERRUPT_UNIQUE ((rtems_option) 0x00000001)
     49
     50/**
     51 * @brief Allows that this interrupt handler may share a common interrupt
     52 * vector with other handler.
     53 */
     54#define RTEMS_INTERRUPT_SHARED ((rtems_option) 0x00000000)
     55
     56/**
     57 * @brief Returns true if the interrupt handler unique option is set.
     58 */
     59#define RTEMS_INTERRUPT_IS_UNIQUE( options) \
     60  ((options) & RTEMS_INTERRUPT_UNIQUE)
     61
     62/**
     63 * @brief Returns true if the interrupt handler shared option is set.
     64 */
     65#define RTEMS_INTERRUPT_IS_SHARED( options) \
     66  (!RTEMS_INTERRUPT_IS_UNIQUE( options))
     67
     68/**
    4569 * @brief Interrupt handler routine type.
    4670 */
    47 typedef void (*rtems_interrupt_handler)( rtems_vector_number, void *);
     71typedef void (*rtems_interrupt_handler)(rtems_vector_number, void *);
    4872
    4973/**
     
    5175 * vector with number @a vector.
    5276 *
    53  * You can set some @ref rtems_interrupt_extension_options "options" with @a
    54  * options for the interrupt handler.
     77 * You can set one of the mutually exclusive options
     78 *
     79 * - @ref RTEMS_INTERRUPT_UNIQUE
     80 * - @ref RTEMS_INTERRUPT_SHARED
     81 *
     82 * with the @a options parameter for the interrupt handler.
    5583 *
    5684 * The handler routine shall be called with argument @a arg when dispatched.
     
    6593 * the handler life time.
    6694 *
    67  * @note This function may block.
    68  *
    69  * @return
    70  * - On success RTEMS_SUCCESSFUL shall be returned.
    71  * - If the vector is already occupied with a unique handler the
    72  * RTEMS_RESOURCE_IN_USE status code shall be returned.
    73  * - If you want to install a unique handler and there is already a handler
    74  * installed RTEMS_RESOURCE_IN_USE shall be returned.
    75  * - If this function is called within interrupt context RTEMS_CALLED_FROM_ISR
    76  * shall be returned.
    77  * - If the vector number is out of range RTEMS_INVALID_NUMBER shall be
    78  * returned.
    79  * - If the handler address is NULL a RTEMS_INVALID_ADDRESS shall be returned.
    80  * - If a handler with this argument is already installed for this vector
    81  * RTEMS_TOO_MANY shall be returned.
    82  * - Other error states are BSP specific.
     95 * This function may block.
     96 *
     97 * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
     98 * @retval RTEMS_CALLED_FROM_ISR If this function is called from interrupt
     99 * context this shall be returned.
     100 * @retval RTEMS_INVALID_ADDRESS If the handler address is NULL this shall be
     101 * returned.
     102 * @retval RTEMS_INVALID_ID If the vector number is out of range this shall be
     103 * returned.
     104 * @retval RTEMS_INVALID_NUMBER If an option is not applicable this shall be
     105 * returned.
     106 * @retval RTEMS_RESOURCE_IN_USE If the vector is already occupied with a
     107 * unique handler this shall be returned.  If a unique handler should be
     108 * installed and there is already a handler installed this shall be returned.
     109 * @retval RTEMS_TOO_MANY If a handler with this argument is already installed
     110 * for the vector this shall be returned.
     111 * @retval * Other error states are BSP specific.
    83112 */
    84113rtems_status_code rtems_interrupt_handler_install(
     
    94123 * for the interrupt vector with number @a vector.
    95124 *
    96  * @note This function may block.
    97  *
    98  * @return
    99  * - On success RTEMS_SUCCESSFUL shall be returned.
    100  * - If this function is called within interrupt context RTEMS_CALLED_FROM_ISR
    101  * shall be returned.
    102  * - If the vector number is out of range RTEMS_INVALID_NUMBER shall be
    103  * returned.
    104  * - If the handler address is NULL a RTEMS_INVALID_ADDRESS shall be returned.
    105  * - If the handler with this argument is not installed for this vector
    106  * RTEMS_UNSATISFIED shall be returned.
    107  * - Other error states are BSP specific.
     125 * This function may block.
     126 *
     127 * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
     128 * @retval RTEMS_CALLED_FROM_ISR If this function is called from interrupt
     129 * context this shall be returned.
     130 * @retval RTEMS_INVALID_ADDRESS If the handler address is NULL this shall be
     131 * returned.
     132 * @retval RTEMS_INVALID_ID If the vector number is out of range this shall be
     133 * returned.
     134 * @retval RTEMS_UNSATISFIED If the handler with its argument is not installed
     135 * for the vector this shall be returned.
     136 * @retval * Other error states are BSP specific.
    108137 */
    109138rtems_status_code rtems_interrupt_handler_remove(
     
    132161 * This function is intended for system information and diagnostics.
    133162 *
    134  * @note This function may block.  Never install or remove an interrupt handler
     163 * This function may block.  Never install or remove an interrupt handler
    135164 * within the iteration routine.  This may result in a deadlock.
    136165 *
    137  * @return
    138  * - On success RTEMS_SUCCESSFUL shall be returned.
    139  * - If this function is called within interrupt context RTEMS_CALLED_FROM_ISR
    140  * shall be returned.
    141  * - If the vector number is out of range RTEMS_INVALID_NUMBER shall be
    142  * returned.
    143  * - Other error states are BSP specific.
     166 * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
     167 * @retval RTEMS_CALLED_FROM_ISR If this function is called from interrupt
     168 * context this shall be returned.
     169 * @retval RTEMS_INVALID_ID If the vector number is out of range this shall be
     170 * returned.
     171 * @retval * Other error states are BSP specific.
    144172 */
    145173rtems_status_code rtems_interrupt_handler_iterate(
     
    149177);
    150178
    151 /** @} */
    152 
    153 /**
    154  * @defgroup rtems_interrupt_extension_options Interrupt Handler Options
    155  *
    156  * @ingroup rtems_interrupt_extension
    157  *
    158  * @{
    159  */
    160 
    161 /**
    162  * @name Options
    163  *
    164  * @{
    165  */
    166 
    167 /**
    168  * @brief Makes the interrupt handler unique.  Prevents other handler from
    169  * using the same interrupt vector.
    170  */
    171 #define RTEMS_INTERRUPT_UNIQUE ((rtems_option) 0x00000001)
    172 
    173 /**
    174  * @brief Allows that this interrupt handler may share a common interrupt
    175  * vector with other handler.
    176  */
    177 #define RTEMS_INTERRUPT_SHARED ((rtems_option) 0x00000000)
    178 
    179 /** @} */
    180 
    181 /**
    182  * @name Option Set Checks
    183  *
    184  * @{
    185  */
    186 
    187 /**
    188  * @brief Returns true if the interrupt handler unique option is set.
    189  */
    190 #define RTEMS_INTERRUPT_IS_UNIQUE( options) \
    191   ((options) & RTEMS_INTERRUPT_UNIQUE)
    192 
    193 /**
    194  * @brief Returns true if the interrupt handler shared option is set.
    195  */
    196 #define RTEMS_INTERRUPT_IS_SHARED( options) \
    197   (!RTEMS_INTERRUPT_IS_UNIQUE( options))
    198 
    199 /** @} */
     179/**
     180 * @brief Initializes an interrupt server task.
     181 *
     182 * The task will have the priority @a priority, the stack size @a stack_size,
     183 * the modes @a modes and the attributes @a attributes.  The identifier of the
     184 * server task will be returned in @a server.  Interrupt handlers can be
     185 * installed on the server with rtems_interrupt_server_handler_install() and
     186 * removed with rtems_interrupt_server_handler_remove() using this identifier.
     187 * In case of an interrupt the request will be forwarded to the server.  The
     188 * handlers are executed within the server context.  If one handler blocks on
     189 * something this may delay the processing of other handlers.
     190 *
     191 * The server identifier pointer @a server may be @a NULL to initialize the
     192 * default server.
     193 *
     194 * This function may block.
     195 *
     196 * @see rtems_task_create().
     197 *
     198 * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
     199 * @retval RTEMS_INCORRECT_STATE If the default server is already initialized
     200 * this shall be returned.
     201 * @retval * Other error states are BSP specific.
     202 */
     203rtems_status_code rtems_interrupt_server_initialize(
     204  rtems_task_priority priority,
     205  size_t stack_size,
     206  rtems_mode modes,
     207  rtems_attribute attributes,
     208  rtems_id *server
     209);
     210
     211/**
     212 * @brief Installs the interrupt handler routine @a handler for the interrupt
     213 * vector with number @a vector on the server @a server.
     214 *
     215 * The handler routine will be executed on the corresponding interrupt server
     216 * task.  A server identifier @a server of @c RTEMS_ID_NONE may be used to
     217 * install the handler on the default server.
     218 *
     219 * This function may block.
     220 *
     221 * @see rtems_interrupt_handler_install().
     222 *
     223 * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
     224 * @retval RTEMS_INCORRECT_STATE If the interrupt handler server is not
     225 * initialized this shall be returned.
     226 * @retval * For other errors see rtems_interrupt_handler_install().
     227 */
     228rtems_status_code rtems_interrupt_server_handler_install(
     229  rtems_id server,
     230  rtems_vector_number vector,
     231  const char *info,
     232  rtems_option options,
     233  rtems_interrupt_handler handler,
     234  void *arg
     235);
     236
     237/**
     238 * @brief Removes the interrupt handler routine @a handler with argument @a arg
     239 * for the interrupt vector with number @a vector from the server @a server.
     240 *
     241 * A server identifier @a server of @c RTEMS_ID_NONE may be used to remove the
     242 * handler from the default server.
     243 *
     244 * This function may block.
     245 *
     246 * @see rtems_interrupt_handler_remove().
     247 *
     248 * @retval RTEMS_SUCCESSFUL Shall be returned in case of success.
     249 * @retval RTEMS_INCORRECT_STATE If the interrupt handler server is not
     250 * initialized this shall be returned.
     251 * @retval * For other errors see rtems_interrupt_handler_remove().
     252 */
     253rtems_status_code rtems_interrupt_server_handler_remove(
     254  rtems_id server,
     255  rtems_vector_number vector,
     256  rtems_interrupt_handler handler,
     257  void *arg
     258);
    200259
    201260/** @} */
  • cpukit/libblock/include/rtems/bdbuf.h

    rb053cab rc85ab23  
    3535/**
    3636 * @defgroup rtems_libblock Block Device Library
     37 *
     38 * Block device modules.
    3739 */
    3840
  • cpukit/libblock/src/bdpart.c

    rb053cab rc85ab23  
    859859
    860860    /* Set partition number for logical disk name */
    861     rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%lu", i + 1);
     861    rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%zu", i + 1);
    862862    if (rv >= RTEMS_BDPART_NUMBER_SIZE) {
    863863      esc = RTEMS_INVALID_NAME;
     
    995995  for (i = 0; i < count; ++i) {
    996996    /* Create logical disk name */
    997     int rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%lu", i + 1);
     997    int rv = snprintf( logical_disk_marker, RTEMS_BDPART_NUMBER_SIZE, "%zu", i + 1);
    998998    if (rv >= RTEMS_BDPART_NUMBER_SIZE) {
    999999      esc = RTEMS_INVALID_NAME;
     
    10711071  for (i = 0; i < count; ++i) {
    10721072    /* Create mount point */
    1073     int rv = snprintf( mount_marker, RTEMS_BDPART_NUMBER_SIZE, "%lu", i + 1);
     1073    int rv = snprintf( mount_marker, RTEMS_BDPART_NUMBER_SIZE, "%zu", i + 1);
    10741074    if (rv >= RTEMS_BDPART_NUMBER_SIZE) {
    10751075      esc = RTEMS_INVALID_NAME;
  • cpukit/libcsupport/include/rtems/libio_.h

    rb053cab rc85ab23  
    3838
    3939extern rtems_id                          rtems_libio_semaphore;
    40 extern rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
     40extern const rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers;
    4141
    4242/*
  • cpukit/libcsupport/src/fs_null_handlers.c

    rb053cab rc85ab23  
    2424 */
    2525
    26 rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
     26const rtems_filesystem_file_handlers_r rtems_filesystem_null_handlers = {
    2727  NULL,       /* open */
    2828  NULL,       /* close */
  • cpukit/libi2c/libi2c.c

    rb053cab rc85ab23  
    111111  rtems_libi2c_bus_t *bush;
    112112  volatile rtems_id mutex;      /* lock this across start -> stop */
    113   volatile short waiting;
    114   volatile char started;
     113  volatile bool started;
    115114  char *name;
    116115} busses[MAX_NO_BUSSES] = { { 0, 0, 0, 0, 0 } };
     
    121120} drvs[MAX_NO_DRIVERS] = { { 0 } };
    122121
    123 static rtems_id libmutex = 0;
     122static rtems_id libmutex = RTEMS_ID_NONE;
    124123
    125124#define LOCK(m)         assert(!rtems_semaphore_obtain((m), RTEMS_WAIT, RTEMS_NO_TIMEOUT))
     
    176175lock_bus (int busno)
    177176{
    178 rtems_status_code sc;
    179 struct i2cbus *bus = &busses[busno];
    180 
    181   LIBLOCK ();
    182   if (!bus->waiting) {
    183         rtems_id m;
    184     /* nobody is holding the bus mutex - it's not there. Create it on the fly */
    185     sc = mutexCreate (rtems_build_name ('i', '2', 'c', '0' + busno), &m);
    186     if ( RTEMS_SUCCESSFUL != sc ) {
    187       LIBUNLOCK ();
    188       rtems_panic (DRVNM "Unable to create bus lock");
    189     } else {
    190           bus->mutex = m;
    191         }
    192   }
    193   /* count number of people waiting on this bus; only the last one deletes the mutex */
    194   bus->waiting++;
    195   LIBUNLOCK ();
     177  struct i2cbus *bus = &busses[busno];
     178
     179  if (bus->mutex == RTEMS_ID_NONE) {
     180    /*
     181     * Nobody is holding the bus mutex - it's not there.  Create it on the fly.
     182     */
     183    LIBLOCK ();
     184    if (bus->mutex == RTEMS_ID_NONE) {
     185      rtems_id m = RTEMS_ID_NONE;
     186      rtems_status_code sc = mutexCreate (
     187        rtems_build_name ('i', '2', 'c', '0' + busno),
     188        &m
     189      );
     190      if (sc != RTEMS_SUCCESSFUL) {
     191        LIBUNLOCK ();
     192        rtems_panic (DRVNM "Unable to create bus lock");
     193        return;
     194      }
     195      bus->mutex = m;
     196    }
     197    LIBUNLOCK ();
     198  }
     199
    196200  /* Now lock this bus */
    197201  LOCK (bus->mutex);
     
    202206{
    203207  struct i2cbus *bus = &busses[busno];
    204   LIBLOCK ();
    205208  UNLOCK (bus->mutex);
    206   if (!--bus->waiting) {
    207     rtems_semaphore_delete (bus->mutex);
    208   }
    209   LIBUNLOCK ();
    210209}
    211210
     
    227226        rtems_libi2c_major = major;
    228227  } else {
    229         libmutex = 0;
     228        libmutex = RTEMS_ID_NONE;
    230229  }
    231230  return rval;
     
    371370             DRVNM "Claiming driver slot failed (rtems status code %i)\n",
    372371             sc);
    373         if ( libmutex )
    374         rtems_semaphore_delete (libmutex);
    375     libmutex = 0;
    376         is_initialized = false;
     372    if (libmutex != RTEMS_ID_NONE) {
     373      rtems_semaphore_delete (libmutex);
     374    }
     375    libmutex = RTEMS_ID_NONE;
     376    is_initialized = false;
    377377    return -1;
    378378  }
     
    418418
    419419
    420   if (!libmutex) {
     420  if (libmutex == RTEMS_ID_NONE) {
    421421    safe_printf ( DRVNM "Library not initialized\n");
    422422    return -RTEMS_NOT_DEFINED;
     
    433433      /* found a free slot */
    434434      busses[i].bush = bus;
    435       busses[i].mutex = 0;
    436       busses[i].waiting = 0;
    437       busses[i].started = 0;
     435      busses[i].mutex = RTEMS_ID_NONE;
     436      busses[i].started = false;
    438437
    439438      if (!name)
     
    498497  } else {
    499498    /* successful 1st start; keep bus locked until stop is sent */
    500     busses[busno].started = 1;
     499    busses[busno].started = true;
    501500  }
    502501  return rval;
     
    514513  rval = bush->ops->send_stop (bush);
    515514
    516   busses[busno].started = 0;
     515  busses[busno].started = false;
    517516
    518517  unlock_bus (busno);
     
    694693  rtems_device_minor_number minor;
    695694
    696   if (!libmutex) {
     695  if (libmutex == RTEMS_ID_NONE) {
    697696    safe_printf ( DRVNM "Library not initialized\n");
    698697    return -RTEMS_NOT_DEFINED;
  • cpukit/libi2c/libi2c.h

    rb053cab rc85ab23  
     1/**
     2 * @file
     3 *
     4 * @ingroup libi2c
     5 *
     6 * @brief I2C library.
     7 */
     8
    19#ifndef _RTEMS_LIBI2C_H
    210#define _RTEMS_LIBI2C_H
     
    5563extern "C" {
    5664#endif
     65
     66/**
     67 * @defgroup libi2c I2C Library
     68 *
     69 * @brief I2C library.
     70 *
     71 * @{
     72 */
    5773
    5874/* Simple I2C driver API */
     
    486502} rtems_libi2c_read_write_async_t;
    487503
     504/** @} */
     505
    488506#ifdef __cplusplus
    489507}
  • cpukit/rtems/include/rtems.h

    rb053cab rc85ab23  
    11/**
    2  * @file  rtems.h
     2 * @file
    33 *
    4  *  This include file provides the public interface to the RTEMS Classic
    5  *  API.
     4 * @ingroup ClassicRTEMS
     5 *
     6 * @brief Provides the public interface to the RTEMS Classic API.
    67 */
    78
     
    2021
    2122/**
    22  *  @defgroup ClassicRTEMS Classic API RTEMS Header
     23 * @defgroup ClassicRTEMS RTEMS Classic API
    2324 *
    24  *  This encapsulates functionality which is specific to the Classic API
    25  *  and generally shared across the various object classes.
     25 * RTEMS Classic API definitions and modules.
     26 *
     27 * @{
    2628 */
    27 /**@{*/
    2829
    2930#ifdef __cplusplus
     
    3435    (!defined(__RTEMS_INSIDE__))
    3536/**
    36  *  @brief Compiling RTEMS Application Macro
     37 * @brief Compiling RTEMS application macro.
    3738 *
    38  *  Unless told otherwise, the RTEMS include files will hide some stuff
    39  *  from normal application code.  Defining this crosses a boundary which
    40  *  is undesirable since it means your application is using RTEMS features
    41  *  which are not included in the formally defined and supported API.
    42  *  Define this at your own risk.
     39 * Unless told otherwise, the RTEMS include files will hide some stuff from
     40 * normal application code.  Defining this crosses a boundary which is
     41 * undesirable since it means your application is using RTEMS features which
     42 * are not included in the formally defined and supported API.  Define this at
     43 * your own risk.
    4344 */
    4445#define __RTEMS_APPLICATION__
     
    7980
    8081/**
    81  *  @brief Obtain the RTEMS Version String
    82  *
    83  *  This method may be used to obtain the RTEMS version string.
    84  *
    85  *  @return This method returns a pointer to the version string.
     82 * @brief Returns the pointer to the RTEMS version string.
    8683 */
    8784const char *rtems_get_version_string(void);
    8885
    8986/**
    90  *  This constant indicates whether this processor variant has
    91  *  hardware floating point support.
     87 * @brief Indicates whether this processor variant has hardware floating point
     88 * support.
    9289 */
    9390#define RTEMS_HAS_HARDWARE_FP CPU_HARDWARE_FP
     
    9895
    9996/**
    100  * This constant indicates that the search is across all nodes.
     97 * @brief Indicates that a search is across all nodes.
    10198 */
    10299#define RTEMS_SEARCH_ALL_NODES   OBJECTS_SEARCH_ALL_NODES
    103100
    104101/**
    105  *  This constant indicates that the search is across all nodes
    106  *  except the one the call is made from.
     102 * @brief Indicates that a search is across all nodes except the one the call
     103 * is made from.
    107104 */
    108105#define RTEMS_SEARCH_OTHER_NODES OBJECTS_SEARCH_OTHER_NODES
    109106
    110107/**
    111  *  This constant indicates that the search is to be restricted
    112  *  to the local node.
     108 * @brief Indicates that the search is to be restricted to the local node.
    113109 */
    114110#define RTEMS_SEARCH_LOCAL_NODE  OBJECTS_SEARCH_LOCAL_NODE
    115111
    116112/**
    117  *  This constant indicates that the caller wants to obtain the
    118  *  name of the currently executing thread.
     113 * @brief Indicates that the caller wants to obtain the name of the currently
     114 * executing thread.
    119115 *
    120  *  @note This constant is only meaningful when obtaining the name
    121  *        of a task.
     116 * This constant is only meaningful when obtaining the name of a task.
    122117 */
    123118#define RTEMS_WHO_AM_I           OBJECTS_WHO_AM_I
     
    128123
    129124/**
    130  *  This constant is the lowest valid valid for the index portion
    131  *  of an object Id.
     125 * @brief Lowest valid index value for the index portion of an object
     126 * identifier.
    132127 */
    133128#define RTEMS_OBJECT_ID_INITIAL_INDEX        OBJECTS_ID_INITIAL_INDEX
    134129
    135130/**
    136  *  This constant is the maximum valid valid for the index portion
    137  *  of an object Id.
     131 * @brief Maximum valid index value for the index portion of an object
     132 * identifier.
    138133 */
    139134#define RTEMS_OBJECT_ID_FINAL_INDEX          OBJECTS_ID_FINAL_INDEX
    140135
    141136/**
    142  *  This method returns the Id of the object with the lowest
    143  *  valid index valud.
     137 * @brief Returns the identifier of the object with the lowest valid index
     138 * value.
    144139 *
    145  *  @param[in] _api is the API of the object
    146  *  @param[in] _class is the Object Class of the object
    147  *  @param[in] _node is the node where the object resides
     140 * The object is specified by the API @a _api, the object class @a _class and
     141 * the node @a _node where the object resides.
    148142 */
    149143#define RTEMS_OBJECT_ID_INITIAL(_api, _class, _node) \
     
    151145
    152146/**
    153  *  This constant is the maximum valid object Id.
     147 * @brief Maximum valid object identifier.
    154148 */
    155149#define RTEMS_OBJECT_ID_FINAL                OBJECTS_ID_FINAL
    156150
    157151/**
    158  *  The following constant defines the minimum stack size which every
    159  *  thread must exceed.
     152 * @brief Minimum stack size which every thread must exceed.
    160153 */
    161154#define RTEMS_MINIMUM_STACK_SIZE  STACK_MINIMUM_SIZE
    162155
    163156/**
    164  *  The following constant is used to specify that the task should
    165  *  be created with the configured minimum stack size.
     157 * @brief Specifies that the task should be created with the configured minimum
     158 * stack size.
    166159 */
    167160#define RTEMS_CONFIGURED_MINIMUM_STACK_SIZE  0
    168161
    169162/**
    170  *  Constant for indefinite wait.  (actually an illegal interval)
     163 * @brief Constant for indefinite wait.
     164 *
     165 * This is actually an illegal interval value.
    171166 */
    172167#define RTEMS_NO_TIMEOUT  WATCHDOG_NO_TIMEOUT
    173168
    174169/**
    175  * An MPCI must support packets of at least this size.
     170 * @brief An MPCI must support packets of at least this size.
    176171 */
    177172#define RTEMS_MINIMUM_PACKET_SIZE  MP_PACKET_MINIMUM_PACKET_SIZE
    178173
    179174/**
    180  *  The following constant defines the number of uint32_t's
    181  *  in a packet which must be converted to native format in a
    182  *  heterogeneous system.  In packets longer than
    183  *  MP_PACKET_MINIMUN_HETERO_CONVERSION uint32_t's, some of the "extra" data
    184  *  may a user message buffer which is not automatically endian swapped.
     175 * @brief Defines the count of @c uint32_t numbers in a packet which must be
     176 * converted to native format in a heterogeneous system.
     177 *
     178 * In packets longer than this value, some of the extra data may be a user
     179 * message buffer which is not automatically endian swapped.
    185180 */
    186181#define RTEMS_MINIMUN_HETERO_CONVERSION  MP_PACKET_MINIMUN_HETERO_CONVERSION
  • cpukit/rtems/include/rtems/rtems/asr.h

    rb053cab rc85ab23  
    2727
    2828/**
    29  *  @defgroup ClassicASR Classic API ASR Support
     29 *  @defgroup ClassicASR ASR Support
     30 *
     31 *  @ingroup ClassicRTEMS
    3032 *
    3133 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/attr.h

    rb053cab rc85ab23  
    2424
    2525/**
    26  *  @defgroup ClassicAttributes Classic API Attributes
     26 *  @defgroup ClassicAttributes Attributes
     27 *
     28 *  @ingroup ClassicRTEMS
    2729 *
    2830 *  This encapsulates functionality which defines and manages the
  • cpukit/rtems/include/rtems/rtems/barrier.h

    rb053cab rc85ab23  
    2828
    2929/**
    30  *  @defgroup ClassicBarrier Classic API Barrier
     30 *  @defgroup ClassicBarrier Barriers
     31 *
     32 *  @ingroup ClassicRTEMS
    3133 *
    3234 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/barriermp.h

    rb053cab rc85ab23  
    2020
    2121/**
    22  *  @defgroup ClassicBarrierMP Classic API Barrier MP Support
     22 *  @defgroup ClassicBarrierMP Barrier MP Support
     23 *
     24 *  @ingroup ClassicMP
    2325 *
    2426 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/cache.h

    rb053cab rc85ab23  
    3939
    4040/**
    41  *  @defgroup ClassicCache Classic API Cache
     41 *  @defgroup ClassicCache Cache
     42 *
     43 *  @ingroup ClassicRTEMS
    4244 *
    4345 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/clock.h

    rb053cab rc85ab23  
    3636
    3737/**
    38  *  @defgroup ClassicClock Classic API Clock
     38 *  @defgroup ClassicClock Clocks
     39 *
     40 *  @ingroup ClassicRTEMS
    3941 *
    4042 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/config.h

    rb053cab rc85ab23  
    2727
    2828/**
    29  *  @defgroup ClassicConfig Classic API Configuration
     29 *  @defgroup ClassicConfig Configuration
     30 *
     31 *  @ingroup ClassicRTEMS
    3032 *
    3133 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/dpmem.h

    rb053cab rc85ab23  
    4949
    5050/**
    51  *  @defgroup ClassicDPMEM Classic API Dual Ported Memory
     51 *  @defgroup ClassicDPMEM Dual Ported Memory
     52 *
     53 *  @ingroup ClassicRTEMS
    5254 *
    5355 *  This encapsulates functionality related to the
  • cpukit/rtems/include/rtems/rtems/event.h

    rb053cab rc85ab23  
    5050
    5151/**
    52  *  @defgroup ClassicEvent Classic API Event
     52 *  @defgroup ClassicEvent Events
     53 *
     54 *  @ingroup ClassicRTEMS
    5355 *
    5456 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/eventmp.h

    rb053cab rc85ab23  
    3030
    3131/**
    32  *  @defgroup ClassicEventMP Classic API Event MP Support
     32 *  @defgroup ClassicEventMP Event MP Support
     33 *
     34 *  @ingroup ClassicMP
    3335 *
    3436 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/eventset.h

    rb053cab rc85ab23  
    2121
    2222/**
    23  *  @defgroup ClassicEventSet Classic API Event Set
     23 *  @defgroup ClassicEventSet Event Sets
     24 *
     25 *  @ingroup ClassicRTEMS
    2426 *
    2527 *  This encapsulates functionality related to Classic API
  • cpukit/rtems/include/rtems/rtems/intr.h

    rb053cab rc85ab23  
    2828
    2929/**
    30  *  @defgroup ClassicINTR Classic API Interrupt
     30 *  @defgroup ClassicINTR Interrupts
     31 *
     32 *  @ingroup ClassicRTEMS
    3133 *
    3234 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/message.h

    rb053cab rc85ab23  
    5454
    5555/**
    56  *  @defgroup ClassicMessageQueue Classic API Message Queue
     56 *  @defgroup ClassicMessageQueue Message Queues
     57 *
     58 *  @ingroup ClassicRTEMS
    5759 *
    5860 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/modes.h

    rb053cab rc85ab23  
    2020
    2121/**
    22  *  @defgroup ClassicModes Classic API Modes
     22 *  @defgroup ClassicModes Modes
     23 *
     24 *  @ingroup ClassicRTEMS
    2325 *
    2426 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/mp.h

    rb053cab rc85ab23  
    2020
    2121/**
    22  *  @defgroup ClassicMP Classic API Multiprocessing
     22 *  @defgroup ClassicMP Multiprocessing
     23 *
     24 *  @ingroup ClassicRTEMS
    2325 *
    2426 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/msgmp.h

    rb053cab rc85ab23  
    3131
    3232/**
    33  *  @defgroup ClassicMsgMP Classic API Message Queue MP Support
     33 *  @defgroup ClassicMsgMP Message Queue MP Support
     34 *
     35 *  @ingroup ClassicMP
    3436 *
    3537 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/object.h

    rb053cab rc85ab23  
    2626
    2727/**
    28  *  @defgroup ClassicClassInfo Classic API Class Information
     28 *  @defgroup ClassicClassInfo Object Class Information
     29 *
     30 *  @ingroup ClassicRTEMS
    2931 *
    3032 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/part.h

    rb053cab rc85ab23  
    5151
    5252/**
    53  *  @defgroup ClassicPart Classic API Partition
     53 *  @defgroup ClassicPart Partitions
     54 *
     55 *  @ingroup ClassicRTEMS
    5456 *
    5557 *  This encapsulates functionality related to the
  • cpukit/rtems/include/rtems/rtems/partmp.h

    rb053cab rc85ab23  
    3131
    3232/**
    33  *  @defgroup ClassicPartMP Classic API Partition MP Support
     33 *  @defgroup ClassicPartMP Partition MP Support
     34 *
     35 *  @ingroup ClassicMP
    3436 *
    3537 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/ratemon.h

    rb053cab rc85ab23  
    4141
    4242/**
    43  *  @defgroup ClassicRateMon Classic API Rate Monotonic
     43 *  @defgroup ClassicRateMon Rate Monotonic Scheduler
     44 *
     45 *  @ingroup ClassicRTEMS
    4446 *
    4547 *  This encapsulates functionality related to the
  • cpukit/rtems/include/rtems/rtems/region.h

    rb053cab rc85ab23  
    3939
    4040/**
    41  *  @defgroup ClassicRegion Classic API Region
     41 *  @defgroup ClassicRegion Regions
     42 *
     43 *  @ingroup ClassicRTEMS
    4244 *
    4345 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/regionmp.h

    rb053cab rc85ab23  
    3131
    3232/**
    33  *  @defgroup ClassicRegionMP Classic API Region MP Support
     33 *  @defgroup ClassicRegionMP Region MP Support
     34 *
     35 *  @ingroup ClassicMP
    3436 *
    3537 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/rtemsapi.h

    rb053cab rc85ab23  
    2121
    2222/**
    23  *  @addtogroup ClassicRTEMS
    24  *  @{
    25  */
    26 
    27 /**
    2823 *  _RTEMS_API_Initialize
    2924 *
  • cpukit/rtems/include/rtems/rtems/sem.h

    rb053cab rc85ab23  
    5353
    5454/**
    55  *  @defgroup ClassicSem Classic API Semaphore
     55 *  @defgroup ClassicSem Semaphores
     56 *
     57 *  @ingroup ClassicRTEMS
    5658 *
    5759 *  This encapsulates functionality related to the Classic API
  • cpukit/rtems/include/rtems/rtems/semmp.h

    rb053cab rc85ab23  
    3131
    3232/**
    33  *  @defgroup ClassicSEM Classic API Semaphore MP Support
     33 *  @defgroup ClassicSEM Semaphore MP Support
     34 *
     35 *  @ingroup ClassicMP
    3436 *
    3537 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/signal.h

    rb053cab rc85ab23  
    2626
    2727/**
    28  *  @defgroup ClassicSignal Classic API Signal
     28 *  @defgroup ClassicSignal Signals
     29 *
     30 *  @ingroup ClassicRTEMS
    2931 *
    3032 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/signalmp.h

    rb053cab rc85ab23  
    3030
    3131/**
    32  *  @defgroup ClassicSignalMP Classic API Signal MP Support
     32 *  @defgroup ClassicSignalMP Signal MP Support
     33 *
     34 *  @ingroup ClassicMP
    3335 *
    3436 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/status.h

    rb053cab rc85ab23  
    2020
    2121/**
    22  *  @defgroup ClassicStatus Classic API Status
     22 *  @defgroup ClassicStatus Status Codes
     23 *
     24 *  @ingroup ClassicRTEMS
    2325 *
    2426 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/support.h

    rb053cab rc85ab23  
    11/**
    2  * @file rtems/rtems/support.h
     2 * @file
    33 *
    4  *  This include file contains information about support functions for
    5  *  the RTEMS API.
     4 * @ingroup ClassicRTEMS
     5 *
     6 * @ingroup ClassicRTEMSWorkspace
     7 *
     8 * @brief Classic API support.
    69 */
    710
     
    2629
    2730/**
    28  *  @addtogroup ClassicRTEMS
    29  *  @{
     31 * @addtogroup ClassicRTEMS
     32 *
     33 * @{
    3034 */
    3135
    3236/**
    33  *  @brief milliseconds to microseconds
    34  *
    35  *  This is the public milliseconds to microseconds conversion.
     37 * @brief Returns the number of micro seconds for the milli seconds value @a _ms.
    3638 */
    3739#define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) \
     
    3941
    4042/**
    41  *  @brief milliseconds to ticks
    42  *
    43  *  This is the public milliseconds to ticks conversion.
     43 * @brief Returns the number of ticks for the milli seconds value @a _ms.
    4444 */
    4545#define RTEMS_MILLISECONDS_TO_TICKS(_ms) \
     
    4848
    4949/**
    50  *  @brief microseconds to ticks
    51  *
    52  *  This is the public microseconds to tick conversion.
     50 * @brief Returns the number of ticks for the micro seconds value @a _us.
    5351 */
    54 #define RTEMS_MICROSECONDS_TO_TICKS(_ms) \
    55        ((_ms) / rtems_configuration_get_microseconds_per_tick())
     52#define RTEMS_MICROSECONDS_TO_TICKS(_us) \
     53       ((_us) / rtems_configuration_get_microseconds_per_tick())
     54
     55/** @} */
    5656
    5757/**
    58  *  @brief get workspace information
     58 * @defgroup ClassicRTEMSWorkspace Workspace
    5959 *
    60  *  This returns information about the heap that is used as
    61  *  the RTEMS Executive Workspace.
     60 * @ingroup ClassicRTEMS
    6261 *
    63  *  @param[in] the_info
     62 * Workspace definitions.
    6463 *
    65  *  @return true if successful
     64 * @{
     65 */
     66
     67/**
     68 * @brief Gets workspace information.
     69 *
     70 * Returns information about the heap that is used as the RTEMS Executive
     71 * Workspace in @a the_info.
     72 *
     73 * Returns @c true if successful, and @a false otherwise.
    6674 */
    6775bool rtems_workspace_get_information(
     
    7078
    7179/**
    72  *  @brief allocate memory from workspace
     80 * @brief Allocates memory from the workspace.
    7381 *
    74  *  This allocates memory from the the RTEMS Executive Workspace.
     82 * A number of @a bytes bytes will be allocated from the RTEMS Executive
     83 * Workspace and returned in @a pointer.
    7584 *
    76  *  @param[in] bytes is the number of bytes to allocate
    77  *  @param[in] pointer is the returned pointer to allocated memory
    78  *
    79  *  @return true if successful
     85 * Returns @c true if successful, and @a false otherwise.
    8086 */
    8187bool rtems_workspace_allocate(
     
    8591
    8692/**
    87  * @brief free memory back to the workspace
     93 * @brief Frees memory allocated from the workspace.
    8894 *
    89  *  This frees memory that was allocated from   
    90  *  the RTEMS Executive Workspace.
     95 * This frees the memory indicated by @a pointer that was allocated from the
     96 * RTEMS Executive Workspace.
    9197 *
    92  *  @param[in] pointer is the allocated workspace
    93  *
    94  *  @return true if successful
     98 * Returns @c true if successful, and @a false otherwise.
    9599 */
    96100bool rtems_workspace_free(
    97101  void *pointer
    98102);
     103
     104/** @} */
    99105
    100106#ifndef __RTEMS_APPLICATION__
  • cpukit/rtems/include/rtems/rtems/taskmp.h

    rb053cab rc85ab23  
    2727
    2828/**
    29  *  @defgroup ClassicTaskMP Classic API Task MP Support
     29 *  @defgroup ClassicTaskMP Task MP Support
     30 *
     31 *  @ingroup ClassicMP
    3032 *
    3133 *  This encapsulates functionality which XXX
  • cpukit/rtems/include/rtems/rtems/tasks.h

    rb053cab rc85ab23  
    5656
    5757/**
    58  *  @defgroup ClassicTasks Classic API Tasks
     58 *  @defgroup ClassicTasks Tasks
     59 *
     60 *  @ingroup ClassicRTEMS
    5961 *
    6062 *  This encapsulates functionality which X XX
  • cpukit/rtems/include/rtems/rtems/timer.h

    rb053cab rc85ab23  
    5757
    5858/**
    59  *  @defgroup ClassicTimer Classic API Timer
     59 *  @defgroup ClassicTimer Timers
     60 *
     61 *  @ingroup ClassicRTEMS
    6062 *
    6163 *  This encapsulates functionality related to the Classic API Timer
  • cpukit/rtems/include/rtems/rtems/types.h

    rb053cab rc85ab23  
    1919
    2020/**
    21  *  @defgroup ClassicTypes Classic API Types
     21 *  @defgroup ClassicTypes Types
     22 *
     23 *  @ingroup ClassicRTEMS
    2224 *
    2325 *  This encapsulates functionality which XXX
  • cpukit/rtems/inline/rtems/rtems/support.inl

    rb053cab rc85ab23  
    11/**
    2  * @file rtems/rtems/support.inl
     2 * @file
    33 *
    4  *  This include file contains the static inline implementation of all
    5  *  of the inlined routines specific to the RTEMS API.
     4 * @ingroup ClassicRTEMS
     5 *
     6 * @brief Classic API support.
    67 */
    78
     
    2425
    2526/**
    26  *  @addtogroup ClassicSupport
    27  *  @{
     27 * @addtogroup ClassicRTEMS
     28 *
     29 * @{
    2830 */
    2931
    3032/**
    31  *  rtems_is_name_valid
    32  *
    33  *  This function returns TRUE if the name is valid, and FALSE otherwise.
     33 * @brief Returns @c true if the name is valid, and @c false otherwise.
    3434 */
    3535RTEMS_INLINE_ROUTINE bool rtems_is_name_valid (
     
    4141
    4242/**
    43  *  rtems_name_to_characters
    44  *
    45  *  This function breaks the object name into the four component
    46  *  characters C1, C2, C3, and C4.
     43 * @brief Breaks the object name into the four component characters @a c1,
     44 * @a c2, @a c3, and @a c4.
    4745 */
    4846RTEMS_INLINE_ROUTINE void rtems_name_to_characters(
     
    6058}
    6159
    62 /**@}*/
     60/** @} */
    6361
    6462#endif
Note: See TracChangeset for help on using the changeset viewer.