RTEMS: Classic Rate Monotonic Scheduler Implementation

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Files | Data Structures | Macros | Functions | Variables
Classic Rate Monotonic Scheduler Implementation
Internal » Classic

## Files
file | ratemondata.h
| Classic Rate Monotonic Scheduler Data Structures.
file | ratemonimpl.h
| Classic Rate Monotonic Scheduler Implementation.

## Data Structures
struct | Rate_monotonic_Statistics
struct | Rate_monotonic_Control
| The following structure defines the control block used to manage each period. More...

## Macros
#define | RATE_MONOTONIC_INFORMATION_DEFINE(max)
| Macro to define the objects information for the Classic Rate Monotonic objects.
#define | RATE_MONOTONIC_INTEND_TO_BLOCK ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_INTEND_TO_BLOCK )
#define | RATE_MONOTONIC_BLOCKED ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_BLOCKED )
#define | RATE_MONOTONIC_READY_AGAIN ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_READY_AGAIN )

## Functions
RTEMS_INLINE_ROUTINE Rate_monotonic_Control * | _Rate_monotonic_Allocate (void)
| Allocates a period control block from the inactive chain of free period control blocks.
RTEMS_INLINE_ROUTINE void | _Rate_monotonic_Acquire_critical (Rate_monotonic_Control *the_period, ISR_lock_Context *lock_context)
RTEMS_INLINE_ROUTINE void | _Rate_monotonic_Release (Rate_monotonic_Control *the_period, ISR_lock_Context *lock_context)
RTEMS_INLINE_ROUTINE Rate_monotonic_Control * | _Rate_monotonic_Get (Objects_Id id, ISR_lock_Context *lock_context)
void | _Rate_monotonic_Timeout (Watchdog_Control *watchdog)
bool | _Rate_monotonic_Get_status (const Rate_monotonic_Control *the_period, Timestamp_Control *wall_since_last_period, Timestamp_Control *cpu_since_last_period)
| _Rate_monotonic_Get_status(
void | _Rate_monotonic_Restart (Rate_monotonic_Control *the_period, Thread_Control *owner, ISR_lock_Context *lock_context)
void | _Rate_monotonic_Cancel (Rate_monotonic_Control *the_period, Thread_Control *owner, ISR_lock_Context *lock_context)
RTEMS_INLINE_ROUTINE void | _Rate_monotonic_Reset_min_time (Timestamp_Control *min_time)
RTEMS_INLINE_ROUTINE void | _Rate_monotonic_Reset_statistics (Rate_monotonic_Control *the_period)

## Variables
Objects_Information | _Rate_monotonic_Information
| The Classic Rate Monotonic objects information.

## Detailed Description

## Macro Definition Documentation

## ◆ RATE_MONOTONIC_INFORMATION_DEFINE

#define RATE_MONOTONIC_INFORMATION_DEFINE | ( |  | max | ) |

Value:
OBJECTS_INFORMATION_DEFINE( \
_Rate_monotonic, \
OBJECTS_CLASSIC_API, \
OBJECTS_RTEMS_PERIODS, \
Rate_monotonic_Control, \
max, \
OBJECTS_NO_STRING_NAME, \
NULL \
)
NULL
#define NULL
Requests a GPIO pin group configuration.
Definition: bestcomm_api.h:77
OBJECTS_NO_STRING_NAME
#define OBJECTS_NO_STRING_NAME
Constant for the object information string name length to indicate that this object class has no stri...
Definition: objectdata.h:101
OBJECTS_INFORMATION_DEFINE
#define OBJECTS_INFORMATION_DEFINE(name, api, cls, type, max, nl, ex)
Statically initializes an objects information.
Definition: objectdata.h:427
Rate_monotonic_Control
The following structure defines the control block used to manage each period.
Definition: ratemondata.h:69

Macro to define the objects information for the Classic Rate Monotonic objects.

This macro should only be used by <rtems/confdefs.h>.

Parameters

  max | The configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag may be set).

## Function Documentation

## ◆ _Rate_monotonic_Allocate()

RTEMS_INLINE_ROUTINE Rate_monotonic_Control * _Rate_monotonic_Allocate | ( | void |  | ) |

Allocates a period control block from the inactive chain of free period control blocks.

This function allocates a period control block from the inactive chain of free period control blocks.

## ◆ _Rate_monotonic_Get_status()

bool _Rate_monotonic_Get_status | ( | const Rate_monotonic_Control * | the_period,
|  | Timestamp_Control * | wall_since_last_period,
|  | Timestamp_Control * | cpu_since_last_period
| ) |  |

_Rate_monotonic_Get_status(

This routine is invoked to compute the elapsed wall time and cpu time for a period.

Parameters

  [in] | the_period | points to the period being operated upon.
  [out] | wall_since_last_period | is set to the wall time elapsed since the period was initiated.
  [out] | cpu_since_last_period | is set to the cpu time used by the owning thread since the period was initiated.

Return values

  This | routine returns true if the status can be determined and false otherwise.