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:57
Timestamp_Control min_cpu_time
Definition: ratemondata.h:47
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Definition: isrlock.h:263
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.
Definition: watchdog.h:90
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:42
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_Acquire(_lock, _context)
Acquires an ISR lock inside an ISR disabled section.
Definition: isrlock.h:293
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)
Sets timestamp to specified seconds and nanoseconds.
Definition: timestampimpl.h:48
Inlined Routines from the Thread Handler.
uint32_t Objects_Id
Definition: object.h:80
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
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65
Inlined Routines in the Object Handler.
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
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