19 #ifndef _RTEMS_RTEMS_RATEMONIMPL_H 20 #define _RTEMS_RTEMS_RATEMONIMPL_H 42 #define RATE_MONOTONIC_INTEND_TO_BLOCK \ 43 ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_INTEND_TO_BLOCK ) 45 #define RATE_MONOTONIC_BLOCKED \ 46 ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_BLOCKED ) 48 #define RATE_MONOTONIC_READY_AGAIN \ 49 ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_READY_AGAIN ) 112 void _Rate_monotonic_Restart(
118 void _Rate_monotonic_Cancel(
138 memset( statistics, 0,
sizeof( *statistics ) );
139 _Rate_monotonic_Reset_min_time( &statistics->
min_wall_time );
140 _Rate_monotonic_Reset_min_time( &statistics->
min_cpu_time );
int64_t Timestamp_Control
Timestamp_Control min_cpu_time
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Objects_Information _Rate_monotonic_Information
The Classic Rate Monotonic objects information.
Inlined Routines in the Watchdog Handler.
Inlined Routines Associated with the Manipulation of the Scheduler.
The control block used to manage each watchdog timer.
static __inline__ void _Timestamp_Set(Timestamp_Control *_time, time_t _seconds, long _nanoseconds)
Sets timestamp to specified seconds and nanoseconds.
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Inlined Routines in the Object Handler.
Classic Rate Monotonic Scheduler Data Structures.
Timestamp_Control min_wall_time
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(
#define _ISR_lock_Acquire(_lock, _context)
Acquires an ISR lock inside an ISR disabled section.
Rate_monotonic_Statistics Statistics
The following structure defines the control block used to manage each period.
Inlined Routines from the Thread Handler.
Objects_Control * _Objects_Get(Objects_Id id, ISR_lock_Context *lock_context, const Objects_Information *information)
Maps the specified object identifier to the associated local object control block.
Local ISR lock context for acquire and release pairs.
static __inline__ Rate_monotonic_Control * _Rate_monotonic_Allocate(void)
Allocates a period control block from the inactive chain of free period control blocks.
#define RTEMS_INLINE_ROUTINE
Gives a hint to the compiler in a function declaration to inline this function.