RTEMS  5.0.0
Files | Data Structures | Macros | Typedefs | Enumerations | Functions
Rate Monotonic Scheduler

Files

file  ratemon.h
 
file  ratemon.c
 Classic Rate Monotonic Information with Zero Objects.
 
file  ratemoncancel.c
 RTEMS Rate Monotonic Cancel.
 
file  ratemoncreate.c
 Create a Period.
 
file  ratemondelete.c
 RTEMS Delete Rate Monotonic.
 
file  ratemongetstatistics.c
 RTEMS Rate Monotonic Get Statistics.
 
file  ratemongetstatus.c
 RTEMS Rate Monotonic Get Status.
 
file  ratemonident.c
 RTEMS Rate Monotonic Name to Id.
 
file  ratemonperiod.c
 Rate Monotonic Support.
 
file  ratemonreportstatistics.c
 RTEMS Report Rate Monotonic Statistics.
 
file  ratemonresetall.c
 rtems_rate_monotonic_reset_all_statistics
 
file  ratemonresetstatistics.c
 RTEMS Rate Monotonic Reset Statistics.
 
file  ratemontimeout.c
 Rate Monotonic Timeout.
 

Data Structures

struct  rtems_rate_monotonic_period_statistics
 
struct  rtems_rate_monotonic_period_status
 

Macros

#define RTEMS_PERIOD_STATUS   WATCHDOG_NO_TIMEOUT
 

Typedefs

typedef struct timespec rtems_rate_monotonic_period_time_t RTEMS_DEPRECATED
 

Enumerations

enum  rtems_rate_monotonic_period_states { RATE_MONOTONIC_INACTIVE, RATE_MONOTONIC_ACTIVE, RATE_MONOTONIC_EXPIRED }
 

Functions

rtems_status_code rtems_rate_monotonic_create (rtems_name name, rtems_id *id)
 Create a Period. More...
 
rtems_status_code rtems_rate_monotonic_ident (rtems_name name, rtems_id *id)
 RTEMS Rate Monotonic Name to Id. More...
 
rtems_status_code rtems_rate_monotonic_cancel (rtems_id id)
 RTEMS Rate Monotonic Cancel. More...
 
rtems_status_code rtems_rate_monotonic_delete (rtems_id id)
 RTEMS Delete Rate Monotonic. More...
 
rtems_status_code rtems_rate_monotonic_get_status (rtems_id id, rtems_rate_monotonic_period_status *status)
 RTEMS Rate Monotonic Get Status. More...
 
rtems_status_code rtems_rate_monotonic_get_statistics (rtems_id id, rtems_rate_monotonic_period_statistics *statistics)
 RTEMS Rate Monotonic Get Statistics. More...
 
rtems_status_code rtems_rate_monotonic_reset_statistics (rtems_id id)
 RTEMS Rate Monotonic Reset Statistics. More...
 
void rtems_rate_monotonic_reset_all_statistics (void)
 rtems_rate_monotonic_reset_all_statistics More...
 
void rtems_rate_monotonic_report_statistics_with_plugin (const struct rtems_printer *printer)
 RTEMS Report Rate Monotonic Statistics. More...
 
void rtems_rate_monotonic_report_statistics (void)
 RTEMS Report Rate Monotonic Statistics. More...
 
rtems_status_code rtems_rate_monotonic_period (rtems_id id, rtems_interval length)
 RTEMS Rate Monotonic Period. More...
 

Detailed Description

This encapsulates functionality related to the Classic API Rate Monotonic Manager.

Statistics are kept for each period and can be obtained or printed via API calls. The statistics kept include minimum, maximum and average times for both cpu usage and wall time. The statistics indicate the execution and wall time used by the owning thread between successive calls to rtems_rate_monotonic_period.

Macro Definition Documentation

◆ RTEMS_PERIOD_STATUS

#define RTEMS_PERIOD_STATUS   WATCHDOG_NO_TIMEOUT

The following constant is the interval passed to the rate_monontonic_period directive to obtain status information.

Enumeration Type Documentation

◆ rtems_rate_monotonic_period_states

The following enumerated type defines the states in which a period may be.

Enumerator
RATE_MONOTONIC_INACTIVE 

This value indicates the period is off the watchdog chain, and has never been initialized.

RATE_MONOTONIC_ACTIVE 

This value indicates the period is on the watchdog chain, and running. The owner should be executed or blocked waiting on another object.

RATE_MONOTONIC_EXPIRED 

This value indicates the period is off the watchdog chain, and has expired. The owner is still executing and has taken too much all time to complete this iteration of the period.

