39#ifndef _RTEMS_RTEMS_RATEMONIMPL_H
40#define _RTEMS_RTEMS_RATEMONIMPL_H
64#define RATE_MONOTONIC_INTEND_TO_BLOCK \
65 ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_INTEND_TO_BLOCK )
67#define RATE_MONOTONIC_BLOCKED \
68 ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_BLOCKED )
83static inline void _Rate_monotonic_Acquire_critical(
91static inline void _Rate_monotonic_Release(
128void _Rate_monotonic_Restart(
130 Thread_Control *owner,
134void _Rate_monotonic_Cancel(
136 Thread_Control *owner,
140static inline void _Rate_monotonic_Reset_min_time(
144 _Timestamp_Set( min_time, 0x7fffffff, 0x7fffffff );
147static inline void _Rate_monotonic_Reset_statistics(
154 memset( statistics, 0,
sizeof( *statistics ) );
155 _Rate_monotonic_Reset_min_time( &statistics->
min_wall_time );
156 _Rate_monotonic_Reset_min_time( &statistics->
min_cpu_time );
Objects_Information _Rate_monotonic_Information
The Classic Rate Monotonic objects information.
void _Rate_monotonic_Get_status(const Rate_monotonic_Control *the_period, Timestamp_Control *wall_since_last_period, Timestamp_Control *cpu_since_last_period)
Gets the rate monotonic CPU usage status.
Definition ratemonperiod.c:48
#define _ISR_lock_Acquire(_lock, _context)
Acquires an ISR lock inside an ISR disabled section.
Definition isrlock.h:259
#define _ISR_lock_Release_and_ISR_enable(_lock, _context)
Releases an ISR lock.
Definition isrlock.h:229
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition objectallocate.c:43
uint32_t Objects_Id
Definition object.h:101
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:43
int64_t Timestamp_Control
Definition timestamp.h:76
This header file provides data structures used by the implementation and the Application Configuratio...
This header file provides interfaces of the Scheduler Handler which are only used by the implementati...
This header file provides interfaces of the Object Handler which are only used by the implementation.
Local ISR lock context for acquire and release pairs.
Definition isrlock.h:94
The following structure defines the control block used to manage each period.
Definition ratemondata.h:89
Rate_monotonic_Statistics Statistics
Definition ratemondata.h:140
Definition ratemondata.h:60
Timestamp_Control min_wall_time
Definition ratemondata.h:74
Timestamp_Control min_cpu_time
Definition ratemondata.h:67
The control block used to manage each watchdog timer.
Definition watchdog.h:109
This header file provides interfaces of the Thread Handler which are only used by the implementation.
This header file provides interfaces of the Watchdog Handler which are only used by the implementatio...