diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-06-03 10:29:30 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-06-04 08:37:06 +0200 |
commit | 8e46738436b18d0f1a9424a95b678ab1596cb092 (patch) | |
tree | 252be226da9107952a87628fd4e5265df603c167 /cpukit/score/include/rtems/score/schedulerimpl.h | |
parent | sptests/spsem03: New test (diff) | |
download | rtems-8e46738436b18d0f1a9424a95b678ab1596cb092.tar.bz2 |
score: Replace _Scheduler_Allocate/Free()
Replace _Scheduler_Allocate() with _Scheduler_Node_initialize(). Remove
the return status and thus the node initialization must be always
successful.
Rename _Scheduler_Free() to _Scheduler_Node_destroy().
Diffstat (limited to 'cpukit/score/include/rtems/score/schedulerimpl.h')
-rw-r--r-- | cpukit/score/include/rtems/score/schedulerimpl.h | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/cpukit/score/include/rtems/score/schedulerimpl.h b/cpukit/score/include/rtems/score/schedulerimpl.h index f1acf32d35..5e7c928686 100644 --- a/cpukit/score/include/rtems/score/schedulerimpl.h +++ b/cpukit/score/include/rtems/score/schedulerimpl.h @@ -173,29 +173,39 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Change_priority( } /** - * @brief Scheduler allocate. + * @brief Initializes a scheduler node. * - * This routine allocates @a the_thread->scheduler + * The scheduler node contains arbitrary data on function entry. The caller + * must ensure that _Scheduler_Node_destroy() will be called after a + * _Scheduler_Node_initialize() before the memory of the scheduler node is + * destroyed. + * + * @param[in] scheduler The scheduler instance. + * @param[in] the_thread The thread containing the scheduler node. */ -RTEMS_INLINE_ROUTINE bool _Scheduler_Allocate( +RTEMS_INLINE_ROUTINE void _Scheduler_Node_initialize( const Scheduler_Control *scheduler, Thread_Control *the_thread ) { - return ( *scheduler->Operations.allocate )( scheduler, the_thread ); + return ( *scheduler->Operations.node_initialize )( scheduler, the_thread ); } /** - * @brief Scheduler free. + * @brief Destroys a scheduler node. * - * This routine frees @a the_thread->scheduler + * The caller must ensure that _Scheduler_Node_destroy() will be called only + * after a corresponding _Scheduler_Node_initialize(). + * + * @param[in] scheduler The scheduler instance. + * @param[in] the_thread The thread containing the scheduler node. */ -RTEMS_INLINE_ROUTINE void _Scheduler_Free( +RTEMS_INLINE_ROUTINE void _Scheduler_Node_destroy( const Scheduler_Control *scheduler, Thread_Control *the_thread ) { - ( *scheduler->Operations.free )( scheduler, the_thread ); + ( *scheduler->Operations.node_destroy )( scheduler, the_thread ); } /** @@ -354,9 +364,9 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Set( if ( current_scheduler != scheduler ) { _Thread_Set_state( the_thread, STATES_MIGRATING ); - _Scheduler_Free( current_scheduler, the_thread ); + _Scheduler_Node_destroy( current_scheduler, the_thread ); the_thread->scheduler = scheduler; - _Scheduler_Allocate( scheduler, the_thread ); + _Scheduler_Node_initialize( scheduler, the_thread ); _Scheduler_Update( scheduler, the_thread ); _Thread_Clear_state( the_thread, STATES_MIGRATING ); } |