Function Documentation

◆ rtems_rate_monotonic_cancel()

rtems_status_code rtems_rate_monotonic_cancel ( rtems_id  id)

RTEMS Rate Monotonic Cancel.

This routine implements the rtems_rate_monotonic_cancel directive. This directive stops the period associated with ID from continuing to run.

Parameters
[in]idis the rate monotonic id
Return values
RTEMS_SUCCESSFULif successful and caller is not the owning thread or error code if unsuccessful

◆ rtems_rate_monotonic_create()

rtems_status_code rtems_rate_monotonic_create ( rtems_name  name,
rtems_id id 
)

Create a Period.

Rate Monotonic Manager

This routine implements the rate_monotonic_create directive. The period will have the name name. It returns the id of the created period in ID.

◆ rtems_rate_monotonic_delete()

rtems_status_code rtems_rate_monotonic_delete ( rtems_id  id)

RTEMS Delete Rate Monotonic.

This routine implements the rtems_rate_monotonic_delete directive. The period indicated by ID is deleted.

Parameters
[in]idis the rate monotonic id
Return values
Thismethod returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error.

◆ rtems_rate_monotonic_get_statistics()

rtems_status_code rtems_rate_monotonic_get_statistics ( rtems_id  id,
rtems_rate_monotonic_period_statistics statistics 
)

RTEMS Rate Monotonic Get Statistics.

This routine implements the rtems_rate_monotonic_get_statistics directive. Statistics gathered from the use of this period are returned.

Parameters
[in]idis the rate monotonic id
[in]statisticsis the pointer to statistics control block
Return values
RTEMS_SUCCESSFULif successful or error code if unsuccessful

◆ rtems_rate_monotonic_get_status()

rtems_status_code rtems_rate_monotonic_get_status ( rtems_id  id,
rtems_rate_monotonic_period_status status 
)

RTEMS Rate Monotonic Get Status.

This routine implements the rtems_rate_monotonic_get_status directive. Information about the period indicated by ID is returned.

Parameters
[in]idis the rate monotonic id
[in]statusis the pointer to status control block
Return values
Thismethod returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error.

◆ rtems_rate_monotonic_ident()

rtems_status_code rtems_rate_monotonic_ident ( rtems_name  name,
rtems_id id 
)

RTEMS Rate Monotonic Name to Id.

This routine implements the rtems_rate_monotonic_ident directive. It returns the period ID associated with name. If more than one period is named name, then the period to which the ID belongs is arbitrary.

Parameters
[in]nameis the user defined period name
[in]idis the pointer to period id
Return values
Thismethod returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. If successful, the id will be filled in with the region id.

◆ rtems_rate_monotonic_period()

rtems_status_code rtems_rate_monotonic_period ( rtems_id  id,
rtems_interval  length 
)

RTEMS Rate Monotonic Period.

This routine implements the rtems_rate_monotonic_period directive. When length is non-zero, this directive initiates the period associated with ID from continuing for a period of length. If length is zero, then result is set to indicate the current state of the period.

Parameters
[in]idis the rate monotonic id
[in]lengthis the length of period (in ticks)
Return values
RTEMS_SUCCESSFULif successful or error code if unsuccessful

◆ rtems_rate_monotonic_report_statistics()

void rtems_rate_monotonic_report_statistics ( void  )

RTEMS Report Rate Monotonic Statistics.

This routine allows a thread to print the statistics information on ALL period instances which have non-zero counts using printk.

◆ rtems_rate_monotonic_report_statistics_with_plugin()

void rtems_rate_monotonic_report_statistics_with_plugin ( const struct rtems_printer printer)

RTEMS Report Rate Monotonic Statistics.

This routine allows a thread to print the statistics information on ALL period instances which have non-zero counts using the RTEMS printer. The implementation of this directive straddles the fence between inside and outside of RTEMS. It is presented as part of the Manager but actually uses other services of the Manager.

◆ rtems_rate_monotonic_reset_all_statistics()

void rtems_rate_monotonic_reset_all_statistics ( void  )

rtems_rate_monotonic_reset_all_statistics

This routine allows a thread to reset the statistics information on ALL period instances.

◆ rtems_rate_monotonic_reset_statistics()

rtems_status_code rtems_rate_monotonic_reset_statistics ( rtems_id  id)

RTEMS Rate Monotonic Reset Statistics.

Rate Monotonic Manager – Reset Statistics

This routine allows a thread to reset the statistics information on a specific period instance.