2011-06-17 Joel Sherrill <joel.sherrill@oarcorp.com>

* libcsupport/include/rtems/malloc.h, libmisc/stackchk/stackchk.h,
	posix/include/rtems/posix/time.h, rtems/include/rtems/rtems/object.h,
	score/include/rtems/score/apiext.h,
	score/include/rtems/score/interr.h, score/include/rtems/score/mpci.h,
	score/include/rtems/score/objectmp.h,
	score/include/rtems/score/thread.h,
	score/include/rtems/score/threadmp.h,
	score/include/rtems/score/threadq.h,
	score/include/rtems/score/timespec.h,
	score/include/rtems/score/timestamp.h,
	score/include/rtems/score/timestamp64.h,
	score/include/rtems/score/tod.h,
	score/include/rtems/score/watchdog.h,
	score/include/rtems/score/wkspace.h: Make @brief formatting more
	consistent.
	* score/include/rtems/score/rbtree.h: Also reformat.
This commit is contained in:
Joel Sherrill
2011-06-17 14:55:27 +00:00
parent 3203e09507
commit 4b72da419b
19 changed files with 564 additions and 397 deletions

View File

@@ -1,3 +1,22 @@
2011-06-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* libcsupport/include/rtems/malloc.h, libmisc/stackchk/stackchk.h,
posix/include/rtems/posix/time.h, rtems/include/rtems/rtems/object.h,
score/include/rtems/score/apiext.h,
score/include/rtems/score/interr.h, score/include/rtems/score/mpci.h,
score/include/rtems/score/objectmp.h,
score/include/rtems/score/thread.h,
score/include/rtems/score/threadmp.h,
score/include/rtems/score/threadq.h,
score/include/rtems/score/timespec.h,
score/include/rtems/score/timestamp.h,
score/include/rtems/score/timestamp64.h,
score/include/rtems/score/tod.h,
score/include/rtems/score/watchdog.h,
score/include/rtems/score/wkspace.h: Make @brief formatting more
consistent.
* score/include/rtems/score/rbtree.h: Also reformat.
2011-06-17 Joel Sherrill <joel.sherrill@oarcorp.com>
PR 1819/cpukit

View File

@@ -5,7 +5,7 @@
/*
* RTEMS Malloc Extensions
*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may in
@@ -72,7 +72,8 @@ extern rtems_malloc_sbrk_functions_t *rtems_malloc_sbrk_helpers;
typedef void (*rtems_malloc_dirtier_t)(void *, size_t);
extern rtems_malloc_dirtier_t rtems_malloc_dirty_helper;
/** @brief Dirty memory function
/**
* @brief Dirty memory function
*
* This method fills the specified area with a non-zero pattern
* to aid in debugging programs which do not initialize their
@@ -83,7 +84,8 @@ void rtems_malloc_dirty_memory(
size_t size
);
/** @brief Print Malloc Statistic Usage Report
/**
* @brief Print Malloc Statistic Usage Report
*
* This method fills in the called provided malloc statistics area.
*
@@ -93,7 +95,8 @@ int malloc_get_statistics(
rtems_malloc_statistics_t *stats
);
/** @brief Print Malloc Statistic Usage Report
/**
* @brief Print Malloc Statistic Usage Report
*
* This method prints a malloc statistics report.
*
@@ -101,7 +104,8 @@ int malloc_get_statistics(
*/
void malloc_report_statistics(void);
/** @brief Print Malloc Statistic Usage Report
/**
* @brief Print Malloc Statistic Usage Report
*
* This method prints a malloc statistics report.
*
@@ -116,6 +120,7 @@ void malloc_report_statistics_with_plugin(
);
/**
* @brief RTEMS variation on Aligned Memory Allocation
*
* This method is a help memalign implementation which does all
* error checking done by posix_memalign() EXCEPT it does NOT

View File

@@ -5,7 +5,7 @@
*/
/*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -27,7 +27,8 @@
extern "C" {
#endif
/** @brief Has Current Task Blown Its Stack
/**
* @brief Has Current Task Blown Its Stack
*
* This method is used to determine if the current stack pointer
* of the currently executing task is within bounds.
@@ -38,7 +39,8 @@ extern "C" {
*/
bool rtems_stack_checker_is_blown( void );
/** @brief Print Stack Usage Report
/**
* @brief Print Stack Usage Report
*
* This method prints a stack usage report for the curently executing
* task.
@@ -47,7 +49,8 @@ bool rtems_stack_checker_is_blown( void );
*/
void rtems_stack_checker_report_usage( void );
/** @brief Print Stack Usage Report
/**
* @brief Print Stack Usage Report
*
* This method prints a stack usage report for the curently executing
* task.
@@ -68,7 +71,8 @@ void rtems_stack_checker_report_usage_with_plugin(
*************************************************************
*************************************************************/
/** @brief Stack Checker Task Create Extension
/**
* @brief Stack Checker Task Create Extension
*
* This method is the task create extension for the stack checker.
*
@@ -83,7 +87,8 @@ bool rtems_stack_checker_create_extension(
Thread_Control *the_thread
);
/** @brief Stack Checker Task Begin Extension
/**
* @brief Stack Checker Task Begin Extension
*
* This method is the task begin extension for the stack checker.
*
@@ -95,7 +100,8 @@ void rtems_stack_checker_begin_extension(
Thread_Control *the_thread
);
/** @brief Stack Checker Task Context Switch Extension
/**
* @brief Stack Checker Task Context Switch Extension
*
* This method is the task context switch extension for the stack checker.
*
@@ -110,7 +116,8 @@ void rtems_stack_checker_switch_extension(
Thread_Control *heir
);
/** @brief Stack Checker Extension Set Definition
/**
* @brief Stack Checker Extension Set Definition
*
* This macro defines the user extension handler set for the stack
* checker. This macro is normally only used by confdefs.h.

View File

@@ -3,7 +3,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -19,7 +19,8 @@
#include <rtems/score/timespec.h>
#include <rtems/score/watchdog.h>
/** @brief Absolute Timeout Conversion Results
/**
* @brief Absolute Timeout Conversion Results
*
* This enumeration defines the possible results of converting
* an absolute time used for timeouts to POSIX blocking calls to

View File

@@ -2,7 +2,7 @@
* @file rtems/rtems/object.h
*/
/* COPYRIGHT (c) 1989-2008.
/* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -88,7 +88,8 @@ typedef struct {
#define rtems_build_name( _C1, _C2, _C3, _C4 ) \
_Objects_Build_name( _C1, _C2, _C3, _C4 )
/** @brief Obtain name of object
/**
* @brief Obtain name of object
*
* This directive returns the name associated with the specified
* object ID.

View File

@@ -91,13 +91,15 @@ typedef struct {
*/
SCORE_EXTERN Chain_Control _API_extensions_List;
/** @brief Initialize the API Extensions Handler
/**
* @brief Initialize the API Extensions Handler
*
* This routine initializes the API extension handler.
*/
void _API_extensions_Initialization( void );
/** @brief Add Extension Set to the Active Set
/**
* @brief Add Extension Set to the Active Set
*
* This routine adds an extension to the active set of API extensions.
*
@@ -108,20 +110,23 @@ void _API_extensions_Add(
);
#if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)
/** @brief Execute all Pre-Driver Extensions
/**
* @brief Execute all Pre-Driver Extensions
*
* This routine executes all of the predriver callouts.
*/
void _API_extensions_Run_predriver( void );
#endif
/** @brief Execute all Post-Driver Extensions
/**
* @brief Execute all Post-Driver Extensions
*
* This routine executes all of the postdriver callouts.
*/
void _API_extensions_Run_postdriver( void );
/** @brief Execute all Post Context Switch Extensions
/**
* @brief Execute all Post Context Switch Extensions
*
* This routine executes all of the post context switch callouts.
*/

