mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-20 14:46:42 +08:00
score: Add _Watchdog_Nanoseconds_per_tick
Move it from the configuration to a separate variable. Update #3117. Update #3182.
This commit is contained in:
@@ -3108,6 +3108,9 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
|
||||
const size_t _Thread_Control_add_on_count =
|
||||
RTEMS_ARRAY_SIZE( _Thread_Control_add_ons );
|
||||
|
||||
const uint32_t _Watchdog_Nanoseconds_per_tick =
|
||||
1000 * CONFIGURE_MICROSECONDS_PER_TICK;
|
||||
|
||||
const uint32_t _Watchdog_Ticks_per_second = _CONFIGURE_TICKS_PER_SECOND;
|
||||
|
||||
const uint64_t _Watchdog_Monotonic_max_seconds =
|
||||
@@ -3167,7 +3170,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
|
||||
_CONFIGURE_POSIX_KEYS, /* POSIX keys are always */
|
||||
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS, /* enabled */
|
||||
CONFIGURE_MICROSECONDS_PER_TICK, /* microseconds per clock tick */
|
||||
1000 * CONFIGURE_MICROSECONDS_PER_TICK, /* nanoseconds per clock tick */
|
||||
CONFIGURE_TICKS_PER_TIMESLICE, /* ticks per timeslice quantum */
|
||||
CONFIGURE_IDLE_TASK_BODY, /* user's IDLE task */
|
||||
CONFIGURE_IDLE_TASK_STACK_SIZE, /* IDLE task stack size */
|
||||
|
||||
@@ -43,6 +43,8 @@ extern "C" {
|
||||
#define rtems_resource_maximum_per_allocation(resource) \
|
||||
_Objects_Maximum_per_allocation(resource)
|
||||
|
||||
#include <rtems/score/watchdog.h>
|
||||
|
||||
/*
|
||||
* This is kind of kludgy but it allows targets to totally ignore the
|
||||
* optional APIs like POSIX safely.
|
||||
@@ -164,14 +166,6 @@ typedef struct {
|
||||
*/
|
||||
uint32_t microseconds_per_tick;
|
||||
|
||||
/**
|
||||
* This field specifies the number of nanoseconds which elapse
|
||||
* between clock ticks. This value is derived from the
|
||||
* microseconds_per_tick field and provided to avoid calculation at
|
||||
* run-time.
|
||||
*/
|
||||
uint32_t nanoseconds_per_tick;
|
||||
|
||||
/**
|
||||
* This field specifies the number of ticks in each task's timeslice.
|
||||
*/
|
||||
@@ -308,7 +302,7 @@ extern const rtems_configuration_table Configuration;
|
||||
#define rtems_configuration_get_milliseconds_per_tick() \
|
||||
(Configuration.microseconds_per_tick / 1000)
|
||||
#define rtems_configuration_get_nanoseconds_per_tick() \
|
||||
(Configuration.nanoseconds_per_tick)
|
||||
(_Watchdog_Nanoseconds_per_tick)
|
||||
|
||||
#define rtems_configuration_get_ticks_per_timeslice() \
|
||||
(Configuration.ticks_per_timeslice)
|
||||
|
||||
@@ -158,6 +158,14 @@ struct Watchdog_Control {
|
||||
*/
|
||||
extern volatile Watchdog_Interval _Watchdog_Ticks_since_boot;
|
||||
|
||||
/**
|
||||
* @brief The watchdog nanoseconds per tick.
|
||||
*
|
||||
* This constant is defined by the application configuration via
|
||||
* <rtems/confdefs.h>.
|
||||
*/
|
||||
extern const uint32_t _Watchdog_Nanoseconds_per_tick;
|
||||
|
||||
/**
|
||||
* @brief The watchdog ticks per second.
|
||||
*
|
||||
|
||||
@@ -59,6 +59,7 @@ static void test_watchdog_static_init( void )
|
||||
|
||||
static void test_watchdog_config( void )
|
||||
{
|
||||
rtems_test_assert( _Watchdog_Nanoseconds_per_tick == 10000000 );
|
||||
rtems_test_assert( _Watchdog_Ticks_per_second == 100 );
|
||||
rtems_test_assert( _Watchdog_Monotonic_max_seconds == 184467440737095516 );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user