40 #include <rtems/test.h> 63 .thread_switch = T_thread_switch_recorder
85 ctx = &T_thread_switch_instance;
88 if (ctx->active == NULL) {
100 recorded = log->recorded;
102 if (recorded < log->capacity) {
103 log->recorded = recorded + 1;
104 log->events[recorded].executing = executing->
Object.
id;
105 log->events[recorded].heir = heir->
Object.
id;
106 log->events[recorded].cpu =
107 _SMP_Get_current_processor();
108 log->events[recorded].instant = T_now();
122 ctx = &T_thread_switch_instance;
126 T_add_destructor(&ctx->dtor, T_thread_switch_destroy);
135 previous = ctx->active;
145 log->log.capacity = 2;
146 return T_thread_switch_record(&log->log);
152 log->log.capacity = 4;
153 return T_thread_switch_record(&log->log);
159 log->log.capacity = 10;
160 return T_thread_switch_record(&log->log);
#define RTEMS_INTERRUPT_LOCK_MEMBER(_designator)
%
static __inline__ bool _Chain_Is_node_off_chain(const Chain_Node *node)
Checks if the node is off chain.
#define rtems_interrupt_lock_release_isr(_lock, _lock_context)
%
User Extension Handler API.
SuperCore SMP Support API.
#define RTEMS_CONTAINER_OF(_m, _type, _member_name)
Returns the pointer to the container of a specified member pointer.
void _User_extensions_Add_set(User_extensions_Control *extension)
Adds a user extension.
void _User_extensions_Remove_set(User_extensions_Control *extension)
Removes a user extension.
This header file defines the RTEMS Classic API.
#define RTEMS_INTERRUPT_LOCK_INITIALIZER(_name)
%
Manages each user extension set.
static __inline__ void _Chain_Set_off_chain(Chain_Node *node)
Sets off chain.
Local ISR lock context for acquire and release pairs.
#define rtems_interrupt_lock_acquire_isr(_lock, _lock_context)
%
Constants and Structures Related with the Thread Control Block.
#define rtems_interrupt_lock_release(_lock, _lock_context)
%
#define rtems_interrupt_lock_acquire(_lock, _lock_context)
%