RTEMS-5
Annotated Report
Fri Aug 10 17:09:28 2018
40002e94 <rtems_cpu_usage_reset>:
/*
* rtems_cpu_usage_reset
*/
void rtems_cpu_usage_reset( void )
{
40002e94: 9d e3 bf a0 save %sp, -96, %sp
*/
static inline void _TOD_Get_uptime(
Timestamp_Control *time
)
{
*time = _Timecounter_Sbinuptime();
40002e98: 40 00 17 0f call 40008ad4 <_Timecounter_Sbinuptime>
40002e9c: 3b 10 00 4f sethi %hi(0x40013c00), %i5
uint32_t cpu_count;
uint32_t cpu_index;
_TOD_Get_uptime( &CPU_usage_Uptime_at_last_reset );
cpu_count = rtems_get_processor_count();
40002ea0: 40 00 0d d6 call 400065f8 <rtems_get_processor_count>
40002ea4: d0 3f 63 08 std %o0, [ %i5 + 0x308 ] ! 40013f08 <CPU_usage_Uptime_at_last_reset>
for ( cpu_index = 0 ; cpu_index < cpu_count ; ++cpu_index ) {
40002ea8: 80 a2 20 00 cmp %o0, 0
40002eac: 02 80 00 0a be 40002ed4 <rtems_cpu_usage_reset+0x40>
<== NEVER TAKEN
40002eb0: 03 10 00 4f sethi %hi(0x40013c00), %g1
Per_CPU_Control *cpu = _Per_CPU_Get_by_index( cpu_index );
cpu->cpu_usage_timestamp = CPU_usage_Uptime_at_last_reset;
40002eb4: f8 1f 63 08 ldd [ %i5 + 0x308 ], %i4
for ( cpu_index = 0 ; cpu_index < cpu_count ; ++cpu_index ) {
40002eb8: 84 10 20 00 clr %g2
40002ebc: 82 10 62 28 or %g1, 0x228, %g1
cpu->cpu_usage_timestamp = CPU_usage_Uptime_at_last_reset;
40002ec0: f8 38 40 00 std %i4, [ %g1 ]
for ( cpu_index = 0 ; cpu_index < cpu_count ; ++cpu_index ) {
40002ec4: 84 00 a0 01 inc %g2
40002ec8: 80 a2 00 02 cmp %o0, %g2
40002ecc: 12 bf ff fd bne 40002ec0 <rtems_cpu_usage_reset+0x2c>
<== NEVER TAKEN
40002ed0: 82 00 60 50 add %g1, 0x50, %g1
}
rtems_task_iterate(CPU_usage_Per_thread_handler, NULL);
40002ed4: 31 10 00 0b sethi %hi(0x40002c00), %i0
40002ed8: b2 10 20 00 clr %i1
40002edc: 40 00 10 26 call 40006f74 <rtems_task_iterate>
40002ee0: 91 ee 22 78 restore %i0, 0x278, %o0