2002-04-08 Chris Johns <ccj@acm.org>

* Per PR142, make task switch extension its own list.
	* include/rtems/score/userext.h: Reflect above by adding
	User_extensions_Switch_control and adding it to User_extenions_Control.
	* inline/rtems/score/userext.inl: Allocate all memory in one chunk
	to minimize overhead.  Address processing dedicated switch chain.
This commit is contained in:
Joel Sherrill
2002-04-08 17:26:13 +00:00
parent 7af623bf68
commit 40c24d3206
2 changed files with 46 additions and 6 deletions

View File

@@ -91,11 +91,24 @@ typedef struct {
} User_extensions_Table;
/*
* The following is used to manage each user extension set.
* The following is used to manage the list of switch handlers.
*/
typedef struct {
Chain_Node Node;
User_extensions_thread_switch_extension thread_switch;
} User_extensions_Switch_control;
/*
* The following is used to manage each user extension set.
* The switch control is part of the extensions control even
* if not used due to the extension not having a switch
* handler.
*/
typedef struct {
Chain_Node Node;
User_extensions_Switch_control Switch;
User_extensions_Table Callouts;
} User_extensions_Control;
@@ -105,6 +118,13 @@ typedef struct {
SCORE_EXTERN Chain_Control _User_extensions_List;
/*
* The following is used to manage a chain of user extension task
* switch nodes.
*/
SCORE_EXTERN Chain_Control _User_extensions_Switches_list;
/*
* _User_extensions_Thread_create
*

View File

@@ -91,11 +91,24 @@ typedef struct {
} User_extensions_Table;
/*
* The following is used to manage each user extension set.
* The following is used to manage the list of switch handlers.
*/
typedef struct {
Chain_Node Node;
User_extensions_thread_switch_extension thread_switch;
} User_extensions_Switch_control;
/*
* The following is used to manage each user extension set.
* The switch control is part of the extensions control even
* if not used due to the extension not having a switch
* handler.
*/
typedef struct {
Chain_Node Node;
User_extensions_Switch_control Switch;
User_extensions_Table Callouts;
} User_extensions_Control;
@@ -105,6 +118,13 @@ typedef struct {
SCORE_EXTERN Chain_Control _User_extensions_List;
/*
* The following is used to manage a chain of user extension task
* switch nodes.
*/
SCORE_EXTERN Chain_Control _User_extensions_Switches_list;
/*
* _User_extensions_Thread_create
*