23 #ifndef _RTEMS_SCORE_PROFILING 24 #define _RTEMS_SCORE_PROFILING 53 uint32_t previous_thread_dispatch_disable_level
56 #if defined( RTEMS_PROFILING ) 57 if ( previous_thread_dispatch_disable_level == 0 ) {
60 stats->thread_dispatch_disabled_instant = _CPU_Counter_read();
61 ++stats->thread_dispatch_disabled_count;
65 (void) previous_thread_dispatch_disable_level;
82 uint32_t previous_thread_dispatch_disable_level,
86 #if defined( RTEMS_PROFILING ) 87 if ( previous_thread_dispatch_disable_level == 0 ) {
90 stats->thread_dispatch_disabled_instant = lock_context->ISR_disable_instant;
91 ++stats->thread_dispatch_disabled_count;
95 (void) previous_thread_dispatch_disable_level;
111 uint32_t new_thread_dispatch_disable_level
114 #if defined( RTEMS_PROFILING ) 115 if ( new_thread_dispatch_disable_level == 0 ) {
117 CPU_Counter_ticks now = _CPU_Counter_read();
118 CPU_Counter_ticks delta = _CPU_Counter_difference(
120 stats->thread_dispatch_disabled_instant
123 stats->total_thread_dispatch_disabled_time += delta;
125 if ( stats->max_thread_dispatch_disabled_time < delta ) {
126 stats->max_thread_dispatch_disabled_time = delta;
131 (void) new_thread_dispatch_disable_level;
143 CPU_Counter_ticks interrupt_delay
146 #if defined( RTEMS_PROFILING ) 149 if ( stats->max_interrupt_delay < interrupt_delay ) {
150 stats->max_interrupt_delay = interrupt_delay;
154 (void) interrupt_delay;
170 CPU_Counter_ticks interrupt_entry_instant,
171 CPU_Counter_ticks interrupt_exit_instant
static void _Profiling_Thread_dispatch_enable(Per_CPU_Control *cpu, uint32_t new_thread_dispatch_disable_level)
Enables the thread dispatch.
static void _Profiling_Thread_dispatch_disable_critical(Per_CPU_Control *cpu, uint32_t previous_thread_dispatch_disable_level, const ISR_lock_Context *lock_context)
Disables the thread dispatch.
void _Profiling_Outer_most_interrupt_entry_and_exit(Per_CPU_Control *cpu, CPU_Counter_ticks interrupt_entry_instant, CPU_Counter_ticks interrupt_exit_instant)
Updates the interrupt profiling statistics.
static void _Profiling_Update_max_interrupt_delay(Per_CPU_Control *cpu, CPU_Counter_ticks interrupt_delay)
Updates the maximum interrupt delay.
static void _Profiling_Thread_dispatch_disable(Per_CPU_Control *cpu, uint32_t previous_thread_dispatch_disable_level)
Disables the thread dispatch if the previous thread dispatch disable level is zero.
Local ISR lock context for acquire and release pairs.