diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-02-05 16:05:20 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-02-08 08:44:14 +0100 |
commit | 788fa865fbfa3340d07f72e407fdbe7a5c79ce93 (patch) | |
tree | 2e7f84cb1ce3a1c27f1ccf8f729c1ebdc79e3292 /cpukit/libtest/t-test-rtems-objs.c | |
parent | validation: Add tests for rtems_build_name() (diff) | |
download | rtems-788fa865fbfa3340d07f72e407fdbe7a5c79ce93.tar.bz2 |
libtest: Add T_get_thread_timer_state()
Diffstat (limited to 'cpukit/libtest/t-test-rtems-objs.c')
-rw-r--r-- | cpukit/libtest/t-test-rtems-objs.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/cpukit/libtest/t-test-rtems-objs.c b/cpukit/libtest/t-test-rtems-objs.c index ed7222e98e..ad8d153154 100644 --- a/cpukit/libtest/t-test-rtems-objs.c +++ b/cpukit/libtest/t-test-rtems-objs.c @@ -43,6 +43,35 @@ #include <rtems/score/threadimpl.h> +T_thread_timer_state +T_get_thread_timer_state(uint32_t id) +{ + Thread_Control *the_thread; + ISR_lock_Context lock_context; + T_thread_timer_state state; + + the_thread = _Thread_Get(id, &lock_context); + if (the_thread == NULL) { + return T_THREAD_TIMER_NO_THREAD; + } + + switch (_Watchdog_Get_state(&the_thread->Timer.Watchdog)) { + case WATCHDOG_SCHEDULED_BLACK: + case WATCHDOG_SCHEDULED_RED: + state = T_THREAD_TIMER_SCHEDULED; + break; + case WATCHDOG_PENDING: + state = T_THREAD_TIMER_PENDING; + break; + default: + state = T_THREAD_TIMER_INACTIVE; + break; + } + + _ISR_lock_ISR_enable(&lock_context); + return state; +} + Objects_Maximum T_objects_count(Objects_APIs api, uint16_t cls) { |