View File

@@ -6,7 +6,7 @@
*/
/*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -94,7 +94,8 @@ typedef struct {
*/
SCORE_EXTERN Internal_errors_Information _Internal_errors_What_happened;
/** @brief Internal error Occurred
/**
* @brief Internal error Occurred
*
* This routine is invoked when the application or the executive itself
* determines that a fatal error has occurred.

View File

@@ -6,7 +6,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -179,7 +179,8 @@ SCORE_EXTERN Thread_queue_Control _MPCI_Remote_blocked_threads;
*/
SCORE_EXTERN MPCI_Control *_MPCI_table;
/** @brief Pointer to MP Thread Control Block
/**
* @brief Pointer to MP Thread Control Block
*
* The following is used to determine when the multiprocessing receive
* thread is executing so that a proxy can be allocated instead of

View File

@@ -6,7 +6,7 @@
*/
/*
* COPYRIGHT (c) 1989-2006.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -46,21 +46,24 @@ typedef struct {
uint32_t name;
} Objects_MP_Control;
/** @brief Objects MP Handler initialization
/**
* @brief Objects MP Handler initialization
*
* This routine intializes the inactive global object chain
* based on the maximum number of global objects configured.
*/
void _Objects_MP_Handler_initialization(void);
/** @brief Objects MP Handler Early initialization
/**
* @brief Objects MP Handler Early initialization
*
* This routine intializes the global object node number
* used in the ID field of all objects.
*/
void _Objects_MP_Handler_early_initialization(void);
/** @brief Objects MP Open
/**
* @brief Objects MP Open
*
* This routine place the specified global object in the
* specified information table.
@@ -81,7 +84,8 @@ void _Objects_MP_Open (
Objects_Id the_id
);
/** @brief Objects MP Allocate and open
/**
* @brief Objects MP Allocate and open
*
* This routine allocates a global object control block
* and places it in the specified information table. If the
@@ -105,7 +109,8 @@ bool _Objects_MP_Allocate_and_open (
bool is_fatal_error
);
/** @brief Objects MP Close
/**
* @brief Objects MP Close
*
* This routine removes a global object from the specified
* information table and deallocates the global object control block.
@@ -115,7 +120,8 @@ void _Objects_MP_Close (
Objects_Id the_id
);
/** @brief Objects MP Global name search
/**
* @brief Objects MP Global name search
*
* This routine looks for the object with the_name in the global
* object tables indicated by information. It returns the ID of the
@@ -138,7 +144,8 @@ Objects_Name_or_id_lookup_errors _Objects_MP_Global_name_search (
Objects_Id *the_id
);
/** @brief Objects MP Is remote
/**
* @brief Objects MP Is remote
*
* This function searches the Global Object Table managed
* by information for the object indicated by ID. If the object

View File

@@ -1,4 +1,3 @@
/**
* @file rtems/score/rbtree.h
*
@@ -36,260 +35,260 @@ extern "C" {
#include <rtems/score/address.h>
/**
* @typedef RBTree_Node
*
* This type definition promotes the name for the RBTree Node used by
* all RTEMS code. It is a separate type definition because a forward
* reference is required to define it. See @ref RBTree_Node_struct for
* detailed information.
*/
typedef struct RBTree_Node_struct RBTree_Node;
/**
* @typedef RBTree_Node
*
* This type definition promotes the name for the RBTree Node used by
* all RTEMS code. It is a separate type definition because a forward
* reference is required to define it. See @ref RBTree_Node_struct for
* detailed information.
*/
typedef struct RBTree_Node_struct RBTree_Node;
/**
* This enum type defines the colors available for the RBTree Nodes
*/
typedef enum {
RBT_BLACK,
RBT_RED
} RBTree_Color;
/**
* This enum type defines the colors available for the RBTree Nodes
*/
typedef enum {
RBT_BLACK,
RBT_RED
} RBTree_Color;
/**
* @struct RBTree_Node_struct
*
* This is used to manage each element (node) which is placed
* on a RBT.
*
* @note Typically, a more complicated structure will use the
* rbtree package. The more complicated structure will
* include a rbtree node as the first element in its
* control structure. It will then call the rbtree package
* with a pointer to that node element. The node pointer
* and the higher level structure start at the same address
* so the user can cast the pointers back and forth.
*
*/
struct RBTree_Node_struct {
/** This points to the node's parent */
RBTree_Node *parent;
/** child[0] points to the left child, child[1] points to the right child */
RBTree_Node *child[2];
/** This is the integer value stored by this node, used for sorting */
unsigned int value;
/** The color of the node. Either red or black */
RBTree_Color color;
};
/**
* @brief macro to return the structure containing the @a node.
*
* This macro returns a pointer of type @a container_type that points
* to the structure containing @a node, where @a node_field_name is the
* field name of the RBTree_Node structure in @a container_type.
*
*/
/**
* @struct RBTree_Node_struct
*
* This is used to manage each element (node) which is placed
* on a RBT.
*
* @note Typically, a more complicated structure will use the
* rbtree package. The more complicated structure will
* include a rbtree node as the first element in its
* control structure. It will then call the rbtree package
* with a pointer to that node element. The node pointer
* and the higher level structure start at the same address
* so the user can cast the pointers back and forth.
*
*/
struct RBTree_Node_struct {
/** This points to the node's parent */
RBTree_Node *parent;
/** child[0] points to the left child, child[1] points to the right child */
RBTree_Node *child[2];
/** This is the integer value stored by this node, used for sorting */
unsigned int value;
/** The color of the node. Either red or black */
RBTree_Color color;
};
/**
* @brief macro to return the structure containing the @a node.
*
* This macro returns a pointer of type @a container_type that points
* to the structure containing @a node, where @a node_field_name is the
* field name of the RBTree_Node structure in @a container_type.
*
*/
#define _RBTree_Container_of(node,container_type, node_field_name) \
((container_type*) \
((size_t)node - ((size_t)(&((container_type *)0)->node_field_name))))
((container_type*) \
((size_t)node - ((size_t)(&((container_type *)0)->node_field_name))))
/**
* This type indicates the direction.
*/
typedef enum {
RBT_LEFT=0,
RBT_RIGHT=1
} RBTree_Direction;
typedef enum {
RBT_LEFT=0,
RBT_RIGHT=1
} RBTree_Direction;
/**
* @struct RBTree_Control
*
* This is used to manage a RBT. A rbtree consists of a tree of zero or more
* nodes.
*
* @note This implementation does not require special checks for
* manipulating the root element of the RBT.
* To accomplish this the @a RBTree_Control structure can be overlaid
* with a @ref RBTree_Node structure to act as a "dummy root",
* which has a NULL parent and its left child is the root.
*/
/**
* @struct RBTree_Control
*
* This is used to manage a RBT. A rbtree consists of a tree of zero or more
* nodes.
*
* @note This implementation does not require special checks for
* manipulating the root element of the RBT.
* To accomplish this the @a RBTree_Control structure can be overlaid
* with a @ref RBTree_Node structure to act as a "dummy root",
* which has a NULL parent and its left child is the root.
*/
/* the RBTree_Control is actually part of the RBTree structure as an
* RBTree_Node. The mapping of fields from RBTree_Control to RBTree_Node are:
* permanent_null == parent
* root == left
* first[0] == right
*/
typedef struct {
/** This points to a NULL. Useful for finding the root. */
RBTree_Node *permanent_null;
/** This points to the root node of the RBT. */
RBTree_Node *root;
/** This points to the min and max nodes of this RBT. */
RBTree_Node *first[2];
} RBTree_Control;
/* the RBTree_Control is actually part of the RBTree structure as an
* RBTree_Node. The mapping of fields from RBTree_Control to RBTree_Node are:
* permanent_null == parent
* root == left
* first[0] == right
*/
typedef struct {
/** This points to a NULL. Useful for finding the root. */
RBTree_Node *permanent_null;
/** This points to the root node of the RBT. */
RBTree_Node *root;
/** This points to the min and max nodes of this RBT. */
RBTree_Node *first[2];
} RBTree_Control;
/**
* @brief RBTree initializer for an empty rbtree with designator @a name.
*/
/**
* @brief RBTree initializer for an empty rbtree with designator @a name.
*/
#define RBTREE_INITIALIZER_EMPTY(name) \
{ \
.permanent_null = NULL, \
.root = NULL, \
.first[0] = NULL, \
.first[1] = NULL, \
}
{ \
.permanent_null = NULL, \
.root = NULL, \
.first[0] = NULL, \
.first[1] = NULL, \
}
/**
* @brief RBTree definition for an empty rbtree with designator @a name.
*/
/**
* @brief RBTree definition for an empty rbtree with designator @a name.
*/
#define RBTREE_DEFINE_EMPTY(name) \
RBTree_Control name = RBTREE_INITIALIZER_EMPTY(name)
RBTree_Control name = RBTREE_INITIALIZER_EMPTY(name)
/**
* @brief RBTree_Node initializer for an empty node with designator @a name.
*/
/**
* @brief RBTree_Node initializer for an empty node with designator @a name.
*/
#define RBTREE_NODE_INITIALIZER_EMPTY(name) \
{ \
.parent = NULL, \
.child[0] = NULL, \
.child[1] = NULL, \
.value = -1, \
RBT_RED \
}
{ \
.parent = NULL, \
.child[0] = NULL, \
.child[1] = NULL, \
.value = -1, \
RBT_RED \
}
/**
* @brief RBTree definition for an empty rbtree with designator @a name.
*/
/**
* @brief RBTree definition for an empty rbtree with designator @a name.
*/
#define RBTREE_NODE_DEFINE_EMPTY(name) \
RBTree_Node name = RBTREE_NODE_INITIALIZER_EMPTY(name)
RBTree_Node name = RBTREE_NODE_INITIALIZER_EMPTY(name)
/**
* @brief Initialize a RBTree Header
*
* This routine initializes @a the_rbtree structure to manage the
* contiguous array of @a number_nodes nodes which starts at
* @a starting_address. Each node is of @a node_size bytes.
*/
void _RBTree_Initialize(
RBTree_Control *the_rbtree,
void *starting_address,
size_t number_nodes,
size_t node_size
);
/**
* @brief Obtain the min or max node of a rbtree
*
* This function removes the min or max node from @a the_rbtree and returns
* a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
* @a dir specifies whether to return the min (0) or max (1).
*
* @return This method returns a pointer to a node. If a node was removed,
* then a pointer to that node is returned. If @a the_rbtree was
* empty, then NULL is returned.
*
* @note It disables interrupts to ensure the atomicity of the get operation.
*/
RBTree_Node *_RBTree_Get(
RBTree_Control *the_rbtree,
RBTree_Direction dir
);
/**
* @brief Check the min or max node on a rbtree
*
* This function returns a pointer to the min or max node of @a the_rbtree.
* If @a the_rbtree is empty, then NULL is returned. @a dir specifies
* whether to return the min (0) or max (1).
*
* @return This method returns a pointer to a node.
* If @a the_rbtree was empty, then NULL is returned.
*
* @note It disables interrupts to ensure the atomicity of the get operation.
*/
RBTree_Node *_RBTree_Peek(
RBTree_Control *the_rbtree,
RBTree_Direction dir
);
/**
* @brief Find the node with given value in the tree
*
* This function returns a pointer to the node with value equal to @a value
* if it exists in the Red-Black Tree @a the_rbtree, and NULL if not.
*/
RBTree_Node *_RBTree_Find(
RBTree_Control *the_rbtree,
unsigned int value
);
/**
* @brief Find the control structure of the tree containing the given node
*
* This function returns a pointer to the control structure of the tree
* containing @a the_node, if it exists, and NULL if not.
*/
RBTree_Control *_RBTree_Find_header(
RBTree_Node *the_node
);
/**
* @brief Insert a Node (unprotected)
*
* This routine inserts @a the_node on the Red-Black Tree @a the_rbtree.
*
* @retval 0 Successfully inserted.
* @retval -1 NULL @a the_node.
* @retval RBTree_Node* if one with equal value to @a the_node->value exists
* in @a the_rbtree.
*
* @note It does NOT disable interrupts to ensure the atomicity
* of the extract operation.
*/
RBTree_Node *_RBTree_Insert_unprotected(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
/**
* @brief Insert a node on a rbtree
*
* This routine inserts @a the_node on the tree @a the_rbtree.
*
* @note It disables interrupts to ensure the atomicity
* of the extract operation.
*/
void _RBTree_Insert(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
/**
* @brief Extract a Node (unprotected)
*
* This routine extracts (removes) @a the_node from @a the_rbtree.
*
* @note It does NOT disable interrupts to ensure the atomicity
* of the extract operation.
*/
void _RBTree_Extract_unprotected(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
/**
* @brief Initialize a RBTree Header
*
* This routine initializes @a the_rbtree structure to manage the
* contiguous array of @a number_nodes nodes which starts at
* @a starting_address. Each node is of @a node_size bytes.
*/
void _RBTree_Initialize(
RBTree_Control *the_rbtree,
void *starting_address,
size_t number_nodes,
size_t node_size
);
/**
* @brief Obtain the min or max node of a rbtree
*
* This function removes the min or max node from @a the_rbtree and returns
* a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
* @a dir specifies whether to return the min (0) or max (1).
*
* @return This method returns a pointer to a node. If a node was removed,
* then a pointer to that node is returned. If @a the_rbtree was
* empty, then NULL is returned.
*
* @note It disables interrupts to ensure the atomicity of the get operation.
*/
RBTree_Node *_RBTree_Get(
RBTree_Control *the_rbtree,
RBTree_Direction dir
);
/**
* @brief Check the min or max node on a rbtree
*
* This function returns a pointer to the min or max node of @a the_rbtree.
* If @a the_rbtree is empty, then NULL is returned. @a dir specifies
* whether to return the min (0) or max (1).
*
* @return This method returns a pointer to a node.
* If @a the_rbtree was empty, then NULL is returned.
*
* @note It disables interrupts to ensure the atomicity of the get operation.
*/
RBTree_Node *_RBTree_Peek(
RBTree_Control *the_rbtree,
RBTree_Direction dir
);
/** @brief Find the node with given value in the tree
*
* This function returns a pointer to the node with value equal to @a value
* if it exists in the Red-Black Tree @a the_rbtree, and NULL if not.
*/
RBTree_Node *_RBTree_Find(
RBTree_Control *the_rbtree,
unsigned int value
);
/** @brief Find the control structure of the tree containing the given node
*
* This function returns a pointer to the control structure of the tree
* containing @a the_node, if it exists, and NULL if not.
*/
RBTree_Control *_RBTree_Find_header(
RBTree_Node *the_node
);
/** @brief Insert a Node (unprotected)
*
* This routine inserts @a the_node on the Red-Black Tree @a the_rbtree.
*
* @retval 0 Successfully inserted.
* @retval -1 NULL @a the_node.
* @retval RBTree_Node* if one with equal value to @a the_node->value exists
* in @a the_rbtree.
*
* @note It does NOT disable interrupts to ensure the atomicity
* of the extract operation.
*/
RBTree_Node *_RBTree_Insert_unprotected(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
/**
* @brief Insert a node on a rbtree
*
* This routine inserts @a the_node on the tree @a the_rbtree.
*
* @note It disables interrupts to ensure the atomicity
* of the extract operation.
*/
void _RBTree_Insert(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
/** @brief Extract a Node (unprotected)
*
* This routine extracts (removes) @a the_node from @a the_rbtree.
*
* @note It does NOT disable interrupts to ensure the atomicity
* of the extract operation.
*/
void _RBTree_Extract_unprotected(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
/**
* @brief Delete a node from the rbtree
*
* This routine deletes @a the_node from @a the_rbtree.
*
* @note It disables interrupts to ensure the atomicity of the
* append operation.
*/
void _RBTree_Extract(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
/**
* @brief Delete a node from the rbtree
*
* This routine deletes @a the_node from @a the_rbtree.
*
* @note It disables interrupts to ensure the atomicity of the
* append operation.
*/
void _RBTree_Extract(
RBTree_Control *the_rbtree,
RBTree_Node *the_node
);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/rbtree.inl>

View File

@@ -182,13 +182,15 @@ typedef enum {
*/
typedef void (*Thread_CPU_budget_algorithm_callout )( Thread_Control * );
/** @brief Per Task Variable Manager Structure Forward Reference
/**
* @brief Per Task Variable Manager Structure Forward Reference
*
* Forward reference to the per task variable structure.
*/
struct rtems_task_variable_tt;
/** @brief Per Task Variable Manager Structure
/**
* @brief Per Task Variable Manager Structure
*
* This is the internal structure used to manager per Task Variables.
*/
@@ -270,7 +272,8 @@ typedef union {
const void *immutable_object;
} Thread_Wait_information_Object_argument_type;
/** @brief Thread Blocking Management Information
/**
* @brief Thread Blocking Management Information
*
* This contains the information required to manage a thread while it is
* blocked and to return information to it.
@@ -788,39 +791,45 @@ void _Thread_blocking_operation_Cancel(
#if defined(RTEMS_SMP)
/** @brief _Thread_Dispatch_initialization
/**
* @brief _Thread_Dispatch_initialization
*
* This routine initializes the thread dispatching subsystem.
*/
void _Thread_Dispatch_initialization(void);
/** @brief _Thread_Dispatch_in_critical_section
/**
* @brief _Thread_Dispatch_in_critical_section
*
* This routine returns true if thread dispatch indicates
* that we are in a critical section.
*/
bool _Thread_Dispatch_in_critical_section(void);
/** @brief _Thread_Dispatch_get_disable_level
/**
* @brief _Thread_Dispatch_get_disable_level
*
* This routine returns value of the the thread dispatch level.
*/
uint32_t _Thread_Dispatch_get_disable_level(void);
/** @brief _Thread_Dispatch_set_disable_level
/**
* @brief _Thread_Dispatch_set_disable_level
*
* This routine sets thread dispatch level to the
* value passed in.
*/
uint32_t _Thread_Dispatch_set_disable_level(uint32_t value);
/** @brief _Thread_Dispatch_increment_disable_level
/**
* @brief _Thread_Dispatch_increment_disable_level
*
* This rountine increments the thread dispatch level
*/
uint32_t _Thread_Dispatch_increment_disable_level(void);
/** @brief _Thread_Dispatch_decrement_disable_level
/**
* @brief _Thread_Dispatch_decrement_disable_level
*
* This routine decrements the thread dispatch level.
*/

View File

@@ -6,7 +6,7 @@
*/
/*
* COPYRIGHT (c) 1989-2006.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -33,7 +33,8 @@
extern "C" {
#endif
/** @brief _Thread_MP_Handler_initialization
/**
* @brief _Thread_MP_Handler_initialization
*
* This routine initializes the multiprocessing portion of the Thread Handler.
*/
@@ -41,7 +42,8 @@ void _Thread_MP_Handler_initialization (
uint32_t maximum_proxies
);
/** @brief _Thread_MP_Allocate_proxy
/**
* @brief _Thread_MP_Allocate_proxy
*
* This allocates a proxy control block from
* the inactive chain of free proxy control blocks.
@@ -53,7 +55,8 @@ Thread_Control *_Thread_MP_Allocate_proxy (
States_Control the_state
);
/** @brief _Thread_MP_Find_proxy
/**
* @brief _Thread_MP_Find_proxy
*
* This function removes the proxy control block for the specified
* id from the active chain of proxy control blocks.
@@ -62,13 +65,15 @@ Thread_Control *_Thread_MP_Find_proxy (
Objects_Id the_id
);
/** @brief Active Proxy Set
/**
* @brief Active Proxy Set
*
* The following chain is used to manage the active set proxies.
*/
SCORE_EXTERN Chain_Control _Thread_MP_Active_proxies;
/** @brief Inactive Proxy Set
/**
* @brief Inactive Proxy Set
*
* The following chain is used to manage the inactive set of proxies.
*/

View File

@@ -6,7 +6,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -60,7 +60,8 @@ typedef void ( *Thread_queue_Timeout_callout )(
void *
);
/** @brief Thread queue Dequeue
/**
* @brief Thread queue Dequeue
*
* This function returns a pointer to a thread waiting on
* the_thread_queue. The selection of this thread is based on
@@ -71,7 +72,8 @@ Thread_Control *_Thread_queue_Dequeue(
Thread_queue_Control *the_thread_queue
);
/** @brief Thread queue Enqueue Wrapper
/**
* @brief Thread queue Enqueue Wrapper
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout.
@@ -83,7 +85,8 @@ Thread_Control *_Thread_queue_Dequeue(
_Thread_queue_Timeout )
/** @brief Thread queue Enqueue
/**
* @brief Thread queue Enqueue
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout.
@@ -108,7 +111,8 @@ void _Thread_queue_Requeue(
Thread_Control *the_thread
);
/** @brief Thread queue Extract
/**
* @brief Thread queue Extract
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
@@ -118,7 +122,8 @@ void _Thread_queue_Extract(
Thread_Control *the_thread
);
/** @brief Thread queue Extract with proxy
/**
* @brief Thread queue Extract with proxy
*
* This routine extracts the_thread from the_thread_queue
* and ensures that if there is a proxy for this task on
@@ -128,7 +133,8 @@ bool _Thread_queue_Extract_with_proxy(
Thread_Control *the_thread
);
/** @brief Thread queue First
/**
* @brief Thread queue First
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The "first" thread is selected
@@ -138,7 +144,8 @@ Thread_Control *_Thread_queue_First(
Thread_queue_Control *the_thread_queue
);
/** @brief Thread queue Flush
/**
* @brief Thread queue Flush
*
* This routine unblocks all threads blocked on the_thread_queue
* and cancels any associated timeouts.
@@ -149,7 +156,8 @@ void _Thread_queue_Flush(
uint32_t status
);
/** @brief Thread queue Initialize
/**
* @brief Thread queue Initialize
*
* This routine initializes the_thread_queue based on the
* discipline indicated in attribute_set. The state set on
@@ -162,7 +170,8 @@ void _Thread_queue_Initialize(
uint32_t timeout_status
);
/** @brief Thread queue Dequeue priority
/**
* @brief Thread queue Dequeue priority
*
* This function returns a pointer to the highest priority
* thread waiting on the_thread_queue. If no threads are waiting
@@ -172,7 +181,8 @@ Thread_Control *_Thread_queue_Dequeue_priority(
Thread_queue_Control *the_thread_queue
);
/** @brief Thread queue Enqueue priority
/**
* @brief Thread queue Enqueue priority
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout using the
@@ -184,7 +194,8 @@ Thread_blocking_operation_States _Thread_queue_Enqueue_priority (
ISR_Level *level_p
);
/** @brief Thread queue Extract priority Helper
/**
* @brief Thread queue Extract priority Helper
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
@@ -205,7 +216,8 @@ void _Thread_queue_Extract_priority_helper(
_Thread_queue_Extract_priority_helper( _the_thread_queue, _the_thread, false )
/** @brief Thread queue First priority
/**
* @brief Thread queue First priority
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The "first" thread is the highest
@@ -215,7 +227,8 @@ Thread_Control *_Thread_queue_First_priority(
Thread_queue_Control *the_thread_queue
);
/** @brief Thread queue Dequeue FIFO
/**
* @brief Thread queue Dequeue FIFO
*
* This function returns a pointer to the thread which has
* been waiting the longest on the_thread_queue. If no
@@ -225,7 +238,8 @@ Thread_Control *_Thread_queue_Dequeue_fifo(
Thread_queue_Control *the_thread_queue
);
/** @brief Thread queue Enqueue FIFO
/**
* @brief Thread queue Enqueue FIFO
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout using the
@@ -237,7 +251,8 @@ Thread_blocking_operation_States _Thread_queue_Enqueue_fifo (
ISR_Level *level_p
);
/** @brief Thread queue Extract FIFO
/**
* @brief Thread queue Extract FIFO
*
* This routine removes the_thread from the_thread_queue
* and cancels any timeouts associated with this blocking.
@@ -247,7 +262,8 @@ void _Thread_queue_Extract_fifo(
Thread_Control *the_thread
);
/** @brief Thread queue First FIFO
/**
* @brief Thread queue First FIFO
*
* This function returns a pointer to the "first" thread
* on the_thread_queue. The first thread is the thread
@@ -257,7 +273,8 @@ Thread_Control *_Thread_queue_First_fifo(
Thread_queue_Control *the_thread_queue
);
/** @brief Thread queue timeout
/**
* @brief Thread queue timeout
*
* This routine is invoked when a task's request has not
* been satisfied after the timeout interval specified to

View File

@@ -5,7 +5,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -34,7 +34,8 @@
extern "C" {
#endif
/** @brief Set Timespec to Seconds Nanosecond
/**
* @brief Set Timespec to Seconds Nanosecond
*
* This method sets the timespec to the specified seconds and nanoseconds
* value.
@@ -49,7 +50,8 @@ extern "C" {
(_time)->tv_nsec = (_nanoseconds); \
} while (0)
/** @brief Zero Timespec
/**
* @brief Zero Timespec
*
* This method sets the timespec to zero.
* value.
@@ -62,7 +64,8 @@ extern "C" {
(_time)->tv_nsec = 0; \
} while (0)
/** @brief Get Seconds Portion of Timespec
/**
* @brief Get Seconds Portion of Timespec
*
* This method returns the seconds portion of the specified timespec
*
@@ -73,7 +76,8 @@ extern "C" {
#define _Timespec_Get_seconds( _time ) \
((_time)->tv_sec)
/** @brief Get Nanoseconds Portion of Timespec
/**
* @brief Get Nanoseconds Portion of Timespec
*
* This method returns the nanoseconds portion of the specified timespec
*
@@ -84,7 +88,8 @@ extern "C" {
#define _Timespec_Get_nanoseconds( _time ) \
((_time)->tv_nsec)
/** @brief Is Timespec Valid
/**
* @brief Is Timespec Valid
*
* This method determines the validity of a timespec.
*
@@ -97,7 +102,8 @@ bool _Timespec_Is_valid(
const struct timespec *time
);
/** @brief Timespec Less Than Operator
/**
* @brief Timespec Less Than Operator
*
* This method is the less than operator for timespecs.
*
@@ -112,7 +118,8 @@ bool _Timespec_Less_than(
const struct timespec *rhs
);
/** @brief Timespec Greater Than Operator
/**
* @brief Timespec Greater Than Operator
*
* This method is the greater than operator for timespecs.
*
@@ -127,7 +134,8 @@ bool _Timespec_Greater_than(
const struct timespec *rhs
);
/** @brief Timespec equal to Operator
/**
* @brief Timespec equal to Operator
*
* This method is the is equal to than operator for timespecs.
*
@@ -142,7 +150,8 @@ bool _Timespec_Greater_than(
((lhs)->tv_nsec == (rhs)->tv_nsec) \
)
/** @brief Add to a Timespec
/**
* @brief Add to a Timespec
*
* This routine adds two timespecs. The second argument is added
* to the first.
@@ -157,7 +166,8 @@ uint32_t _Timespec_Add_to(
const struct timespec *add
);
/** @brief Convert Timespec to Number of Ticks
/**
* @brief Convert Timespec to Number of Ticks
*
* This routine convert the @a time timespec to the corresponding number
* of clock ticks.
@@ -170,7 +180,8 @@ uint32_t _Timespec_To_ticks(
const struct timespec *time
);
/** @brief Convert Ticks to Timespec
/**
* @brief Convert Ticks to Timespec
*
* This routine converts the @a ticks value to the corresponding
* timespec format @a time.
@@ -183,7 +194,8 @@ void _Timespec_From_ticks(
struct timespec *time
);
/** @brief Subtract Two Timespec
/**
* @brief Subtract Two Timespec
*
* This routine subtracts two timespecs. @a result is set to
* @a end - @a start.
@@ -200,7 +212,8 @@ void _Timespec_Subtract(
struct timespec *result
);
/** @brief Divide Timespec By Integer
/**
* @brief Divide Timespec By Integer
*
* This routine divides a timespec by an integer value. The expected
* use is to assist in benchmark calculations where you typically
@@ -218,7 +231,8 @@ void _Timespec_Divide_by_integer(
struct timespec *result
);
/** @brief Divide Timespec
/**
* @brief Divide Timespec
*
* This routine divides a timespec by another timespec. The
* intended use is for calculating percentages to three decimal points.

View File

@@ -5,7 +5,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -130,7 +130,8 @@ extern "C" {
typedef Timestamp64_Control Timestamp_Control;
#endif
/** @brief Set Timestamp to Seconds Nanosecond
/**
* @brief Set Timestamp to Seconds Nanosecond
*
* This method sets the timestamp to the specified seconds and nanoseconds
* value.
@@ -147,7 +148,8 @@ extern "C" {
_Timestamp64_Set( _time, _seconds, _nanoseconds )
#endif
/** @brief Zero Timestamp
/**
* @brief Zero Timestamp
*
* This method sets the timestamp to zero.
* value.
@@ -162,7 +164,8 @@ extern "C" {
_Timestamp64_Set_to_zero( _time )
#endif
/** @brief Is Timestamp Valid
/**
* @brief Is Timestamp Valid
*
* This method determines the validity of a timestamp.
*
@@ -179,7 +182,8 @@ extern "C" {
_Timestamp64_Is_valid( _time )
#endif
/** @brief Timestamp Less Than Operator
/**
* @brief Timestamp Less Than Operator
*
* This method is the less than operator for timestamps.
*
@@ -197,7 +201,8 @@ extern "C" {
_Timestamp64_Less_than( _lhs, _rhs )
#endif
/** @brief Timestamp Greater Than Operator
/**
* @brief Timestamp Greater Than Operator
*
* This method is the greater than operator for timestamps.
*
@@ -215,7 +220,8 @@ extern "C" {
_Timestamp64_Greater_than( _lhs, _rhs )
#endif
/** @brief Timestamp equal to Operator
/**
* @brief Timestamp equal to Operator
*
* This method is the is equal to than operator for timestamps.
*
@@ -233,7 +239,8 @@ extern "C" {
_Timestamp64_Equal_to( _lhs, _rhs )
#endif
/** @brief Add to a Timestamp
/**
* @brief Add to a Timestamp
*
* This routine adds two timestamps. The second argument is added
* to the first.
@@ -251,7 +258,8 @@ extern "C" {
_Timestamp64_Add_to( _time, _add )
#endif
/** @brief Add to a Timestamp (At Clock Tick)
/**
* @brief Add to a Timestamp (At Clock Tick)
*
* This routine adds two timestamps. The second argument is added
* to the first.
@@ -275,7 +283,8 @@ extern "C" {
_Timestamp64_Add_to_at_tick( _time, _add )
#endif
/** @brief Convert Timestamp to Number of Ticks
/**
* @brief Convert Timestamp to Number of Ticks
*
* This routine convert the @a time timestamp to the corresponding number
* of clock ticks.
@@ -292,7 +301,8 @@ extern "C" {
_Timestamp64_To_ticks( _time )
#endif
/** @brief Convert Ticks to Timestamp
/**
* @brief Convert Ticks to Timestamp
*
* This routine converts the @a _ticks value to the corresponding
* timestamp format @a _time.
@@ -308,7 +318,8 @@ extern "C" {
_Timestamp64_From_ticks( _ticks, _time )
#endif
/** @brief Subtract Two Timestamp
/**
* @brief Subtract Two Timestamp
*
* This routine subtracts two timestamps. @a result is set to
* @a end - @a start.
@@ -328,7 +339,8 @@ extern "C" {
_Timestamp64_Subtract( _start, _end, _result )
#endif
/** @brief Divide Timestamp By Integer
/**
* @brief Divide Timestamp By Integer
*
* This routine divides a timestamp by an integer value. The expected
* use is to assist in benchmark calculations where you typically
@@ -348,7 +360,8 @@ extern "C" {
_Timestamp64_Divide_by_integer( _time, _iterations, _result )
#endif
/** @brief Divide Timestamp
/**
* @brief Divide Timestamp
*
* This routine divides a timestamp by another timestamp. The
* intended use is for calculating percentages to three decimal points.
@@ -368,7 +381,8 @@ extern "C" {
_Timestamp64_Divide( _lhs, _rhs, _ival_percentage, _fval_percentage )
#endif
/** @brief Get Seconds Portion of Timestamp
/**
* @brief Get Seconds Portion of Timestamp
*
* This method returns the seconds portion of the specified timestamp
*
@@ -384,7 +398,8 @@ extern "C" {
_Timestamp64_Get_seconds( _time )
#endif
/** @brief Get Nanoseconds Portion of Timestamp
/**
* @brief Get Nanoseconds Portion of Timestamp
*
* This method returns the nanoseconds portion of the specified timestamp
*
@@ -400,7 +415,8 @@ extern "C" {
_Timestamp64_Get_nanoseconds( _time )
#endif
/** @brief Convert Timestamp to struct timespec
/**
* @brief Convert Timestamp to struct timespec
*
* This method returns the seconds portion of the specified timestamp
*

View File

@@ -6,7 +6,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -51,7 +51,8 @@ extern "C" {
*/
typedef int64_t Timestamp64_Control;
/** @brief Set Timestamp to Seconds Nanosecond
/**
* @brief Set Timestamp to Seconds Nanosecond
*
* This method sets the timestamp to the specified seconds and nanoseconds
* value.
@@ -74,7 +75,8 @@ typedef int64_t Timestamp64_Control;
);
#endif
/** @brief Zero Timestamp
/**
* @brief Zero Timestamp
*
* This method sets the timestamp to zero.
* value.
@@ -90,7 +92,8 @@ typedef int64_t Timestamp64_Control;
);
#endif
/** @brief Is Timestamp Valid
/**
* @brief Is Timestamp Valid
*
* This method determines the validity of a timestamp.
*
@@ -102,7 +105,8 @@ typedef int64_t Timestamp64_Control;
#define _Timestamp64_Is_valid( _time ) \
(1)
/** @brief Timestamp Less Than Operator
/**
* @brief Timestamp Less Than Operator
*
* This method is the less than operator for timestamps.
*
@@ -122,7 +126,8 @@ typedef int64_t Timestamp64_Control;
);
#endif
/** @brief Timestamp Greater Than Operator
/**
* @brief Timestamp Greater Than Operator
*
* This method is the greater than operator for timestamps.
*
@@ -142,7 +147,8 @@ typedef int64_t Timestamp64_Control;
);
#endif
/** @brief Timestamp equal to Operator
/**
* @brief Timestamp equal to Operator
*
* This method is the is equal to than operator for timestamps.
*
@@ -162,7 +168,8 @@ typedef int64_t Timestamp64_Control;
);
#endif
/** @brief Add to a Timestamp
/**
* @brief Add to a Timestamp
*
* This routine adds two timestamps. The second argument is added
* to the first.
@@ -182,7 +189,8 @@ typedef int64_t Timestamp64_Control;
);
#endif
/** @brief Add to a Timestamp (At Clock Tick)
/**
* @brief Add to a Timestamp (At Clock Tick)
*
* This routine adds two timestamps. The second argument is added
* to the first.
@@ -211,7 +219,8 @@ static inline uint32_t _Timestamp64_Add_to_at_tick(
return 0;
}
/** @brief Convert Timestamp to Number of Ticks
/**
* @brief Convert Timestamp to Number of Ticks
*
* This routine convert the @a time timestamp to the corresponding number
* of clock ticks.
@@ -224,7 +233,8 @@ uint32_t _Timestamp64_To_ticks(
const Timestamp64_Control *_time
);
/** @brief Convert Ticks to Timestamp
/**
* @brief Convert Ticks to Timestamp
*
* This routine converts the @a _ticks value to the corresponding
* timestamp format @a _time.
@@ -237,7 +247,8 @@ void _Timestamp64_From_ticks(
Timestamp64_Control *_time
);
/** @brief Subtract Two Timestamp
/**
* @brief Subtract Two Timestamp
*
* This routine subtracts two timestamps. @a result is set to
* @a end - @a start.
@@ -262,7 +273,8 @@ void _Timestamp64_From_ticks(
);
#endif
/** @brief Divide Timestamp By Integer
/**
* @brief Divide Timestamp By Integer
*
* This routine divides a timestamp by an integer value. The expected
* use is to assist in benchmark calculations where you typically
@@ -287,7 +299,8 @@ void _Timestamp64_From_ticks(
);
#endif
/** @brief Divide Timestamp
/**
* @brief Divide Timestamp
*
* This routine divides a timestamp by another timestamp. The
* intended use is for calculating percentages to three decimal points.
@@ -306,7 +319,8 @@ void _Timestamp64_Divide(
uint32_t *_fval_percentage
);
/** @brief Get Seconds Portion of Timestamp
/**
* @brief Get Seconds Portion of Timestamp
*
* This method returns the seconds portion of the specified timestamp
*
@@ -323,7 +337,8 @@ void _Timestamp64_Divide(
);
#endif
/** @brief Get Nanoseconds Portion of Timestamp
/**
* @brief Get Nanoseconds Portion of Timestamp
*
* This method returns the nanoseconds portion of the specified timestamp
*
@@ -340,7 +355,8 @@ void _Timestamp64_Divide(
);
#endif
/** @brief Convert Timestamp to struct timespec
/**
* @brief Convert Timestamp to struct timespec
*
* This method returns the seconds portion of the specified timestamp
*

View File

@@ -6,7 +6,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -102,7 +102,8 @@ extern "C" {
(((1987 - 1970 + 1) * TOD_SECONDS_PER_NON_LEAP_YEAR) + \
(4 * TOD_SECONDS_PER_DAY))
/** @brief RTEMS Epoch Year
/**
* @brief RTEMS Epoch Year
*
* The following constant define the earliest year to which an
* time of day can be initialized. This is considered the
@@ -117,37 +118,46 @@ extern "C" {
*/
/**@{*/
/** @brief Is the Time Of Day Set
/**
* @brief Is the Time Of Day Set
*
* This is true if the application has set the current
* time of day, and false otherwise.
*/
SCORE_EXTERN bool _TOD_Is_set;
/** @brief Current Time of Day (Timespec)
/**
* @brief Current Time of Day (Timespec)
*
* The following contains the current time of day.
*/
SCORE_EXTERN Timestamp_Control _TOD_Now;
/** @brief Current Time of Day (Timespec)
/**
* @brief Current Time of Day (Timespec)
*
* The following contains the running uptime.
*/
SCORE_EXTERN Timestamp_Control _TOD_Uptime;
/** @brief Seconds Since RTEMS Epoch
/**
* @brief Seconds Since RTEMS Epoch
*
* The following contains the number of seconds from 00:00:00
* January 1, TOD_BASE_YEAR until the current time of day.
*/
#define _TOD_Seconds_since_epoch() \
_Timestamp_Get_seconds(&_TOD_Now)
/** @brief _TOD_Handler_initialization
/**
* @brief _TOD_Handler_initialization
*
* This routine performs the initialization necessary for this handler.
*/
void _TOD_Handler_initialization(void);
/** @brief _TOD_Set
/**
* @brief _TOD_Set
*
* This routine sets the current time of day to @a time and
* the equivalent SECONDS_SINCE_EPOCH.
@@ -156,7 +166,8 @@ void _TOD_Set(
const struct timespec *time
);
/** @brief _TOD_Get
/**
* @brief _TOD_Get
*
* This routine returns the current time of day with potential accuracy
* to the nanosecond.
@@ -167,7 +178,8 @@ void _TOD_Get(
struct timespec *time
);
/** @brief _TOD_Get_uptime
/**
* @brief _TOD_Get_uptime
*
* This routine returns the system uptime with potential accuracy
* to the nanosecond.
@@ -178,7 +190,8 @@ void _TOD_Get_uptime(
Timestamp_Control *time
);
/** @brief _TOD_Get_uptime_as_timespec
/**
* @brief _TOD_Get_uptime_as_timespec
*
* This routine returns the system uptime with potential accuracy
* to the nanosecond.
@@ -195,7 +208,8 @@ void _TOD_Get_uptime_as_timespec(
*/
void _TOD_Tickle_ticks( void );
/** @brief TOD_MILLISECONDS_TO_MICROSECONDS
/**
* @brief TOD_MILLISECONDS_TO_MICROSECONDS
*
* This routine converts an interval expressed in milliseconds to microseconds.
*
@@ -203,7 +217,8 @@ void _TOD_Tickle_ticks( void );
*/
#define TOD_MILLISECONDS_TO_MICROSECONDS(_ms) ((uint32_t)(_ms) * 1000L)
/** @brief TOD_MICROSECONDS_TO_TICKS
/**
* @brief TOD_MICROSECONDS_TO_TICKS
*
* This routine converts an interval expressed in microseconds to ticks.
*
@@ -213,7 +228,8 @@ uint32_t TOD_MICROSECONDS_TO_TICKS(
uint32_t microseconds
);
/** @brief TOD_MILLISECONDS_TO_TICKS
/**
* @brief TOD_MILLISECONDS_TO_TICKS
*
* This routine converts an interval expressed in milliseconds to ticks.
*
@@ -223,7 +239,8 @@ uint32_t TOD_MILLISECONDS_TO_TICKS(
uint32_t milliseconds
);
/** @brief How many ticks in a second?
/**
* @brief How many ticks in a second?
*
* This method returns the number of ticks in a second.
*
@@ -232,7 +249,8 @@ uint32_t TOD_MILLISECONDS_TO_TICKS(
*/
uint32_t TOD_TICKS_PER_SECOND_method(void);
/** @brief Method to return number of ticks in a second
/**
* @brief Method to return number of ticks in a second
*
* This method exists to hide the fact that TOD_TICKS_PER_SECOND can not
* be implemented as a macro in a .h file due to visibility issues.

View File

@@ -7,7 +7,7 @@
*/
/*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -37,33 +37,38 @@
extern "C" {
#endif
/** @brief Maximum Interval Length
/**
* @brief Maximum Interval Length
*
* The following type defines the control block used to manage
* intervals.
*/
#define WATCHDOG_MAXIMUM_INTERVAL ((Watchdog_Interval) 0xffffffff)
/** @brief Watchdog Interval Type
/**
* @brief Watchdog Interval Type
*
* This type is used to specify the length of intervals.
*/
typedef uint32_t Watchdog_Interval;
/** @brief Watchdog Nanoseconds Since Last Tick Extension
/**
* @brief Watchdog Nanoseconds Since Last Tick Extension
*
* This type defines a pointer to the BSP plugin to obtain the number
* of nanoseconds since the last clock tick.
*/
typedef uint32_t (*Watchdog_Nanoseconds_since_last_tick_routine)(void);
/** @brief Watchdog Service Routine Return Type
/**
* @brief Watchdog Service Routine Return Type
*
* This type defines the return type from a Watchdog Service Routine.
*/
typedef void Watchdog_Service_routine;
/** @brief Watchdog Service Routine Pointer Type
/**
* @brief Watchdog Service Routine Pointer Type
*
* This type define a pointer to a watchdog service routine.
*/
@@ -72,14 +77,16 @@ typedef Watchdog_Service_routine ( *Watchdog_Service_routine_entry )(
void *
);
/** @brief No timeout constant
/**
* @brief No timeout constant
*
* This is the constant for indefinite wait. It is actually an
* illegal interval.
*/
#define WATCHDOG_NO_TIMEOUT 0
/** @brief Watchdog States Type
/**
* @brief Watchdog States Type
*
* This enumerated type is the set of the states in which a
* watchdog timer may be at any given time.
@@ -100,7 +107,8 @@ typedef enum {
WATCHDOG_REMOVE_IT
} Watchdog_States;
/** @brief Watchdog Adjustment Directions Type
/**
* @brief Watchdog Adjustment Directions Type
*
* The following enumerated type details the manner in which
* a watchdog chain may be adjusted by the @ref _Watchdog_Adjust
@@ -114,7 +122,8 @@ typedef enum {
WATCHDOG_BACKWARD
} Watchdog_Adjust_directions;
/** @brief Watchdog Control Structure
/**
* @brief Watchdog Control Structure
*
* The following record defines the control block used
* to manage each watchdog timer.
@@ -144,28 +153,32 @@ typedef struct {
void *user_data;
} Watchdog_Control;
/** @brief Watchdog Synchronization Level
/**
* @brief Watchdog Synchronization Level
*
* This used for synchronization purposes
* during an insert on a watchdog delta chain.
*/
SCORE_EXTERN volatile uint32_t _Watchdog_Sync_level;
/** @brief Watchdog Synchronization Count
/**
* @brief Watchdog Synchronization Count
*
* This used for synchronization purposes
* during an insert on a watchdog delta chain.
*/
SCORE_EXTERN volatile uint32_t _Watchdog_Sync_count;
/** @brief Ticks Since System Boot
/**
* @brief Ticks Since System Boot
*
* This contains the number of ticks since the system was booted.
*/
SCORE_EXTERN volatile Watchdog_Interval _Watchdog_Ticks_since_boot;
/** @brief Watchdog Nanoseconds Since Last Tick Handler
/**
* @brief Watchdog Nanoseconds Since Last Tick Handler
*
* This is a pointer to the optional BSP plugin to obtain the number
* of nanoseconds since the last clock tick.
@@ -173,19 +186,22 @@ SCORE_EXTERN volatile Watchdog_Interval _Watchdog_Ticks_since_boot;
extern Watchdog_Nanoseconds_since_last_tick_routine
_Watchdog_Nanoseconds_since_tick_handler;
/** @brief Per Ticks Watchdog List
/**
* @brief Per Ticks Watchdog List
*
* This is the watchdog chain which is managed at ticks.
*/
SCORE_EXTERN Chain_Control _Watchdog_Ticks_chain;
/** @brief Per Seconds Watchdog List
/**
* @brief Per Seconds Watchdog List
*
* This is the watchdog chain which is managed at second boundaries.
*/
SCORE_EXTERN Chain_Control _Watchdog_Seconds_chain;
/** @brief Watchdog Handler Initialization
/**
* @brief Watchdog Handler Initialization
*
* This routine initializes the watchdog handler. The watchdog
* synchronization flag is initialized and the watchdog chains are
@@ -193,7 +209,8 @@ SCORE_EXTERN Chain_Control _Watchdog_Seconds_chain;
*/
void _Watchdog_Handler_initialization( void );
/** @brief Remove Watchdog from List
/**
* @brief Remove Watchdog from List
*
* This routine removes @a the_watchdog from the watchdog chain on which
* it resides and returns the state @a the_watchdog timer was in.
@@ -205,7 +222,8 @@ Watchdog_States _Watchdog_Remove (
Watchdog_Control *the_watchdog
);
/** @brief Watchdog Adjust
/**
* @brief Watchdog Adjust
*
* This routine adjusts the @a header watchdog chain in the forward
* or backward @a direction for @a units ticks.
@@ -220,7 +238,8 @@ void _Watchdog_Adjust (
Watchdog_Interval units
);
/** @brief Watchdog Adjust to Chain
/**
* @brief Watchdog Adjust to Chain
*
* This routine adjusts the @a header watchdog chain in the forward
* @a direction for @a units_arg ticks.
@@ -239,7 +258,8 @@ void _Watchdog_Adjust_to_chain(
);
/** @brief Watchdog Insert
/**
* @brief Watchdog Insert
*
* This routine inserts @a the_watchdog into the @a header watchdog chain
* for a time of @a units.
@@ -252,7 +272,8 @@ void _Watchdog_Insert (
Watchdog_Control *the_watchdog
);
/** @brief Watchdog Tickle
/**
* @brief Watchdog Tickle
*
* This routine is invoked at appropriate intervals to update
* the @a header watchdog chain.

View File

@@ -7,7 +7,7 @@
*/
/*
* COPYRIGHT (c) 1989-2008.
* COPYRIGHT (c) 1989-2009.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -35,20 +35,23 @@ extern "C" {
#include <rtems/score/heap.h>
#include <rtems/score/interr.h>
/** @brief Executive Workspace Control
/**
* @brief Executive Workspace Control
*
* The is the heap control structure that used to manage the
* RTEMS Executive Workspace.
*/
SCORE_EXTERN Heap_Control _Workspace_Area; /* executive heap header */
/** @brief Workspace Handler Initialization
/**
* @brief Workspace Handler Initialization
*
* This routine performs the initialization necessary for this handler.
*/
void _Workspace_Handler_initialization(void);
/** @brief Allocate Memory from Workspace
/**
* @brief Allocate Memory from Workspace
*
* This routine returns the address of a block of memory of size
* bytes. If a block of the appropriate size cannot be allocated
@@ -62,7 +65,8 @@ void *_Workspace_Allocate(
size_t size
);
/** @brief Free Memory to the Workspace
/**
* @brief Free Memory to the Workspace
*
* This function frees the specified block of memory. If the block
* belongs to the Workspace and can be successfully freed, then
@@ -79,7 +83,8 @@ void _Workspace_Free(
void *block
);
/** @brief Workspace Allocate or Fail with Fatal Error
/**
* @brief Workspace Allocate or Fail with Fatal Error
*
* This routine returns the address of a block of memory of @a size
* bytes. If a block of the appropriate size cannot be allocated