RTEMS CPU Kit with SuperCore
4.11.3
|
Classic API Rate Monotonic Manager. More...
![]() |
Modules | |
Classic Rate Monotonic Scheduler Implementation | |
Files | |
file | ratemon.c |
Rate Monotonic Manager Initialization. | |
file | ratemoncancel.c |
RTEMS Rate Monotonic Cancel. | |
file | ratemoncreate.c |
Create a Period. | |
file | ratemondata.c |
Instantiate RTEMS Period Data. | |
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 |
The following defines the PUBLIC data structure that has the statistics kept on each period instance. More... | |
struct | Rate_monotonic_Statistics |
The following defines the INTERNAL data structure that has the statistics kept on each period instance. More... | |
struct | rtems_rate_monotonic_period_status |
The following defines the period status structure. More... | |
struct | Rate_monotonic_Control |
The following structure defines the control block used to manage each period. More... | |
Macros | |
#define | RTEMS_PERIOD_STATUS WATCHDOG_NO_TIMEOUT |
The following constant is the interval passed to the rate_monontonic_period directive to obtain status information. | |
Typedefs | |
typedef struct timespec | rtems_rate_monotonic_period_time_t |
This is the public type used for the rate monotonic timing statistics. | |
typedef Timestamp_Control | Rate_monotonic_Period_time_t |
This is the internal type used for the rate monotonic timing statistics. | |
Enumerations | |
enum | rtems_rate_monotonic_period_states { RATE_MONOTONIC_INACTIVE, RATE_MONOTONIC_OWNER_IS_BLOCKING, RATE_MONOTONIC_ACTIVE, RATE_MONOTONIC_EXPIRED_WHILE_BLOCKING, RATE_MONOTONIC_EXPIRED } |
The following enumerated type defines the states in which a period may be. More... | |
Classic API Rate Monotonic Manager.
This encapsulates functionality related to the Classic API Rate Monotonic Manager.
This include file contains all the constants, structures, and prototypes associated with the Rate Monotonic Manager. This manager provides facilities to implement threads which execute in a periodic fashion.
Directives provided are:
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 time used by the owning thread between successive calls to rtems_rate_monotonic_period.
Rate Monotonic Manager – Reset Statistics for All Periods
The following enumerated type defines the states in which a period may be.
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.
[in] | id | is the rate monotonic id |
RTEMS_SUCCESSFUL | if successful and caller is not the owning thread or error code if unsuccessful |
References _Rate_monotonic_Get().
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.
References _Objects_Allocator_unlock(), _Objects_Open(), _Rate_monotonic_Allocate(), _Rate_monotonic_Information, _Rate_monotonic_Reset_statistics, _Thread_Get_executing(), _Watchdog_Preinitialize(), Objects_Control::id, Rate_monotonic_Control::Object, Rate_monotonic_Control::owner, RATE_MONOTONIC_INACTIVE, RTEMS_INVALID_ADDRESS, RTEMS_INVALID_NAME, rtems_is_name_valid(), RTEMS_SUCCESSFUL, RTEMS_TOO_MANY, Rate_monotonic_Control::state, and Rate_monotonic_Control::Timer.
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.
[in] | id | is the rate monotonic id |
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. |
References _Objects_Allocator_lock(), and _Rate_monotonic_Get().
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.
[in] | id | is the rate monotonic id |
[in] | statistics | is the pointer to statistics control block |
RTEMS_SUCCESSFUL | if successful or error code if unsuccessful |
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.
[in] | id | is the rate monotonic id |
[in] | status | is the pointer to status control block |
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. |
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.
[in] | name | is the user defined period name |
[in] | id | is the pointer to period id |
This | method 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_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.
[in] | id | is the rate monotonic id |
[in] | length | is the length of period (in ticks) |
RTEMS_SUCCESSFUL | if successful or error code if unsuccessful |
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.
References printk_plugin(), and rtems_rate_monotonic_report_statistics_with_plugin().
void rtems_rate_monotonic_report_statistics_with_plugin | ( | void * | context, |
rtems_printk_plugin_t | |||
) |
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. 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.
Referenced by rtems_rate_monotonic_report_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.
References _Rate_monotonic_Information, _Thread_Disable_dispatch(), _Thread_Enable_dispatch(), Objects_Information::maximum_id, Objects_Information::minimum_id, and 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.
References _Rate_monotonic_Get().
Referenced by rtems_rate_monotonic_reset_all_statistics().