78#define PRIO_INVALID 0xfffffffe
87#define PRIO_NEARLY_IDLE 126
96#define PRIO_FLEXIBLE 64
101#define INVALID_ID 0xfffffffd
106#define OBJECT_NAME rtems_build_name( 'T', 'E', 'S', 'T' )
108#define CreateTask( name, priority ) \
110 rtems_build_name( name[ 0 ], name[ 1 ], name[ 2 ], name[ 3 ] ), \
114#define SCHEDULER_A_ID 0xf010001
116#define SCHEDULER_B_ID 0xf010002
118#define SCHEDULER_C_ID 0xf010003
120#define SCHEDULER_D_ID 0xf010004
130void SuspendSelf(
void );
179void GetAffinity(
rtems_id id, cpu_set_t *set );
181void GetSelfAffinity( cpu_set_t *set );
183void SetAffinity(
rtems_id id,
const cpu_set_t *set );
185void SetSelfAffinity(
const cpu_set_t *set );
187void SetAffinityOne(
rtems_id id, uint32_t cpu_index );
189void SetSelfAffinityOne( uint32_t cpu_index );
193void SetSelfAffinityAll(
void );
199void AddProcessor(
rtems_id scheduler_id, uint32_t cpu_index );
201void RemoveProcessor(
rtems_id scheduler_id, uint32_t cpu_index );
205rtems_id CreateMutexNoProtocol(
void );
217void ObtainMutexDeadlock(
rtems_id id );
225void RestoreRunnerASR(
void );
227void RestoreRunnerMode(
void );
229void RestoreRunnerPriority(
void );
231void RestoreRunnerScheduler(
void );
239void KillZombies(
void );
241void WaitForExecutionStop(
rtems_id task_id );
243void WaitForIntendToBlock(
rtems_id task_id );
245void WaitForHeir( uint32_t cpu_index,
rtems_id task_id );
247void WaitForNextTask( uint32_t cpu_index,
rtems_id task_id );
258 TaskTimerState state;
259 uint64_t expire_ticks;
260 struct timespec expire_timespec;
265void GetTaskTimerInfoByThread(
270void ClockTick(
void );
290typedef uint32_t ( *GetTimecountHandler )( void );
305#define SOFTWARE_TIMECOUNTER_FREQUENCY 1000000
382 void ( *handler )(
void * );
387void CallWithinISR(
void ( *handler )(
void * ),
void *arg );
393void CallWithinISRRaise(
void );
395void CallWithinISRClear(
void );
408void WrapThreadQueueInitialize(
410 void ( *handler )(
void * ),
414void WrapThreadQueueExtract(
419void WrapThreadQueueExtractDirect(
428void SetPreemptionIntervention(
430 void ( *handler )(
void * ),
532void FatalInitialExtension(
534 bool always_set_to_false,
538typedef void ( *FatalHandler )(
544void SetFatalHandler( FatalHandler fatal,
void *arg );
550 uint32_t thread_begin;
551 uint32_t thread_create;
552 uint32_t thread_delete;
553 uint32_t thread_exitted;
554 uint32_t thread_restart;
555 uint32_t thread_start;
556 uint32_t thread_switch;
557 uint32_t thread_terminate;
564void SetIORelaxHandler(
void ( *handler )(
void * ),
void *arg );
566void StartDelayThreadDispatch( uint32_t cpu_index );
568void StopDelayThreadDispatch( uint32_t cpu_index );
570bool AreInterruptsEnabled(
void );
572bool IsWhiteSpaceOnly(
const char *s );
574bool IsEqualIgnoreWhiteSpace(
const char *a,
const char *b );
576#if defined(RTEMS_SMP)
577bool TicketLockIsAvailable(
const SMP_ticket_lock_Control *lock );
579void TicketLockWaitForOwned(
const SMP_ticket_lock_Control *lock );
581void TicketLockWaitForOthers(
582 const SMP_ticket_lock_Control *lock,
587 const SMP_ticket_lock_Control *lock;
588 unsigned int next_ticket;
591void TicketLockGetState(
592 const SMP_ticket_lock_Control *lock,
593 TicketLockState *state
596void TicketLockWaitForAcquires(
597 const TicketLockState *state,
598 unsigned int acquire_count
601void TicketLockWaitForReleases(
602 const TicketLockState *state,
603 unsigned int release_count
606static inline bool ISRLockIsAvailable(
const ISR_lock_Control *lock )
608 return TicketLockIsAvailable( &lock->Lock.Ticket_lock );
611static inline void ISRLockWaitForOwned(
const ISR_lock_Control *lock )
613 TicketLockWaitForOwned( &lock->Lock.Ticket_lock );
616static inline void ISRLockWaitForOthers(
617 const ISR_lock_Control *lock,
621 TicketLockWaitForOthers( &lock->Lock.Ticket_lock, others );
625void *IdleBody( uintptr_t ignored );
uint32_t rtems_event_set
This integer type represents a bit field which can hold exactly 32 individual events.
Definition: event.h:436
ISR_Vector_number rtems_vector_number
This integer type represents interrupt vector numbers.
Definition: intr.h:102
uint32_t rtems_mode
This type represents a Classic API task mode set.
Definition: modes.h:174
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
rtems_task(* rtems_task_entry)(rtems_task_argument)
This type defines the task entry point of an RTEMS task.
Definition: tasks.h:239
rtems_timer_service_routine(* rtems_timer_service_routine_entry)(rtems_id, void *)
This type defines the prototype of routines which can be fired by directives of the Timer Manager.
Definition: timer.h:259
Timer_Classes
The timer class indicates how the timer was most recently fired.
Definition: timer.h:114
uint32_t rtems_name
This type represents Classic API object names.
Definition: types.h:226
uint32_t rtems_task_priority
This integer type represents task priorities of the Classic API.
Definition: types.h:257
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition: types.h:94
Watchdog_Interval rtems_interval
This type represents clock tick intervals.
Definition: types.h:114
User_extensions_thread_switch_extension rtems_task_switch_extension
Task switch extensions are invoked when a thread switch from an executing thread to a heir thread tak...
Definition: extension.h:608
Internal_errors_t rtems_fatal_code
This integer type represents system termination codes.
Definition: extension.h:162
Internal_errors_Source
This type lists the possible sources from which an error can be reported.
Definition: interr.h:63
uint32_t Watchdog_Interval
Type is used to specify the length of intervals.
Definition: watchdogticks.h:59
Timer_States GetTimerState(rtems_id id)
Get the state of a timer from RTEMS internal data.
Definition: tx-timer-server.c:114
bool DeleteTimerServer(void)
Undo the effects of rtems_timer_initiate_server()
Definition: tx-timer-server.c:54
Timer_States
The various states of a timer.
Definition: tx-support.h:503
uint32_t GetTimecountCounter(void)
Gets the software timecount counter value.
Definition: tx-timecounter.c:67
void GetTimerSchedulingData(rtems_id id, Timer_Scheduling_Data *data)
Get data related to scheduling a timer service routine from RTEMS internal structures.
Definition: tx-timer-server.c:90
void MemoryAllocationFailWhen(uint32_t counter)
Fails a dynamic memory allocation when the counter reaches zero.
Definition: tx-memory-alloc.c:49
void TimecounterTick(void)
Simulates a single clock tick using the software timecounter.
Definition: tx-timecounter.c:126
const rtems_task_config DefaultTaskConfig
This task configurations may be used to construct a task during tests.
Definition: tx-default-task-config.c:53
uint32_t SetTimecountCounter(uint32_t counter)
Sets and gets the software timecount counter value.
Definition: tx-timecounter.c:75
Timer_Classes GetTimerClass(rtems_id id)
Get the clock and context of a timer from RTEMS internal data.
Definition: tx-timer-server.c:72
void FinalClockTick(void)
Simulates a clock tick with the final expire time point of UINT64_MAX for all clocks.
Definition: tx-support.c:796
void UnsetClock(void)
Mark the realtime clock as never set.
Definition: tx-timer-server.c:147
rtems_id GetTimerServerTaskId(void)
Return the task id of the timer server task.
Definition: tx-timer-server.c:46
GetTimecountHandler SetGetTimecountHandler(GetTimecountHandler handler)
Sets the get timecount handler.
Definition: tx-timecounter.c:58
This header file provides the interfaces of the Atomic Operations.
This header file is provided for backward compatiblility.
This header file defines the RTEMS Classic API.
Definition: tx-support.h:380
This structure represents a chain node.
Definition: chain.h:78
Definition: tx-support.h:548
Definition: tx-support.h:355
Per CPU Core Structure.
Definition: percpu.h:384
Definition: tx-support.h:257
Definition: threadq.h:609
The thread queue operations are used to manage the threads of a thread queue.
Definition: threadq.h:554
Definition: threadq.h:427
This structure provides data used by RTEMS to schedule a timer service routine.
Definition: tx-support.h:471
void * user_data
This member contains a reference to the user data to be provided to the timer service routine.
Definition: tx-support.h:480
Watchdog_Interval interval
This member contains the timer interval in ticks or seconds.
Definition: tx-support.h:484
rtems_timer_service_routine_entry routine
This member contains a reference to the timer service routine.
Definition: tx-support.h:475
Definition: tx-support.h:401
Definition: inftrees.h:24
Definition: mmu-config.c:53
This structure provides the attributes of an interrupt vector.
Definition: intr.h:2076
This structure defines the configuration of a task constructed by rtems_task_construct().
Definition: tasks.h:110
This header file provides interfaces of the Thread Queue Handler which are used by the implementation...