summaryrefslogtreecommitdiffstats
path: root/cpukit/score/inline/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-24 13:12:38 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-26 11:55:44 +0200
commitc6e21ee18f71aa78ca6420bc835ab6b7e2dbcc65 (patch)
treedd620b9620437fdcbfd61d1097ecfafdd511ccb0 /cpukit/score/inline/rtems
parentscore: Create schedulerpriority impl header (diff)
downloadrtems-c6e21ee18f71aa78ca6420bc835ab6b7e2dbcc65.tar.bz2
score: Create scheduler implementation header
Move implementation specific parts of scheduler.h and scheduler.inl into new header file schedulerimpl.h. The scheduler.h contains now only the application visible API.
Diffstat (limited to 'cpukit/score/inline/rtems')
-rw-r--r--cpukit/score/inline/rtems/score/scheduler.inl232
1 files changed, 0 insertions, 232 deletions
diff --git a/cpukit/score/inline/rtems/score/scheduler.inl b/cpukit/score/inline/rtems/score/scheduler.inl
deleted file mode 100644
index 67d8327e36..0000000000
--- a/cpukit/score/inline/rtems/score/scheduler.inl
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- * @file
- *
- * @brief Inlined Routines Associated with the Manipulation of the Scheduler
- *
- * This inline file contains all of the inlined routines associated with
- * the manipulation of the scheduler.
- */
-
-/*
- * Copyright (C) 2010 Gedare Bloom.
- * 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.com/license/LICENSE.
- */
-
-#ifndef _RTEMS_SCORE_SCHEDULER_H
-# error "Never use <rtems/score/scheduler.inl> directly; include <rtems/score/scheduler.h> instead."
-#endif
-
-#ifndef _RTEMS_SCORE_SCHEDULER_INL
-#define _RTEMS_SCORE_SCHEDULER_INL
-
-/**
- * @addtogroup ScoreScheduler
- */
-/**@{**/
-
-/**
- * The preferred method to add a new scheduler is to define the jump table
- * entries and add a case to the _Scheduler_Initialize routine.
- *
- * Generic scheduling implementations that rely on the ready queue only can
- * be found in the _Scheduler_queue_XXX functions.
- */
-
-/*
- * Passing the Scheduler_Control* to these functions allows for multiple
- * scheduler's to exist simultaneously, which could be useful on an SMP
- * system. Then remote Schedulers may be accessible. How to protect such
- * accesses remains an open problem.
- */
-
-/**
- * @brief Scheduler schedule.
- *
- * This kernel routine implements the scheduling decision logic for
- * the scheduler. It does NOT dispatch.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Schedule( void )
-{
- _Scheduler.Operations.schedule();
-}
-
-/**
- * @brief Scheduler yield with a particular thread.
- *
- * This routine is invoked when a thread wishes to voluntarily transfer control
- * of the processor to another thread.
- *
- * @param[in] thread The yielding thread.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Yield(
- Thread_Control *thread
-)
-{
- ( *_Scheduler.Operations.yield )( thread );
-}
-
-/**
- * @brief Scheduler block.
- *
- * This routine removes @a the_thread from the scheduling decision for
- * the scheduler. The primary task is to remove the thread from the
- * ready queue. It performs any necessary schedulering operations
- * including the selection of a new heir thread.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Block(
- Thread_Control *the_thread
-)
-{
- _Scheduler.Operations.block( the_thread );
-}
-
-/**
- * @brief Scheduler unblock.
- *
- * This routine adds @a the_thread to the scheduling decision for
- * the scheduler. The primary task is to add the thread to the
- * ready queue per the schedulering policy and update any appropriate
- * scheduling variables, for example the heir thread.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Unblock(
- Thread_Control *the_thread
-)
-{
- _Scheduler.Operations.unblock( the_thread );
-}
-
-/**
- * @brief Scheduler allocate.
- *
- * This routine allocates @a the_thread->scheduler
- */
-RTEMS_INLINE_ROUTINE void* _Scheduler_Allocate(
- Thread_Control *the_thread
-)
-{
- return _Scheduler.Operations.allocate( the_thread );
-}
-
-/**
- * @brief Scheduler free.
- *
- * This routine frees @a the_thread->scheduler
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Free(
- Thread_Control *the_thread
-)
-{
- _Scheduler.Operations.free( the_thread );
-}
-
-/**
- * @brief Scheduler update.
- *
- * This routine updates @a the_thread->scheduler
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Update(
- Thread_Control *the_thread
-)
-{
- _Scheduler.Operations.update( the_thread );
-}
-
-/**
- * @brief Scheduler enqueue.
- *
- * This routine enqueue @a the_thread->scheduler
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue(
- Thread_Control *the_thread
-)
-{
- _Scheduler.Operations.enqueue( the_thread );
-}
-
-/**
- * @brief Scheduler enqueue first.
- *
- * This routine enqueue_first @a the_thread->scheduler
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Enqueue_first(
- Thread_Control *the_thread
-)
-{
- _Scheduler.Operations.enqueue_first( the_thread );
-}
-
-/**
- * @brief Scheduler extract.
- *
- * This routine extract @a the_thread->scheduler
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Extract(
- Thread_Control *the_thread
-)
-{
- _Scheduler.Operations.extract( the_thread );
-}
-
-/**
- * @brief Scheduler priority compare.
- *
- * This routine compares two priorities.
- */
-RTEMS_INLINE_ROUTINE int _Scheduler_Priority_compare(
- Priority_Control p1,
- Priority_Control p2
-)
-{
- return _Scheduler.Operations.priority_compare(p1, p2);
-}
-
-/**
- * @brief Scheduler release job.
- *
- * This routine is called when a new period of task is issued.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Release_job(
- Thread_Control *the_thread,
- uint32_t length
-)
-{
- _Scheduler.Operations.release_job(the_thread, length);
-}
-
-/**
- * @brief Scheduler method invoked at each clock tick.
- *
- * This method is invoked at each clock tick to allow the scheduler
- * implementation to perform any activities required. For the
- * scheduler which support standard RTEMS features, this includes
- * time-slicing management.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Tick( void )
-{
- _Scheduler.Operations.tick();
-}
-
-/**
- * @brief Starts the idle thread for a particular processor.
- *
- * @param[in,out] thread The idle thread for the processor.
- * @parma[in,out] processor The processor for the idle thread.
- *
- * @see _Thread_Create_idle().
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Start_idle(
- Thread_Control *thread,
- Per_CPU_Control *processor
-)
-{
- ( *_Scheduler.Operations.start_idle )( thread, processor );
-}
-
-/** @} */
-
-#endif
-/* end of include file */