RTEMS  5.0.0
Files | Data Structures | Macros | Functions | Variables
Classic Rate Monotonic Scheduler Implementation

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. More...
 
#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. More...
 
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( More...
 
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:
_Rate_monotonic, \
OBJECTS_CLASSIC_API, \
OBJECTS_RTEMS_PERIODS, \
max, \
NULL \
)
#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:94
The following structure defines the control block used to manage each period.
Definition: ratemondata.h:69
#define OBJECTS_INFORMATION_DEFINE(name, api, cls, type, max, nl, ex)
Statically initializes an objects information.
Definition: objectdata.h:333
#define NULL
Requests a GPIO pin group configuration.
Definition: bestcomm_api.h:77

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

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

Parameters
maxThe 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_periodpoints to the period being operated upon.
[out]wall_since_last_periodis set to the wall time elapsed since the period was initiated.
[out]cpu_since_last_periodis set to the cpu time used by the owning thread since the period was initiated.
Return values
Thisroutine returns true if the status can be determined and false otherwise.