From 067a96ad0c3b0818d71d9aaadaee4b520d940de1 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 18 Apr 2008 15:02:20 +0000 Subject: 2008-04-18 Joel Sherrill * rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/asr.inl, rtems/inline/rtems/rtems/attr.inl, rtems/inline/rtems/rtems/barrier.inl, rtems/inline/rtems/rtems/dpmem.inl, rtems/inline/rtems/rtems/event.inl, rtems/inline/rtems/rtems/eventset.inl, rtems/inline/rtems/rtems/message.inl, rtems/inline/rtems/rtems/modes.inl, rtems/inline/rtems/rtems/options.inl, rtems/inline/rtems/rtems/part.inl, rtems/inline/rtems/rtems/ratemon.inl, rtems/inline/rtems/rtems/region.inl, rtems/inline/rtems/rtems/sem.inl, rtems/inline/rtems/rtems/status.inl, rtems/inline/rtems/rtems/support.inl, rtems/inline/rtems/rtems/tasks.inl, rtems/inline/rtems/rtems/timer.inl: Initial conversion of Classic API header files to Doxygen. * rtems/Doxyfile: New file. --- cpukit/rtems/include/rtems/rtems/asr.h | 62 ++++-- cpukit/rtems/include/rtems/rtems/attr.h | 25 ++- cpukit/rtems/include/rtems/rtems/barrier.h | 33 ++-- cpukit/rtems/include/rtems/rtems/barriermp.h | 18 +- cpukit/rtems/include/rtems/rtems/cache.h | 58 ++++-- cpukit/rtems/include/rtems/rtems/clock.h | 36 ++-- cpukit/rtems/include/rtems/rtems/config.h | 21 +- cpukit/rtems/include/rtems/rtems/dpmem.h | 76 +++---- cpukit/rtems/include/rtems/rtems/event.h | 74 +++---- cpukit/rtems/include/rtems/rtems/eventmp.h | 67 +++---- cpukit/rtems/include/rtems/rtems/eventset.h | 60 ++++-- cpukit/rtems/include/rtems/rtems/intr.h | 86 ++++---- cpukit/rtems/include/rtems/rtems/message.h | 136 +++++-------- cpukit/rtems/include/rtems/rtems/modes.h | 38 ++-- cpukit/rtems/include/rtems/rtems/mp.h | 34 ++-- cpukit/rtems/include/rtems/rtems/msgmp.h | 73 +++---- cpukit/rtems/include/rtems/rtems/object.h | 16 +- cpukit/rtems/include/rtems/rtems/options.h | 22 ++- cpukit/rtems/include/rtems/rtems/part.h | 76 +++---- cpukit/rtems/include/rtems/rtems/partmp.h | 73 +++---- cpukit/rtems/include/rtems/rtems/ratemon.h | 137 +++++-------- cpukit/rtems/include/rtems/rtems/region.h | 142 ++++++------- cpukit/rtems/include/rtems/rtems/regionmp.h | 71 +++---- cpukit/rtems/include/rtems/rtems/rtemsapi.h | 18 +- cpukit/rtems/include/rtems/rtems/sem.h | 152 ++++---------- cpukit/rtems/include/rtems/rtems/semmp.h | 96 ++++----- cpukit/rtems/include/rtems/rtems/signal.h | 44 ++--- cpukit/rtems/include/rtems/rtems/signalmp.h | 65 +++--- cpukit/rtems/include/rtems/rtems/status.h | 19 +- cpukit/rtems/include/rtems/rtems/support.h | 37 ++-- cpukit/rtems/include/rtems/rtems/taskmp.h | 75 +++---- cpukit/rtems/include/rtems/rtems/tasks.h | 285 ++++++++++++--------------- cpukit/rtems/include/rtems/rtems/timer.h | 174 ++++++++-------- cpukit/rtems/include/rtems/rtems/types.h | 27 +-- 34 files changed, 1113 insertions(+), 1313 deletions(-) (limited to 'cpukit/rtems/include/rtems/rtems') diff --git a/cpukit/rtems/include/rtems/rtems/asr.h b/cpukit/rtems/include/rtems/rtems/asr.h index 6fb7f3db91..4fcade6d28 100644 --- a/cpukit/rtems/include/rtems/rtems/asr.h +++ b/cpukit/rtems/include/rtems/rtems/asr.h @@ -1,13 +1,12 @@ /** * @file rtems/rtems/asr.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Asynchronous Signal Handler. This Handler provides the low-level * support required by the Signal Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -26,35 +25,36 @@ extern "C" { #include -/* +/** + * @defgroup ClassicASR Classic API ASR Support * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following type defines the control block used to manage * each signal set. */ - typedef uint32_t rtems_signal_set; -/* +/** * Return type for ASR Handler */ - typedef void rtems_asr; -/* +/** * The following type corresponds to the applications asynchronous * signal processing routine. */ - typedef rtems_asr ( *rtems_asr_entry )( rtems_signal_set ); -/* - * +/** * The following defines the control structure used to manage * signals. Each thread has a copy of this record. */ - typedef struct { boolean is_enabled; /* are ASRs enabled currently? */ rtems_asr_entry handler; /* address of RTEMS_ASR */ @@ -69,37 +69,69 @@ typedef struct { * be used to compose a signal set. */ +/** This defines the bit in the signal set associated with signal 0. */ #define RTEMS_SIGNAL_0 0x00000001 +/** This defines the bit in the signal set associated with signal 1. */ #define RTEMS_SIGNAL_1 0x00000002 +/** This defines the bit in the signal set associated with signal 2. */ #define RTEMS_SIGNAL_2 0x00000004 +/** This defines the bit in the signal set associated with signal 3. */ #define RTEMS_SIGNAL_3 0x00000008 +/** This defines the bit in the signal set associated with signal 4. */ #define RTEMS_SIGNAL_4 0x00000010 +/** This defines the bit in the signal set associated with signal 5. */ #define RTEMS_SIGNAL_5 0x00000020 +/** This defines the bit in the signal set associated with signal 6. */ #define RTEMS_SIGNAL_6 0x00000040 +/** This defines the bit in the signal set associated with signal 7. */ #define RTEMS_SIGNAL_7 0x00000080 +/** This defines the bit in the signal set associated with signal 8. */ #define RTEMS_SIGNAL_8 0x00000100 +/** This defines the bit in the signal set associated with signal 9. */ #define RTEMS_SIGNAL_9 0x00000200 +/** This defines the bit in the signal set associated with signal 10. */ #define RTEMS_SIGNAL_10 0x00000400 +/** This defines the bit in the signal set associated with signal 11. */ #define RTEMS_SIGNAL_11 0x00000800 +/** This defines the bit in the signal set associated with signal 12. */ #define RTEMS_SIGNAL_12 0x00001000 +/** This defines the bit in the signal set associated with signal 13. */ #define RTEMS_SIGNAL_13 0x00002000 +/** This defines the bit in the signal set associated with signal 14. */ #define RTEMS_SIGNAL_14 0x00004000 +/** This defines the bit in the signal set associated with signal 15. */ #define RTEMS_SIGNAL_15 0x00008000 +/** This defines the bit in the signal set associated with signal 16. */ #define RTEMS_SIGNAL_16 0x00010000 +/** This defines the bit in the signal set associated with signal 17. */ #define RTEMS_SIGNAL_17 0x00020000 +/** This defines the bit in the signal set associated with signal 18. */ #define RTEMS_SIGNAL_18 0x00040000 +/** This defines the bit in the signal set associated with signal 19. */ #define RTEMS_SIGNAL_19 0x00080000 +/** This defines the bit in the signal set associated with signal 20. */ #define RTEMS_SIGNAL_20 0x00100000 +/** This defines the bit in the signal set associated with signal 21. */ #define RTEMS_SIGNAL_21 0x00200000 +/** This defines the bit in the signal set associated with signal 22. */ #define RTEMS_SIGNAL_22 0x00400000 +/** This defines the bit in the signal set associated with signal 23. */ #define RTEMS_SIGNAL_23 0x00800000 +/** This defines the bit in the signal set associated with signal 24. */ #define RTEMS_SIGNAL_24 0x01000000 +/** This defines the bit in the signal set associated with signal 25. */ #define RTEMS_SIGNAL_25 0x02000000 +/** This defines the bit in the signal set associated with signal 26. */ #define RTEMS_SIGNAL_26 0x04000000 +/** This defines the bit in the signal set associated with signal 27. */ #define RTEMS_SIGNAL_27 0x08000000 +/** This defines the bit in the signal set associated with signal 28. */ #define RTEMS_SIGNAL_28 0x10000000 +/** This defines the bit in the signal set associated with signal 29. */ #define RTEMS_SIGNAL_29 0x20000000 +/** This defines the bit in the signal set associated with signal 30. */ #define RTEMS_SIGNAL_30 0x40000000 +/** This defines the bit in the signal set associated with signal 31. */ #define RTEMS_SIGNAL_31 0x80000000 #ifndef __RTEMS_APPLICATION__ @@ -110,5 +142,7 @@ typedef struct { } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/attr.h b/cpukit/rtems/include/rtems/rtems/attr.h index f37e8caa33..8c1bf99b2d 100644 --- a/cpukit/rtems/include/rtems/rtems/attr.h +++ b/cpukit/rtems/include/rtems/rtems/attr.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/attr.h - */ - -/* + * * This include file contains all information about the Object Attributes * Handler. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -23,6 +22,13 @@ extern "C" { #endif +/** + * @defgroup ClassicAttributes Classic API Attributes + * + * This encapsulates functionality which XXX + */ +/**@{*/ + /* types */ typedef uint32_t rtems_attribute; @@ -74,17 +80,14 @@ typedef uint32_t rtems_attribute; #define ATTRIBUTES_REQUIRED 0 #endif -/* - * _Attributes_Handler_initialization - * - * DESCRIPTION: +/** + * @brief _Attributes_Handler_initialization * * This routine performs initialization for this handler. * * NOTE: There is no initialization required in C. Conditional compilation * takes care of this in C. */ - #define _Attributes_Handler_initialization() #ifndef __RTEMS_APPLICATION__ @@ -95,5 +98,7 @@ typedef uint32_t rtems_attribute; } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/barrier.h b/cpukit/rtems/include/rtems/rtems/barrier.h index 4d0a57398e..95264aba31 100644 --- a/cpukit/rtems/include/rtems/rtems/barrier.h +++ b/cpukit/rtems/include/rtems/rtems/barrier.h @@ -1,20 +1,19 @@ /** * @file rtems/rtems/barrier.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Barrier Manager. * * Directives provided are: * - * + create a barrier - * + get an ID of a barrier - * + delete a barrier - * + wait for a barrier - * + signal a barrier - * - * COPYRIGHT (c) 1989-2007. + * - create a barrier + * - get an ID of a barrier + * - delete a barrier + * - wait for a barrier + * - signal a barrier + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -27,6 +26,13 @@ #ifndef _RTEMS_RTEMS_BARRIER_H #define _RTEMS_RTEMS_BARRIER_H +/** + * @defgroup ClassicBarrier Classic API Barrier + * + * This encapsulates functionality which XXX + */ +/**@{*/ + #ifndef RTEMS_BARRIER_EXTERN #define RTEMS_BARRIER_EXTERN extern #endif @@ -45,7 +51,6 @@ extern "C" { /** * This type defines the control block used to manage each barrier. */ - typedef struct { /** This is used to manage a barrier as an object. */ Objects_Control Object; @@ -59,7 +64,6 @@ typedef struct { * The following defines the information control block used to manage * this class of objects. */ - RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information; /** @@ -70,7 +74,6 @@ RTEMS_BARRIER_EXTERN Objects_Information _Barrier_Information; * @param[in] maximum_barriers is the total number of barriers allowed to * concurrently be active in the system. */ - void _Barrier_Manager_initialization( uint32_t maximum_barriers ); @@ -92,7 +95,6 @@ void _Barrier_Manager_initialization( * * @return a status code indicating success or the reason for failure. */ - rtems_status_code rtems_barrier_create( rtems_name name, rtems_attribute attribute_set, @@ -116,7 +118,6 @@ rtems_status_code rtems_barrier_create( * * @return a status code indicating success or the reason for failure. */ - rtems_status_code rtems_barrier_ident( rtems_name name, rtems_id *id @@ -195,5 +196,7 @@ rtems_status_code _Barrier_Translate_core_barrier_return_code ( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/barriermp.h b/cpukit/rtems/include/rtems/rtems/barriermp.h index c09b1fc6ff..c26b65339e 100644 --- a/cpukit/rtems/include/rtems/rtems/barriermp.h +++ b/cpukit/rtems/include/rtems/rtems/barriermp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/barriermp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Support in the Barrier Manager. - * - * COPYRIGHT (c) 1989-2006. + */ + +/* COPYRIGHT (c) 1989-2006. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -19,6 +18,13 @@ #ifndef _RTEMS_RTEMS_SEMMP_H #define _RTEMS_RTEMS_SEMMP_H +/** + * @defgroup ClassicBarrierMP Classic API Barrier MP Support + * + * This encapsulates functionality which XXX + */ +/**{*/ + #ifdef __cplusplus extern "C" { #endif @@ -137,5 +143,7 @@ Barrier_MP_Packet *_Barrier_MP_Get_packet ( void ); } #endif +/**@}*/ + #endif /* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/cache.h b/cpukit/rtems/include/rtems/rtems/cache.h index 17645346c3..c90b240f2b 100644 --- a/cpukit/rtems/include/rtems/rtems/cache.h +++ b/cpukit/rtems/include/rtems/rtems/cache.h @@ -1,11 +1,10 @@ /** * @file rtems/rtems/cache.h + * + * Cache Manager */ -/* - * Cache Manager - * - * COPYRIGHT (c) 1989-1999. +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -38,97 +37,112 @@ extern "C" { #include #include +/** + * @defgroup ClassicCache Classic API Cache + * + * This encapsulates functionality which XXX + */ +/**@{*/ + /* * These functions will ONLY do something if the * libcpu support includes data cache routines AND * the CPU model supports data caching. */ -/* +/** * This function is called to flush the data cache by performing cache * copybacks. It must determine how many cache lines need to be copied * back and then perform the copybacks. */ void rtems_cache_flush_multiple_data_lines( const void *, size_t ); -/* +/** * This function is responsible for performing a data cache invalidate. * It must determine how many cache lines need to be invalidated and then * perform the invalidations. */ void rtems_cache_invalidate_multiple_data_lines( const void *, size_t ); -/* +/** * This function is responsible for performing a data cache flush. * It flushes the entire cache. */ void rtems_cache_flush_entire_data( void ); -/* +/** * This function is responsible for performing a data cache * invalidate. It invalidates the entire cache. */ void rtems_cache_invalidate_entire_data( void ); -/* +/** * This function returns the data cache granularity. */ int rtems_cache_get_data_line_size( void ); -/* +/** * This function freezes the data cache. */ void rtems_cache_freeze_data( void ); -/* +/** * This function unfreezes the data cache. */ void rtems_cache_unfreeze_data( void ); -/* - * These functions enable/disable the data cache. +/** + * This function enables the data cache. */ void rtems_cache_enable_data( void ); + +/** + * This function disables the data cache. + */ void rtems_cache_disable_data( void ); -/* +/** * These functions will ONLY do something if the * libcpu support includes instruction cache routines AND * the CPU model supports instruction caching. */ -/* +/** * This function is responsible for performing an instruction cache * invalidate. It must determine how many cache lines need to be invalidated * and then perform the invalidations. */ void rtems_cache_invalidate_multiple_instruction_lines( const void *, size_t ); -/* +/** * This function is responsible for performing an instruction cache * invalidate. It invalidates the entire cache. */ void rtems_cache_invalidate_entire_instruction( void ); -/* +/** * This function returns the instruction cache granularity. */ int rtems_cache_get_instruction_line_size( void ); -/* +/** * This function freezes the instruction cache. */ void rtems_cache_freeze_instruction( void ); -/* +/** * This function unfreezes the instruction cache. */ void rtems_cache_unfreeze_instruction( void ); -/* - * These functions enable/disable the instruction cache. +/** + * This function enables the instruction cache. */ void rtems_cache_enable_instruction( void ); + +/** + * This function disables the instruction cache. + */ void rtems_cache_disable_instruction( void ); @@ -136,5 +150,7 @@ void rtems_cache_disable_instruction( void ); } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/clock.h b/cpukit/rtems/include/rtems/rtems/clock.h index d467f353fd..a6fc6bbb6a 100644 --- a/cpukit/rtems/include/rtems/rtems/clock.h +++ b/cpukit/rtems/include/rtems/rtems/clock.h @@ -1,21 +1,20 @@ /** * @file rtems/rtems/clock.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Clock Manager. This manager provides facilities to set, obtain, * and continually update the current date and time. * * This manager provides directives to: * - * + set the current date and time - * + obtain the current date and time - * + set the nanoseconds since last clock tick handler - * + announce a clock tick - * + obtain the system uptime - * - * COPYRIGHT (c) 1989-2008. + * - set the current date and time + * - obtain the current date and time + * - set the nanoseconds since last clock tick handler + * - announce a clock tick + * - obtain the system uptime + */ + +/* COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -28,15 +27,22 @@ #ifndef _RTEMS_RTEMS_CLOCK_H #define _RTEMS_RTEMS_CLOCK_H -#ifdef __cplusplus -extern "C" { -#endif - #include #include #include #include +/** + * @defgroup ClassicClock Classic API Clock + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +#ifdef __cplusplus +extern "C" { +#endif + /** * List of things which can be returned by the rtems_clock_get directive. */ @@ -259,5 +265,7 @@ Watchdog_Interval _TOD_To_seconds( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/config.h b/cpukit/rtems/include/rtems/rtems/config.h index 3cc64cfe97..c12c72b2a1 100644 --- a/cpukit/rtems/include/rtems/rtems/config.h +++ b/cpukit/rtems/include/rtems/rtems/config.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/config.h - */ - -/* + * * This include file contains the table of user defined configuration * parameters specific for the RTEMS API. - * - * COPYRIGHT (c) 1989-2006. + */ + +/* COPYRIGHT (c) 1989-2006. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -26,7 +25,14 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicConfig Classic API Configuration + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following records define the Configuration Table. The * information contained in this table is required in all * RTEMS systems, whether single or multiprocessor. This @@ -34,7 +40,6 @@ extern "C" { * * + required number of each object type */ - typedef struct { uint32_t maximum_tasks; uint32_t maximum_timers; @@ -53,5 +58,7 @@ typedef struct { } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/dpmem.h b/cpukit/rtems/include/rtems/rtems/dpmem.h index 37fbc2f445..d14cef2c98 100644 --- a/cpukit/rtems/include/rtems/rtems/dpmem.h +++ b/cpukit/rtems/include/rtems/rtems/dpmem.h @@ -1,8 +1,6 @@ /** * @file rtems/rtems/dpmem.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Dual Ported Memory Manager. This manager provides a mechanism * for converting addresses between internal and external representations @@ -10,14 +8,15 @@ * * Directives provided are: * - * + create a port - * + get ID of a port - * + delete a port - * + convert external to internal address - * + convert internal to external address + * - create a port + * - get ID of a port + * - delete a port + * - convert external to internal address + * - convert internal to external address * - * - * COPYRIGHT (c) 1989-2007. + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -42,12 +41,18 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicDPMEM Classic API Dual Ported Memory + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following structure defines the port control block. Each port * has a control block associated with it. This control block contains * all information required to support the port related operations. */ - typedef struct { Objects_Control Object; void *internal_base; /* base internal address */ @@ -55,28 +60,22 @@ typedef struct { uint32_t length; /* length of dual-ported area */ } Dual_ported_memory_Control; -/* +/** * The following define the internal Dual Ported Memory information. */ - RTEMS_DPMEM_EXTERN Objects_Information _Dual_ported_memory_Information; -/* - * _Dual_ported_memory_Manager_initialization - * - * DESCRIPTION: +/** + * @brief _Dual_ported_memory_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Dual_ported_memory_Manager_initialization( uint32_t maximum_ports ); -/* - * rtems_port_create - * - * DESCRIPTION: +/** + * @brief rtems_port_create * * This routine implements the rtems_port_create directive. The port * will have the name name. The port maps onto an area of dual ported @@ -84,7 +83,6 @@ void _Dual_ported_memory_Manager_initialization( * as the internal and external starting addresses, respectively. * It returns the id of the created port in ID. */ - rtems_status_code rtems_port_create( rtems_name name, void *internal_start, @@ -93,60 +91,48 @@ rtems_status_code rtems_port_create( Objects_Id *id ); -/* - * rtems_port_ident - * - * DESCRIPTION: +/** + * @brief rtems_port_ident * * This routine implements the rtems_port_ident directive. This directive * returns the port ID associated with name. If more than one port is * named name, then the port to which the ID belongs is arbitrary. */ - rtems_status_code rtems_port_ident( rtems_name name, Objects_Id *id ); -/* - * rtems_port_delete - * - * DESCRIPTION: +/** + * @brief rtems_port_delete * * This routine implements the rtems_port_delete directive. It deletes * the port associated with ID. */ - rtems_status_code rtems_port_delete( Objects_Id id ); -/* - * rtems_port_external_to_internal - * - * DESCRIPTION: +/** + * @brief rtems_port_external_to_internal * * This routine implements the rtems_port_external_to_internal directive. * It returns the internal port address which maps to the provided * external port address for the specified port ID. */ - rtems_status_code rtems_port_external_to_internal( Objects_Id id, void *external, void **internal ); -/* - * rtems_port_internal_to_external - * - * DESCRIPTION: +/** + * @brief rtems_port_internal_to_external * * This routine implements the Port_internal_to_external directive. * It returns the external port address which maps to the provided * internal port address for the specified port ID. */ - rtems_status_code rtems_port_internal_to_external( Objects_Id id, void *internal, @@ -161,5 +147,7 @@ rtems_status_code rtems_port_internal_to_external( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/event.h b/cpukit/rtems/include/rtems/rtems/event.h index 68687af31e..584c76eb8c 100644 --- a/cpukit/rtems/include/rtems/rtems/event.h +++ b/cpukit/rtems/include/rtems/rtems/event.h @@ -1,19 +1,18 @@ /** * @file rtems/rtems/event.h - */ - -/* + * * This include file contains the information pertaining to the Event * Manager. This manager provides a high performance method of communication * and synchronization. * * Directives provided are: * - * + send an event set to a task - * + receive event condition + * - send an event set to a task + * - receive event condition * - * - * COPYRIGHT (c) 1989-2008. + */ + +/* COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -43,43 +42,41 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicEvent Classic API Event + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * This constant is passed as the event_in to the * rtems_event_receive directive to determine which events are pending. */ - #define EVENT_CURRENT 0 -/* - * Event_Manager_initialization - * - * DESCRIPTION: +/** + * @brief Event_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Event_Manager_initialization( void ); -/* - * rtems_event_send - * - * DESCRIPTION: +/** + * @brief rtems_event_send * * This routine implements the rtems_event_send directive. It sends * event_in to the task specified by ID. If the task is blocked * waiting to receive events and the posting of event_in satisfies * the task's event condition, then it is unblocked. */ - rtems_status_code rtems_event_send ( Objects_Id id, rtems_event_set event_in ); -/* - * rtems_event_receive - * - * DESCRIPTION: +/** + * @brief rtems_event_receive * * This routine implements the rtems_event_receive directive. This * directive is invoked when the calling task wishes to receive @@ -92,7 +89,6 @@ rtems_status_code rtems_event_send ( * parameter. This directive returns the events received in the * event_out parameter. */ - rtems_status_code rtems_event_receive ( rtems_event_set event_in, rtems_option option_set, @@ -100,10 +96,8 @@ rtems_status_code rtems_event_receive ( rtems_event_set *event_out ); -/* - * _Event_Seize - * - * DESCRIPTION: +/** + * @brief Event_Seize * * This routine determines if the event condition event_in is * satisfied. If so or if the no_wait option is enabled in option_set, @@ -111,7 +105,6 @@ rtems_status_code rtems_event_receive ( * conditions is true, then the calling task is blocked with an * optional timeout of ticks clock ticks. */ - void _Event_Seize ( rtems_event_set event_in, rtems_option option_set, @@ -119,23 +112,18 @@ void _Event_Seize ( rtems_event_set *event_out ); -/* - * _Event_Surrender - * - * DESCRIPTION: +/** + * @brief Event_Surrender * * This routine determines if the event condition of the_thread * has been satisfied. If so, it unblocks the_thread. */ - void _Event_Surrender ( Thread_Control *the_thread ); -/* - * _Event_Timeout - * - * DESCRIPTION: +/** + * @brief Event_Timeout * * This routine is invoked when a task's event receive request * has not been satisfied after the specified timeout interval. @@ -143,18 +131,14 @@ void _Event_Surrender ( * code will be set in it's control block to indicate that a timeout * has occurred. */ - void _Event_Timeout ( Objects_Id id, void *ignored ); -/* - * The following defines the synchronization flag used by the - * Event Manager to insure that signals sent to the currently - * executing thread are received properly. +/** + * @brief he following defines the synchronization flag used by the */ - RTEMS_EVENT_EXTERN volatile Thread_blocking_operation_States _Event_Sync_state; #if defined(RTEMS_MULTIPROCESSING) @@ -168,5 +152,7 @@ RTEMS_EVENT_EXTERN volatile Thread_blocking_operation_States _Event_Sync_state; } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/eventmp.h b/cpukit/rtems/include/rtems/rtems/eventmp.h index e3b149b7d6..2ebed71b3f 100644 --- a/cpukit/rtems/include/rtems/rtems/eventmp.h +++ b/cpukit/rtems/include/rtems/rtems/eventmp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/eventmp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Support in the Event Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -29,21 +28,26 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicEventMP Classic API Event MP Support + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following enumerated type defines the list of * remote event operations. */ - typedef enum { EVENT_MP_SEND_REQUEST = 0, EVENT_MP_SEND_RESPONSE = 1 } Event_MP_Remote_operations; -/* +/** * The following data structure defines the packet used to perform * remote event operations. */ - typedef struct { rtems_packet_prefix Prefix; Event_MP_Remote_operations operation; @@ -51,64 +55,50 @@ typedef struct { } Event_MP_Packet; /* - * _Event_MP_Send_process_packet - * - * DESCRIPTION: + * @brief Event_MP_Send_process_packet * * This routine performs a remote procedure call so that a * process operation can be performed on another node. * - * This routine is not needed since there are no process + * @note This routine is not needed since there are no process * packets to be sent by this manager. */ -/* - * _Event_MP_Send_request_packet - * - * DESCRIPTION: +/** + * @brief Event_MP_Send_request_packet * * This routine performs a remote procedure call so that a * directive operation can be initiated on another node. */ - rtems_status_code _Event_MP_Send_request_packet ( Event_MP_Remote_operations operation, Objects_Id event_id, rtems_event_set event_in ); -/* - * _Event_MP_Send_response_packet - * - * DESCRIPTION: +/** + * @brief Event_MP_Send_response_packet * * This routine performs a remote procedure call so that a * directive can be performed on another node. */ - void _Event_MP_Send_response_packet ( Event_MP_Remote_operations operation, Thread_Control *the_thread ); -/* - * - * _Event_MP_Process_packet - * - * DESCRIPTION: +/** + * @brief Event_MP_Process_packet * * This routine performs the actions specific to this package for * the request from another node. */ - void _Event_MP_Process_packet ( rtems_packet_prefix *the_packet_prefix ); /* - * _Event_MP_Send_object_was_deleted - * - * DESCRIPTION: + * @brief Event_MP_Send_object_was_deleted * * This routine is invoked indirectly by the thread queue * when a proxy has been removed from the thread queue and @@ -119,9 +109,7 @@ void _Event_MP_Process_packet ( */ /* - * _Event_MP_Send_extract_proxy - * - * DESCRIPTION: + * @brief Event_MP_Send_extract_proxy * * This routine is invoked when a task is deleted and it * has a proxy which must be removed from a thread queue and @@ -131,19 +119,18 @@ void _Event_MP_Process_packet ( * deleted by this manager. */ -/* - * _Event_MP_Get_packet - * - * DESCRIPTION: +/** + * @brief Event_MP_Get_packet * * This function is used to obtain a event mp packet. */ - Event_MP_Packet *_Event_MP_Get_packet ( void ); #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/eventset.h b/cpukit/rtems/include/rtems/rtems/eventset.h index 77fbabf763..6458cb92c4 100644 --- a/cpukit/rtems/include/rtems/rtems/eventset.h +++ b/cpukit/rtems/include/rtems/rtems/eventset.h @@ -1,13 +1,12 @@ /** * @file rtems/rtems/eventset.h - */ - -/* + * * This include file contains the information pertaining to the * Event Sets Handler. This handler provides methods for the manipulation * of event sets which will be sent and received by tasks. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -20,63 +19,98 @@ #ifndef _RTEMS_RTEMS_EVENTSET_H #define _RTEMS_RTEMS_EVENTSET_H +/** + * @defgroup ClassicEventSet Classic API Event Set + * + * This encapsulates functionality which XXX + */ +/**@{*/ + #ifdef __cplusplus extern "C" { #endif -/* +/** * The following defines the type used to control event sets. */ - typedef uint32_t rtems_event_set; -/* +/** * The following constants define the individual events which may * be used to compose an event set. */ - #define RTEMS_PENDING_EVENTS 0 /* receive pending events */ #define RTEMS_ALL_EVENTS 0xFFFFFFFF +/** This defines the bit in the event set associated with event 0. */ #define RTEMS_EVENT_0 0x00000001 +/** This defines the bit in the event set associated with event 1. */ #define RTEMS_EVENT_1 0x00000002 +/** This defines the bit in the event set associated with event 2. */ #define RTEMS_EVENT_2 0x00000004 +/** This defines the bit in the event set associated with event 3. */ #define RTEMS_EVENT_3 0x00000008 +/** This defines the bit in the event set associated with event 4. */ #define RTEMS_EVENT_4 0x00000010 +/** This defines the bit in the event set associated with event 5. */ #define RTEMS_EVENT_5 0x00000020 +/** This defines the bit in the event set associated with event 6. */ #define RTEMS_EVENT_6 0x00000040 +/** This defines the bit in the event set associated with event 7. */ #define RTEMS_EVENT_7 0x00000080 +/** This defines the bit in the event set associated with event 8. */ #define RTEMS_EVENT_8 0x00000100 +/** This defines the bit in the event set associated with event 9. */ #define RTEMS_EVENT_9 0x00000200 +/** This defines the bit in the event set associated with event 10. */ #define RTEMS_EVENT_10 0x00000400 +/** This defines the bit in the event set associated with event 11. */ #define RTEMS_EVENT_11 0x00000800 +/** This defines the bit in the event set associated with event 12. */ #define RTEMS_EVENT_12 0x00001000 +/** This defines the bit in the event set associated with event 13. */ #define RTEMS_EVENT_13 0x00002000 +/** This defines the bit in the event set associated with event 14. */ #define RTEMS_EVENT_14 0x00004000 +/** This defines the bit in the event set associated with event 15. */ #define RTEMS_EVENT_15 0x00008000 +/** This defines the bit in the event set associated with event 16. */ #define RTEMS_EVENT_16 0x00010000 +/** This defines the bit in the event set associated with event 17. */ #define RTEMS_EVENT_17 0x00020000 +/** This defines the bit in the event set associated with event 18. */ #define RTEMS_EVENT_18 0x00040000 +/** This defines the bit in the event set associated with event 19. */ #define RTEMS_EVENT_19 0x00080000 +/** This defines the bit in the event set associated with event 20. */ #define RTEMS_EVENT_20 0x00100000 +/** This defines the bit in the event set associated with event 21. */ #define RTEMS_EVENT_21 0x00200000 +/** This defines the bit in the event set associated with event 22. */ #define RTEMS_EVENT_22 0x00400000 +/** This defines the bit in the event set associated with event 23. */ #define RTEMS_EVENT_23 0x00800000 +/** This defines the bit in the event set associated with event 24. */ #define RTEMS_EVENT_24 0x01000000 +/** This defines the bit in the event set associated with event 25. */ #define RTEMS_EVENT_25 0x02000000 +/** This defines the bit in the event set associated with event 26. */ #define RTEMS_EVENT_26 0x04000000 +/** This defines the bit in the event set associated with event 27. */ #define RTEMS_EVENT_27 0x08000000 +/** This defines the bit in the event set associated with event 29. */ #define RTEMS_EVENT_28 0x10000000 +/** This defines the bit in the event set associated with event 29. */ #define RTEMS_EVENT_29 0x20000000 +/** This defines the bit in the event set associated with event 30. */ #define RTEMS_EVENT_30 0x40000000 +/** This defines the bit in the event set associated with event 31. */ #define RTEMS_EVENT_31 0x80000000 - -/* +/** * The following constant is the value of an event set which * has no events pending. */ - #define EVENT_SETS_NONE_PENDING 0 #ifndef __RTEMS_APPLICATION__ @@ -87,5 +121,7 @@ typedef uint32_t rtems_event_set; } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/intr.h b/cpukit/rtems/include/rtems/rtems/intr.h index 281cf8e57b..500040693c 100644 --- a/cpukit/rtems/include/rtems/rtems/intr.h +++ b/cpukit/rtems/include/rtems/rtems/intr.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/intr.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Interrupt Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -25,138 +24,119 @@ extern "C" { #include -/* - * Interrupt level type +/** + * @defgroup ClassicINTR Classic API Interrupt + * + * This encapsulates functionality which XXX */ +/**@{*/ +/** + * Interrupt level type + */ typedef ISR_Level rtems_interrupt_level; -/* +/** * The following type defines the control block used to manage * the vectors. */ - typedef ISR_Vector_number rtems_vector_number; -/* +/** * Return type for ISR Handler */ - typedef void rtems_isr; -/* +/** * Pointer to an ISR Handler */ - typedef rtems_isr ( *rtems_isr_entry )( rtems_vector_number ); -/* - * _Interrupt_Manager_initialization - * - * DESCRIPTION: +/** + * @brief Interrupt_Manager_initialization * * This routine initializes the interrupt manager. * */ - void _Interrupt_Manager_initialization( void ); -/* - * rtems_interrupt_catch - * - * DESCRIPTION: +/** + * @brief rtems_interrupt_catch * * This routine implements the rtems_interrupt_catch directive. This * directive installs new_isr_handler as the RTEMS interrupt service * routine for vector. The previous RTEMS interrupt service * routine is returned in old_isr_handler. */ - rtems_status_code rtems_interrupt_catch( rtems_isr_entry new_isr_handler, rtems_vector_number vector, rtems_isr_entry *old_isr_handler ); -/* - * rtems_interrupt_disable - * - * DESCRIPTION: +/** + * @brief rtems_interrupt_disable * * This routine disables all maskable interrupts and returns the * previous level in _isr_cookie. */ - #define rtems_interrupt_disable( _isr_cookie ) \ _ISR_Disable(_isr_cookie) -/* - * rtems_interrupt_enable - * - * DESCRIPTION: +/** + * @brief rtems_interrupt_enable * * This routine enables maskable interrupts to the level indicated * _isr_cookie. */ - #define rtems_interrupt_enable( _isr_cookie ) \ _ISR_Enable(_isr_cookie) -/* - * rtems_interrupt_flash - * - * DESCRIPTION: +/** + * @brief rtems_interrupt_flash * * This routine temporarily enables maskable interrupts to the * level in _isr_cookie before redisabling them. */ - #define rtems_interrupt_flash( _isr_cookie ) \ _ISR_Flash(_isr_cookie) -/* - * rtems_interrupt_is_in_progress - * - * DESCRIPTION: +/** + * @brief rtems_interrupt_is_in_progress * * This function returns TRUE if the processor is currently servicing * an interrupt and FALSE otherwise. A return value of TRUE indicates * that the caller is an interrupt service routine, NOT a thread. The * directives available to an interrupt service routine are restricted. */ - #define rtems_interrupt_is_in_progress() \ _ISR_Is_in_progress() -/* - * rtems_interrupt_cause - * - * DESCRIPTION: +/** + * @brief rtems_interrupt_cause * * This routine generates an interrupt. * * NOTE: No implementation. */ - #define rtems_interrupt_cause( _interrupt_to_cause ) -/* - * rtems_interrupt_cause - * - * DESCRIPTION: +/** + * @brief rtems_interrupt_clear * * This routine clears the specified interrupt. * * NOTE: No implementation. */ - #define rtems_interrupt_clear( _interrupt_to_clear ) #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/message.h b/cpukit/rtems/include/rtems/rtems/message.h index 9425ddf3af..4cd6b7ba94 100644 --- a/cpukit/rtems/include/rtems/rtems/message.h +++ b/cpukit/rtems/include/rtems/rtems/message.h @@ -1,24 +1,23 @@ /** * @file rtems/rtems/message.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Message Queue Manager. This manager provides a mechanism for * communication and synchronization between tasks using messages. * * Directives provided are: * - * + create a queue - * + get ID of a queue - * + delete a queue - * + put a message at the rear of a queue - * + put a message at the front of a queue - * + broadcast N messages to a queue - * + receive message from a queue - * + flush all messages on a queue - * - * COPYRIGHT (c) 1989-2007. + * - create a queue + * - get ID of a queue + * - delete a queue + * - put a message at the rear of a queue + * - put a message at the front of a queue + * - broadcast N messages to a queue + * - receive message from a queue + * - flush all messages on a queue + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -46,22 +45,27 @@ extern "C" { #include #include +/** + * @defgroup ClassicMessageQueue Classic API Message Queue + * + * This encapsulates functionality which XXX + */ +/**@{*/ + /* * The following enumerated type details the modes in which a message * may be submitted to a message queue. The message may be posted * in a send or urgent fashion. */ - typedef enum { MESSAGE_QUEUE_SEND_REQUEST = 0, MESSAGE_QUEUE_URGENT_REQUEST = 1 } Message_queue_Submit_types; -/* +/** * The following records define the control block used to manage * each message queue. */ - typedef struct { Objects_Control Object; rtems_attribute attribute_set; @@ -72,25 +76,19 @@ typedef struct { * The following defines the information control block used to * manage this class of objects. */ - RTEMS_MESSAGE_EXTERN Objects_Information _Message_queue_Information; -/* - * _Message_queue_Manager_initialization - * - * DESCRIPTION: +/** + * @brief Message_queue_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Message_queue_Manager_initialization( uint32_t maximum_message_queues ); -/* - * rtems_message_queue_create - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_create * * This routine implements the rtems_message_queue_create directive. The * message queue will have the name name. If the attribute_set indicates @@ -99,7 +97,6 @@ void _Message_queue_Manager_initialization( * messages that will be held. It returns the id of the created * message queue in ID. */ - rtems_status_code rtems_message_queue_create( rtems_name name, uint32_t count, @@ -108,10 +105,8 @@ rtems_status_code rtems_message_queue_create( Objects_Id *id ); -/* - * rtems_message_queue_ident - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_ident * * This routine implements the rtems_message_queue_ident directive. * This directive returns the message queue ID associated with NAME. @@ -121,30 +116,24 @@ rtems_status_code rtems_message_queue_create( * The search can be limited to a particular node or allowed to * encompass all nodes. */ - rtems_status_code rtems_message_queue_ident( rtems_name name, uint32_t node, Objects_Id *id ); -/* - * rtems_message_queue_delete - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_delete * * This routine implements the rtems_message_queue_delete directive. The * message queue indicated by ID is deleted. */ - rtems_status_code rtems_message_queue_delete( Objects_Id id ); -/* - * rtems_message_queue_send - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_send * * This routine implements the rtems_message_queue_send directive. * This directive sends the message buffer to the message queue @@ -156,17 +145,14 @@ rtems_status_code rtems_message_queue_delete( * then the message buffer will be placed at the REAR of the * chain of pending messages for this message queue. */ - rtems_status_code rtems_message_queue_send( Objects_Id id, void *buffer, size_t size ); -/* - * rtems_message_queue_urgent - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_urgent * * This routine implements the rtems_message_queue_urgent directive. * This directive has the same behavior as rtems_message_queue_send @@ -174,24 +160,20 @@ rtems_status_code rtems_message_queue_send( * be placed at the FRONT of the chain of pending messages rather * than at the REAR. */ - rtems_status_code rtems_message_queue_urgent( Objects_Id id, void *buffer, size_t size ); -/* - * rtems_message_queue_broadcast - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_broadcast * * This routine implements the rtems_message_queue_broadcast directive. * This directive sends the message buffer to all of the tasks blocked * waiting for a message on the message queue indicated by ID. * If no tasks are waiting, then the message buffer will not be queued. */ - rtems_status_code rtems_message_queue_broadcast( Objects_Id id, void *buffer, @@ -199,10 +181,8 @@ rtems_status_code rtems_message_queue_broadcast( uint32_t *count ); -/* - * rtems_message_queue_receive - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_receive * * This routine implements the rtems_message_queue_receive directive. * This directive is invoked when the calling task wishes to receive @@ -212,7 +192,6 @@ rtems_status_code rtems_message_queue_broadcast( * then the task will be blocked until a message arrives or until, * optionally, timeout clock ticks have passed. */ - rtems_status_code rtems_message_queue_receive( Objects_Id id, void *buffer, @@ -221,43 +200,35 @@ rtems_status_code rtems_message_queue_receive( rtems_interval timeout ); -/* - * rtems_message_queue_flush - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_flush * * This routine implements the rtems_message_queue_flush directive. * This directive takes all outstanding messages for the message * queue indicated by ID and returns them to the inactive message * chain. The number of messages flushed is returned in COUNT. */ - rtems_status_code rtems_message_queue_flush( Objects_Id id, uint32_t *count ); -/* - * rtems_message_queue_get_number_pending - * - * DESCRIPTION: +/** + * @brief rtems_message_queue_get_number_pending * * This routine implements the rtems_message_queue_get_number_pending * directive. This directive returns the number of pending * messages for the message queue indicated by ID * chain. The number of messages pending is returned in COUNT. */ - rtems_status_code rtems_message_queue_get_number_pending( Objects_Id id, uint32_t *count ); -/* - * _Message_queue_Submit - * - * DESCRIPTION: +/** + * @brief Message_queue_Submit * * This routine implements the directives rtems_message_queue_send * and rtems_message_queue_urgent. It processes a message that is @@ -266,7 +237,6 @@ rtems_status_code rtems_message_queue_get_number_pending( * at the rear of the queue or it will be processed as an urgent message * which will be inserted at the front of the queue. */ - rtems_status_code _Message_queue_Submit( Objects_Id id, void *buffer, @@ -274,36 +244,30 @@ rtems_status_code _Message_queue_Submit( Message_queue_Submit_types submit_type ); -/* - * _Message_queue_Allocate - * - * DESCRIPTION: +/** + * @brief Message_queue_Allocate * * This function allocates a message queue control block from * the inactive chain of free message queue control blocks. */ - Message_queue_Control *_Message_queue_Allocate ( uint32_t count, uint32_t max_message_size ); -/* - * _Message_queue_Translate_core_message_queue_return_code - * - * DESCRIPTION: +/** + * @brief Message_queue_Translate_core_message_queue_return_code * * This function returns a RTEMS status code based on the core message queue * status code specified. */ - rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( uint32_t the_message_queue_status ); -/* - * - * _Message_queue_Core_message_queue_mp_support +#if defined(RTEMS_MULTIPROCESSING) +/** + * @brief Message_queue_Core_message_queue_mp_support * * Input parameters: * the_thread - the remote thread the message was submitted to @@ -311,8 +275,6 @@ rtems_status_code _Message_queue_Translate_core_message_queue_return_code ( * * Output parameters: NONE */ - -#if defined(RTEMS_MULTIPROCESSING) void _Message_queue_Core_message_queue_mp_support ( Thread_Control *the_thread, Objects_Id id diff --git a/cpukit/rtems/include/rtems/rtems/modes.h b/cpukit/rtems/include/rtems/rtems/modes.h index 5a6131297c..b2d9ee9fb6 100644 --- a/cpukit/rtems/include/rtems/rtems/modes.h +++ b/cpukit/rtems/include/rtems/rtems/modes.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/modes.h - */ - -/* + * * This include file contains all constants and structures associated * with the RTEMS thread and RTEMS_ASR modes. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -19,24 +18,29 @@ #ifndef _RTEMS_RTEMS_MODES_H #define _RTEMS_RTEMS_MODES_H +/** + * @defgroup ClassicModes Classic API Modes + * + * This encapsulates functionality which XXX + */ +/**@{*/ + #ifdef __cplusplus extern "C" { #endif #include -/* +/** * The following type defines the control block used to manage * each a mode set. */ - typedef uint32_t Modes_Control; -/* +/** * The following constants define the individual modes and masks * which may be used to compose a mode set and to alter modes. */ - #define RTEMS_ALL_MODE_MASKS 0x0000ffff #define RTEMS_DEFAULT_MODES 0x00000000 @@ -56,25 +60,21 @@ typedef uint32_t Modes_Control; #define RTEMS_ASR 0x00000000 /* enable RTEMS_ASR */ #define RTEMS_NO_ASR 0x00000400 /* disable RTEMS_ASR */ -/* +/** * The number of bits for interrupt levels is CPU dependent. * RTEMS supports 0 to 256 levels in bits 0-7 of the mode. */ -/*PAGE - * - * RTEMS_INTERRUPT_LEVEL - * - * DESCRIPTION: +/** + * @brief RTEMS_INTERRUPT_LEVEL * * This function returns the processor dependent interrupt * level which corresponds to the requested interrupt level. * - * NOTE: RTEMS supports 256 interrupt levels using the least - * significant eight bits of MODES.CONTROL. On any - * particular CPU, fewer than 256 levels may be supported. + * @note RTEMS supports 256 interrupt levels using the least + * significant eight bits of MODES.CONTROL. On any + * particular CPU, fewer than 256 levels may be supported. */ - #define RTEMS_INTERRUPT_LEVEL( _mode_set ) \ ( (_mode_set) & RTEMS_INTERRUPT_MASK ) diff --git a/cpukit/rtems/include/rtems/rtems/mp.h b/cpukit/rtems/include/rtems/rtems/mp.h index cebdb2a175..3e050d73af 100644 --- a/cpukit/rtems/include/rtems/rtems/mp.h +++ b/cpukit/rtems/include/rtems/rtems/mp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/mp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -19,37 +18,38 @@ #ifndef _RTEMS_RTEMS_MP_H #define _RTEMS_RTEMS_MP_H +/** + * @defgroup ClassicMP Classic API Multiprocessing + * + * This encapsulates functionality which XXX + */ +/**@{*/ + #ifdef __cplusplus extern "C" { #endif -/* - * - * _Multiprocessing_Manager_initialization - * - * DESCRIPTION: +/** + * @brief Multiprocessing_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Multiprocessing_Manager_initialization ( void ); -/* - * - * rtems_multiprocessing_announce - * - * DESCRIPTION: +/** + * @brief rtems_multiprocessing_announce * * This routine implements the MULTIPROCESSING_ANNOUNCE directive. * It is invoked by the MPCI layer to indicate that an MPCI packet * has been received. */ - void rtems_multiprocessing_announce ( void ); #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/msgmp.h b/cpukit/rtems/include/rtems/rtems/msgmp.h index 2b9b41da15..ea9568f639 100644 --- a/cpukit/rtems/include/rtems/rtems/msgmp.h +++ b/cpukit/rtems/include/rtems/rtems/msgmp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/msgmp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Support in the Message Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -30,11 +29,17 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicMsgMP Classic API Message Queue MP Support + * + * This encapsulates functionality which XXX + */ +/**{*/ + +/** * The following enumerated type defines the list of * remote message queue operations. */ - typedef enum { MESSAGE_QUEUE_MP_ANNOUNCE_CREATE = 0, MESSAGE_QUEUE_MP_ANNOUNCE_DELETE = 1, @@ -53,11 +58,10 @@ typedef enum { MESSAGE_QUEUE_MP_GET_NUMBER_PENDING_RESPONSE = 14 } Message_queue_MP_Remote_operations; -/* +/** * The following data structure defines the packet used to perform * remote message queue operations. */ - typedef struct { rtems_packet_prefix Prefix; Message_queue_MP_Remote_operations operation; @@ -70,15 +74,12 @@ typedef struct { CORE_message_queue_Buffer Buffer; } Message_queue_MP_Packet; -/* - * _Message_queue_MP_Send_process_packet - * - * DESCRIPTION: +/** + * @brief _Message_queue_MP_Send_process_packet * * This routine performs a remote procedure call so that a * process operation can be performed on another node. */ - void _Message_queue_MP_Send_process_packet ( Message_queue_MP_Remote_operations operation, Objects_Id message_queue_id, @@ -86,15 +87,12 @@ void _Message_queue_MP_Send_process_packet ( Objects_Id proxy_id ); -/* - * _Message_queue_MP_Send_request_packet - * - * DESCRIPTION: +/** + * @brief _Message_queue_MP_Send_request_packet * * This routine performs a remote procedure call so that a * directive operation can be initiated on another node. */ - rtems_status_code _Message_queue_MP_Send_request_packet ( Message_queue_MP_Remote_operations operation, Objects_Id message_queue_id, @@ -104,76 +102,63 @@ rtems_status_code _Message_queue_MP_Send_request_packet ( Watchdog_Interval timeout ); -/* - * _Message_queue_MP_Send_response_packet - * - * DESCRIPTION: +/** + * @brief _Message_queue_MP_Send_response_packet * * This routine performs a remote procedure call so that a * directive can be performed on another node. */ - void _Message_queue_MP_Send_response_packet ( Message_queue_MP_Remote_operations operation, Objects_Id message_queue_id, Thread_Control *the_thread ); -/* - * - * _Message_queue_MP_Process_packet +/** * - * DESCRIPTION: + @brief * _Message_queue_MP_Process_packet * * This routine performs the actions specific to this package for * the request from another node. */ - void _Message_queue_MP_Process_packet ( rtems_packet_prefix *the_packet_prefix ); -/* - * _Message_queue_MP_Send_object_was_deleted - * - * DESCRIPTION: +/** + * @brief _Message_queue_MP_Send_object_was_deleted * * This routine is invoked indirectly by the thread queue * when a proxy has been removed from the thread queue and * the remote node must be informed of this. */ - void _Message_queue_MP_Send_object_was_deleted ( Thread_Control *the_proxy ); -/* - * _Message_queue_MP_Send_extract_proxy - * - * DESCRIPTION: +/** + * @brief _Message_queue_MP_Send_extract_proxy * * This routine is invoked when a task is deleted and it * has a proxy which must be removed from a thread queue and * the remote node must be informed of this. */ - void _Message_queue_MP_Send_extract_proxy ( void *argument ); -/* - * _Message_queue_MP_Get_packet - * - * DESCRIPTION: +/** + * @brief _Message_queue_MP_Get_packet * * This function is used to obtain a message queue mp packet. */ - Message_queue_MP_Packet *_Message_queue_MP_Get_packet ( void ); #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/object.h b/cpukit/rtems/include/rtems/rtems/object.h index bb989df22c..367e5ef224 100644 --- a/cpukit/rtems/include/rtems/rtems/object.h +++ b/cpukit/rtems/include/rtems/rtems/object.h @@ -1,9 +1,8 @@ /** - * @file rtems/classinfo.h + * @file rtems/rtems/object.h */ - -/* - * COPYRIGHT (c) 1989-2008. + +/* COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -25,6 +24,13 @@ extern "C" { #include #include +/** + * @defgroup ClassicClassInfo Classic API Class Information + * + * This encapsulates functionality which XXX + */ +/**@{*/ + /** * This structure is used to return information to the application * about the objects configured for a specific API/Class combination. @@ -325,5 +331,7 @@ rtems_status_code rtems_object_get_class_information( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/options.h b/cpukit/rtems/include/rtems/rtems/options.h index 70f17d700c..a0f5c444d6 100644 --- a/cpukit/rtems/include/rtems/rtems/options.h +++ b/cpukit/rtems/include/rtems/rtems/options.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/options.h - */ - -/* + * * This include file contains information which defines the * options available on many directives. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -23,18 +22,23 @@ extern "C" { #endif -/* +/** + * @defgroup ClassicOptions Classic API Options + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following type defines the control block used to manage * option sets. */ - typedef uint32_t rtems_option; -/* +/** * The following constants define the individual options which may * be used to compose an option set. */ - #define RTEMS_DEFAULT_OPTIONS 0x00000000 #define RTEMS_WAIT 0x00000000 /* wait on resource */ diff --git a/cpukit/rtems/include/rtems/rtems/part.h b/cpukit/rtems/include/rtems/rtems/part.h index 0e2eb496c4..fda28714c7 100644 --- a/cpukit/rtems/include/rtems/rtems/part.h +++ b/cpukit/rtems/include/rtems/rtems/part.h @@ -1,8 +1,6 @@ /** * @file rtems/rtems/part.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Partition Manager. This manager provides facilities to * dynamically allocate memory in fixed-sized units which are returned @@ -10,13 +8,14 @@ * * Directives provided are: * - * + create a partition - * + get an ID of a partition - * + delete a partition - * + get a buffer from a partition - * + return a buffer to a partition - * - * COPYRIGHT (c) 1989-2007. + * - create a partition + * - get an ID of a partition + * - delete a partition + * - get a buffer from a partition + * - return a buffer to a partition + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -44,10 +43,16 @@ extern "C" { #include #include -/* - * The following defines the control block used to manage each partition. +/** + * @defgroup ClassicPart Classic API Partition + * + * This encapsulates functionality which XXX */ +/**@{*/ +/** + * The following defines the control block used to manage each partition. + */ typedef struct { Objects_Control Object; void *starting_address; /* physical address */ @@ -58,29 +63,23 @@ typedef struct { Chain_Control Memory; /* buffer chain */ } Partition_Control; -/* +/** * The following defines the information control block used to * manage this class of objects. */ - RTEMS_PART_EXTERN Objects_Information _Partition_Information; -/* - * _Partition_Manager_initialization - * - * DESCRIPTION: +/** + * @brief Partition_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Partition_Manager_initialization( uint32_t maximum_partitions ); -/* - * rtems_partition_create - * - * DESCRIPTION: +/** + * @brief rtems_partition_create * * This routine implements the rtems_partition_create directive. The * partition will have the name name. The memory area managed by @@ -90,7 +89,6 @@ void _Partition_Manager_initialization( * the partition is global or local. It returns the id of the * created partition in ID. */ - rtems_status_code rtems_partition_create( rtems_name name, void *starting_address, @@ -100,10 +98,8 @@ rtems_status_code rtems_partition_create( Objects_Id *id ); -/* - * rtems_partition_ident - * - * DESCRIPTION: +/** + * @brief rtems_partition_ident * * This routine implements the rtems_partition_ident directive. * This directive returns the partition ID associated with name. @@ -113,51 +109,41 @@ rtems_status_code rtems_partition_create( * The search can be limited to a particular node or allowed to * encompass all nodes. */ - rtems_status_code rtems_partition_ident( rtems_name name, uint32_t node, Objects_Id *id ); -/* - * rtems_partition_delete - * - * DESCRIPTION: +/** + * @brief rtems_partition_delete * * This routine implements the rtems_partition_delete directive. The * partition indicated by ID is deleted. */ - rtems_status_code rtems_partition_delete( Objects_Id id ); -/* - * rtems_partition_get_buffer - * - * DESCRIPTION: +/** + * @brief rtems_partition_get_buffer * * This routine implements the rtems_partition_get_buffer directive. It * attempts to allocate a buffer from the partition associated with ID. * If a buffer is allocated, its address is returned in buffer. */ - rtems_status_code rtems_partition_get_buffer( Objects_Id id, void **buffer ); -/* - * rtems_partition_return_buffer - * - * DESCRIPTION: +/** + * @brief rtems_partition_return_buffer * * This routine implements the rtems_partition_return_buffer directive. It * frees the buffer to the partition associated with ID. The buffer must * have been previously allocated from the same partition. */ - rtems_status_code rtems_partition_return_buffer( Objects_Id id, void *buffer @@ -174,5 +160,7 @@ rtems_status_code rtems_partition_return_buffer( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/partmp.h b/cpukit/rtems/include/rtems/rtems/partmp.h index 9369dc286c..9401e19b1a 100644 --- a/cpukit/rtems/include/rtems/rtems/partmp.h +++ b/cpukit/rtems/include/rtems/rtems/partmp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/partmp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Support in the Partition Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -30,11 +29,17 @@ extern "C" { #include -/* +/** + * @defgroup ClassicPartMP Classic API Partition MP Support + * + * This encapsulates functionality which XXX + */ +/**{*/ + +/** * The following enumerated type defines the list of * remote partition operations. */ - typedef enum { PARTITION_MP_ANNOUNCE_CREATE = 0, PARTITION_MP_ANNOUNCE_DELETE = 1, @@ -45,11 +50,10 @@ typedef enum { PARTITION_MP_RETURN_BUFFER_RESPONSE = 6 } Partition_MP_Remote_operations; -/* +/** * The following data structure defines the packet used to perform * remote partition operations. */ - typedef struct { rtems_packet_prefix Prefix; Partition_MP_Remote_operations operation; @@ -58,15 +62,12 @@ typedef struct { Objects_Id proxy_id; } Partition_MP_Packet; -/* - * _Partition_MP_Send_process_packet - * - * DESCRIPTION: +/** + * @brief Partition_MP_Send_process_packet * * This routine performs a remote procedure call so that a * process operation can be performed on another node. */ - void _Partition_MP_Send_process_packet ( Partition_MP_Remote_operations operation, Objects_Id partition_id, @@ -74,54 +75,43 @@ void _Partition_MP_Send_process_packet ( Objects_Id proxy_id ); -/* - * _Partition_MP_Send_request_packet - * - * DESCRIPTION: +/** + * @brief Partition_MP_Send_request_packet * * This routine performs a remote procedure call so that a * directive operation can be initiated on another node. */ - rtems_status_code _Partition_MP_Send_request_packet ( Partition_MP_Remote_operations operation, Objects_Id partition_id, void *buffer ); -/* - * _Partition_MP_Send_response_packet - * - * DESCRIPTION: +/** + * @brief Partition_MP_Send_response_packet * * This routine performs a remote procedure call so that a * directive can be performed on another node. */ - void _Partition_MP_Send_response_packet ( Partition_MP_Remote_operations operation, Objects_Id partition_id, Thread_Control *the_thread ); -/* - * - * _Partition_MP_Process_packet +/** * - * DESCRIPTION: + * @brief Partition_MP_Process_packet * * This routine performs the actions specific to this package for * the request from another node. */ - void _Partition_MP_Process_packet ( rtems_packet_prefix *the_packet_prefix ); -/* - * _Partition_MP_Send_object_was_deleted - * - * DESCRIPTION: +/** + * @brief Partition_MP_Send_object_was_deleted * * This routine is invoked indirectly by the thread queue * when a proxy has been removed from the thread queue and @@ -130,34 +120,31 @@ void _Partition_MP_Process_packet ( * This routine is not needed by the Partition since a partition * cannot be deleted when buffers are in use. */ +#warning "Why is there no prototype for Partition_MP_Send_object_was_deleted" -/* - * _Partition_MP_Send_extract_proxy - * - * DESCRIPTION: +/** + * @brief Partition_MP_Send_extract_proxy * * This routine is invoked when a task is deleted and it * has a proxy which must be removed from a thread queue and * the remote node must be informed of this. */ - void _Partition_MP_Send_extract_proxy ( void *argument ); -/* - * _Partition_MP_Get_packet - * - * DESCRIPTION: +/** + * @brief Partition_MP_Get_packet * * This function is used to obtain a partition mp packet. */ - Partition_MP_Packet *_Partition_MP_Get_packet ( void ); #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h b/cpukit/rtems/include/rtems/rtems/ratemon.h index 8645dec4a9..622b1c3e1a 100644 --- a/cpukit/rtems/include/rtems/rtems/ratemon.h +++ b/cpukit/rtems/include/rtems/rtems/ratemon.h @@ -1,21 +1,20 @@ /** * @file rtems/rtems/ratemon.h - */ - -/* + * * This include file contains all the constants, structures, and * prototypes associated with the Rate Monotonic Manager. This manager * provides facilities to implement tasks which execute in a periodic fashion. * * Directives provided are: * - * + create a rate monotonic timer - * + cancel a period - * + delete a rate monotonic timer - * + conclude current and start the next period - * + obtain status information on a period - * - * COPYRIGHT (c) 1989-2007. + * - create a rate monotonic timer + * - cancel a period + * - delete a rate monotonic timer + * - conclude current and start the next period + * - obtain status information on a period + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -34,6 +33,13 @@ #include +/** + * @defgroup ClassicRateMon Classic API Rate Monotonic + * + * This encapsulates functionality which XXX + */ +/**@{*/ + #ifdef __cplusplus extern "C" { #endif @@ -43,7 +49,7 @@ extern "C" { * resolution. */ #ifndef __RTEMS_USE_TICKS_RATE_MONOTONIC_STATISTICS__ - /* + /** * Enable the nanosecond accurate statistics * * When not defined, the older style tick accurate granularity @@ -60,11 +66,10 @@ extern "C" { #include -/* +/** * The following enumerated type defines the states in which a * period may be. */ - typedef enum { RATE_MONOTONIC_INACTIVE, /* off chain, never initialized */ RATE_MONOTONIC_OWNER_IS_BLOCKING, /* on chain, owner is blocking on it */ @@ -75,17 +80,15 @@ typedef enum { /* rtems_rate_monotonic_period */ } rtems_rate_monotonic_period_states; -/* +/** * The following constant is the interval passed to the rate_monontonic_period * directive to obtain status information. */ - #define RTEMS_PERIOD_STATUS WATCHDOG_NO_TIMEOUT -/* +/** * The following defines the statistics kept on each period instance. */ - typedef struct { uint32_t count; uint32_t missed_count; @@ -109,10 +112,9 @@ typedef struct { #endif } rtems_rate_monotonic_period_statistics; -/* +/** * The following defines the period status structure. */ - typedef struct { Objects_Id owner; rtems_rate_monotonic_period_states state; @@ -128,11 +130,10 @@ typedef struct { #endif } rtems_rate_monotonic_period_status; -/* +/** * The following structure defines the control block used to manage * each period. */ - typedef struct { Objects_Control Object; Watchdog_Control Timer; @@ -154,109 +155,86 @@ typedef struct { RTEMS_RATEMON_EXTERN Objects_Information _Rate_monotonic_Information; -/* +/** * _Rate_monotonic_Manager_initialization * - * DESCRIPTION: - * * This routine performs the initialization necessary for this manager. */ - void _Rate_monotonic_Manager_initialization( uint32_t maximum_periods ); -/* - * rtems_rate_monotonic_create - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_create * * This routine implements the rate_monotonic_create directive. The * period will have the name name. It returns the id of the * created period in ID. */ - rtems_status_code rtems_rate_monotonic_create( rtems_name name, Objects_Id *id ); -/* - * rtems_rate_monotonic_ident - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_ident * * This routine implements the rtems_rate_monotonic_ident directive. * This directive returns the period ID associated with name. * If more than one period is named name, then the period * to which the ID belongs is arbitrary. */ - rtems_status_code rtems_rate_monotonic_ident( rtems_name name, Objects_Id *id ); -/* - * rtems_rate_monotonic_cancel - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_cancel * * This routine implements the rtems_rate_monotonic_cancel directive. This * directive stops the period associated with ID from continuing to * run. */ - rtems_status_code rtems_rate_monotonic_cancel( Objects_Id id ); -/* - * rtems_rate_monotonic_delete - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_delete * * This routine implements the rtems_rate_monotonic_delete directive. The * period indicated by ID is deleted. */ - rtems_status_code rtems_rate_monotonic_delete( Objects_Id id ); -/* - * rtems_rate_monotonic_get_status - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_get_status * * This routine implements the rtems_rate_monotonic_get_status directive. * Information about the period indicated by ID is returned. * */ - rtems_status_code rtems_rate_monotonic_get_status( Objects_Id id, rtems_rate_monotonic_period_status *status ); -/* - * rtems_rate_monotonic_get_statistics - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_get_statistics * * This routine implements the rtems_rate_monotonic_get_statistics directive. * Statistics gathered from the use of this period are returned. */ - rtems_status_code rtems_rate_monotonic_get_statistics( Objects_Id id, rtems_rate_monotonic_period_statistics *statistics ); -/* - * rtems_rate_monotonic_reset_statistics - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_reset_statistics * * This directive allows a thread to reset the statistics information * on a specific period instance. @@ -265,20 +243,16 @@ rtems_status_code rtems_rate_monotonic_reset_statistics( Objects_Id id ); -/* - * rtems_rate_monotonic_reset_all_statistics - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_reset_all_statistics * * This directive allows a thread to reset the statistics information * on ALL period instances. */ void rtems_rate_monotonic_reset_all_statistics( void ); -/* - * rtems_rate_monotonic_report_statistics - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_report_statistics * * This directive allows a thread to print the statistics information * on ALL period instances which have non-zero counts using printk. @@ -288,36 +262,29 @@ void rtems_rate_monotonic_report_statistics_with_plugin( rtems_printk_plugin_t print ); -/* - * rtems_rate_monotonic_report_statistics - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_report_statistics * * This directive allows a thread to print the statistics information * on ALL period instances which have non-zero counts using printk. */ void rtems_rate_monotonic_report_statistics( void ); -/* - * rtems_rate_monotonic_period - * - * DESCRIPTION: +/** + * @brief rtems_rate_monotonic_period * * This routine implements the rtems_rate_monotonic_period directive. When * length is non-zero, this directive initiates the period associated with * ID from continuing for a period of length. If length is zero, then * result is set to indicate the current state of the period. */ - rtems_status_code rtems_rate_monotonic_period( Objects_Id id, rtems_interval length ); -/* - * _Rate_monotonic_Timeout - * - * DESCRIPTION: +/** + * @brief _Rate_monotonic_Timeout * * This routine is invoked when the period represented * by ID expires. If the task which owns this period is blocked @@ -326,20 +293,16 @@ rtems_status_code rtems_rate_monotonic_period( * period to expire, then the period is placed in the EXPIRED * state and not restarted. */ - void _Rate_monotonic_Timeout( Objects_Id id, void *ignored ); -/* - * _Rate_monotonic_Reset_statistics - * - * DESCRIPTION: +/** + * @brief _Rate_monotonic_Reset_statistics * * This method resets the statistics information for a period instance. */ - #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS #define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \ do { \ @@ -381,5 +344,7 @@ void _Rate_monotonic_Timeout( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/region.h b/cpukit/rtems/include/rtems/rtems/region.h index 78cd7796a9..aff2648265 100644 --- a/cpukit/rtems/include/rtems/rtems/region.h +++ b/cpukit/rtems/include/rtems/rtems/region.h @@ -1,21 +1,20 @@ /** * @file rtems/rtems/region.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Region Manager. This manager provides facilities to dynamically * allocate memory in variable sized units which are returned as segments. * * Directives provided are: * - * + create a region - * + get an ID of a region - * + delete a region - * + get a segment from a region - * + return a segment to a region - * - * COPYRIGHT (c) 1989-2007. + * - create a region + * - get an ID of a region + * - delete a region + * - get a segment from a region + * - return a segment to a region + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -28,14 +27,6 @@ #ifndef _RTEMS_RTEMS_REGION_H #define _RTEMS_RTEMS_REGION_H -#ifndef RTEMS_REGION_EXTERN -#define RTEMS_REGION_EXTERN extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - #include #include @@ -48,7 +39,22 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicRegion Classic API Region + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +#ifndef RTEMS_REGION_EXTERN +#define RTEMS_REGION_EXTERN extern +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** * The following records define the control block used to manage * each region. */ @@ -65,29 +71,23 @@ typedef struct { Heap_Control Memory; } Region_Control; -/* +/** * The following defines the information control block used to * manage this class of objects. */ - RTEMS_REGION_EXTERN Objects_Information _Region_Information; -/* - * _Region_Manager_initialization - * - * DESCRIPTION: +/** + * @brief _Region_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Region_Manager_initialization( uint32_t maximum_regions ); -/* - * rtems_region_create - * - * DESCRIPTION: +/** + * @brief rtems_region_create * * This routine implements the rtems_region_create directive. The * region will have the name name. The memory area managed by @@ -97,7 +97,6 @@ void _Region_Manager_initialization( * thread queue discipline is used by the region. It returns the * id of the created region in ID. */ - rtems_status_code rtems_region_create( rtems_name name, void *starting_address, @@ -107,86 +106,69 @@ rtems_status_code rtems_region_create( Objects_Id *id ); -/* - * rtems_region_extend - * - * DESCRIPTION: +/** + * @brief rtems_region_extend * * This routine implements the rtems_region_extend directive. The * region will have the name name. The memory area managed by * the region will be attempted to be grown by length bytes using * the memory starting at starting_address. */ - rtems_status_code rtems_region_extend( Objects_Id id, void *starting_address, uint32_t length ); -/* - * rtems_region_ident - * - * DESCRIPTION: +/** + * @brief rtems_region_ident * * This routine implements the rtems_region_ident directive. * This directive returns the region ID associated with name. * If more than one region is named name, then the region * to which the ID belongs is arbitrary. */ - rtems_status_code rtems_region_ident( rtems_name name, Objects_Id *id ); -/* - * rtems_region_get_information - * - * DESCRIPTION: +/** + * @brief rtems_region_get_information * * This routine implements the rtems_region_get_information directive. * This directive returns information about the heap associated with * this region. */ - rtems_status_code rtems_region_get_information( Objects_Id id, Heap_Information_block *the_info ); -/* - * rtems_region_get_free_information - * - * DESCRIPTION: +/** + * @brief rtems_region_get_free_information * * This routine implements the rtems_region_get_free_information directive. * This directive returns information about the free blocks in the * heap associated with this region. */ - rtems_status_code rtems_region_get_free_information( Objects_Id id, Heap_Information_block *the_info ); -/* - * rtems_region_delete - * - * DESCRIPTION: +/** + * @brief rtems_region_delete * * This routine implements the rtems_region_delete directive. The * region indicated by ID is deleted. */ - rtems_status_code rtems_region_delete( Objects_Id id ); -/* - * rtems_region_get_segment - * - * DESCRIPTION: +/** + * @brief rtems_region_get_segment * * This routine implements the rtems_region_get_segment directive. It * attempts to allocate a segment from the region associated with ID. @@ -196,7 +178,6 @@ rtems_status_code rtems_region_delete( * timeout of timeout clock ticks. Whether the task blocks or returns * immediately is based on the no_wait option in the option_set. */ - rtems_status_code rtems_region_get_segment( Objects_Id id, uint32_t size, @@ -205,25 +186,20 @@ rtems_status_code rtems_region_get_segment( void **segment ); -/* - * rtems_region_get_segment_size - * - * DESCRIPTION: +/** + * @brief rtems_region_get_segment_size * * This routine implements the rtems_region_get_segment_size directive. It * returns the size in bytes of the specified user memory area. */ - rtems_status_code rtems_region_get_segment_size( Objects_Id id, void *segment, size_t *size ); -/* - * rtems_region_return_segment - * - * DESCRIPTION: +/** + * @brief rtems_region_return_segment * * This routine implements the rtems_region_return_segment directive. It * frees the segment to the region associated with ID. The segment must @@ -233,16 +209,13 @@ rtems_status_code rtems_region_get_segment_size( * many subsequent tasks as possible will be unblocked with their requests * satisfied. */ - rtems_status_code rtems_region_return_segment( Objects_Id id, void *segment ); -/* - * rtems_region_resize_segment - * - * DESCRIPTION: +/** + * @brief rtems_region_resize_segment * * This routine implements the rtems_region_resize_segment directive. It * tries to resize segment in the region associated with 'id' to the new size @@ -261,7 +234,6 @@ rtems_status_code rtems_region_return_segment( * 'old_size' the old size in bytes of the user memory area of the specified * segment. */ - rtems_status_code rtems_region_resize_segment( Objects_Id id, void *segment, @@ -271,21 +243,27 @@ rtems_status_code rtems_region_resize_segment( #ifndef __RTEMS_APPLICATION__ #include +/** + * @brief Region_Process_queue + * + * This is a helper routine which is invoked any time memory is + * freed. It looks at the set of waiting tasks and attempts to + * satisfy all outstanding requests. + */ extern void _Region_Process_queue(Region_Control *the_region); + #endif + #if defined(RTEMS_MULTIPROCESSING) #include #endif -/* - * _Region_Debug_Walk - * - * DESCRIPTION: +/** + * @brief _Region_Debug_Walk * * This routine is invoked to verify the integrity of a heap associated * with the_region. */ - #ifdef RTEMS_DEBUG #define _Region_Debug_Walk( _the_region, _source ) \ @@ -304,5 +282,7 @@ extern void _Region_Process_queue(Region_Control *the_region); } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/regionmp.h b/cpukit/rtems/include/rtems/rtems/regionmp.h index 2b0eeac29a..5c4a61cd04 100644 --- a/cpukit/rtems/include/rtems/rtems/regionmp.h +++ b/cpukit/rtems/include/rtems/rtems/regionmp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/regionmp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Support in the Region Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -30,11 +29,17 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicRegionMP Classic API Region MP Support + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following enumerated type defines the list of * remote region operations. */ - typedef enum { REGION_MP_ANNOUNCE_CREATE = 0, REGION_MP_ANNOUNCE_DELETE = 1, @@ -45,11 +50,10 @@ typedef enum { REGION_MP_RETURN_SEGMENT_RESPONSE = 6 } Region_MP_Remote_operations; -/* +/** * The following data structure defines the packet used to perform * remote region operations. */ - typedef struct { rtems_packet_prefix Prefix; Region_MP_Remote_operations operation; @@ -60,15 +64,12 @@ typedef struct { void *segment; } Region_MP_Packet; -/* - * _Region_MP_Send_process_packet - * - * DESCRIPTION: +/** + * @brief _Region_MP_Send_process_packet * * This routine performs a remote procedure call so that a * process operation can be performed on another node. */ - void _Region_MP_Send_process_packet ( Region_MP_Remote_operations operation, Objects_Id region_id, @@ -76,15 +77,12 @@ void _Region_MP_Send_process_packet ( Objects_Id proxy_id ); -/* - * _Region_MP_Send_request_packet - * - * DESCRIPTION: +/** + * @brief _Region_MP_Send_request_packet * * This routine performs a remote procedure call so that a * directive operation can be initiated on another node. */ - rtems_status_code _Region_MP_Send_request_packet ( Region_MP_Remote_operations operation, Objects_Id region_id, @@ -94,39 +92,30 @@ rtems_status_code _Region_MP_Send_request_packet ( rtems_interval timeout ); -/* - * _Region_MP_Send_response_packet - * - * DESCRIPTION: +/** + * @brief _Region_MP_Send_response_packet * * This routine performs a remote procedure call so that a * directive can be performed on another node. */ - void _Region_MP_Send_response_packet ( Region_MP_Remote_operations operation, Objects_Id region_id, Thread_Control *the_thread ); -/* - * - * _Region_MP_Process_packet - * - * DESCRIPTION: +/** + * @brief _Region_MP_Process_packet * * This routine performs the actions specific to this package for * the request from another node. */ - void _Region_MP_Process_packet ( rtems_packet_prefix *the_packet_prefix ); /* - * _Region_MP_Send_object_was_deleted - * - * DESCRIPTION: + * @brief _Region_MP_Send_object_was_deleted * * This routine is invoked indirectly by the thread queue * when a proxy has been removed from the thread queue and @@ -136,33 +125,29 @@ void _Region_MP_Process_packet ( * cannot be deleted when segments are in use. */ -/* - * _Region_MP_Send_extract_proxy - * - * DESCRIPTION: +/** + * @brief _Region_MP_Send_extract_proxy * * This routine is invoked when a task is deleted and it * has a proxy which must be removed from a thread queue and * the remote node must be informed of this. */ - void _Region_MP_Send_extract_proxy ( void *argument ); -/* - * _Region_MP_Get_packet - * - * DESCRIPTION: +/** + * @brief _Region_MP_Get_packet * * This function is used to obtain a region mp packet. */ - Region_MP_Packet *_Region_MP_Get_packet ( void ); #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/rtemsapi.h b/cpukit/rtems/include/rtems/rtems/rtemsapi.h index d1c2a0538c..b89f90e96f 100644 --- a/cpukit/rtems/include/rtems/rtems/rtemsapi.h +++ b/cpukit/rtems/include/rtems/rtems/rtemsapi.h @@ -1,11 +1,10 @@ /** * @file rtems/rtems/rtemsapi.h + * + * RTEMS API Support */ -/* - * RTEMS API Support - * - * COPYRIGHT (c) 1989-1999. +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -20,18 +19,25 @@ #include -/*PAGE +/** + * @defgroup ClassicRTEMS Classic RTEMS Support * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * _RTEMS_API_Initialize * * This routine initializes the RTEMS API by invoking the initialization * routine for each RTEMS manager with the appropriate parameters * from the configuration_table. */ - void _RTEMS_API_Initialize( rtems_configuration_table *configuration_table ); +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/sem.h b/cpukit/rtems/include/rtems/rtems/sem.h index a5cb09f3fd..9b64e9a810 100644 --- a/cpukit/rtems/include/rtems/rtems/sem.h +++ b/cpukit/rtems/include/rtems/rtems/sem.h @@ -1,8 +1,6 @@ /** * @file rtems/rtems/sem.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Semaphore Manager. This manager utilizes standard Dijkstra * counting semaphores to provide synchronization and mutual exclusion @@ -10,13 +8,14 @@ * * Directives provided are: * - * + create a semaphore - * + get an ID of a semaphore - * + delete a semaphore - * + acquire a semaphore - * + release a semaphore - * - * COPYRIGHT (c) 1989-2007. + * - create a semaphore + * - get an ID of a semaphore + * - delete a semaphore + * - acquire a semaphore + * - release a semaphore + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -45,10 +44,16 @@ extern "C" { #include #include -/* - * The following defines the control block used to manage each semaphore. +/** + * @defgroup ClassicSem Classic API Semaphore + * + * This encapsulates functionality which XXX */ +/**@{*/ +/** + * The following defines the control block used to manage each semaphore. + */ typedef struct { Objects_Control Object; rtems_attribute attribute_set; @@ -58,29 +63,23 @@ typedef struct { } Core_control; } Semaphore_Control; -/* +/** * The following defines the information control block used to manage * this class of objects. */ - RTEMS_SEM_EXTERN Objects_Information _Semaphore_Information; -/* - * _Semaphore_Manager_initialization - * - * DESCRIPTION: +/** + * @brief Semaphore_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Semaphore_Manager_initialization( uint32_t maximum_semaphores ); -/* - * rtems_semaphore_create - * - * DESCRIPTION: +/** + * @brief rtems_semaphore_create * * This routine implements the rtems_semaphore_create directive. The * semaphore will have the name name. The starting count for @@ -88,7 +87,6 @@ void _Semaphore_Manager_initialization( * the semaphore is global or local and the thread queue * discipline. It returns the id of the created semaphore in ID. */ - rtems_status_code rtems_semaphore_create( rtems_name name, uint32_t count, @@ -97,10 +95,8 @@ rtems_status_code rtems_semaphore_create( rtems_id *id ); -/* - * rtems_semaphore_ident - * - * DESCRIPTION: +/** + * @brief rtems_semaphore_ident * * This routine implements the rtems_semaphore_ident directive. * This directive returns the semaphore ID associated with name. @@ -110,30 +106,24 @@ rtems_status_code rtems_semaphore_create( * The search can be limited to a particular node or allowed to * encompass all nodes. */ - rtems_status_code rtems_semaphore_ident( rtems_name name, uint32_t node, rtems_id *id ); -/* - * rtems_semaphore_delete - * - * DESCRIPTION: +/** + * @brief rtems_semaphore_delete * * This routine implements the rtems_semaphore_delete directive. The * semaphore indicated by ID is deleted. */ - rtems_status_code rtems_semaphore_delete( rtems_id id ); -/* - * rtems_semaphore_obtain - * - * DESCRIPTION: +/** + * @brief rtems_semaphore_obtain * * This routine implements the rtems_semaphore_obtain directive. It * attempts to obtain a unit from the semaphore associated with ID. @@ -143,17 +133,14 @@ rtems_status_code rtems_semaphore_delete( * clock ticks. Whether the task blocks or returns immediately * is based on the RTEMS_NO_WAIT option in the option_set. */ - rtems_status_code rtems_semaphore_obtain( rtems_id id, uint32_t option_set, rtems_interval timeout ); -/* - * rtems_semaphore_release - * - * DESCRIPTION: +/** + * @brief rtems_semaphore_release * * This routine implements the rtems_semaphore_release directive. It * frees a unit to the semaphore associated with ID. If a task was @@ -161,112 +148,51 @@ rtems_status_code rtems_semaphore_obtain( * be readied and the unit given to that task. Otherwise, the unit * will be returned to the semaphore. */ - rtems_status_code rtems_semaphore_release( rtems_id id ); -/* - * rtems_semaphore_flush - * - * This directive allows a thread to flush the threads +/** + * @brief rtems_semaphore_flush * pending on the semaphore. */ - rtems_status_code rtems_semaphore_flush( rtems_id id ); -/* - * _Semaphore_Seize - * - * DESCRIPTION: +/** + * @brief _Semaphore_Seize * * This routine attempts to receive a unit from the_semaphore. * If a unit is available or if the RTEMS_NO_WAIT option is enabled in * option_set, then the routine returns. Otherwise, the calling task * is blocked until a unit becomes available. */ - boolean _Semaphore_Seize( Semaphore_Control *the_semaphore, uint32_t option_set ); -/* - * _Semaphore_Translate_core_mutex_return_code - * - * DESCRIPTION: +/** + * @brief _Semaphore_Translate_core_mutex_return_code * * This function returns a RTEMS status code based on the mutex * status code specified. */ - rtems_status_code _Semaphore_Translate_core_mutex_return_code ( uint32_t the_mutex_status ); -/* - * _Semaphore_Translate_core_semaphore_return_code - * - * DESCRIPTION: +/** + * @brief _Semaphore_Translate_core_semaphore_return_code * * This function returns a RTEMS status code based on the semaphore * status code specified. */ - rtems_status_code _Semaphore_Translate_core_semaphore_return_code ( uint32_t the_mutex_status ); -/*PAGE - * - * _Semaphore_Core_mutex_mp_support - * - * DESCRIPTION: - * - * This function processes the global actions necessary for remote - * accesses to a global semaphore based on a core mutex. This function - * is called by the core. - */ - -#if defined(RTEMS_MULTIPROCESSING) -void _Semaphore_Core_mutex_mp_support ( - Thread_Control *the_thread, - rtems_id id -); -#endif - -/*PAGE - * - * _Semaphore_Core_mp_support - * - * DESCRIPTION: - * - * This function processes the global actions necessary for remote - * accesses to a global semaphore based on a core semaphore. This function - * is called by the core. - */ - -void _Semaphore_Core_semaphore_mp_support ( - Thread_Control *the_thread, - rtems_id id -); - -/*PAGE - * - * _POSIX_Semaphore_MP_support - * - * DESCRIPTION: - * - * XXX - */ - -void _POSIX_Semaphore_MP_support( - Thread_Control *the_thread, - Objects_Id id -); - #ifndef __RTEMS_APPLICATION__ #include #endif @@ -278,5 +204,7 @@ void _POSIX_Semaphore_MP_support( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/semmp.h b/cpukit/rtems/include/rtems/rtems/semmp.h index 9af338bbf7..cabbe1d3ae 100644 --- a/cpukit/rtems/include/rtems/rtems/semmp.h +++ b/cpukit/rtems/include/rtems/rtems/semmp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/semmp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Support in the Semaphore Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -30,11 +29,17 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicSEM Classic API Semaphore MP Support + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following enumerated type defines the list of * remote semaphore operations. */ - typedef enum { SEMAPHORE_MP_ANNOUNCE_CREATE = 0, SEMAPHORE_MP_ANNOUNCE_DELETE = 1, @@ -45,11 +50,10 @@ typedef enum { SEMAPHORE_MP_RELEASE_RESPONSE = 6 } Semaphore_MP_Remote_operations; -/* +/** * The following data structure defines the packet used to perform * remote semaphore operations. */ - typedef struct { rtems_packet_prefix Prefix; Semaphore_MP_Remote_operations operation; @@ -58,15 +62,12 @@ typedef struct { Objects_Id proxy_id; } Semaphore_MP_Packet; -/* - * _Semaphore_MP_Send_process_packet - * - * DESCRIPTION: +/** + * @brief Semaphore_MP_Send_process_packet * * This routine performs a remote procedure call so that a * process operation can be performed on another node. */ - void _Semaphore_MP_Send_process_packet ( Semaphore_MP_Remote_operations operation, Objects_Id semaphore_id, @@ -74,15 +75,12 @@ void _Semaphore_MP_Send_process_packet ( Objects_Id proxy_id ); -/* - * _Semaphore_MP_Send_request_packet - * - * DESCRIPTION: +/** + * @brief Semaphore_MP_Send_request_packet * * This routine performs a remote procedure call so that a * directive operation can be initiated on another node. */ - rtems_status_code _Semaphore_MP_Send_request_packet ( Semaphore_MP_Remote_operations operation, Objects_Id semaphore_id, @@ -90,73 +88,81 @@ rtems_status_code _Semaphore_MP_Send_request_packet ( rtems_interval timeout ); -/* - * _Semaphore_MP_Send_response_packet - * - * DESCRIPTION: +/** + * @brief Semaphore_MP_Send_response_packet * * This routine performs a remote procedure call so that a * directive can be performed on another node. */ - void _Semaphore_MP_Send_response_packet ( Semaphore_MP_Remote_operations operation, Objects_Id semaphore_id, Thread_Control *the_thread ); -/* - * - * _Semaphore_MP_Process_packet - * - * DESCRIPTION: +/** + * @brief Semaphore_MP_Process_packet * * This routine performs the actions specific to this package for * the request from another node. */ - void _Semaphore_MP_Process_packet ( rtems_packet_prefix *the_packet_prefix ); -/* - * _Semaphore_MP_Send_object_was_deleted - * - * DESCRIPTION: +/** + * @brief Semaphore_MP_Send_object_was_deleted * * This routine is invoked indirectly by the thread queue * when a proxy has been removed from the thread queue and * the remote node must be informed of this. */ - void _Semaphore_MP_Send_object_was_deleted ( Thread_Control *the_proxy ); -/* - * _Semaphore_MP_Send_extract_proxy - * - * DESCRIPTION: +/** + * @brief Semaphore_MP_Send_extract_proxy * * This routine is invoked when a task is deleted and it * has a proxy which must be removed from a thread queue and * the remote node must be informed of this. */ - void _Semaphore_MP_Send_extract_proxy ( void *argument ); -/* - * _Semaphore_MP_Get_packet - * - * DESCRIPTION: +/** + * @brief Semaphore_MP_Get_packet * * This function is used to obtain a semaphore mp packet. */ - Semaphore_MP_Packet *_Semaphore_MP_Get_packet ( void ); +/** + * @brief _Semaphore_Core_mutex_mp_support + * + * This function processes the global actions necessary for remote + * accesses to a global semaphore based on a core mutex. This function + * is called by the core. + */ +void _Semaphore_Core_mutex_mp_support ( + Thread_Control *the_thread, + rtems_id id +); + +/** + * @brief Semaphore_Core_mp_support + * + * This function processes the global actions necessary for remote + * accesses to a global semaphore based on a core semaphore. This function + * is called by the core. + */ +void _Semaphore_Core_semaphore_mp_support ( + Thread_Control *the_thread, + rtems_id id +); + #ifdef __cplusplus } #endif diff --git a/cpukit/rtems/include/rtems/rtems/signal.h b/cpukit/rtems/include/rtems/rtems/signal.h index a516970ca4..5fe1702327 100644 --- a/cpukit/rtems/include/rtems/rtems/signal.h +++ b/cpukit/rtems/include/rtems/rtems/signal.h @@ -1,8 +1,6 @@ /** * @file rtems/rtems/signal.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Signal Manager. This manager provides capabilities required * for asynchronous communication between tasks via signal sets. @@ -11,8 +9,9 @@ * * + establish an asynchronous signal routine * + send a signal set to a task - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -25,9 +24,12 @@ #ifndef _RTEMS_RTEMS_SIGNAL_H #define _RTEMS_RTEMS_SIGNAL_H -#ifdef __cplusplus -extern "C" { -#endif +/** + * @defgroup ClassicSignal Classic API Signal + * + * This encapsulates functionality which XXX + */ +/**@{*/ #include #include @@ -35,41 +37,35 @@ extern "C" { #include #include -/* - * _Signal_Manager_initialization - * - * DESCRIPTION: +#ifdef __cplusplus +extern "C" { +#endif +/** + * @brief _Signal_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Signal_Manager_initialization( void ); -/* - * rtems_signal_catch - * - * DESCRIPTION: +/** + * @brief rtems_signal_catch * * This routine implements the rtems_signal_catch directive. This directive * is used to establish asr_handler as the Asynchronous Signal Routine * (RTEMS_ASR) for the calling task. The asr_handler will execute with a * mode of mode_set. */ - rtems_status_code rtems_signal_catch( rtems_asr_entry asr_handler, rtems_mode mode_set ); -/* - * rtems_signal_send - * - * DESCRIPTION: +/** + * @brief rtems_signal_send * * This routine implements the rtems_signal_send directive. This directive * sends the signal_set to the task specified by ID. */ - rtems_status_code rtems_signal_send( Objects_Id id, rtems_signal_set signal_set @@ -83,5 +79,7 @@ rtems_status_code rtems_signal_send( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/signalmp.h b/cpukit/rtems/include/rtems/rtems/signalmp.h index a706beae80..bf359473cd 100644 --- a/cpukit/rtems/include/rtems/rtems/signalmp.h +++ b/cpukit/rtems/include/rtems/rtems/signalmp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/signalmp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the Multiprocessing Support in the Signal Manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -29,21 +28,26 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicSignalMP Classic API Signal MP Support + * + * This encapsulates functionality which XXX + */ +/**{*/ + +/** * The following enumerated type defines the list of * remote signal operations. */ - typedef enum { SIGNAL_MP_SEND_REQUEST = 0, SIGNAL_MP_SEND_RESPONSE = 1 } Signal_MP_Remote_operations; -/* +/** * The following data structure defines the packet used to perform * remote signal operations. */ - typedef struct { rtems_packet_prefix Prefix; Signal_MP_Remote_operations operation; @@ -51,9 +55,7 @@ typedef struct { } Signal_MP_Packet; /* - * _Signal_MP_Send_process_packet - * - * DESCRIPTION: + * @brief Signal_MP_Send_process_packet * * This routine performs a remote procedure call so that a * process operation can be performed on another node. @@ -62,53 +64,41 @@ typedef struct { * packets to be sent by this manager. */ -/* - * _Signal_MP_Send_request_packet - * - * DESCRIPTION: +/** + * @brief Signal_MP_Send_request_packet * * This routine performs a remote procedure call so that a * directive operation can be initiated on another node. */ - rtems_status_code _Signal_MP_Send_request_packet ( Signal_MP_Remote_operations operation, Objects_Id task_id, rtems_signal_set signal_in ); -/* - * _Signal_MP_Send_response_packet - * - * DESCRIPTION: +/** + * @brief Signal_MP_Send_response_packet * * This routine performs a remote procedure call so that a * directive can be performed on another node. */ - void _Signal_MP_Send_response_packet ( Signal_MP_Remote_operations operation, Thread_Control *the_thread ); -/* - * - * _Signal_MP_Process_packet - * - * DESCRIPTION: +/** + * @brief Signal_MP_Process_packet * * This routine performs the actions specific to this package for * the request from another node. */ - void _Signal_MP_Process_packet ( rtems_packet_prefix *the_packet_prefix ); /* - * _Signal_MP_Send_object_was_deleted - * - * DESCRIPTION: + * @brief Signal_MP_Send_object_was_deleted * * This routine is invoked indirectly by the thread queue * when a proxy has been removed from the thread queue and @@ -119,9 +109,7 @@ void _Signal_MP_Process_packet ( */ /* - * _Signal_MP_Send_extract_proxy - * - * DESCRIPTION: + * @brief Signal_MP_Send_extract_proxy * * This routine is invoked when a task is deleted and it * has a proxy which must be removed from a thread queue and @@ -131,19 +119,18 @@ void _Signal_MP_Process_packet ( * deleted by this manager. */ -/* - * _Signal_MP_Get_packet - * - * DESCRIPTION: +/** + * @brief Signal_MP_Get_packet * * This function is used to obtain a signal mp packet. */ - Signal_MP_Packet *_Signal_MP_Get_packet ( void ); #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/status.h b/cpukit/rtems/include/rtems/rtems/status.h index d088f01917..644f2cbee6 100644 --- a/cpukit/rtems/include/rtems/rtems/status.h +++ b/cpukit/rtems/include/rtems/rtems/status.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/status.h - */ - -/* + * * This include file contains the status codes returned from the * executive directives. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -19,6 +18,13 @@ #ifndef _RTEMS_RTEMS_STATUS_H #define _RTEMS_RTEMS_STATUS_H +/** + * @defgroup ClassicStatus Classic API Status + * + * This encapsulates functionality which XXX + */ +/**@{*/ + #ifdef __cplusplus extern "C" { #endif @@ -77,12 +83,13 @@ rtems_status_code _Status_Object_name_errors_to_status[] = { /* * Applications are allowed to use the macros to compare status codes. */ - #include #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/support.h b/cpukit/rtems/include/rtems/rtems/support.h index 1b8a240946..2260821788 100644 --- a/cpukit/rtems/include/rtems/rtems/support.h +++ b/cpukit/rtems/include/rtems/rtems/support.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/support.h - */ - -/* + * * This include file contains information about support functions for * the RTEMS API. - * - * COPYRIGHT (c) 1989-2008. + */ + +/* COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -25,27 +24,39 @@ extern "C" { #include -/** @brief milliseconds to microseconds +/** + * @defgroup ClassicSupport Classic API Support + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** + * @brief milliseconds to microseconds * * This is the public milliseconds to microseconds conversion. */ #define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) \ TOD_MILLISECONDS_TO_MICROSECONDS(_ms) -/** @brief milliseconds to ticks +/** + * @brief milliseconds to ticks * * This is the public milliseconds to ticks conversion. */ #define RTEMS_MILLISECONDS_TO_TICKS(_ms) \ TOD_MILLISECONDS_TO_TICKS(_ms) -/** @brief microseconds to ticks +/** + * @brief microseconds to ticks + * * This is the public microseconds to tick conversion. */ #define RTEMS_MICROSECONDS_TO_TICKS(_ms) \ TOD_MICROSECONDS_TO_TICKS(_ms) -/** @brief get workspace information +/** + * @brief get workspace information * * This returns information about the heap that is used as * the RTEMS Executive Workspace. @@ -58,7 +69,8 @@ boolean rtems_workspace_get_information( Heap_Information_block *the_info ); -/** @brief get workspace information +/** + * @brief get workspace information * * This returns information about the heap that is used as * the RTEMS Executive Workspace. @@ -73,7 +85,8 @@ boolean rtems_workspace_allocate( void **pointer ); -/** @brief free workspace +/** + * @brief free workspace * * This frees the workspace that was allocated from * the RTEMS Executive Workspace. @@ -94,5 +107,7 @@ boolean rtems_workspace_free( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/taskmp.h b/cpukit/rtems/include/rtems/rtems/taskmp.h index 9adae0ced6..03e1dfbfb8 100644 --- a/cpukit/rtems/include/rtems/rtems/taskmp.h +++ b/cpukit/rtems/include/rtems/rtems/taskmp.h @@ -1,12 +1,11 @@ /** * @file rtems/rtems/taskmp.h - */ - -/* + * * This include file contains all the constants and structures associated * with the multiprocessing support in the task manager. - * - * COPYRIGHT (c) 1989-1999. + */ + +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -19,10 +18,6 @@ #ifndef _RTEMS_RTEMS_TASKMP_H #define _RTEMS_RTEMS_TASKMP_H -#ifdef __cplusplus -extern "C" { -#endif - #include #include #include @@ -30,11 +25,20 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicTaskMP Classic API Task MP Support + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +#ifdef __cplusplus +extern "C" { +#endif +/** * The following enumerated type defines the list of * remote task operations. */ - typedef enum { RTEMS_TASKS_MP_ANNOUNCE_CREATE = 0, RTEMS_TASKS_MP_ANNOUNCE_DELETE = 1, @@ -50,11 +54,10 @@ typedef enum { RTEMS_TASKS_MP_SET_NOTE_RESPONSE = 11 } RTEMS_tasks_MP_Remote_operations; -/* +/** * The following data structure defines the packet used to perform * remote task operations. */ - typedef struct { rtems_packet_prefix Prefix; RTEMS_tasks_MP_Remote_operations operation; @@ -64,30 +67,24 @@ typedef struct { uint32_t note; } RTEMS_tasks_MP_Packet; -/* - * _RTEMS_tasks_MP_Send_process_packet - * - * DESCRIPTION: +/** + * @brief _RTEMS_tasks_MP_Send_process_packet * * This routine performs a remote procedure call so that a * process operation can be performed on another node. */ - void _RTEMS_tasks_MP_Send_process_packet ( RTEMS_tasks_MP_Remote_operations operation, Objects_Id task_id, rtems_name name ); -/* - * _RTEMS_tasks_MP_Send_request_packet - * - * DESCRIPTION: +/** + * @brief _RTEMS_tasks_MP_Send_request_packet * * This routine performs a remote procedure call so that a * directive operation can be initiated on another node. */ - rtems_status_code _RTEMS_tasks_MP_Send_request_packet ( RTEMS_tasks_MP_Remote_operations operation, Objects_Id task_id, @@ -96,38 +93,29 @@ rtems_status_code _RTEMS_tasks_MP_Send_request_packet ( uint32_t note ); -/* - * _RTEMS_tasks_MP_Send_response_packet - * - * DESCRIPTION: +/** + * @brief _RTEMS_tasks_MP_Send_response_packet * * This routine performs a remote procedure call so that a * directive can be performed on another node. */ - void _RTEMS_tasks_MP_Send_response_packet ( RTEMS_tasks_MP_Remote_operations operation, Thread_Control *the_thread ); -/* - * - * _RTEMS_tasks_MP_Process_packet - * - * DESCRIPTION: +/** + * @brief _RTEMS_tasks_MP_Process_packet * * This routine performs the actions specific to this package for * the request from another node. */ - void _RTEMS_tasks_MP_Process_packet ( rtems_packet_prefix *the_packet_prefix ); -/* - * _RTEMS_tasks_MP_Send_object_was_deleted - * - * DESCRIPTION: +/** + * @brief _RTEMS_tasks_MP_Send_object_was_deleted * * This routine is invoked indirectly by the thread queue * when a proxy has been removed from the thread queue and @@ -140,8 +128,6 @@ void _RTEMS_tasks_MP_Process_packet ( /* * _RTEMS_tasks_MP_Send_extract_proxy * - * DESCRIPTION: - * * This routine is invoked when a task is deleted and it * has a proxy which must be removed from a thread queue and * the remote node must be informed of this. @@ -151,19 +137,18 @@ void _RTEMS_tasks_MP_Process_packet ( * */ -/* - * _RTEMS_tasks_MP_Get_packet - * - * DESCRIPTION: +/** + * @brief _RTEMS_tasks_MP_Get_packet * * This function is used to obtain a task mp packet. */ - RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void ); #ifdef __cplusplus } #endif +/**@}*/ + #endif /* end of file */ diff --git a/cpukit/rtems/include/rtems/rtems/tasks.h b/cpukit/rtems/include/rtems/rtems/tasks.h index af579f87b5..bf30b32d7b 100644 --- a/cpukit/rtems/include/rtems/rtems/tasks.h +++ b/cpukit/rtems/include/rtems/rtems/tasks.h @@ -1,29 +1,28 @@ /** * @file rtems/rtems/tasks.h - */ - -/* + * * This include file contains all constants and structures associated * with RTEMS tasks. This manager provides a comprehensive set of directives * to create, delete, and administer tasks. * * Directives provided are: * - * + create a task - * + get an ID of a task - * + start a task - * + restart a task - * + delete a task - * + suspend a task - * + resume a task - * + set a task's priority - * + change the current task's mode - * + get a task notepad entry - * + set a task notepad entry - * + wake up after interval - * + wake up when specified - * - * COPYRIGHT (c) 1989-2007. + * - create a task + * - get an ID of a task + * - start a task + * - restart a task + * - delete a task + * - suspend a task + * - resume a task + * - set a task's priority + * - change the current task's mode + * - get a task notepad entry + * - set a task notepad entry + * - wake up after interval + * - wake up when specified + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -36,14 +35,6 @@ #ifndef _RTEMS_RTEMS_TASKS_H #define _RTEMS_RTEMS_TASKS_H -#ifndef RTEMS_TASKS_EXTERN -#define RTEMS_TASKS_EXTERN extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - #include #include #include @@ -53,23 +44,35 @@ extern "C" { #include #include -/* - * Constant to be used as the ID of current task +#ifndef RTEMS_TASKS_EXTERN +#define RTEMS_TASKS_EXTERN extern +#endif + +/** + * @defgroup ClassicTasks Classic API Tasks + * + * This encapsulates functionality which X XX */ +/**@{*/ +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Constant to be used as the ID of current task + */ #define RTEMS_SELF OBJECTS_ID_OF_SELF -/* +/** * This constant is passed to the rtems_task_wake_after directive as the * interval when a task wishes to yield the CPU. */ - #define RTEMS_YIELD_PROCESSOR WATCHDOG_NO_TIMEOUT -/* +/** * Define the type for an RTEMS API task priority. */ - typedef Priority_Control rtems_task_priority; #define RTEMS_NO_PRIORITY RTEMS_CURRENT_PRIORITY @@ -77,71 +80,79 @@ typedef Priority_Control rtems_task_priority; #define RTEMS_MINIMUM_PRIORITY (PRIORITY_MINIMUM + 1) #define RTEMS_MAXIMUM_PRIORITY PRIORITY_MAXIMUM -/* +/** * The following constant is passed to rtems_task_set_priority when the * caller wants to obtain the current priority. */ - #define RTEMS_CURRENT_PRIORITY PRIORITY_MINIMUM -/* - * Notepads constants (indices into notepad array) - */ - -#define RTEMS_NOTEPAD_FIRST 0 /* lowest numbered notepad */ -#define RTEMS_NOTEPAD_0 0 /* notepad location 0 */ -#define RTEMS_NOTEPAD_1 1 /* notepad location 1 */ -#define RTEMS_NOTEPAD_2 2 /* notepad location 2 */ -#define RTEMS_NOTEPAD_3 3 /* notepad location 3 */ -#define RTEMS_NOTEPAD_4 4 /* notepad location 4 */ -#define RTEMS_NOTEPAD_5 5 /* notepad location 5 */ -#define RTEMS_NOTEPAD_6 6 /* notepad location 6 */ -#define RTEMS_NOTEPAD_7 7 /* notepad location 7 */ -#define RTEMS_NOTEPAD_8 8 /* notepad location 8 */ -#define RTEMS_NOTEPAD_9 9 /* notepad location 9 */ -#define RTEMS_NOTEPAD_10 10 /* notepad location 10 */ -#define RTEMS_NOTEPAD_11 11 /* notepad location 11 */ -#define RTEMS_NOTEPAD_12 12 /* notepad location 12 */ -#define RTEMS_NOTEPAD_13 13 /* notepad location 13 */ -#define RTEMS_NOTEPAD_14 14 /* notepad location 14 */ -#define RTEMS_NOTEPAD_15 15 /* notepad location 15 */ -#define RTEMS_NOTEPAD_LAST RTEMS_NOTEPAD_15 /* highest numbered notepad */ +/** This is used to indicate the lowest numbered notepad */ +#define RTEMS_NOTEPAD_FIRST 0 +/** This is used to indicate the notepad location 0. */ +#define RTEMS_NOTEPAD_0 0 +/** This is used to indicate the notepad location 1. */ +#define RTEMS_NOTEPAD_1 1 +/** This is used to indicate the notepad location 2. */ +#define RTEMS_NOTEPAD_2 2 +/** This is used to indicate the notepad location 3. */ +#define RTEMS_NOTEPAD_3 3 +/** This is used to indicate the notepad location 4. */ +#define RTEMS_NOTEPAD_4 4 +/** This is used to indicate the notepad location 5. */ +#define RTEMS_NOTEPAD_5 5 +/** This is used to indicate the notepad location 6. */ +#define RTEMS_NOTEPAD_6 6 +/** This is used to indicate the notepad location 7. */ +#define RTEMS_NOTEPAD_7 7 +/** This is used to indicate the notepad location 8. */ +#define RTEMS_NOTEPAD_8 8 +/** This is used to indicate the notepad location 9. */ +#define RTEMS_NOTEPAD_9 9 +/** This is used to indicate the notepad location 10. */ +#define RTEMS_NOTEPAD_10 10 +/** This is used to indicate the notepad location 11. */ +#define RTEMS_NOTEPAD_11 11 +/** This is used to indicate the notepad location 12. */ +#define RTEMS_NOTEPAD_12 12 +/** This is used to indicate the notepad location 13. */ +#define RTEMS_NOTEPAD_13 13 +/** This is used to indicate the notepad location 14. */ +#define RTEMS_NOTEPAD_14 14 +/** This is used to indicate the notepad location 15. */ +#define RTEMS_NOTEPAD_15 15 +/** This is used to indicate the highest numbered notepad. */ +#define RTEMS_NOTEPAD_LAST RTEMS_NOTEPAD_15 #define RTEMS_NUMBER_NOTEPADS (RTEMS_NOTEPAD_LAST+1) -/* +/** * External API name for Thread_Control */ - typedef Thread_Control rtems_tcb; -/* +/** * The following defines the "return type" of an RTEMS task. */ - typedef void rtems_task; -/* +/** * The following defines the argument to an RTEMS task. */ - typedef uintptr_t rtems_task_argument; -/* +/** * The following defines the type for the entry point of an RTEMS task. */ - typedef rtems_task ( *rtems_task_entry )( rtems_task_argument ); -/* +/** * The following records define the Initialization Tasks Table. * Each entry contains the information required by RTEMS to * create and start a user task automatically at executive * initialization time. */ - typedef struct { rtems_name name; /* task name */ size_t stack_size; /* task stack size */ @@ -152,12 +163,10 @@ typedef struct { rtems_task_argument argument; /* task argument */ } rtems_initialization_tasks_table; -/* +/** * This is the API specific information required by each thread for * the RTEMS API to function correctly. */ - - typedef struct { uint32_t Notepads[ RTEMS_NUMBER_NOTEPADS ]; rtems_event_set pending_events; @@ -169,25 +178,19 @@ typedef struct { * The following defines the information control block used to * manage this class of objects. */ - RTEMS_TASKS_EXTERN Objects_Information _RTEMS_tasks_Information; -/* - * _RTEMS_tasks_Manager_initialization - * - * DESCRIPTION: +/** + * @brief _RTEMS_tasks_Manager_initialization * * This routine initializes all Task Manager related data structures. */ - void _RTEMS_tasks_Manager_initialization( uint32_t maximum_tasks ); -/* - * rtems_task_create - * - * DESCRIPTION: +/** + * @brief rtems_task_create * * This routine implements the rtems_task_create directive. The task * will have the name name. The attribute_set can be used to indicate @@ -196,7 +199,6 @@ void _RTEMS_tasks_Manager_initialization( * execution with initial_priority and initial_modes. It returns the * id of the created task in ID. */ - rtems_status_code rtems_task_create( rtems_name name, rtems_task_priority initial_priority, @@ -206,10 +208,8 @@ rtems_status_code rtems_task_create( Objects_Id *id ); -/* - * rtems_task_ident - * - * DESCRIPTION: +/** + * @brief rtems_task_ident * * This routine implements the rtems_task_ident directive. * This directive returns the task ID associated with name. @@ -219,233 +219,194 @@ rtems_status_code rtems_task_create( * The search can be limited to a particular node or allowed to * encompass all nodes. */ - rtems_status_code rtems_task_ident( rtems_name name, uint32_t node, Objects_Id *id ); -/* - * rtems_task_delete - * - * DESCRIPTION: +/** + * @brief rtems_task_delete * * This routine implements the rtems_task_delete directive. The * task indicated by ID is deleted. */ - rtems_status_code rtems_task_delete( Objects_Id id ); -/* - * rtems_task_get_note - * - * DESCRIPTION: +/** + * @brief rtems_task_get_note * * This routine implements the rtems_task_get_note directive. The * value of the indicated notepad for the task associated with ID * is returned in note. */ - rtems_status_code rtems_task_get_note( Objects_Id id, uint32_t notepad, uint32_t *note ); -/* - * rtems_task_set_note - * - * DESCRIPTION: +/** + * @brief rtems_task_set_note * * This routine implements the rtems_task_set_note directive. The * value of the indicated notepad for the task associated with ID * is returned in note. */ - rtems_status_code rtems_task_set_note( Objects_Id id, uint32_t notepad, uint32_t note ); -/* - * rtems_task_mode - * - * DESCRIPTION: +/** + * @brief rtems_task_mode * * This routine implements the rtems_task_mode directive. The current * values of the modes indicated by mask of the calling task are changed * to that indicated in mode_set. The former mode of the task is * returned in mode_set. */ - rtems_status_code rtems_task_mode( rtems_mode mode_set, rtems_mode mask, rtems_mode *previous_mode_set ); -/* - * rtems_task_restart - * - * DESCRIPTION: +/** + * @brief rtems_task_restart * * This routine implements the rtems_task_restart directive. The * task associated with ID is restarted at its initial entry * point with the new argument. */ - rtems_status_code rtems_task_restart( Objects_Id id, uint32_t arg ); -/* - * rtems_task_suspend - * - * DESCRIPTION: +/** + * @brief rtems_task_suspend * * This routine implements the rtems_task_suspend directive. The * SUSPENDED state is set for task associated with ID. */ - rtems_status_code rtems_task_suspend( Objects_Id id ); -/* - * rtems_task_resume - * - * DESCRIPTION: +/** + * @brief rtems_task_resume * * This routine implements the rtems_task_resume Directive. The * SUSPENDED state is cleared for task associated with ID. */ - rtems_status_code rtems_task_resume( Objects_Id id ); -/* - * rtems_task_set_priority - * - * DESCRIPTION: +/** + * @brief rtems_task_set_priority * * This routine implements the rtems_task_set_priority directive. The * current priority of the task associated with ID is set to * new_priority. The former priority of that task is returned * in old_priority. */ - rtems_status_code rtems_task_set_priority( Objects_Id id, rtems_task_priority new_priority, rtems_task_priority *old_priority ); -/* - * rtems_task_start - * - * DESCRIPTION: +/** + * @brief rtems_task_start * * This routine implements the rtems_task_start directive. The * starting execution point of the task associated with ID is * set to entry_point with the initial argument. */ - rtems_status_code rtems_task_start( Objects_Id id, rtems_task_entry entry_point, rtems_task_argument argument ); -/* - * rtems_task_wake_when - * - * DESCRIPTION: +/** + * @brief rtems_task_wake_when * * This routine implements the rtems_task_wake_when directive. The * calling task is blocked until the current time of day is * equal to that indicated by time_buffer. */ - rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer ); -/* - * rtems_task_wake_after - * - * DESCRIPTION: +/** + * @brief rtems_task_wake_after * * This routine implements the rtems_task_wake_after directive. The * calling task is blocked until the indicated number of clock * ticks have occurred. */ - rtems_status_code rtems_task_wake_after( rtems_interval ticks ); -/* - * rtems_task_is_suspended - * +/** + * @brief rtems_task_is_suspended + * This directive returns a status indicating whether or not * the specified task is suspended. */ - rtems_status_code rtems_task_is_suspended( Objects_Id id ); -/* - * rtems_task_variable_add +/** + * @brief rtems_task_variable_add * * This directive adds a per task variable. */ - rtems_status_code rtems_task_variable_add( rtems_id tid, void **ptr, void (*dtor)(void *) ); -/* - * rtems_task_variable_get +/** + * @brief rtems_task_variable_get * * This directive gets the value of a task variable. */ - rtems_status_code rtems_task_variable_get( rtems_id tid, void **ptr, void **result ); -/* - * rtems_task_variable_delete +/** + * @brief rtems_task_variable_delete * * This directive removes a per task variable. */ - rtems_status_code rtems_task_variable_delete( rtems_id tid, void **ptr ); -/* - * rtems_task_self +/** + * @brief rtems_task_self * * This directive returns the ID of the currently executing task. */ - rtems_id rtems_task_self(void); -/* - * _RTEMS_tasks_Initialize_user_tasks +/** + * @brief _RTEMS_tasks_Initialize_user_tasks * * This routine creates and starts all configured user * initialzation threads. @@ -454,11 +415,10 @@ rtems_id rtems_task_self(void); * * Output parameters: NONE */ - void _RTEMS_tasks_Initialize_user_tasks( void ); -/* - * _RTEMS_Tasks_Invoke_task_variable_dtor( +/** + * @brief _RTEMS_Tasks_Invoke_task_variable_dtor( * * This routine invokes the optional user provided destructor on the * task variable and frees the memory for the task variable. @@ -467,7 +427,6 @@ void _RTEMS_tasks_Initialize_user_tasks( void ); * * Output parameters: NONE */ - void _RTEMS_Tasks_Invoke_task_variable_dtor( Thread_Control *the_thread, rtems_task_variable_t *tvp @@ -484,5 +443,7 @@ void _RTEMS_Tasks_Invoke_task_variable_dtor( } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/timer.h b/cpukit/rtems/include/rtems/rtems/timer.h index fdb9185d00..980132a448 100644 --- a/cpukit/rtems/include/rtems/rtems/timer.h +++ b/cpukit/rtems/include/rtems/rtems/timer.h @@ -1,8 +1,6 @@ /** * @file rtems/rtems/timer.h - */ - -/* + * * This include file contains all the constants, structures, and * prototypes associated with the Timer Manager. This manager provides * facilities to configure, initiate, cancel, and delete timers which will @@ -10,20 +8,21 @@ * * Directives provided are: * - * + create a timer - * + get an ID of a timer - * + delete a timer - * + set timer to fire in context of clock tick + * - create a timer + * - get an ID of a timer + * - delete a timer + * - set timer to fire in context of clock tick * - after a number of ticks have passed * - when a specified date and time has been reached - * + initiate the timer server task - * + set timer to fire in context of the timer server task + * - initiate the timer server task + * - set timer to fire in context of the timer server task * - after a number of ticks have passed * - when a specified date and time has been reached - * + reset a timer - * + cancel a time - * - * COPYRIGHT (c) 1989-2007. + * - reset a timer + * - cancel a time + */ + +/* COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -50,11 +49,17 @@ extern "C" { #include #include -/* +/** + * @defgroup ClassicTimer Classic API Timer + * + * This encapsulates functionality which XXX + */ +/**@{*/ + +/** * The following enumerated type details the classes to which a timer * may belong. */ - typedef enum { TIMER_INTERVAL, TIMER_INTERVAL_ON_TASK, @@ -63,10 +68,9 @@ typedef enum { TIMER_DORMANT } Timer_Classes; -/* +/** * The following types define a pointer to a timer service routine. */ - typedef void rtems_timer_service_routine; typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )( @@ -74,22 +78,20 @@ typedef rtems_timer_service_routine ( *rtems_timer_service_routine_entry )( void * ); -/* +/** * The following defines the information control block used to manage * this class of objects. */ - RTEMS_TIMER_EXTERN Objects_Information _Timer_Information; -/* +/** * Pointer to TCB of the Timer Server. This is NULL before the * server is executing and task-based timers are not allowed to be * initiated until the server is started. */ - RTEMS_TIMER_EXTERN Thread_Control *_Timer_Server; -/* +/** * The following chains contain the list of interval timers that are * executed in the context of the Timer Server. * @@ -100,109 +102,87 @@ RTEMS_TIMER_EXTERN Thread_Control *_Timer_Server; * do not have to be initialized until then. They are declared * in the same file as _Timer_Server_body. */ - extern Chain_Control _Timer_Ticks_chain; extern Chain_Control _Timer_Seconds_chain; -/* +/** * The following records define the control block used to manage * each timer. */ - typedef struct { Objects_Control Object; Watchdog_Control Ticker; Timer_Classes the_class; } Timer_Control; -/* - * _Timer_Manager_initialization - * - * DESCRIPTION: +/** + * @brief _Timer_Manager_initialization * * This routine performs the initialization necessary for this manager. */ - void _Timer_Manager_initialization( uint32_t maximum_timers ); -/* - * _Timer_Server_body - * - * DESCRIPTION: +/** + * @brief _Timer_Server_body * * This is the server for task based timers. This task executes whenever * a task-based timer should fire. It services both "after" and "when" * timers. It is not created automatically but must be created explicitly * by the application before task-based timers may be initiated. */ - Thread _Timer_Server_body( uint32_t ignored ); -/* - * rtems_timer_create - * - * DESCRIPTION: +/** + * @brief rtems_timer_create * * This routine implements the rtems_timer_create directive. The * timer will have the name name. It returns the id of the * created timer in ID. */ - rtems_status_code rtems_timer_create( rtems_name name, Objects_Id *id ); -/* - * rtems_timer_ident - * - * DESCRIPTION: +/** + * @brief rtems_timer_ident * * This routine implements the rtems_timer_ident directive. * This directive returns the timer ID associated with name. * If more than one timer is named name, then the timer * to which the ID belongs is arbitrary. */ - rtems_status_code rtems_timer_ident( rtems_name name, Objects_Id *id ); -/* - * rtems_timer_cancel - * - * DESCRIPTION: +/** + * @brief rtems_timer_cancel * * This routine implements the rtems_timer_cancel directive. It is used * to stop the timer associated with ID from firing. */ - rtems_status_code rtems_timer_cancel( Objects_Id id ); -/* - * rtems_timer_delete - * - * DESCRIPTION: +/** + * @brief rtems_timer_delete * * This routine implements the rtems_timer_delete directive. The * timer indicated by ID is deleted. */ - rtems_status_code rtems_timer_delete( Objects_Id id ); -/* - * rtems_timer_fire_after - * - * DESCRIPTION: +/** + * @brief rtems_timer_fire_after * * This routine implements the rtems_timer_fire_after directive. It * initiates the timer associated with ID to fire in ticks clock ticks. @@ -210,7 +190,6 @@ rtems_status_code rtems_timer_delete( * of the rtems_clock_tick directive which is normally invoked as * part of servicing a periodic interupt. */ - rtems_status_code rtems_timer_fire_after( Objects_Id id, rtems_interval ticks, @@ -218,10 +197,8 @@ rtems_status_code rtems_timer_fire_after( void *user_data ); -/* - * rtems_timer_server_fire_after - * - * DESCRIPTION: +/** + * @brief rtems_timer_server_fire_after * * This routine implements the rtems_timer_server_fire_after directive. It * initiates the timer associated with ID to fire in ticks clock @@ -229,7 +206,6 @@ rtems_status_code rtems_timer_fire_after( * Timer Server in the context of a task NOT IN THE CONTEXT of the * clock tick interrupt. */ - rtems_status_code rtems_timer_server_fire_after( Objects_Id id, rtems_interval ticks, @@ -237,10 +213,8 @@ rtems_status_code rtems_timer_server_fire_after( void *user_data ); -/* - * rtems_timer_fire_when - * - * DESCRIPTION: +/** + * @brief rtems_timer_fire_when * * This routine implements the rtems_timer_fire_when directive. It * initiates the timer associated with ID to fire at wall_time @@ -248,7 +222,6 @@ rtems_status_code rtems_timer_server_fire_after( * of the rtems_clock_tick directive which is normally invoked as * part of servicing a periodic interupt. */ - rtems_status_code rtems_timer_fire_when( Objects_Id id, rtems_time_of_day *wall_time, @@ -256,10 +229,8 @@ rtems_status_code rtems_timer_fire_when( void *user_data ); -/* - * rtems_timer_server_fire_when - * - * DESCRIPTION: +/** + * @brief rtems_timer_server_fire_when * * This routine implements the rtems_timer_server_fire_when directive. It * initiates the timer associated with ID to fire at wall_time @@ -267,7 +238,6 @@ rtems_status_code rtems_timer_fire_when( * Timer Server in the context of a task NOT IN THE CONTEXT of the * clock tick interrupt. */ - rtems_status_code rtems_timer_server_fire_when( Objects_Id id, rtems_time_of_day *wall_time, @@ -275,48 +245,42 @@ rtems_status_code rtems_timer_server_fire_when( void *user_data ); -/* - * rtems_timer_reset - * - * DESCRIPTION: +/** + * @brief rtems_timer_reset * * This routine implements the rtems_timer_reset directive. It is used * to reinitialize the interval timer associated with ID just as if * rtems_timer_fire_after were re-invoked with the same arguments that * were used to initiate this timer. */ - rtems_status_code rtems_timer_reset( Objects_Id id ); -/* - * rtems_timer_initiate_server - * - * DESCRIPTION: +/** + * @brief rtems_timer_initiate_server * * This routine implements the rtems_timer_initiate_server directive. * It creates and starts the server that executes task-based timers. * It must be invoked before any task-based timers can be initiated. */ - -#define RTEMS_TIMER_SERVER_DEFAULT_PRIORITY -1 - rtems_status_code rtems_timer_initiate_server( uint32_t priority, uint32_t stack_size, rtems_attribute attribute_set ); -/* - * rtems_timer_get_information - * - * DESCRIPTION: - * - * This routine implements the rtems_timer_get_information directive. - * This directive returns information about the timer. +/** + * This is the default value for the priority of the Timer Server. + * When given this priority, a special high priority not accessible + * via the Classic API is used. */ +#define RTEMS_TIMER_SERVER_DEFAULT_PRIORITY -1 +/** + * This is the structure filled in by the timer get information + * service. + */ typedef struct { Timer_Classes the_class; Watchdog_Interval initial; @@ -324,17 +288,22 @@ typedef struct { Watchdog_Interval stop_time; } rtems_timer_information; +/** + * @brief rtems_timer_get_information + * + * This routine implements the rtems_timer_get_information directive. + * This directive returns information about the timer. + */ rtems_status_code rtems_timer_get_information( Objects_Id id, rtems_timer_information *the_info ); -/* +/** * Macros and routines that expose the mechanisms required to service * the Timer Server timer. These stop the timer, synchronize it with * the current time, and restart it. */ - extern Watchdog_Control _Timer_Seconds_timer; #define _Timer_Server_stop_ticks_timer() \ @@ -343,7 +312,18 @@ extern Watchdog_Control _Timer_Seconds_timer; #define _Timer_Server_stop_seconds_timer() \ _Watchdog_Remove( &_Timer_Seconds_timer ); +/** + * This is a helper function which processes the ticks chain when + * needed. It advances time for the ticks chain which results in + * timers firing. + */ void _Timer_Server_process_ticks_chain(void); + +/** + * This is a helper function which processes the seconds chain when + * needed. It advances time for the seconds chain which results in + * timers firing. + */ void _Timer_Server_process_seconds_chain(void); #define _Timer_Server_reset_ticks_timer() \ @@ -370,5 +350,7 @@ void _Timer_Server_process_seconds_chain(void); } #endif +/**@}*/ + #endif /* end of include file */ diff --git a/cpukit/rtems/include/rtems/rtems/types.h b/cpukit/rtems/include/rtems/rtems/types.h index 310c979ef9..3a04f8e7d8 100644 --- a/cpukit/rtems/include/rtems/rtems/types.h +++ b/cpukit/rtems/include/rtems/rtems/types.h @@ -1,11 +1,10 @@ /** * @file rtems/rtems/types.h + * + * This include file defines the types used by the RTEMS API. */ -/* - * This include file defines the types used by the RTEMS API. - * - * COPYRIGHT (c) 1989-1999. +/* COPYRIGHT (c) 1989-1999. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -18,6 +17,13 @@ #ifndef _RTEMS_RTEMS_TYPES_H #define _RTEMS_RTEMS_TYPES_H +/** + * @defgroup ClassicTypes Classic API Types + * + * This encapsulates functionality which XXX + */ +/**@{*/ + #ifdef __cplusplus extern "C" { #endif @@ -50,19 +56,16 @@ typedef Context_Control rtems_context; typedef Context_Control_fp rtems_context_fp; typedef CPU_Interrupt_frame rtems_interrupt_frame; -/* +/** * Region information block */ - typedef Heap_Information_block region_information_block; -/* +/** * Time related */ - typedef Watchdog_Interval rtems_interval; - /** * The following record defines the time of control block. This * control block is used to maintain the current time of day. @@ -86,16 +89,14 @@ typedef struct { uint32_t ticks; } rtems_time_of_day; -/* +/** * Define the type for an RTEMS API task mode. */ - typedef Modes_Control rtems_mode; /* * MPCI related entries */ - #if defined(RTEMS_MULTIPROCESSING) typedef MP_packet_Classes rtems_mp_packet_classes; typedef MP_packet_Prefix rtems_packet_prefix; @@ -115,5 +116,7 @@ typedef MPCI_Control rtems_mpci_table; } #endif +/**@}*/ + #endif /* end of include file */ -- cgit v1.2.3