summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/timercreate.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-04-15 11:26:46 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-05-19 12:00:42 +0200
commit290309014c15b4eceee9f77c90eb3c81cc223f4b (patch)
tree4b9ae28399c95783e9ac5847d6a7709f980d62ad /cpukit/rtems/src/timercreate.c
parentscore: Optimize _Thread_queue_Compare_priority() (diff)
downloadrtems-290309014c15b4eceee9f77c90eb3c81cc223f4b.tar.bz2
score: Add header to _Watchdog_Remove()
Add watchdog header parameter to _Watchdog_Remove() to be in line with the other operations. Add _Watchdog_Remove_ticks() and _Watchdog_Remove_seconds() for convenience. Update #2307.
Diffstat (limited to 'cpukit/rtems/src/timercreate.c')
-rw-r--r--cpukit/rtems/src/timercreate.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/cpukit/rtems/src/timercreate.c b/cpukit/rtems/src/timercreate.c
index 0b1c44bdc2..2c6d251b8a 100644
--- a/cpukit/rtems/src/timercreate.c
+++ b/cpukit/rtems/src/timercreate.c
@@ -21,10 +21,33 @@
#include <rtems/system.h>
#include <rtems/rtems/status.h>
#include <rtems/rtems/support.h>
+#include <rtems/score/assert.h>
#include <rtems/score/thread.h>
#include <rtems/rtems/timerimpl.h>
#include <rtems/score/watchdogimpl.h>
+void _Timer_Cancel( Timer_Control *the_timer )
+{
+ Timer_server_Control *timer_server;
+
+ switch ( the_timer->the_class ) {
+ case TIMER_INTERVAL:
+ _Watchdog_Remove_ticks( &the_timer->Ticker );
+ break;
+ case TIMER_TIME_OF_DAY:
+ _Watchdog_Remove_seconds( &the_timer->Ticker );
+ break;
+ case TIMER_INTERVAL_ON_TASK:
+ case TIMER_TIME_OF_DAY_ON_TASK:
+ timer_server = _Timer_server;
+ (*timer_server->cancel)( timer_server, the_timer );
+ break;
+ default:
+ _Assert( the_timer->the_class == TIMER_DORMANT );
+ break;
+ }
+}
+
rtems_status_code rtems_timer_create(
rtems_name name,
rtems_id *id