From 40c24d3206d3ad554ad230c593dce08a5e8fa2f1 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 8 Apr 2002 17:26:13 +0000 Subject: 2002-04-08 Chris Johns * 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. --- cpukit/score/include/rtems/score/userext.h | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'cpukit/score/include') diff --git a/cpukit/score/include/rtems/score/userext.h b/cpukit/score/include/rtems/score/userext.h index 4c2972030e..40e31fbba5 100644 --- a/cpukit/score/include/rtems/score/userext.h +++ b/cpukit/score/include/rtems/score/userext.h @@ -90,13 +90,26 @@ typedef struct { User_extensions_fatal_extension fatal; } User_extensions_Table; +/* + * 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_Table Callouts; + 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 * -- cgit v1.2.3