From d7feb8677d48162bf8db34406c232e0179d43dc6 Mon Sep 17 00:00:00 2001 From: Kuan-Hsun Chen Date: Wed, 25 Jan 2017 21:47:48 +0100 Subject: Remove rtems_rate_monotonic_postponed_job_count() Add a variable named "count" in rtems_rate_monotonic_period_status structure. Revise rtems_rate_monotonic_get_status() for the postponed job count. sptests/sp69: Add in the verification of the postponed job count for rtems_rate_monotonic_get_status(). Update #2795. --- cpukit/rtems/include/rtems/rtems/ratemon.h | 24 ++++-------------------- cpukit/rtems/src/ratemongetstatus.c | 2 ++ cpukit/rtems/src/ratemonperiod.c | 14 -------------- 3 files changed, 6 insertions(+), 34 deletions(-) (limited to 'cpukit/rtems') diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h b/cpukit/rtems/include/rtems/rtems/ratemon.h index 54ddd050e7..ca48a92983 100644 --- a/cpukit/rtems/include/rtems/rtems/ratemon.h +++ b/cpukit/rtems/include/rtems/rtems/ratemon.h @@ -23,7 +23,7 @@ /* COPYRIGHT (c) 1989-2009, 2016. * On-Line Applications Research Corporation (OAR). - * COPYRIGHT (c) 2016 Kuan-Hsun Chen. + * COPYRIGHT (c) 2016-2017 Kuan-Hsun Chen. * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -182,6 +182,9 @@ typedef struct { * then this field has no meaning. */ rtems_thread_cpu_usage_t executed_since_last_period; + + /** This is the count of postponed jobs of this period. */ + uint32_t postponed_jobs_count; } rtems_rate_monotonic_period_status; /** @@ -417,25 +420,6 @@ rtems_status_code rtems_rate_monotonic_period( rtems_interval length ); -/** - * @brief Return the number of postponed jobs - * - * This is a helper function for runtime monitoring to return - * the number of postponed jobs in this given period. This number - * is only increased by the corresponding watchdog, - * and is decreased by RMS manager with the postponed job releasing. - * - * @param[in] id is the period id - * - * @retval This helper function returns the number of postponed - * jobs with a given period_id. - * - */ -uint32_t rtems_rate_monotonic_postponed_job_count( - rtems_id period_id -); - - /**@}*/ #ifdef __cplusplus diff --git a/cpukit/rtems/src/ratemongetstatus.c b/cpukit/rtems/src/ratemongetstatus.c index 403c6ed097..4e6b964f68 100644 --- a/cpukit/rtems/src/ratemongetstatus.c +++ b/cpukit/rtems/src/ratemongetstatus.c @@ -9,6 +9,7 @@ * COPYRIGHT (c) 1989-2009. * On-Line Applications Research Corporation (OAR). * Copyright (c) 2016 embedded brains GmbH. + * Copyright (c) 2017 Kuan-Hsun Chen. * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -43,6 +44,7 @@ rtems_status_code rtems_rate_monotonic_get_status( period_status->owner = the_period->owner->Object.id; period_status->state = the_period->state; + period_status->postponed_jobs_count = the_period->postponed_jobs; if ( the_period->state == RATE_MONOTONIC_INACTIVE ) { /* diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index 97547e2c77..efcd121584 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -302,20 +302,6 @@ static rtems_status_code _Rate_monotonic_Block_while_expired( return RTEMS_TIMEOUT; } -uint32_t rtems_rate_monotonic_postponed_job_count( rtems_id period_id ) -{ - Rate_monotonic_Control *the_period; - ISR_lock_Context lock_context; - uint32_t jobs; - - the_period = _Rate_monotonic_Get( period_id, &lock_context ); - _Assert( the_period != NULL ); - - jobs = the_period->postponed_jobs; - _Rate_monotonic_Release( the_period, &lock_context ); - return jobs; -} - rtems_status_code rtems_rate_monotonic_period( rtems_id id, rtems_interval length -- cgit v1.2.3