<div dir="ltr"><div dir="ltr">Looks fine to me.</div><div><br></div><div>Some of them don't add the @par notes, is there a rationale for when it is/isn't there? (It looks like maybe that is for doxygen of macros.)</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 25, 2021 at 1:32 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Place the paragraphs in the same order as the directive documentation in<br>
the RTEMS Classic API Guide.<br>
<br>
Update #3993.<br>
---<br>
cpukit/include/rtems/config.h | 105 +++++++-----<br>
cpukit/include/rtems/io.h | 128 ++++++++-------<br>
cpukit/include/rtems/rtems/attr.h | 8 +<br>
cpukit/include/rtems/rtems/config.h | 45 +++---<br>
cpukit/include/rtems/rtems/event.h | 76 +++++----<br>
cpukit/include/rtems/rtems/modes.h | 17 +-<br>
cpukit/include/rtems/rtems/object.h | 188 +++++++++++++---------<br>
cpukit/include/rtems/rtems/part.h | 222 ++++++++++++++------------<br>
cpukit/include/rtems/rtems/status.h | 5 +-<br>
cpukit/include/rtems/rtems/timer.h | 207 +++++++++++++-----------<br>
cpukit/include/rtems/score/basedefs.h | 16 +-<br>
11 files changed, 577 insertions(+), 440 deletions(-)<br>
<br>
diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h<br>
index cc54a25d9e..a3eec39584 100644<br>
--- a/cpukit/include/rtems/config.h<br>
+++ b/cpukit/include/rtems/config.h<br>
@@ -112,10 +112,11 @@ const char *rtems_get_copyright_notice( void );<br>
* @brief Indicates if the RTEMS Workspace is configured to be zeroed during<br>
* system initialization for this application.<br>
*<br>
- * See #CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY.<br>
- *<br>
* @return Returns true, if the RTEMS Workspace is configured to be zeroed<br>
* during system initialization for this application, otherwise false.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY.<br>
*/<br>
#define rtems_configuration_get_do_zero_of_workspace() _Memory_Zero_before_use<br>
<br>
@@ -126,9 +127,10 @@ const char *rtems_get_copyright_notice( void );<br>
*<br>
* @brief Gets the IDLE task entry of this application.<br>
*<br>
- * See #CONFIGURE_IDLE_TASK_BODY.<br>
- *<br>
* @return Returns the IDLE task entry of this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_IDLE_TASK_BODY.<br>
*/<br>
#define rtems_configuration_get_idle_task() _Thread_Idle_body<br>
<br>
@@ -139,9 +141,10 @@ const char *rtems_get_copyright_notice( void );<br>
*<br>
* @brief Gets the IDLE task stack size in bytes of this application.<br>
*<br>
- * See #CONFIGURE_IDLE_TASK_STACK_SIZE.<br>
- *<br>
* @return Returns the IDLE task stack size in bytes of this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_IDLE_TASK_STACK_SIZE.<br>
*/<br>
#define rtems_configuration_get_idle_task_stack_size() _Thread_Idle_stack_size<br>
<br>
@@ -152,9 +155,10 @@ const char *rtems_get_copyright_notice( void );<br>
*<br>
* @brief Gets the interrupt stack size in bytes of this application.<br>
*<br>
- * See #CONFIGURE_INTERRUPT_STACK_SIZE.<br>
- *<br>
* @return Returns the interrupt stack size in bytes of this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_INTERRUPT_STACK_SIZE.<br>
*/<br>
#define rtems_configuration_get_interrupt_stack_size() \<br>
((size_t) _ISR_Stack_size)<br>
@@ -167,10 +171,11 @@ const char *rtems_get_copyright_notice( void );<br>
* @brief Gets the maximum number of Classic API User Extensions configured for<br>
* this application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_USER_EXTENSIONS.<br>
- *<br>
* @return Returns the maximum number of Classic API User Extensions configured<br>
* for this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_USER_EXTENSIONS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_extensions( void );<br>
<br>
@@ -182,15 +187,18 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the maximum number of processors configured for this<br>
* application.<br>
*<br>
+ * @return Returns the maximum number of processors configured for this<br>
+ * application.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* The actual number of processors available to the application is returned by<br>
* rtems_scheduler_get_processor_maximum() which less than or equal to the<br>
* configured maximum number of processors (#CONFIGURE_MAXIMUM_PROCESSORS).<br>
*<br>
* In uniprocessor configurations, this macro is a compile time constant which<br>
* evaluates to one.<br>
- *<br>
- * @return Returns the maximum number of processors configured for this<br>
- * application.<br>
+ * @endparblock<br>
*/<br>
#define rtems_configuration_get_maximum_processors() \<br>
_SMP_Processor_configured_maximum<br>
@@ -203,10 +211,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the number of microseconds per clock tick configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MICROSECONDS_PER_TICK.<br>
- *<br>
* @return Returns the number of microseconds per clock tick configured for<br>
* this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MICROSECONDS_PER_TICK.<br>
*/<br>
#define rtems_configuration_get_microseconds_per_tick() \<br>
_Watchdog_Microseconds_per_tick<br>
@@ -219,10 +228,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the number of milliseconds per clock tick configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MICROSECONDS_PER_TICK.<br>
- *<br>
* @return Returns the number of milliseconds per clock tick configured for<br>
* this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MICROSECONDS_PER_TICK.<br>
*/<br>
#define rtems_configuration_get_milliseconds_per_tick() \<br>
( _Watchdog_Microseconds_per_tick / 1000 )<br>
@@ -235,10 +245,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the number of microseconds per clock tick configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MICROSECONDS_PER_TICK.<br>
- *<br>
* @return Returns the number of microseconds per clock tick configured for<br>
* this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MICROSECONDS_PER_TICK.<br>
*/<br>
#define rtems_configuration_get_nanoseconds_per_tick() \<br>
_Watchdog_Nanoseconds_per_tick<br>
@@ -251,10 +262,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the number of initial extensions configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_INITIAL_EXTENSIONS.<br>
- *<br>
* @return Returns the number of initial extensions configured for this<br>
* application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_INITIAL_EXTENSIONS.<br>
*/<br>
#define rtems_configuration_get_number_of_initial_extensions() \<br>
((uint32_t) _User_extensions_Initial_count)<br>
@@ -267,10 +279,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the thread stack allocator allocate hook configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_TASK_STACK_ALLOCATOR.<br>
- *<br>
* @return Returns the thread stack allocator allocate hook configured for this<br>
* application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_TASK_STACK_ALLOCATOR.<br>
*/<br>
#define rtems_configuration_get_stack_allocate_hook() _Stack_Allocator_allocate<br>
<br>
@@ -282,10 +295,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the thread stack allocator initialization hook configured for<br>
* this application.<br>
*<br>
- * See #CONFIGURE_TASK_STACK_ALLOCATOR_INIT.<br>
- *<br>
* @return Returns the thread stack allocator initialization hook configured<br>
* for this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_TASK_STACK_ALLOCATOR_INIT.<br>
*/<br>
#define rtems_configuration_get_stack_allocate_init_hook() \<br>
_Stack_Allocator_initialize<br>
@@ -298,10 +312,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Indicates if the thread stack allocator is configured to avoid the<br>
* RTEMS Workspace for this application.<br>
*<br>
- * See #CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE.<br>
- *<br>
* @return Returns true, if the thread stack allocator is configured to avoid<br>
* the RTEMS Workspace for this application, otherwise false.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE.<br>
*/<br>
#define rtems_configuration_get_stack_allocator_avoids_work_space() \<br>
_Stack_Allocator_avoids_workspace<br>
@@ -314,10 +329,11 @@ uint32_t rtems_configuration_get_maximum_extensions( void );<br>
* @brief Gets the thread stack allocator free hook configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_TASK_STACK_DEALLOCATOR.<br>
- *<br>
* @return Returns the thread stack allocator free hook configured for this<br>
* application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_TASK_STACK_DEALLOCATOR.<br>
*/<br>
#define rtems_configuration_get_stack_free_hook() _Stack_Allocator_free<br>
<br>
@@ -341,10 +357,11 @@ uintptr_t rtems_configuration_get_stack_space_size( void );<br>
*<br>
* @brief Gets the clock ticks per timeslice configured for this application.<br>
*<br>
- * See #CONFIGURE_TICKS_PER_TIMESLICE.<br>
- *<br>
* @return Returns the clock ticks per timeslice configured for this<br>
* application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_TICKS_PER_TIMESLICE.<br>
*/<br>
#define rtems_configuration_get_ticks_per_timeslice() \<br>
_Watchdog_Ticks_per_timeslice<br>
@@ -357,10 +374,11 @@ uintptr_t rtems_configuration_get_stack_space_size( void );<br>
* @brief Indicates if the RTEMS Workspace and C Program Heap are configured to<br>
* be unified for this application.<br>
*<br>
- * See #CONFIGURE_UNIFIED_WORK_AREAS.<br>
- *<br>
* @return Returns true, if the RTEMS Workspace and C Program Heap are<br>
* configured to be unified for this application, otherwise false.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_UNIFIED_WORK_AREAS.<br>
*/<br>
#define rtems_configuration_get_unified_work_area() _Workspace_Is_unified<br>
<br>
@@ -438,12 +456,13 @@ const char *rtems_get_version_string( void );<br>
*<br>
* @brief Indicates if the resource is unlimited.<br>
*<br>
- * This function is implemented as a macro and can be used to define compile<br>
- * time constants.<br>
- *<br>
* @param _resource is the resource number.<br>
*<br>
* @return Returns true, if the resource is unlimited, otherwise false.<br>
+ *<br>
+ * @par Notes<br>
+ * This function is implemented as a macro and can be used to define compile<br>
+ * time constants.<br>
*/<br>
#define rtems_resource_is_unlimited( _resource ) \<br>
_Objects_Is_unlimited( _resource )<br>
@@ -455,12 +474,13 @@ const char *rtems_get_version_string( void );<br>
*<br>
* @brief Gets the maximum number per allocation of a resource number.<br>
*<br>
- * This function is implemented as a macro and can be used to define compile<br>
- * time constants.<br>
- *<br>
* @param _resource is the resource number.<br>
*<br>
* @return Returns the maximum number per allocation of a resource number.<br>
+ *<br>
+ * @par Notes<br>
+ * This function is implemented as a macro and can be used to define compile<br>
+ * time constants.<br>
*/<br>
#define rtems_resource_maximum_per_allocation( _resource ) \<br>
_Objects_Maximum_per_allocation( _resource )<br>
@@ -510,13 +530,14 @@ typedef Stack_Allocator_free rtems_stack_free_hook;<br>
* @brief Augments the resource number so that it indicates an unlimited<br>
* resource.<br>
*<br>
- * This function is implemented as a macro and can be used to define compile<br>
- * time constants.<br>
- *<br>
* @param _resource is the resource number to augment.<br>
*<br>
* @return Returns the resource number augmented to indicate an unlimited<br>
* resource.<br>
+ *<br>
+ * @par Notes<br>
+ * This function is implemented as a macro and can be used to define compile<br>
+ * time constants.<br>
*/<br>
#define rtems_resource_unlimited( _resource ) \<br>
( ( _resource ) | RTEMS_UNLIMITED_OBJECTS )<br>
diff --git a/cpukit/include/rtems/io.h b/cpukit/include/rtems/io.h<br>
index 445f24cb78..f80d2cebe1 100644<br>
--- a/cpukit/include/rtems/io.h<br>
+++ b/cpukit/include/rtems/io.h<br>
@@ -83,6 +83,7 @@ extern "C" {<br>
* @brief This type shall be used in device driver entry declarations and<br>
* definitions.<br>
*<br>
+ * @par Notes<br>
* Device driver entries return an #rtems_status_code status code. This type<br>
* definition helps to document device driver entries in the source code.<br>
*/<br>
@@ -95,6 +96,7 @@ typedef rtems_status_code rtems_device_driver;<br>
*<br>
* @brief This integer type represents the major number of devices.<br>
*<br>
+ * @par Notes<br>
* The major number of a device is determined by rtems_io_register_driver() and<br>
* the application configuration (see #CONFIGURE_MAXIMUM_DRIVERS) .<br>
*/<br>
@@ -107,6 +109,7 @@ typedef uint32_t rtems_device_major_number;<br>
*<br>
* @brief This integer type represents the minor number of devices.<br>
*<br>
+ * @par Notes<br>
* The minor number of devices is managed by the device driver.<br>
*/<br>
typedef uint32_t rtems_device_minor_number;<br>
@@ -186,13 +189,6 @@ typedef struct {<br>
* @brief Registers and initializes the device with the specified device driver<br>
* address table and device major number in the Device Driver Table.<br>
*<br>
- * If the device major number equals zero a device major number will be<br>
- * obtained. The device major number of the registered driver will be<br>
- * returned.<br>
- *<br>
- * After a successful registration, the rtems_io_initialize() directive will be<br>
- * called to initialize the device.<br>
- *<br>
* @param major is the device major number. Use a value of zero to let the<br>
* system obtain a device major number automatically.<br>
*<br>
@@ -221,6 +217,16 @@ typedef struct {<br>
* context.<br>
*<br>
* @return Other status codes may be returned by rtems_io_initialize().<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * If the device major number equals zero a device major number will be<br>
+ * obtained. The device major number of the registered driver will be<br>
+ * returned.<br>
+ *<br>
+ * After a successful registration, the rtems_io_initialize() directive will be<br>
+ * called to initialize the device.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_io_register_driver(<br>
rtems_device_major_number major,<br>
@@ -236,8 +242,6 @@ rtems_status_code rtems_io_register_driver(<br>
* @brief Removes a device driver specified by the device major number from the<br>
* Device Driver Table.<br>
*<br>
- * Currently no specific checks are made and the driver is not closed.<br>
- *<br>
* @param major is the major number of the device.<br>
*<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
@@ -246,6 +250,9 @@ rtems_status_code rtems_io_register_driver(<br>
*<br>
* @retval ::RTEMS_CALLED_FROM_ISR The directive was called from interrupt<br>
* context.<br>
+ *<br>
+ * @par Notes<br>
+ * Currently no specific checks are made and the driver is not closed.<br>
*/<br>
rtems_status_code rtems_io_unregister_driver(<br>
rtems_device_major_number major<br>
@@ -259,17 +266,6 @@ rtems_status_code rtems_io_unregister_driver(<br>
* @brief Initializes the device specified by the device major and minor<br>
* numbers.<br>
*<br>
- * This directive calls the device driver initialization entry registered in<br>
- * the Device Driver Table for the specified device major number.<br>
- *<br>
- * This directive is automatically invoked for each device driver defined by<br>
- * the application configuration during the system initialization and via the<br>
- * rtems_io_register_driver() directive.<br>
- *<br>
- * A device driver initialization entry is responsible for initializing all<br>
- * hardware and data structures associated with a device. If necessary, it can<br>
- * allocate memory to be used during other operations.<br>
- *<br>
* @param major is the major number of the device.<br>
*<br>
* @param minor is the minor number of the device.<br>
@@ -277,12 +273,26 @@ rtems_status_code rtems_io_unregister_driver(<br>
* @param argument is the argument passed to the device driver initialization<br>
* entry.<br>
*<br>
+ * This directive calls the device driver initialization entry registered in<br>
+ * the Device Driver Table for the specified device major number.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The device major number was invalid.<br>
*<br>
* @return Other status codes may be returned by the device driver<br>
* initialization entry.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive is automatically invoked for each device driver defined by<br>
+ * the application configuration during the system initialization and via the<br>
+ * rtems_io_register_driver() directive.<br>
+ *<br>
+ * A device driver initialization entry is responsible for initializing all<br>
+ * hardware and data structures associated with a device. If necessary, it can<br>
+ * allocate memory to be used during other operations.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_io_initialize(<br>
rtems_device_major_number major,<br>
@@ -298,8 +308,6 @@ rtems_status_code rtems_io_initialize(<br>
* @brief Registers the device specified by the device major and minor numbers<br>
* in the file system under the specified name.<br>
*<br>
- * The device is registered as a character device.<br>
- *<br>
* @param device_name is the device name in the file system.<br>
*<br>
* @param major is the device major number.<br>
@@ -310,6 +318,9 @@ rtems_status_code rtems_io_initialize(<br>
*<br>
* @retval ::RTEMS_TOO_MANY The name was already in use or other errors<br>
* occurred.<br>
+ *<br>
+ * @par Notes<br>
+ * The device is registered as a character device.<br>
*/<br>
rtems_status_code rtems_io_register_name(<br>
const char *device_name,<br>
@@ -324,23 +335,24 @@ rtems_status_code rtems_io_register_name(<br>
*<br>
* @brief Opens the device specified by the device major and minor numbers.<br>
*<br>
- * This directive calls the device driver open entry registered in the Device<br>
- * Driver Table for the specified device major number.<br>
- *<br>
- * The open entry point is commonly used by device drivers to provide exclusive<br>
- * access to a device.<br>
- *<br>
* @param major is the major number of the device.<br>
*<br>
* @param minor is the minor number of the device.<br>
*<br>
* @param argument is the argument passed to the device driver close entry.<br>
*<br>
+ * This directive calls the device driver open entry registered in the Device<br>
+ * Driver Table for the specified device major number.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The device major number was invalid.<br>
*<br>
* @return Other status codes may be returned by the device driver open entry.<br>
+ *<br>
+ * @par Notes<br>
+ * The open entry point is commonly used by device drivers to provide exclusive<br>
+ * access to a device.<br>
*/<br>
rtems_status_code rtems_io_open(<br>
rtems_device_major_number major,<br>
@@ -355,23 +367,24 @@ rtems_status_code rtems_io_open(<br>
*<br>
* @brief Closes the device specified by the device major and minor numbers.<br>
*<br>
- * This directive calls the device driver close entry registered in the Device<br>
- * Driver Table for the specified device major number.<br>
- *<br>
- * The close entry point is commonly used by device drivers to relinquish<br>
- * exclusive access to a device.<br>
- *<br>
* @param major is the major number of the device.<br>
*<br>
* @param minor is the minor number of the device.<br>
*<br>
* @param argument is the argument passed to the device driver close entry.<br>
*<br>
+ * This directive calls the device driver close entry registered in the Device<br>
+ * Driver Table for the specified device major number.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The device major number was invalid.<br>
*<br>
* @return Other status codes may be returned by the device driver close entry.<br>
+ *<br>
+ * @par Notes<br>
+ * The close entry point is commonly used by device drivers to relinquish<br>
+ * exclusive access to a device.<br>
*/<br>
rtems_status_code rtems_io_close(<br>
rtems_device_major_number major,<br>
@@ -387,24 +400,25 @@ rtems_status_code rtems_io_close(<br>
* @brief Reads from the device specified by the device major and minor<br>
* numbers.<br>
*<br>
- * This directive calls the device driver read entry registered in the Device<br>
- * Driver Table for the specified device major number.<br>
- *<br>
- * Read operations typically require a buffer address as part of the argument<br>
- * parameter block. The contents of this buffer will be replaced with data<br>
- * from the device.<br>
- *<br>
* @param major is the major number of the device.<br>
*<br>
* @param minor is the minor number of the device.<br>
*<br>
* @param argument is the argument passed to the device driver read entry.<br>
*<br>
+ * This directive calls the device driver read entry registered in the Device<br>
+ * Driver Table for the specified device major number.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The device major number was invalid.<br>
*<br>
* @return Other status codes may be returned by the device driver read entry.<br>
+ *<br>
+ * @par Notes<br>
+ * Read operations typically require a buffer address as part of the argument<br>
+ * parameter block. The contents of this buffer will be replaced with data<br>
+ * from the device.<br>
*/<br>
rtems_status_code rtems_io_read(<br>
rtems_device_major_number major,<br>
@@ -419,23 +433,24 @@ rtems_status_code rtems_io_read(<br>
*<br>
* @brief Writes to the device specified by the device major and minor numbers.<br>
*<br>
- * This directive calls the device driver write entry registered in the Device<br>
- * Driver Table for the specified device major number.<br>
- *<br>
- * Write operations typically require a buffer address as part of the argument<br>
- * parameter block. The contents of this buffer will be sent to the device.<br>
- *<br>
* @param major is the major number of the device.<br>
*<br>
* @param minor is the minor number of the device.<br>
*<br>
* @param argument is the argument passed to the device driver write entry.<br>
*<br>
+ * This directive calls the device driver write entry registered in the Device<br>
+ * Driver Table for the specified device major number.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The device major number was invalid.<br>
*<br>
* @return Other status codes may be returned by the device driver write entry.<br>
+ *<br>
+ * @par Notes<br>
+ * Write operations typically require a buffer address as part of the argument<br>
+ * parameter block. The contents of this buffer will be sent to the device.<br>
*/<br>
rtems_status_code rtems_io_write(<br>
rtems_device_major_number major,<br>
@@ -450,15 +465,6 @@ rtems_status_code rtems_io_write(<br>
*<br>
* @brief Controls the device specified by the device major and minor numbers.<br>
*<br>
- * This directive calls the device driver I/O control entry registered in the<br>
- * Device Driver Table for the specified device major number.<br>
- *<br>
- * The exact functionality of the driver entry called by this directive is<br>
- * driver dependent. It should not be assumed that the control entries of two<br>
- * device drivers are compatible. For example, an RS-232 driver I/O control<br>
- * operation may change the baud of a serial line, while an I/O control<br>
- * operation for a floppy disk driver may cause a seek operation.<br>
- *<br>
* @param major is the major number of the device.<br>
*<br>
* @param minor is the minor number of the device.<br>
@@ -466,12 +472,22 @@ rtems_status_code rtems_io_write(<br>
* @param argument is the argument passed to the device driver I/O control<br>
* entry.<br>
*<br>
+ * This directive calls the device driver I/O control entry registered in the<br>
+ * Device Driver Table for the specified device major number.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The device major number was invalid.<br>
*<br>
* @return Other status codes may be returned by the device driver I/O control<br>
* entry.<br>
+ *<br>
+ * @par Notes<br>
+ * The exact functionality of the driver entry called by this directive is<br>
+ * driver dependent. It should not be assumed that the control entries of two<br>
+ * device drivers are compatible. For example, an RS-232 driver I/O control<br>
+ * operation may change the baud of a serial line, while an I/O control<br>
+ * operation for a floppy disk driver may cause a seek operation.<br>
*/<br>
rtems_status_code rtems_io_control(<br>
rtems_device_major_number major,<br>
diff --git a/cpukit/include/rtems/rtems/attr.h b/cpukit/include/rtems/rtems/attr.h<br>
index baea36aa9f..18a3820e0e 100644<br>
--- a/cpukit/include/rtems/rtems/attr.h<br>
+++ b/cpukit/include/rtems/rtems/attr.h<br>
@@ -88,6 +88,7 @@ extern "C" {<br>
*<br>
* @brief This type represents Classic API attributes.<br>
*<br>
+ * @par Notes<br>
* Attributes are primarily used when creating objects.<br>
*/<br>
typedef uint32_t rtems_attribute;<br>
@@ -162,6 +163,7 @@ typedef uint32_t rtems_attribute;<br>
* by rtems_task_create() or rtems_task_construct() shall be able to use the<br>
* floating point hardware.<br>
*<br>
+ * @par Notes<br>
* On some architectures, there will be a floating point context associated<br>
* with this task.<br>
*/<br>
@@ -175,6 +177,7 @@ typedef uint32_t rtems_attribute;<br>
* @brief This attribute constant indicates that the Classic API object shall<br>
* be a global resource in a multiprocessing network.<br>
*<br>
+ * @par Notes<br>
* This attribute does not refer to SMP systems.<br>
*/<br>
#define RTEMS_GLOBAL 0x00000002<br>
@@ -188,6 +191,7 @@ typedef uint32_t rtems_attribute;<br>
* created by rtems_semaphore_create() shall use the Priority Inheritance<br>
* Protocol.<br>
*<br>
+ * @par Notes<br>
* The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE).<br>
*/<br>
#define RTEMS_INHERIT_PRIORITY 0x00000040<br>
@@ -200,6 +204,7 @@ typedef uint32_t rtems_attribute;<br>
* @brief This attribute constant indicates that the Classic API object shall<br>
* be a local resource in a multiprocessing network.<br>
*<br>
+ * @par Notes<br>
* This attribute does not refer to SMP systems.<br>
*/<br>
#define RTEMS_LOCAL 0x00000000<br>
@@ -213,6 +218,7 @@ typedef uint32_t rtems_attribute;<br>
* created by rtems_semaphore_create() shall use the Multiprocessor Resource<br>
* Sharing Protocol.<br>
*<br>
+ * @par Notes<br>
* The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE).<br>
*/<br>
#define RTEMS_MULTIPROCESSOR_RESOURCE_SHARING 0x00000100<br>
@@ -226,6 +232,7 @@ typedef uint32_t rtems_attribute;<br>
* by rtems_task_create() or rtems_task_construct() will not use the floating<br>
* point hardware.<br>
*<br>
+ * @par Notes<br>
* If the architecture permits it, then the FPU will be disabled when the task<br>
* is executing.<br>
*/<br>
@@ -283,6 +290,7 @@ typedef uint32_t rtems_attribute;<br>
* created by rtems_semaphore_create() shall use the Priority Ceiling<br>
* Protocol.<br>
*<br>
+ * @par Notes<br>
* The semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE).<br>
*/<br>
#define RTEMS_PRIORITY_CEILING 0x00000080<br>
diff --git a/cpukit/include/rtems/rtems/config.h b/cpukit/include/rtems/rtems/config.h<br>
index 76a4a758b9..2a12c8f3cb 100644<br>
--- a/cpukit/include/rtems/rtems/config.h<br>
+++ b/cpukit/include/rtems/rtems/config.h<br>
@@ -190,10 +190,11 @@ rtems_configuration_get_rtems_api_configuration( void );<br>
* @brief Gets the maximum number of Classic API Barriers configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_BARRIERS.<br>
- *<br>
* @return Returns the maximum number of Classic API Barriers configured for<br>
* this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_BARRIERS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_barriers( void );<br>
<br>
@@ -205,10 +206,11 @@ uint32_t rtems_configuration_get_maximum_barriers( void );<br>
* @brief Gets the maximum number of Classic API Message Queues configured for<br>
* this application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_MESSAGE_QUEUES.<br>
- *<br>
* @return Returns the maximum number of Classic API Message Queues configured<br>
* for this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_MESSAGE_QUEUES.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_message_queues( void );<br>
<br>
@@ -220,10 +222,11 @@ uint32_t rtems_configuration_get_maximum_message_queues( void );<br>
* @brief Gets the maximum number of Classic API Partitions configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_PARTITIONS.<br>
- *<br>
* @return Returns the maximum number of Classic API Partitions configured for<br>
* this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_PARTITIONS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_partitions( void );<br>
<br>
@@ -235,10 +238,11 @@ uint32_t rtems_configuration_get_maximum_partitions( void );<br>
* @brief Gets the maximum number of Classic API Rate Monotonic Periods<br>
* configured for this application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_PERIODS.<br>
- *<br>
* @return Returns the maximum number of Classic API Rate Monotonic Periods<br>
* configured for this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_PERIODS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_periods( void );<br>
<br>
@@ -250,10 +254,11 @@ uint32_t rtems_configuration_get_maximum_periods( void );<br>
* @brief Gets the maximum number of Classic API Dual-Ported Memories<br>
* configured for this application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_PORTS.<br>
- *<br>
* @return Returns the maximum number of Classic API Dual-Ported Memories<br>
* configured for this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_PORTS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_ports( void );<br>
<br>
@@ -265,10 +270,11 @@ uint32_t rtems_configuration_get_maximum_ports( void );<br>
* @brief Gets the maximum number of Classic API Regions configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_REGIONS.<br>
- *<br>
* @return Returns the maximum number of Classic API Regions configured for<br>
* this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_REGIONS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_regions( void );<br>
<br>
@@ -280,10 +286,11 @@ uint32_t rtems_configuration_get_maximum_regions( void );<br>
* @brief Gets the maximum number of Classic API Semaphores configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_SEMAPHORES.<br>
- *<br>
* @return Returns the maximum number of Classic API Semaphores configured for<br>
* this application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_SEMAPHORES.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_semaphores( void );<br>
<br>
@@ -295,10 +302,11 @@ uint32_t rtems_configuration_get_maximum_semaphores( void );<br>
* @brief Gets the maximum number of Classic API Tasks configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_TASKS.<br>
- *<br>
* @return Returns the maximum number of Classic API Tasks configured for this<br>
* application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_TASKS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_tasks( void );<br>
<br>
@@ -310,10 +318,11 @@ uint32_t rtems_configuration_get_maximum_tasks( void );<br>
* @brief Gets the maximum number of Classic API Timers configured for this<br>
* application.<br>
*<br>
- * See #CONFIGURE_MAXIMUM_TIMERS.<br>
- *<br>
* @return Returns the maximum number of Classic API Timers configured for this<br>
* application.<br>
+ *<br>
+ * @par Notes<br>
+ * See #CONFIGURE_MAXIMUM_TIMERS.<br>
*/<br>
uint32_t rtems_configuration_get_maximum_timers( void );<br>
<br>
diff --git a/cpukit/include/rtems/rtems/event.h b/cpukit/include/rtems/rtems/event.h<br>
index 8aa115762d..a6d0a16f01 100644<br>
--- a/cpukit/include/rtems/rtems/event.h<br>
+++ b/cpukit/include/rtems/rtems/event.h<br>
@@ -464,10 +464,6 @@ typedef uint32_t rtems_event_set;<br>
/**<br>
* @brief Receives or gets a system event set from the executing task.<br>
*<br>
- * This directive performs the same actions as the rtems_event_receive()<br>
- * directive except that it operates with a different set of events for each<br>
- * task.<br>
- *<br>
* @param event_in is the event set of interest. Use #RTEMS_PENDING_EVENTS to<br>
* get the pending events.<br>
*<br>
@@ -479,6 +475,10 @@ typedef uint32_t rtems_event_set;<br>
* @param event_out is the pointer to an event set. The received or pending<br>
* events are stored in the referenced event set if the operation was<br>
* successful.<br>
+ *<br>
+ * This directive performs the same actions as the rtems_event_receive()<br>
+ * directive except that it operates with a different set of events for each<br>
+ * task.<br>
*/<br>
rtems_status_code rtems_event_system_receive(<br>
rtems_event_set event_in,<br>
@@ -585,6 +585,10 @@ static inline rtems_status_code rtems_event_transient_send( rtems_id id )<br>
*<br>
* @brief Sends the event set to the task.<br>
*<br>
+ * @param id is the identifier of the target task to receive the event set.<br>
+ *<br>
+ * @param event_in is the event set to send.<br>
+ *<br>
* This directive sends the event set, ``event_in``, to the target task<br>
* identified by ``id``. Based upon the state of the target task, one of the<br>
* following situations applies:<br>
@@ -600,6 +604,13 @@ static inline rtems_status_code rtems_event_transient_send( rtems_id id )<br>
* * The target task is not waiting for events, then the event set is posted<br>
* and left pending.<br>
*<br>
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ID There was no task associated with the identifier<br>
+ * specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* Events can be sent by tasks or an ISR.<br>
*<br>
* Specifying #RTEMS_SELF for ``id`` results in the event set being sent to the<br>
@@ -619,15 +630,7 @@ static inline rtems_status_code rtems_event_transient_send( rtems_id id )<br>
* Sending an event set to a global task which does not reside on the local<br>
* node will generate a request telling the remote node to send the event set<br>
* to the appropriate task.<br>
- *<br>
- * @param id is the identifier of the target task to receive the event set.<br>
- *<br>
- * @param event_in is the event set to send.<br>
- *<br>
- * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ID There was no task associated with the identifier<br>
- * specified by ``id``.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_event_send( rtems_id id, rtems_event_set event_in );<br>
<br>
@@ -638,6 +641,18 @@ rtems_status_code rtems_event_send( rtems_id id, rtems_event_set event_in );<br>
*<br>
* @brief Receives or gets an event set from the calling task.<br>
*<br>
+ * @param event_in is the event set of interest. Use #RTEMS_PENDING_EVENTS to<br>
+ * get the pending events.<br>
+ *<br>
+ * @param option_set is the option set.<br>
+ *<br>
+ * @param ticks is the timeout in clock ticks if the #RTEMS_WAIT option is set.<br>
+ * Use #RTEMS_NO_TIMEOUT to wait potentially forever.<br>
+ *<br>
+ * @param event_out is the pointer to an event set. The received or pending<br>
+ * events are stored in the referenced event set if the operation was<br>
+ * successful.<br>
+ *<br>
* This directive can be used to<br>
*<br>
* * get the pending events of the calling task, or<br>
@@ -680,6 +695,18 @@ rtems_status_code rtems_event_send( rtems_id id, rtems_event_set event_in );<br>
* * Receiving **any** of the input events is selected by the #RTEMS_EVENT_ANY<br>
* option.<br>
*<br>
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ADDRESS The ``event_out`` parameter was NULL.<br>
+ *<br>
+ * @retval ::RTEMS_UNSATISFIED The events of interest were not immediately<br>
+ * available.<br>
+ *<br>
+ * @retval ::RTEMS_TIMEOUT The events of interest were not available within the<br>
+ * specified timeout interval.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive shall be called by a task. Calling this directive from<br>
* interrupt context is undefined behaviour.<br>
*<br>
@@ -697,28 +724,7 @@ rtems_status_code rtems_event_send( rtems_id id, rtems_event_set event_in );<br>
* ``option_set`` parameter. The pending events are returned and the event set<br>
* of the task is cleared. If no events are pending then the<br>
* ::RTEMS_UNSATISFIED status code will be returned.<br>
- *<br>
- * @param event_in is the event set of interest. Use #RTEMS_PENDING_EVENTS to<br>
- * get the pending events.<br>
- *<br>
- * @param option_set is the option set.<br>
- *<br>
- * @param ticks is the timeout in clock ticks if the #RTEMS_WAIT option is set.<br>
- * Use #RTEMS_NO_TIMEOUT to wait potentially forever.<br>
- *<br>
- * @param event_out is the pointer to an event set. The received or pending<br>
- * events are stored in the referenced event set if the operation was<br>
- * successful.<br>
- *<br>
- * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ADDRESS The ``event_out`` parameter was NULL.<br>
- *<br>
- * @retval ::RTEMS_UNSATISFIED The events of interest were not immediately<br>
- * available.<br>
- *<br>
- * @retval ::RTEMS_TIMEOUT The events of interest were not available within the<br>
- * specified timeout interval.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_event_receive(<br>
rtems_event_set event_in,<br>
diff --git a/cpukit/include/rtems/rtems/modes.h b/cpukit/include/rtems/rtems/modes.h<br>
index b711b119b6..559029d2da 100644<br>
--- a/cpukit/include/rtems/rtems/modes.h<br>
+++ b/cpukit/include/rtems/rtems/modes.h<br>
@@ -135,15 +135,16 @@ extern "C" {<br>
* @brief Maps the interrupt level to the associated processor-dependent task<br>
* mode interrupt level.<br>
*<br>
- * The Classic API supports 256 interrupt levels using the least significant<br>
- * eight bits of the mode set. On any particular processor variant, fewer than<br>
- * 256 levels may be supported. At least level 0 (all interrupts enabled) and<br>
- * level 1 (interrupts disabled, on most architectures) are supported.<br>
- *<br>
* @param _interrupt_level is the interrupt level to map.<br>
*<br>
* @return Returns the processor-dependent task mode interrupt level associated<br>
* with the interrupt level.<br>
+ *<br>
+ * @par Notes<br>
+ * The Classic API supports 256 interrupt levels using the least significant<br>
+ * eight bits of the mode set. On any particular processor variant, fewer than<br>
+ * 256 levels may be supported. At least level 0 (all interrupts enabled) and<br>
+ * level 1 (interrupts disabled, on most architectures) are supported.<br>
*/<br>
#define RTEMS_INTERRUPT_LEVEL( _interrupt_level ) \<br>
( ( _interrupt_level ) & RTEMS_INTERRUPT_MASK )<br>
@@ -155,6 +156,7 @@ extern "C" {<br>
*<br>
* @brief This task mode constant has the same value as #RTEMS_INTERRUPT_MASK.<br>
*<br>
+ * @par Notes<br>
* This task mode constant is used by bindings from languages other than C and<br>
* C++.<br>
*/<br>
@@ -177,11 +179,12 @@ typedef uint32_t rtems_mode;<br>
* @brief Maps the interrupt level to the associated processor-dependent task<br>
* mode interrupt level.<br>
*<br>
- * This function is used by bindings from languages other than C and C++.<br>
- *<br>
* @param level is the interrupt level to map.<br>
*<br>
* @return Returns RTEMS_INTERRUPT_LEVEL() for the interrupt level.<br>
+ *<br>
+ * @par Notes<br>
+ * This function is used by bindings from languages other than C and C++.<br>
*/<br>
rtems_mode rtems_interrupt_level_body( uint32_t level );<br>
<br>
diff --git a/cpukit/include/rtems/rtems/object.h b/cpukit/include/rtems/rtems/object.h<br>
index aee6d5c3ed..b6aabe7c1e 100644<br>
--- a/cpukit/include/rtems/rtems/object.h<br>
+++ b/cpukit/include/rtems/rtems/object.h<br>
@@ -145,8 +145,6 @@ typedef struct {<br>
* @brief Builds the object identifier with the lowest index from the API,<br>
* class, and MPCI node components.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @param _api is the API of the object identifier to build.<br>
*<br>
* @param _class is the class of the object identifier to build.<br>
@@ -155,6 +153,9 @@ typedef struct {<br>
*<br>
* @return Returns the object identifier with the lowest index built from the<br>
* API, class, and MPCI node components.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
#define RTEMS_OBJECT_ID_INITIAL( _api, _class, _node ) \<br>
OBJECTS_ID_INITIAL( _api, _class, _node )<br>
@@ -217,8 +218,6 @@ typedef struct {<br>
* @brief Builds the object identifier from the API, class, MPCI node, and<br>
* index components.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @param _api is the API of the object identifier to build.<br>
*<br>
* @param _class is the class of the object identifier to build.<br>
@@ -229,6 +228,9 @@ typedef struct {<br>
*<br>
* @return Returns the object identifier built from the API, class, MPCI node,<br>
* and index components.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
#define rtems_build_id( _api, _class, _node, _index ) \<br>
_Objects_Build_id( _api, _class, _node, _index )<br>
@@ -240,12 +242,6 @@ typedef struct {<br>
*<br>
* @brief Builds the object name composed of the four characters.<br>
*<br>
- * This directive takes the four characters provided as arguments and composes<br>
- * a 32-bit object name with ``_c1`` in the most significant 8-bits and ``_c4``<br>
- * in the least significant 8-bits.<br>
- *<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @param _c1 is the first character of the name.<br>
*<br>
* @param _c2 is the second character of the name.<br>
@@ -254,7 +250,14 @@ typedef struct {<br>
*<br>
* @param _c4 is the fourth character of the name.<br>
*<br>
+ * This directive takes the four characters provided as arguments and composes<br>
+ * a 32-bit object name with ``_c1`` in the most significant 8-bits and ``_c4``<br>
+ * in the least significant 8-bits.<br>
+ *<br>
* @return Returns the object name composed of the four characters.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
#define rtems_build_name( _c1, _c2, _c3, _c4 ) \<br>
_Objects_Build_name( _c1, _c2, _c3, _c4 )<br>
@@ -266,8 +269,6 @@ typedef struct {<br>
*<br>
* @brief Gets the object name associated with the object identifier.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @param id is the object identifier to get the name.<br>
*<br>
* @param[out] name is the pointer to an object name variable. The object name<br>
@@ -286,6 +287,9 @@ typedef struct {<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no object associated with the object<br>
* identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
rtems_status_code rtems_object_get_classic_name(<br>
rtems_id id,<br>
@@ -300,6 +304,12 @@ rtems_status_code rtems_object_get_classic_name(<br>
* @brief Gets the object name associated with the object identifier as a<br>
* string.<br>
*<br>
+ * @param id is the object identifier to get the name.<br>
+ *<br>
+ * @param length is the buffer length in bytes.<br>
+ *<br>
+ * @param[out] name is the pointer to a buffer of the specified length.<br>
+ *<br>
* The object name is stored in the name buffer. If the name buffer length is<br>
* greater than zero, then the stored object name will be ``NUL`` terminated.<br>
* The stored object name may be truncated to fit the length. There is no<br>
@@ -307,15 +317,6 @@ rtems_status_code rtems_object_get_classic_name(<br>
* as a printable string even if the object has the Classic API 32-bit integer<br>
* style name.<br>
*<br>
- * This directive may cause the calling task to be preempted due to an obtain<br>
- * and release of the object allocator mutex.<br>
- *<br>
- * @param id is the object identifier to get the name.<br>
- *<br>
- * @param length is the buffer length in bytes.<br>
- *<br>
- * @param[out] name is the pointer to a buffer of the specified length.<br>
- *<br>
* @retval NULL The ``length`` parameter was 0.<br>
*<br>
* @retval NULL The ``name`` parameter was NULL.<br>
@@ -327,6 +328,10 @@ rtems_status_code rtems_object_get_classic_name(<br>
*<br>
* @return Returns the ``name`` parameter value, if there is an object name<br>
* associated with the object identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive may cause the calling task to be preempted due to an obtain<br>
+ * and release of the object allocator mutex.<br>
*/<br>
char *rtems_object_get_name( rtems_id id, size_t length, char *name );<br>
<br>
@@ -338,27 +343,12 @@ char *rtems_object_get_name( rtems_id id, size_t length, char *name );<br>
* @brief Sets the object name of the object associated with the object<br>
* identifier.<br>
*<br>
- * This directive will set the object name based upon the user string.<br>
- *<br>
- * This directive may cause the calling task to be preempted due to an obtain<br>
- * and release of the object allocator mutex.<br>
- *<br>
- * This directive can be used to set the name of objects which do not have a<br>
- * naming scheme per their API.<br>
- *<br>
- * If the object specified by ``id`` is of a class that has a string name, this<br>
- * directive will free the existing name to the RTEMS Workspace and allocate<br>
- * enough memory from the RTEMS Workspace to make a copy of the string located<br>
- * at ``name``.<br>
- *<br>
- * If the object specified by ``id`` is of a class that has a 32-bit integer<br>
- * style name, then the first four characters in ``name`` will be used to<br>
- * construct the name.<br>
- *<br>
* @param id is the object identifier of the object to set the name.<br>
*<br>
* @param name is the object name to set.<br>
*<br>
+ * This directive will set the object name based upon the user string.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_ADDRESS The ``name`` parameter was NULL.<br>
@@ -371,6 +361,24 @@ char *rtems_object_get_name( rtems_id id, size_t length, char *name );<br>
*<br>
* @retval ::RTEMS_NO_MEMORY There was no memory available to duplicate the<br>
* name.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive may cause the calling task to be preempted due to an obtain<br>
+ * and release of the object allocator mutex.<br>
+ *<br>
+ * This directive can be used to set the name of objects which do not have a<br>
+ * naming scheme per their API.<br>
+ *<br>
+ * If the object specified by ``id`` is of a class that has a string name, this<br>
+ * directive will free the existing name to the RTEMS Workspace and allocate<br>
+ * enough memory from the RTEMS Workspace to make a copy of the string located<br>
+ * at ``name``.<br>
+ *<br>
+ * If the object specified by ``id`` is of a class that has a 32-bit integer<br>
+ * style name, then the first four characters in ``name`` will be used to<br>
+ * construct the name.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
<br>
@@ -381,15 +389,18 @@ rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
*<br>
* @brief Gets the API component of the object identifier.<br>
*<br>
+ * @param _id is the object identifier with the API component to get.<br>
+ *<br>
+ * @return Returns the API component of the object identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive is strictly local and does not impact task scheduling.<br>
*<br>
* This directive does not validate the object identifier provided in ``_id``.<br>
*<br>
* A body is also provided.<br>
- *<br>
- * @param _id is the object identifier with the API component to get.<br>
- *<br>
- * @return Returns the API component of the object identifier.<br>
+ * @endparblock<br>
*/<br>
#define rtems_object_id_get_api( _id ) _Objects_Get_API( _id )<br>
<br>
@@ -400,15 +411,18 @@ rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
*<br>
* @brief Gets the class component of the object identifier.<br>
*<br>
+ * @param _id is the object identifier with the class component to get.<br>
+ *<br>
+ * @return Returns the class component of the object identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive is strictly local and does not impact task scheduling.<br>
*<br>
* This directive does not validate the object identifier provided in ``_id``.<br>
*<br>
* A body is also provided.<br>
- *<br>
- * @param _id is the object identifier with the class component to get.<br>
- *<br>
- * @return Returns the class component of the object identifier.<br>
+ * @endparblock<br>
*/<br>
#define rtems_object_id_get_class( _id ) _Objects_Get_class( _id )<br>
<br>
@@ -419,15 +433,18 @@ rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
*<br>
* @brief Gets the MPCI node component of the object identifier.<br>
*<br>
+ * @param _id is the object identifier with the MPCI node component to get.<br>
+ *<br>
+ * @return Returns the MPCI node component of the object identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive is strictly local and does not impact task scheduling.<br>
*<br>
* This directive does not validate the object identifier provided in ``_id``.<br>
*<br>
* A body is also provided.<br>
- *<br>
- * @param _id is the object identifier with the MPCI node component to get.<br>
- *<br>
- * @return Returns the MPCI node component of the object identifier.<br>
+ * @endparblock<br>
*/<br>
#define rtems_object_id_get_node( _id ) _Objects_Get_node( _id )<br>
<br>
@@ -438,15 +455,18 @@ rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
*<br>
* @brief Gets the index component of the object identifier.<br>
*<br>
+ * @param _id is the object identifier with the index component to get.<br>
+ *<br>
+ * @return Returns the index component of the object identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive is strictly local and does not impact task scheduling.<br>
*<br>
* This directive does not validate the object identifier provided in ``_id``.<br>
*<br>
* A body is also provided.<br>
- *<br>
- * @param _id is the object identifier with the index component to get.<br>
- *<br>
- * @return Returns the index component of the object identifier.<br>
+ * @endparblock<br>
*/<br>
#define rtems_object_id_get_index( _id ) _Objects_Get_index( _id )<br>
<br>
@@ -458,12 +478,15 @@ rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
* @brief Gets the lowest valid value for the API component of an object<br>
* identifier.<br>
*<br>
+ * @return Returns the lowest valid value for the API component of an object<br>
+ * identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive is strictly local and does not impact task scheduling.<br>
*<br>
* A body is also provided.<br>
- *<br>
- * @return Returns the lowest valid value for the API component of an object<br>
- * identifier.<br>
+ * @endparblock<br>
*/<br>
#define rtems_object_id_api_minimum() OBJECTS_INTERNAL_API<br>
<br>
@@ -475,12 +498,15 @@ rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
* @brief Gets the highest valid value for the API component of an object<br>
* identifier.<br>
*<br>
+ * @return Returns the highest valid value for the API component of an object<br>
+ * identifier.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive is strictly local and does not impact task scheduling.<br>
*<br>
* A body is also provided.<br>
- *<br>
- * @return Returns the highest valid value for the API component of an object<br>
- * identifier.<br>
+ * @endparblock<br>
*/<br>
#define rtems_object_id_api_maximum() OBJECTS_APIS_LAST<br>
<br>
@@ -491,13 +517,14 @@ rtems_status_code rtems_object_set_name( rtems_id id, const char *name );<br>
*<br>
* @brief Gets the lowest valid class value of the object API.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @param api is the object API to get the lowest valid class value.<br>
*<br>
* @retval -1 The object API was invalid.<br>
*<br>
* @return Returns the lowest valid class value of the object API.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
int rtems_object_api_minimum_class( int api );<br>
<br>
@@ -508,13 +535,14 @@ int rtems_object_api_minimum_class( int api );<br>
*<br>
* @brief Gets the highest valid class value of the object API.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @param api is the object API to get the highest valid class value.<br>
*<br>
* @retval 0 The object API was invalid.<br>
*<br>
* @return Returns the highest valid class value of the object API.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
int rtems_object_api_maximum_class( int api );<br>
<br>
@@ -525,15 +553,18 @@ int rtems_object_api_maximum_class( int api );<br>
*<br>
* @brief Gets a descriptive name of the object API.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
- * The string returned is from constant space. Do not modify or free it.<br>
- *<br>
* @param api is the object API to get the name.<br>
*<br>
* @retval "BAD API" The API was invalid.<br>
*<br>
* @return Returns a descriptive name of the API, if the API was valid.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
+ *<br>
+ * The string returned is from constant space. Do not modify or free it.<br>
+ * @endparblock<br>
*/<br>
const char *rtems_object_get_api_name( int api );<br>
<br>
@@ -544,10 +575,6 @@ const char *rtems_object_get_api_name( int api );<br>
*<br>
* @brief Gets a descriptive name of the object class of the object API.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
- * The string returned is from constant space. Do not modify or free it.<br>
- *<br>
* @param the_api is the object API of the object class.<br>
*<br>
* @param the_class is the object class of the object API to get the name.<br>
@@ -558,6 +585,13 @@ const char *rtems_object_get_api_name( int api );<br>
*<br>
* @return Returns a descriptive name of the class of the API, if the class of<br>
* the API and the API were valid.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
+ *<br>
+ * The string returned is from constant space. Do not modify or free it.<br>
+ * @endparblock<br>
*/<br>
const char *rtems_object_get_api_class_name( int the_api, int the_class );<br>
<br>
@@ -569,8 +603,6 @@ const char *rtems_object_get_api_class_name( int the_api, int the_class );<br>
* @brief Gets the object class information of the object class of the object<br>
* API.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @param the_api is the object API of the object class.<br>
*<br>
* @param the_class is the object class of the object API to get the class<br>
@@ -585,6 +617,9 @@ const char *rtems_object_get_api_class_name( int the_api, int the_class );<br>
* @retval ::RTEMS_INVALID_ADDRESS The ``info`` parameter was NULL.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The class of the API or the API was invalid.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
rtems_status_code rtems_object_get_class_information(<br>
int the_api,<br>
@@ -599,9 +634,10 @@ rtems_status_code rtems_object_get_class_information(<br>
*<br>
* @brief Gets the local MPCI node number.<br>
*<br>
- * This directive is strictly local and does not impact task scheduling.<br>
- *<br>
* @return Returns the local MPCI node number.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive is strictly local and does not impact task scheduling.<br>
*/<br>
static inline uint16_t rtems_object_get_local_node( void )<br>
{<br>
diff --git a/cpukit/include/rtems/rtems/part.h b/cpukit/include/rtems/rtems/part.h<br>
index 5a747f428b..4979f8a987 100644<br>
--- a/cpukit/include/rtems/rtems/part.h<br>
+++ b/cpukit/include/rtems/rtems/part.h<br>
@@ -86,6 +86,7 @@ extern "C" {<br>
* @brief This constant defines the minimum alignment of a partition buffer in<br>
* bytes.<br>
*<br>
+ * @par Notes<br>
* Use it with RTEMS_ALIGNED() to define the alignment of partition buffer<br>
* types or statically allocated partition buffer areas.<br>
*/<br>
@@ -98,6 +99,23 @@ extern "C" {<br>
*<br>
* @brief Creates a partition.<br>
*<br>
+ * @param name is the name of the partition.<br>
+ *<br>
+ * @param starting_address is the starting address of the buffer area used by<br>
+ * the partition.<br>
+ *<br>
+ * @param length is the length in bytes of the buffer area used by the<br>
+ * partition.<br>
+ *<br>
+ * @param buffer_size is the size in bytes of a buffer managed by the<br>
+ * partition.<br>
+ *<br>
+ * @param attribute_set is the attribute set of the partition.<br>
+ *<br>
+ * @param[out] id is the pointer to an object identifier variable. The<br>
+ * identifier of the created partition object will be stored in this<br>
+ * variable, in case of a successful operation.<br>
+ *<br>
* This directive creates a partition of fixed size buffers from a physically<br>
* contiguous memory space which starts at ``starting_address`` and is<br>
* ``length`` bytes in size. Each allocated buffer is to be of ``buffer_size``<br>
@@ -120,6 +138,34 @@ extern "C" {<br>
* The memory space used for the partition must reside in shared memory.<br>
* Setting the global attribute in a single node system has no effect.<br>
*<br>
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_NAME The partition name was invalid.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ADDRESS The ``id`` parameter was NULL.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_SIZE The ``length`` parameter was 0.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_SIZE The ``buffer_size`` parameter was 0.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_SIZE The ``length`` parameter was less than the<br>
+ * ``buffer_size`` parameter.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_SIZE The ``buffer_size`` parameter was not an<br>
+ * integral multiple of the pointer size.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_SIZE The ``buffer_size`` parameter was less than two<br>
+ * times the pointer size.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ADDRESS The ``starting_address`` parameter was not<br>
+ * on a pointer size boundary.<br>
+ *<br>
+ * @retval ::RTEMS_TOO_MANY There was no inactive object available to create a<br>
+ * new partition. The number of partitions available to the application is<br>
+ * configured through the #CONFIGURE_MAXIMUM_PARTITIONS configuration option.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive may cause the calling task to be preempted due to an obtain<br>
* and release of the object allocator mutex.<br>
*<br>
@@ -151,49 +197,7 @@ extern "C" {<br>
* The total number of global objects, including partitions, is limited by the<br>
* value of the #CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS application configuration<br>
* option.<br>
- *<br>
- * @param name is the name of the partition.<br>
- *<br>
- * @param starting_address is the starting address of the buffer area used by<br>
- * the partition.<br>
- *<br>
- * @param length is the length in bytes of the buffer area used by the<br>
- * partition.<br>
- *<br>
- * @param buffer_size is the size in bytes of a buffer managed by the<br>
- * partition.<br>
- *<br>
- * @param attribute_set is the attribute set of the partition.<br>
- *<br>
- * @param[out] id is the pointer to an object identifier variable. The<br>
- * identifier of the created partition object will be stored in this<br>
- * variable, in case of a successful operation.<br>
- *<br>
- * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
- *<br>
- * @retval ::RTEMS_INVALID_NAME The partition name was invalid.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ADDRESS The ``id`` parameter was NULL.<br>
- *<br>
- * @retval ::RTEMS_INVALID_SIZE The ``length`` parameter was 0.<br>
- *<br>
- * @retval ::RTEMS_INVALID_SIZE The ``buffer_size`` parameter was 0.<br>
- *<br>
- * @retval ::RTEMS_INVALID_SIZE The ``length`` parameter was less than the<br>
- * ``buffer_size`` parameter.<br>
- *<br>
- * @retval ::RTEMS_INVALID_SIZE The ``buffer_size`` parameter was not an<br>
- * integral multiple of the pointer size.<br>
- *<br>
- * @retval ::RTEMS_INVALID_SIZE The ``buffer_size`` parameter was less than two<br>
- * times the pointer size.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ADDRESS The ``starting_address`` parameter was not<br>
- * on a pointer size boundary.<br>
- *<br>
- * @retval ::RTEMS_TOO_MANY There was no inactive object available to create a<br>
- * new partition. The number of partitions available to the application is<br>
- * configured through the #CONFIGURE_MAXIMUM_PARTITIONS configuration option.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_partition_create(<br>
rtems_name name,<br>
@@ -211,6 +215,14 @@ rtems_status_code rtems_partition_create(<br>
*<br>
* @brief Identifies a partition by the object name.<br>
*<br>
+ * @param name is the object name to look up.<br>
+ *<br>
+ * @param node is the node or node set to search for a matching object.<br>
+ *<br>
+ * @param[out] id is the pointer to an object identifier variable. The object<br>
+ * identifier of an object with the specified name will be stored in this<br>
+ * variable, in case of a successful operation.<br>
+ *<br>
* This directive obtains a partition identifier associated with the partition<br>
* name specified in ``name``.<br>
*<br>
@@ -225,6 +237,20 @@ rtems_status_code rtems_partition_create(<br>
* * the constant #RTEMS_SEARCH_OTHER_NODES to search in all nodes except the<br>
* local node.<br>
*<br>
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ADDRESS The ``id`` parameter was NULL.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_NAME The ``name`` parameter was 0.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_NAME There was no object with the specified name on<br>
+ * the specified nodes.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_NODE In multiprocessing configurations, the<br>
+ * specified node was invalid.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* If the partition name is not unique, then the partition identifier will<br>
* match the first partition with that name in the search order. However, this<br>
* partition identifier is not guaranteed to correspond to the desired<br>
@@ -240,26 +266,7 @@ rtems_status_code rtems_partition_create(<br>
*<br>
* This directive does not generate activity on remote nodes. It accesses only<br>
* the local copy of the global object table.<br>
- *<br>
- * @param name is the object name to look up.<br>
- *<br>
- * @param node is the node or node set to search for a matching object.<br>
- *<br>
- * @param[out] id is the pointer to an object identifier variable. The object<br>
- * identifier of an object with the specified name will be stored in this<br>
- * variable, in case of a successful operation.<br>
- *<br>
- * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ADDRESS The ``id`` parameter was NULL.<br>
- *<br>
- * @retval ::RTEMS_INVALID_NAME The ``name`` parameter was 0.<br>
- *<br>
- * @retval ::RTEMS_INVALID_NAME There was no object with the specified name on<br>
- * the specified nodes.<br>
- *<br>
- * @retval ::RTEMS_INVALID_NODE In multiprocessing configurations, the<br>
- * specified node was invalid.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_partition_ident(<br>
rtems_name name,<br>
@@ -274,9 +281,24 @@ rtems_status_code rtems_partition_ident(<br>
*<br>
* @brief Deletes the partition.<br>
*<br>
+ * @param id is the partition identifier.<br>
+ *<br>
* This directive deletes the partition specified by the ``id`` parameter. The<br>
* partition cannot be deleted if any of its buffers are still allocated.<br>
*<br>
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ID There was no partition associated with the<br>
+ * identifier specified by ``id``.<br>
+ *<br>
+ * @retval ::RTEMS_ILLEGAL_ON_REMOTE_OBJECT The partition resided on a remote<br>
+ * node.<br>
+ *<br>
+ * @retval ::RTEMS_RESOURCE_IN_USE There were buffers of the partition still in<br>
+ * use.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive may cause the calling task to be preempted due to an obtain<br>
* and release of the object allocator mutex.<br>
*<br>
@@ -291,19 +313,7 @@ rtems_status_code rtems_partition_ident(<br>
*<br>
* The partition must reside on the local node, even if the partition was<br>
* created with the #RTEMS_GLOBAL attribute.<br>
- *<br>
- * @param id is the partition identifier.<br>
- *<br>
- * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ID There was no partition associated with the<br>
- * identifier specified by ``id``.<br>
- *<br>
- * @retval ::RTEMS_ILLEGAL_ON_REMOTE_OBJECT The partition resided on a remote<br>
- * node.<br>
- *<br>
- * @retval ::RTEMS_RESOURCE_IN_USE There were buffers of the partition still in<br>
- * use.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_partition_delete( rtems_id id );<br>
<br>
@@ -314,27 +324,16 @@ rtems_status_code rtems_partition_delete( rtems_id id );<br>
*<br>
* @brief Tries to get a buffer from the partition.<br>
*<br>
- * This directive allows a buffer to be obtained from the partition specified<br>
- * in the ``id`` parameter. The address of the allocated buffer is returned<br>
- * through the ``buffer`` parameter.<br>
- *<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
- * The buffer start alignment is determined by the memory area and buffer size<br>
- * used to create the partition.<br>
- *<br>
- * A task cannot wait on a buffer to become available.<br>
- *<br>
- * Getting a buffer from a global partition which does not reside on the local<br>
- * node will generate a request telling the remote node to allocate a buffer<br>
- * from the partition.<br>
- *<br>
* @param id is the partition identifier.<br>
*<br>
* @param[out] buffer is the pointer to a buffer pointer variable. The pointer<br>
* to the allocated buffer will be stored in this variable, in case of a<br>
* successful operation.<br>
*<br>
+ * This directive allows a buffer to be obtained from the partition specified<br>
+ * in the ``id`` parameter. The address of the allocated buffer is returned<br>
+ * through the ``buffer`` parameter.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no partition associated with the<br>
@@ -344,6 +343,20 @@ rtems_status_code rtems_partition_delete( rtems_id id );<br>
*<br>
* @retval ::RTEMS_UNSATISFIED There was no free buffer available to allocate<br>
* and return.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive will not cause the running task to be preempted.<br>
+ *<br>
+ * The buffer start alignment is determined by the memory area and buffer size<br>
+ * used to create the partition.<br>
+ *<br>
+ * A task cannot wait on a buffer to become available.<br>
+ *<br>
+ * Getting a buffer from a global partition which does not reside on the local<br>
+ * node will generate a request telling the remote node to allocate a buffer<br>
+ * from the partition.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_partition_get_buffer( rtems_id id, void **buffer );<br>
<br>
@@ -354,22 +367,13 @@ rtems_status_code rtems_partition_get_buffer( rtems_id id, void **buffer );<br>
*<br>
* @brief Returns the buffer to the partition.<br>
*<br>
- * This directive returns the buffer specified by ``buffer`` to the partition<br>
- * specified by ``id``.<br>
- *<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
- * Returning a buffer to a global partition which does not reside on the local<br>
- * node will generate a request telling the remote node to return the buffer to<br>
- * the partition.<br>
- *<br>
- * Returning a buffer multiple times is an error. It will corrupt the internal<br>
- * state of the partition.<br>
- *<br>
* @param id is the partition identifier.<br>
*<br>
* @param buffer is the pointer to the buffer to return.<br>
*<br>
+ * This directive returns the buffer specified by ``buffer`` to the partition<br>
+ * specified by ``id``.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no partition associated with the<br>
@@ -377,6 +381,18 @@ rtems_status_code rtems_partition_get_buffer( rtems_id id, void **buffer );<br>
*<br>
* @retval ::RTEMS_INVALID_ADDRESS The buffer referenced by ``buffer`` was not<br>
* in the partition.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive will not cause the running task to be preempted.<br>
+ *<br>
+ * Returning a buffer to a global partition which does not reside on the local<br>
+ * node will generate a request telling the remote node to return the buffer to<br>
+ * the partition.<br>
+ *<br>
+ * Returning a buffer multiple times is an error. It will corrupt the internal<br>
+ * state of the partition.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_partition_return_buffer( rtems_id id, void *buffer );<br>
<br>
diff --git a/cpukit/include/rtems/rtems/status.h b/cpukit/include/rtems/rtems/status.h<br>
index 35752442d9..872bb9b2b3 100644<br>
--- a/cpukit/include/rtems/rtems/status.h<br>
+++ b/cpukit/include/rtems/rtems/status.h<br>
@@ -252,6 +252,7 @@ typedef enum {<br>
* This is referred to as proxying operations and this status indicates that<br>
* the operation could not be completed immediately and the proxy is blocking.<br>
*<br>
+ * @par Notes<br>
* This status will not be returned to the user.<br>
*/<br>
RTEMS_PROXY_BLOCKING = 29<br>
@@ -364,10 +365,10 @@ static inline bool rtems_is_status_successful( rtems_status_code status_code )<br>
*<br>
* @brief Maps the status code to a descriptive text.<br>
*<br>
- * The text for each status code is the enumerator constant.<br>
- *<br>
* @param status_code is the status code.<br>
*<br>
+ * The text for each status code is the enumerator constant.<br>
+ *<br>
* @retval "?" The status code is invalid.<br>
*<br>
* @return Returns a text describing the status code, if the status code is<br>
diff --git a/cpukit/include/rtems/rtems/timer.h b/cpukit/include/rtems/rtems/timer.h<br>
index fe22eef39d..23a69b5b87 100644<br>
--- a/cpukit/include/rtems/rtems/timer.h<br>
+++ b/cpukit/include/rtems/rtems/timer.h<br>
@@ -190,22 +190,23 @@ typedef struct {<br>
*<br>
* @brief Gets information about the timer.<br>
*<br>
- * This directive returns information about the timer.<br>
- *<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
* @param id is the timer identifier.<br>
*<br>
* @param[out] the_info is the pointer to a timer information variable. The<br>
* information about the timer will be stored in this variable, in case of a<br>
* successful operation.<br>
*<br>
+ * This directive returns information about the timer.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_ADDRESS The ``the_info`` parameter was NULL.<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
* specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive will not cause the running task to be preempted.<br>
*/<br>
rtems_status_code rtems_timer_get_information(<br>
rtems_id id,<br>
@@ -254,26 +255,16 @@ typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )( rtem<br>
*<br>
* @brief Creates a timer.<br>
*<br>
- * This directive creates a timer. The assigned object identifier is returned<br>
- * in ``id``. This identifier is used to access the timer with other timer<br>
- * related directives.<br>
- *<br>
- * This directive may cause the calling task to be preempted due to an obtain<br>
- * and release of the object allocator mutex.<br>
- *<br>
- * For control and maintenance of the timer, RTEMS allocates a TMCB from the<br>
- * local TMCB free pool and initializes it.<br>
- *<br>
- * In SMP configurations, the processor of the currently executing thread<br>
- * determines the processor used for the created timer. During the life-time<br>
- * of the timer this processor is used to manage the timer internally.<br>
- *<br>
* @param name is the name of the timer.<br>
*<br>
* @param[out] id is the pointer to an object identifier variable. The<br>
* identifier of the created timer object will be stored in this variable, in<br>
* case of a successful operation.<br>
*<br>
+ * This directive creates a timer. The assigned object identifier is returned<br>
+ * in ``id``. This identifier is used to access the timer with other timer<br>
+ * related directives.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NAME The timer name was invalid.<br>
@@ -283,6 +274,19 @@ typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )( rtem<br>
* @retval ::RTEMS_TOO_MANY There was no inactive object available to create a<br>
* new timer. The number of timers available to the application is<br>
* configured through the #CONFIGURE_MAXIMUM_TIMERS configuration option.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive may cause the calling task to be preempted due to an obtain<br>
+ * and release of the object allocator mutex.<br>
+ *<br>
+ * For control and maintenance of the timer, RTEMS allocates a TMCB from the<br>
+ * local TMCB free pool and initializes it.<br>
+ *<br>
+ * In SMP configurations, the processor of the currently executing thread<br>
+ * determines the processor used for the created timer. During the life-time<br>
+ * of the timer this processor is used to manage the timer internally.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_timer_create( rtems_name name, rtems_id *id );<br>
<br>
@@ -293,23 +297,15 @@ rtems_status_code rtems_timer_create( rtems_name name, rtems_id *id );<br>
*<br>
* @brief Identifies a timer by the object name.<br>
*<br>
- * This directive obtains the timer identifier associated with the timer name<br>
- * specified in ``name``.<br>
- *<br>
- * If the timer name is not unique, then the timer identifier will match the<br>
- * first timer with that name in the search order. However, this timer<br>
- * identifier is not guaranteed to correspond to the desired timer. The timer<br>
- * identifier is used with other timer related directives to access the timer.<br>
- *<br>
- * The objects are searched from lowest to the highest index. Only the local<br>
- * node is searched.<br>
- *<br>
* @param name is the object name to look up.<br>
*<br>
* @param[out] id is the pointer to an object identifier variable. The object<br>
* identifier of an object with the specified name will be stored in this<br>
* variable, in case of a successful operation.<br>
*<br>
+ * This directive obtains the timer identifier associated with the timer name<br>
+ * specified in ``name``.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_ADDRESS The ``id`` parameter was NULL.<br>
@@ -318,6 +314,17 @@ rtems_status_code rtems_timer_create( rtems_name name, rtems_id *id );<br>
*<br>
* @retval ::RTEMS_INVALID_NAME There was no object with the specified name on<br>
* the local node.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * If the timer name is not unique, then the timer identifier will match the<br>
+ * first timer with that name in the search order. However, this timer<br>
+ * identifier is not guaranteed to correspond to the desired timer. The timer<br>
+ * identifier is used with other timer related directives to access the timer.<br>
+ *<br>
+ * The objects are searched from lowest to the highest index. Only the local<br>
+ * node is searched.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_timer_ident( rtems_name name, rtems_id *id );<br>
<br>
@@ -328,19 +335,20 @@ rtems_status_code rtems_timer_ident( rtems_name name, rtems_id *id );<br>
*<br>
* @brief Cancels the timer.<br>
*<br>
+ * @param id is the timer identifier.<br>
+ *<br>
* This directive cancels the timer specified in the ``id`` parameter. This<br>
* timer will be reinitiated by the next invocation of rtems_timer_reset(),<br>
* rtems_timer_fire_after(), or rtems_timer_fire_when() with the same timer<br>
* identifier.<br>
*<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
- * @param id is the timer identifier.<br>
- *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
* specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive will not cause the running task to be preempted.<br>
*/<br>
rtems_status_code rtems_timer_cancel( rtems_id id );<br>
<br>
@@ -351,9 +359,18 @@ rtems_status_code rtems_timer_cancel( rtems_id id );<br>
*<br>
* @brief Deletes the timer.<br>
*<br>
+ * @param id is the timer identifier.<br>
+ *<br>
* This directive deletes the timer specified by the ``id`` parameter. If the<br>
* timer is running, it is automatically canceled.<br>
*<br>
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
+ * specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive may cause the calling task to be preempted due to an obtain<br>
* and release of the object allocator mutex.<br>
*<br>
@@ -361,13 +378,7 @@ rtems_status_code rtems_timer_cancel( rtems_id id );<br>
*<br>
* A timer can be deleted by a task other than the task which created the<br>
* timer.<br>
- *<br>
- * @param id is the timer identifier.<br>
- *<br>
- * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
- * specified by ``id``.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_timer_delete( rtems_id id );<br>
<br>
@@ -378,15 +389,6 @@ rtems_status_code rtems_timer_delete( rtems_id id );<br>
*<br>
* @brief Fires the timer after the interval.<br>
*<br>
- * This directive initiates the timer specified by ``id``. If the timer is<br>
- * running, it is automatically canceled before being initiated. The timer is<br>
- * scheduled to fire after an interval of clock ticks has passed specified by<br>
- * ``ticks``. When the timer fires, the timer service routine ``routine`` will<br>
- * be invoked with the argument ``user_data`` in the context of the clock tick<br>
- * ISR.<br>
- *<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
* @param id is the timer identifier.<br>
*<br>
* @param ticks is the interval until the routine is fired in clock ticks.<br>
@@ -395,6 +397,13 @@ rtems_status_code rtems_timer_delete( rtems_id id );<br>
*<br>
* @param user_data is the argument passed to the routine when it is fired.<br>
*<br>
+ * This directive initiates the timer specified by ``id``. If the timer is<br>
+ * running, it is automatically canceled before being initiated. The timer is<br>
+ * scheduled to fire after an interval of clock ticks has passed specified by<br>
+ * ``ticks``. When the timer fires, the timer service routine ``routine`` will<br>
+ * be invoked with the argument ``user_data`` in the context of the clock tick<br>
+ * ISR.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INVALID_NUMBER The ``ticks`` parameter was 0.<br>
@@ -403,6 +412,9 @@ rtems_status_code rtems_timer_delete( rtems_id id );<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
* specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive will not cause the running task to be preempted.<br>
*/<br>
rtems_status_code rtems_timer_fire_after(<br>
rtems_id id,<br>
@@ -418,14 +430,6 @@ rtems_status_code rtems_timer_fire_after(<br>
*<br>
* @brief Fires the timer at the time of day.<br>
*<br>
- * This directive initiates the timer specified by ``id``. If the timer is<br>
- * running, it is automatically canceled before being initiated. The timer is<br>
- * scheduled to fire at the time of day specified by ``wall_time``. When the<br>
- * timer fires, the timer service routine ``routine`` will be invoked with the<br>
- * argument ``user_data`` in the context of the clock tick ISR.<br>
- *<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
* @param id is the timer identifier.<br>
*<br>
* @param wall_time is the time of day when the routine is fired.<br>
@@ -434,6 +438,12 @@ rtems_status_code rtems_timer_fire_after(<br>
*<br>
* @param user_data is the argument passed to the routine when it is fired.<br>
*<br>
+ * This directive initiates the timer specified by ``id``. If the timer is<br>
+ * running, it is automatically canceled before being initiated. The timer is<br>
+ * scheduled to fire at the time of day specified by ``wall_time``. When the<br>
+ * timer fires, the timer service routine ``routine`` will be invoked with the<br>
+ * argument ``user_data`` in the context of the clock tick ISR.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_NOT_DEFINED The system date and time was not set.<br>
@@ -446,6 +456,9 @@ rtems_status_code rtems_timer_fire_after(<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
* specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive will not cause the running task to be preempted.<br>
*/<br>
rtems_status_code rtems_timer_fire_when(<br>
rtems_id id,<br>
@@ -461,22 +474,16 @@ rtems_status_code rtems_timer_fire_when(<br>
*<br>
* @brief Initiates the Timer Server.<br>
*<br>
- * This directive initiates the Timer Server task. This task is responsible<br>
- * for executing all timers initiated via the rtems_timer_server_fire_after()<br>
- * or rtems_timer_server_fire_when() directives.<br>
- *<br>
- * This directive may cause the calling task to be preempted due to an obtain<br>
- * and release of the object allocator mutex.<br>
- *<br>
- * The Timer Server task is created using the rtems_task_create() directive and<br>
- * must be accounted for when configuring the system.<br>
- *<br>
* @param priority is the task priority.<br>
*<br>
* @param stack_size is the task stack size in bytes.<br>
*<br>
* @param attribute_set is the task attribute set.<br>
*<br>
+ * This directive initiates the Timer Server task. This task is responsible<br>
+ * for executing all timers initiated via the rtems_timer_server_fire_after()<br>
+ * or rtems_timer_server_fire_when() directives.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INCORRECT_STATE The Timer Server was already initiated.<br>
@@ -492,6 +499,15 @@ rtems_status_code rtems_timer_fire_when(<br>
*<br>
* @retval ::RTEMS_UNSATISFIED One of the task create extensions failed to<br>
* create the Timer Server task.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
+ * This directive may cause the calling task to be preempted due to an obtain<br>
+ * and release of the object allocator mutex.<br>
+ *<br>
+ * The Timer Server task is created using the rtems_task_create() directive and<br>
+ * must be accounted for when configuring the system.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_timer_initiate_server(<br>
rtems_task_priority priority,<br>
@@ -506,15 +522,6 @@ rtems_status_code rtems_timer_initiate_server(<br>
*<br>
* @brief Fires the timer after the interval using the Timer Server.<br>
*<br>
- * This directive initiates the timer specified by ``id``. If the timer is<br>
- * running, it is automatically canceled before being initiated. The timer is<br>
- * scheduled to fire after an interval of clock ticks has passed specified by<br>
- * ``ticks``. When the timer fires, the timer service routine ``routine`` will<br>
- * be invoked with the argument ``user_data`` in the context of the Timer<br>
- * Server task.<br>
- *<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
* @param id is the timer identifier.<br>
*<br>
* @param ticks is the interval until the routine is fired in clock ticks.<br>
@@ -523,6 +530,13 @@ rtems_status_code rtems_timer_initiate_server(<br>
*<br>
* @param user_data is the argument passed to the routine when it is fired.<br>
*<br>
+ * This directive initiates the timer specified by ``id``. If the timer is<br>
+ * running, it is automatically canceled before being initiated. The timer is<br>
+ * scheduled to fire after an interval of clock ticks has passed specified by<br>
+ * ``ticks``. When the timer fires, the timer service routine ``routine`` will<br>
+ * be invoked with the argument ``user_data`` in the context of the Timer<br>
+ * Server task.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INCORRECT_STATE The Timer Server was not initiated.<br>
@@ -533,6 +547,9 @@ rtems_status_code rtems_timer_initiate_server(<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
* specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive will not cause the running task to be preempted.<br>
*/<br>
rtems_status_code rtems_timer_server_fire_after(<br>
rtems_id id,<br>
@@ -548,14 +565,6 @@ rtems_status_code rtems_timer_server_fire_after(<br>
*<br>
* @brief Fires the timer at the time of day using the Timer Server.<br>
*<br>
- * This directive initiates the timer specified by ``id``. If the timer is<br>
- * running, it is automatically canceled before being initiated. The timer is<br>
- * scheduled to fire at the time of day specified by ``wall_time``. When the<br>
- * timer fires, the timer service routine ``routine`` will be invoked with the<br>
- * argument ``user_data`` in the context of the Timer Server task.<br>
- *<br>
- * This directive will not cause the running task to be preempted.<br>
- *<br>
* @param id is the timer identifier.<br>
*<br>
* @param wall_time is the time of day when the routine is fired.<br>
@@ -564,6 +573,12 @@ rtems_status_code rtems_timer_server_fire_after(<br>
*<br>
* @param user_data is the argument passed to the routine when it is fired.<br>
*<br>
+ * This directive initiates the timer specified by ``id``. If the timer is<br>
+ * running, it is automatically canceled before being initiated. The timer is<br>
+ * scheduled to fire at the time of day specified by ``wall_time``. When the<br>
+ * timer fires, the timer service routine ``routine`` will be invoked with the<br>
+ * argument ``user_data`` in the context of the Timer Server task.<br>
+ *<br>
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
*<br>
* @retval ::RTEMS_INCORRECT_STATE The Timer Server was not initiated.<br>
@@ -578,6 +593,9 @@ rtems_status_code rtems_timer_server_fire_after(<br>
*<br>
* @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
* specified by ``id``.<br>
+ *<br>
+ * @par Notes<br>
+ * This directive will not cause the running task to be preempted.<br>
*/<br>
rtems_status_code rtems_timer_server_fire_when(<br>
rtems_id id,<br>
@@ -593,6 +611,8 @@ rtems_status_code rtems_timer_server_fire_when(<br>
*<br>
* @brief Resets the timer.<br>
*<br>
+ * @param id is the timer identifier.<br>
+ *<br>
* This directive resets the timer specified by ``id``. This timer must have<br>
* been previously initiated with either the rtems_timer_fire_after() or<br>
* rtems_timer_server_fire_after() directive. If active the timer is canceled,<br>
@@ -600,6 +620,15 @@ rtems_status_code rtems_timer_server_fire_when(<br>
* service routine which the original rtems_timer_fire_after() or<br>
* rtems_timer_server_fire_after() directive used.<br>
*<br>
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
+ *<br>
+ * @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
+ * specified by ``id``.<br>
+ *<br>
+ * @retval ::RTEMS_NOT_DEFINED The timer was not of the interval class.<br>
+ *<br>
+ * @par Notes<br>
+ * @parblock<br>
* This directive will not cause the running task to be preempted.<br>
*<br>
* If the timer has not been used or the last usage of this timer was by a<br>
@@ -608,15 +637,7 @@ rtems_status_code rtems_timer_server_fire_when(<br>
*<br>
* Restarting a cancelled after timer results in the timer being reinitiated<br>
* with its previous timer service routine and interval.<br>
- *<br>
- * @param id is the timer identifier.<br>
- *<br>
- * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.<br>
- *<br>
- * @retval ::RTEMS_INVALID_ID There was no timer associated with the identifier<br>
- * specified by ``id``.<br>
- *<br>
- * @retval ::RTEMS_NOT_DEFINED The timer was not of the interval class.<br>
+ * @endparblock<br>
*/<br>
rtems_status_code rtems_timer_reset( rtems_id id );<br>
<br>
diff --git a/cpukit/include/rtems/score/basedefs.h b/cpukit/include/rtems/score/basedefs.h<br>
index d017ffa96a..a98b80f0dd 100644<br>
--- a/cpukit/include/rtems/score/basedefs.h<br>
+++ b/cpukit/include/rtems/score/basedefs.h<br>
@@ -293,10 +293,10 @@ extern "C" {<br>
*<br>
* @brief Declares a global symbol with the name.<br>
*<br>
- * This macro must be placed at file scope.<br>
- *<br>
* @param _name is the name of the global symbol. It shall be a valid<br>
* designator.<br>
+ *<br>
+ * This macro must be placed at file scope.<br>
*/<br>
#define RTEMS_DECLARE_GLOBAL_SYMBOL( _name ) extern char _name[]<br>
<br>
@@ -354,12 +354,12 @@ extern "C" {<br>
*<br>
* @brief Gets the pointer reference type.<br>
*<br>
- * The reference type idea is based on libHX by Jan Engelhardt.<br>
- *<br>
* @param _level is the pointer indirection level expressed in *.<br>
*<br>
* @param _target is the reference target type.<br>
*<br>
+ * The reference type idea is based on libHX by Jan Engelhardt.<br>
+ *<br>
* @return Returns the type of a pointer reference of the specified level to<br>
* the specified type.<br>
*/<br>
@@ -601,9 +601,9 @@ extern "C" {<br>
* @brief Obfuscates the variable so that the compiler cannot perform<br>
* optimizations based on the variable value.<br>
*<br>
- * The variable must be simple enough to fit into a register.<br>
- *<br>
* @param _var is the variable to obfuscate.<br>
+ *<br>
+ * The variable must be simple enough to fit into a register.<br>
*/<br>
#if defined(__GNUC__)<br>
#define RTEMS_OBFUSCATE_VARIABLE( _var ) __asm__( "" : "+r" ( _var ) )<br>
@@ -917,8 +917,6 @@ extern "C" {<br>
*<br>
* @brief Defines a global symbol with the name and value.<br>
*<br>
- * This macro shall be placed at file scope.<br>
- *<br>
* @param _name is the user defined name of the symbol. The name shall be a<br>
* valid designator. On the name a macro expansion is performed and<br>
* afterwards it is stringified.<br>
@@ -926,6 +924,8 @@ extern "C" {<br>
* @param _value is the value of the symbol. On the value a macro expansion is<br>
* performed and afterwards it is stringified. It shall expand to an integer<br>
* expression understood by the assembler.<br>
+ *<br>
+ * This macro shall be placed at file scope.<br>
*/<br>
#if defined(__USER_LABEL_PREFIX__)<br>
#define RTEMS_DEFINE_GLOBAL_SYMBOL( _name, _value ) \<br>
-- <br>
2.26.2<br>
<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
</blockquote></div></div>