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
Definition: timestamp.h:52
Timestamp_Control min_cpu_time
Definition: ratemondata.h:47
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:89
Objects_Information _Rate_monotonic_Information
The Classic Rate Monotonic objects information.
#define _ISR_lock_Acquire(_lock, _context)
Acquires an ISR lock inside an ISR disabled section.
Definition: isrlock.h:278
Inlined Routines in the Watchdog Handler.
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:65
Inlined Routines Associated with the Manipulation of the Scheduler.
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.
Definition: objectgetlocal.c:28
The control block used to manage each watchdog timer.
Definition: watchdog.h:87
Classic Rate Monotonic Scheduler Data Structures.
Definition: ratemondata.h:40
Timestamp_Control min_wall_time
Definition: ratemondata.h:54
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(
Definition: ratemonperiod.c:27
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Definition: isrlock.h:248
Rate_monotonic_Statistics Statistics
Definition: ratemondata.h:118
The following structure defines the control block used to manage each period.
Definition: ratemondata.h:69
RTEMS_INLINE_ROUTINE void _Timestamp_Set(Timestamp_Control *_time, time_t _seconds, long _nanoseconds)
Set timestamp to specified seconds and nanoseconds.
Definition: timestampimpl.h:46
Inlined Routines from the Thread Handler.
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65
Inlined Routines in the Object Handler.
uint32_t Objects_Id
Definition: object.h:75
RTEMS_INLINE_ROUTINE Rate_monotonic_Control * _Rate_monotonic_Allocate(void)
Allocates a period control block from the inactive chain of free period control blocks.
Definition: ratemonimpl.h:58