forked from Imagelibrary/rtems
Add priority nodes which contribute to the overall thread priority. The actual priority of a thread is now an aggregation of priority nodes. The thread priority aggregation for the home scheduler instance of a thread consists of at least one priority node, which is normally the real priority of the thread. The locking protocols (e.g. priority ceiling and priority inheritance), rate-monotonic period objects and the POSIX sporadic server add, change and remove priority nodes. A thread changes its priority now immediately, e.g. priority changes are not deferred until the thread releases its last resource. Replace the _Thread_Change_priority() function with * _Thread_Priority_perform_actions(), * _Thread_Priority_add(), * _Thread_Priority_remove(), * _Thread_Priority_change(), and * _Thread_Priority_update(). Update #2412. Update #2556.
38 lines
863 B
C
38 lines
863 B
C
/*
|
|
* @file
|
|
*
|
|
* @brief Scheduler CBS Allocate
|
|
* @ingroup ScoreScheduler
|
|
*/
|
|
|
|
/*
|
|
* Copyright (C) 2011 Petr Benes.
|
|
* Copyright (C) 2011 On-Line Applications Research Corporation (OAR).
|
|
*
|
|
* The license and distribution terms for this file may be
|
|
* found in the file LICENSE in this distribution or at
|
|
* http://www.rtems.org/license/LICENSE.
|
|
*/
|
|
|
|
#if HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include <rtems/score/schedulercbsimpl.h>
|
|
|
|
void _Scheduler_CBS_Node_initialize(
|
|
const Scheduler_Control *scheduler,
|
|
Scheduler_Node *node,
|
|
Thread_Control *the_thread,
|
|
Priority_Control priority
|
|
)
|
|
{
|
|
Scheduler_CBS_Node *the_node;
|
|
|
|
_Scheduler_EDF_Node_initialize( scheduler, node, the_thread, priority );
|
|
|
|
the_node = _Scheduler_CBS_Node_downcast( node );
|
|
the_node->cbs_server = NULL;
|
|
the_node->deadline_node = NULL;
|
|
}
|