diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-22 11:10:43 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-22 16:57:26 +0200 |
commit | 0eae7ba9ba8c6c60e0718e364a37081b290cc457 (patch) | |
tree | c5e6b40eaaeb4bb3a358c36ce2be6845b1528cd9 | |
parent | score: Create watchdog implementation header (diff) | |
download | rtems-0eae7ba9ba8c6c60e0718e364a37081b290cc457.tar.bz2 |
score: Add WATCHDOG_INITIALIZER()
-rw-r--r-- | cpukit/score/include/rtems/score/watchdogimpl.h | 13 | ||||
-rw-r--r-- | testsuites/sptests/spwatchdog/init.c | 24 |
2 files changed, 37 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/watchdogimpl.h b/cpukit/score/include/rtems/score/watchdogimpl.h index e0324ff257..3085a440f6 100644 --- a/cpukit/score/include/rtems/score/watchdogimpl.h +++ b/cpukit/score/include/rtems/score/watchdogimpl.h @@ -40,6 +40,19 @@ extern "C" { #define WATCHDOG_MAXIMUM_INTERVAL ((Watchdog_Interval) 0xffffffff) /** + * @brief Watchdog initializer for static initialization. + * + * @see _Watchdog_Initialize(). + */ +#define WATCHDOG_INITIALIZER( routine, id, user_data ) \ + { \ + { NULL, NULL }, \ + WATCHDOG_INACTIVE, \ + 0, 0, 0, 0, \ + ( routine ), ( id ), ( user_data ) \ + } + +/** * @brief the manner in which a watchdog chain may * be adjusted by the @ref _Watchdog_Adjust routine. * diff --git a/testsuites/sptests/spwatchdog/init.c b/testsuites/sptests/spwatchdog/init.c index a7a332a26c..6dae9e411a 100644 --- a/testsuites/sptests/spwatchdog/init.c +++ b/testsuites/sptests/spwatchdog/init.c @@ -24,6 +24,27 @@ #include <rtems/score/watchdogimpl.h> +static void test_watchdog_routine( Objects_Id id, void *arg ) +{ + (void) id; + (void) arg; + + rtems_test_assert( 0 ); +} + +static void test_watchdog_static_init( void ) +{ + Objects_Id id = 0x12345678; + void *arg = (void *) 0xdeadbeef; + Watchdog_Control a = WATCHDOG_INITIALIZER( test_watchdog_routine, id, arg ); + Watchdog_Control b; + + memset( &b, 0, sizeof( b ) ); + _Watchdog_Initialize( &b, test_watchdog_routine, id, arg ); + + rtems_test_assert( memcmp( &a, &b, sizeof( a ) ) == 0 ); +} + rtems_task Init( rtems_task_argument argument ) @@ -35,6 +56,9 @@ rtems_task Init( puts( "\n*** RTEMS WATCHDOG ***" ); puts( "INIT - report on empty watchdog chain" ); + + test_watchdog_static_init(); + _Chain_Initialize_empty( &empty ); _Watchdog_Report_chain( "Empty Chain", &empty ); |