diff options
Diffstat (limited to 'cpukit/rtems/src/ratemongetstatus.c')
-rw-r--r-- | cpukit/rtems/src/ratemongetstatus.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/cpukit/rtems/src/ratemongetstatus.c b/cpukit/rtems/src/ratemongetstatus.c index 59b39e2917..eb307dad6a 100644 --- a/cpukit/rtems/src/ratemongetstatus.c +++ b/cpukit/rtems/src/ratemongetstatus.c @@ -52,6 +52,11 @@ rtems_status_code rtems_rate_monotonic_get_status( { Objects_Locations location; Rate_monotonic_Control *the_period; + #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ + defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) + Timestamp_Control uptime; + Timestamp_Control temp; + #endif if ( !status ) return RTEMS_INVALID_ADDRESS; @@ -65,12 +70,12 @@ rtems_status_code rtems_rate_monotonic_get_status( if ( status->state == RATE_MONOTONIC_INACTIVE ) { #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS - _Timestamp_Set_to_zero( &status->since_last_period ); + _Timespec_Set_to_zero( &status->since_last_period ); #else status->since_last_period = 0; #endif #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS - _Timestamp_Set_to_zero( &status->executed_since_last_period ); + _Timespec_Set_to_zero( &status->executed_since_last_period ); #else status->executed_since_last_period = 0; #endif @@ -81,16 +86,12 @@ rtems_status_code rtems_rate_monotonic_get_status( */ #if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \ defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS) - Timestamp_Control uptime; _TOD_Get_uptime( &uptime ); #endif #ifdef RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS - _Timestamp_Subtract( - &the_period->time_at_period, - &uptime, - &status->since_last_period - ); + _Timestamp_Subtract( &the_period->time_at_period, &uptime, &temp ); + _Timestamp_To_timespec( &temp, &status->since_last_period ); #else status->since_last_period = _Watchdog_Ticks_since_boot - the_period->time_at_period; @@ -100,8 +101,9 @@ rtems_status_code rtems_rate_monotonic_get_status( _Timestamp_Subtract( &_Thread_Time_of_last_context_switch, &uptime, - &status->executed_since_last_period + &temp ); + _Timestamp_To_timespec( &temp, &status->executed_since_last_period ); #else status->executed_since_last_period = the_period->owner->cpu_time_used - |