forked from Imagelibrary/rtems
score: Add WATCHDOG_INITIALIZER()
This commit is contained in:
@@ -39,6 +39,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.
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user