summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-17 16:15:31 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-24 09:29:59 +0200
commit028786263f8e23d85723e0751f132401cd4dbc44 (patch)
tree8108f4052bddab57c71158ba782d8c1922294c90 /cpukit
parentpsxclockrealtime01: New test (diff)
downloadrtems-028786263f8e23d85723e0751f132401cd4dbc44.tar.bz2
score: Add _Thread_Add_timeout_ticks()
Replace _Thread_Timer_insert_monotonic() with _Thread_Add_timeout_ticks(). Update #3117. Update #3182.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/rtems/src/eventseize.c7
-rw-r--r--cpukit/rtems/src/taskwakeafter.c7
-rw-r--r--cpukit/score/include/rtems/score/threadimpl.h11
-rw-r--r--cpukit/score/src/threadqenqueue.c3
4 files changed, 8 insertions, 20 deletions
diff --git a/cpukit/rtems/src/eventseize.c b/cpukit/rtems/src/eventseize.c
index 76f9356800..c6bd4187bd 100644
--- a/cpukit/rtems/src/eventseize.c
+++ b/cpukit/rtems/src/eventseize.c
@@ -81,12 +81,7 @@ rtems_status_code _Event_Seize(
_Thread_Wait_release_default( executing, lock_context );
if ( ticks ) {
- _Thread_Timer_insert_monotonic(
- executing,
- cpu_self,
- _Thread_Timeout,
- ticks
- );
+ _Thread_Add_timeout_ticks( executing, cpu_self, ticks );
}
_Thread_Set_state( executing, block_state );
diff --git a/cpukit/rtems/src/taskwakeafter.c b/cpukit/rtems/src/taskwakeafter.c
index 43bf612f61..cf118dcf16 100644
--- a/cpukit/rtems/src/taskwakeafter.c
+++ b/cpukit/rtems/src/taskwakeafter.c
@@ -41,12 +41,7 @@ rtems_status_code rtems_task_wake_after(
} else {
_Thread_Set_state( executing, STATES_WAITING_FOR_TIME );
_Thread_Wait_flags_set( executing, THREAD_WAIT_STATE_BLOCKED );
- _Thread_Timer_insert_monotonic(
- executing,
- cpu_self,
- _Thread_Timeout,
- ticks
- );
+ _Thread_Add_timeout_ticks( executing, cpu_self, ticks );
}
_Thread_Dispatch_direct( cpu_self );
return RTEMS_SUCCESSFUL;
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h
index 6e4c461096..8c87f98cb8 100644
--- a/cpukit/score/include/rtems/score/threadimpl.h
+++ b/cpukit/score/include/rtems/score/threadimpl.h
@@ -1857,11 +1857,10 @@ RTEMS_INLINE_ROUTINE void _Thread_Timer_initialize(
_Watchdog_Preinitialize( &timer->Watchdog, cpu );
}
-RTEMS_INLINE_ROUTINE void _Thread_Timer_insert_monotonic(
- Thread_Control *the_thread,
- Per_CPU_Control *cpu,
- Watchdog_Service_routine_entry routine,
- Watchdog_Interval ticks
+RTEMS_INLINE_ROUTINE void _Thread_Add_timeout_ticks(
+ Thread_Control *the_thread,
+ Per_CPU_Control *cpu,
+ Watchdog_Interval ticks
)
{
ISR_lock_Context lock_context;
@@ -1870,7 +1869,7 @@ RTEMS_INLINE_ROUTINE void _Thread_Timer_insert_monotonic(
the_thread->Timer.header =
&cpu->Watchdog.Header[ PER_CPU_WATCHDOG_MONOTONIC ];
- the_thread->Timer.Watchdog.routine = routine;
+ the_thread->Timer.Watchdog.routine = _Thread_Timeout;
_Watchdog_Per_CPU_insert_ticks( &the_thread->Timer.Watchdog, cpu, ticks );
_ISR_lock_Release_and_ISR_enable( &the_thread->Timer.Lock, &lock_context );
diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c
index df1bea02cb..41cd1e62ad 100644
--- a/cpukit/score/src/threadqenqueue.c
+++ b/cpukit/score/src/threadqenqueue.c
@@ -385,10 +385,9 @@ static void _Thread_queue_Timeout(
case WATCHDOG_RELATIVE:
/* A relative timeout of 0 is a special case indefinite (no) timeout */
if ( queue_context->timeout != 0 ) {
- _Thread_Timer_insert_monotonic(
+ _Thread_Add_timeout_ticks(
the_thread,
cpu_self,
- _Thread_Timeout,
(Watchdog_Interval) queue_context->timeout
);
}