RTEMS-6
Annotated Report
libstackchk
Sun Feb 28 22:32:28 2021

40004290 <rtems_stack_checker_begin_extension>:                                           
                                                                                          
void rtems_stack_checker_begin_extension( Thread_Control *executing )                     
{                                                                                         
40004290:   9d e3 bf a0     save  %sp, -96, %sp                                           
#endif                                                                                    
                                                                                          
  cpu_self_index = _Per_CPU_Get_index( cpu_self );                                        
  stack = &Stack_check_Interrupt_stack[ cpu_self_index ];                                 
                                                                                          
  if ( stack->area == NULL ) {                                                            
40004294:   03 10 00 6a     sethi  %hi(0x4001a800), %g1                                   
40004298:   84 10 62 20     or  %g1, 0x220, %g2 ! 4001aa20 <Stack_check_Interrupt_stack>  
4000429c:   c6 00 a0 04     ld  [ %g2 + 4 ], %g3                                          
400042a0:   80 a0 e0 00     cmp  %g3, 0                                                   
400042a4:   22 80 00 04     be,a   400042b4 <rtems_stack_checker_begin_extension+0x24>    
400042a8:   f0 01 a0 08     ld  [ %g6 + 8 ], %i0                                          
  }                                                                                       
                                                                                          
#if defined(RTEMS_SMP)                                                                    
  _Thread_Dispatch_enable( cpu_self );                                                    
#endif                                                                                    
}                                                                                         
400042ac:   81 c7 e0 08     ret                                                           
400042b0:   81 e8 00 00     restore                                                       
    stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -                    
400042b4:   f4 01 a0 0c     ld  [ %g6 + 0xc ], %i2                                        
    stack->area = cpu_self->interrupt_stack_low;                                          
400042b8:   f0 20 a0 04     st  %i0, [ %g2 + 4 ]                                          
    stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -                    
400042bc:   b4 26 80 18     sub  %i2, %i0, %i2                                            
  return memcmp(                                                                          
400042c0:   94 10 20 10     mov  0x10, %o2                                                
    stack->size = (size_t) ( (char *) cpu_self->interrupt_stack_high -                    
400042c4:   f4 20 62 20     st  %i2, [ %g1 + 0x220 ]                                      
  return memcmp(                                                                          
400042c8:   90 10 00 18     mov  %i0, %o0                                                 
400042cc:   13 10 00 4e     sethi  %hi(0x40013800), %o1                                   
400042d0:   40 00 39 05     call  400126e4 <memcmp>                                       
400042d4:   92 12 60 28     or  %o1, 0x28, %o1  ! 40013828 <Stack_check_Sanity_pattern>   
    if ( !Stack_check_Is_sanity_pattern_valid( stack ) ) {                                
400042d8:   80 a2 20 00     cmp  %o0, 0                                                   
400042dc:   12 80 00 05     bne  400042f0 <rtems_stack_checker_begin_extension+0x60>      <== NEVER TAKEN
400042e0:   b4 06 bf f0     add  %i2, -16, %i2                                            
  memset(                                                                                 
400042e4:   b2 10 20 a5     mov  0xa5, %i1                                                
400042e8:   40 00 39 60     call  40012868 <memset>                                       
400042ec:   91 ee 20 10     restore  %i0, 0x10, %o0                                       
400042f0:   13 12 53 95     sethi  %hi(0x494e5400), %o1                                   <== NOT EXECUTED
400042f4:   90 10 20 08     mov  8, %o0                                                   <== NOT EXECUTED
400042f8:   40 00 03 0f     call  40004f34 <_Terminate>                                   <== NOT EXECUTED
400042fc:   92 12 60 52     or  %o1, 0x52, %o1                                            <== NOT EXECUTED
40004300:   01 00 00 00     nop                                                           <== NOT EXECUTED
                                                                                          

40011370 <rtems_stack_checker_report_usage_with_plugin>: */ void rtems_stack_checker_report_usage_with_plugin( const rtems_printer* printer ) {
40011370:   9d e3 bf a0     save  %sp, -96, %sp                                           <== NOT EXECUTED
  uint32_t cpu_max;                                                                       
  uint32_t cpu_index;                                                                     
                                                                                          
  rtems_printf(                                                                           
40011374:   13 10 02 16     sethi  %hi(0x40085800), %o1                                   <== NOT EXECUTED
40011378:   90 10 00 18     mov  %i0, %o0                                                 <== NOT EXECUTED
4001137c:   7f ff cb 83     call  40004188 <rtems_printf>                                 <== NOT EXECUTED
40011380:   92 12 63 78     or  %o1, 0x378, %o1                                           <== NOT EXECUTED
     "                             STACK USAGE BY THREAD\n"                               
     "ID         NAME                  LOW        HIGH       CURRENT     AVAIL   USED\n"  
  );                                                                                      
                                                                                          
  /* iterate over all threads and dump the usage */                                       
  rtems_task_iterate(                                                                     
40011384:   92 10 00 18     mov  %i0, %o1                                                 <== NOT EXECUTED
40011388:   11 10 00 44     sethi  %hi(0x40011000), %o0                                   <== NOT EXECUTED
4001138c:   40 00 08 ba     call  40013674 <rtems_task_iterate>                           <== NOT EXECUTED
40011390:   90 12 23 34     or  %o0, 0x334, %o0 ! 40011334 <Stack_check_Dump_threads_usage><== NOT EXECUTED
  Stack_check_Dump_stack_usage(                                                           
40011394:   03 10 02 6a     sethi  %hi(0x4009a800), %g1                                   <== NOT EXECUTED
{                                                                                         
40011398:   ba 10 00 18     mov  %i0, %i5                                                 <== NOT EXECUTED
  Stack_check_Dump_stack_usage(                                                           
4001139c:   84 10 61 28     or  %g1, 0x128, %g2                                           <== NOT EXECUTED
400113a0:   f0 00 61 28     ld  [ %g1 + 0x128 ], %i0                                      <== NOT EXECUTED
400113a4:   f2 00 a0 04     ld  [ %g2 + 4 ], %i1                                          <== NOT EXECUTED
400113a8:   37 10 02 17     sethi  %hi(0x40085c00), %i3                                   <== NOT EXECUTED
400113ac:   b8 10 20 00     clr  %i4                                                      <== NOT EXECUTED
400113b0:   b6 16 e0 00     mov  %i3, %i3                                                 <== NOT EXECUTED
400113b4:   7f ff ff b3     call  40011280 <Stack_check_Dump_stack_usage.isra.0>          <== NOT EXECUTED
400113b8:   95 e8 20 00     restore  %g0, 0, %o2                                          <== NOT EXECUTED
                                                                                          

40004304 <rtems_stack_checker_switch_extension>: */ void rtems_stack_checker_switch_extension( Thread_Control *running, Thread_Control *heir ) {
40004304:   9d e3 bf 80     save  %sp, -128, %sp                                          
    if ( sp < the_stack->area ) {                                                         
40004308:   fa 06 20 d0     ld  [ %i0 + 0xd0 ], %i5                                       
4000430c:   80 a7 40 1e     cmp  %i5, %fp                                                 
40004310:   18 80 00 19     bgu  40004374 <rtems_stack_checker_switch_extension+0x70>     <== NEVER TAKEN
40004314:   94 10 20 10     mov  0x10, %o2                                                
  return memcmp(                                                                          
40004318:   39 10 00 4e     sethi  %hi(0x40013800), %i4                                   
4000431c:   90 10 00 1d     mov  %i5, %o0                                                 
40004320:   40 00 38 f1     call  400126e4 <memcmp>                                       
40004324:   92 17 20 28     or  %i4, 0x28, %o1                                            
    if ( sp > (the_stack->area + the_stack->size) ) {                                     
40004328:   c2 06 20 cc     ld  [ %i0 + 0xcc ], %g1                                       
4000432c:   82 07 40 01     add  %i5, %g1, %g1                                            
40004330:   80 a7 80 01     cmp  %fp, %g1                                                 
40004334:   18 80 00 15     bgu  40004388 <rtems_stack_checker_switch_extension+0x84>     <== NEVER TAKEN
40004338:   b6 10 00 08     mov  %o0, %i3                                                 
#else                                                                                     
  sp_ok = Stack_check_Frame_pointer_in_range( running );                                  
                                                                                          
  pattern_ok = Stack_check_Is_sanity_pattern_valid( &running->Start.Initial_stack );      
                                                                                          
  if ( !sp_ok || !pattern_ok ) {                                                          
4000433c:   80 a2 20 00     cmp  %o0, 0                                                   
40004340:   12 80 00 38     bne  40004420 <rtems_stack_checker_switch_extension+0x11c>    
40004344:   03 10 00 6a     sethi  %hi(0x4001a800), %g1                                   
  }                                                                                       
#endif                                                                                    
                                                                                          
  stack = &Stack_check_Interrupt_stack[ _SMP_Get_current_processor() ];                   
                                                                                          
  if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) {           
40004348:   d0 00 62 24     ld  [ %g1 + 0x224 ], %o0    ! 4001aa24 <Stack_check_Interrupt_stack+0x4>
4000434c:   80 a2 20 00     cmp  %o0, 0                                                   
40004350:   02 80 00 07     be  4000436c <rtems_stack_checker_switch_extension+0x68>      <== NEVER TAKEN
40004354:   94 10 20 10     mov  0x10, %o2                                                
  return memcmp(                                                                          
40004358:   40 00 38 e3     call  400126e4 <memcmp>                                       
4000435c:   92 17 20 28     or  %i4, 0x28, %o1                                            
  if ( stack->area != NULL && !Stack_check_Is_sanity_pattern_valid( stack ) ) {           
40004360:   80 a2 20 00     cmp  %o0, 0                                                   
40004364:   12 80 00 2c     bne  40004414 <rtems_stack_checker_switch_extension+0x110>    <== NEVER TAKEN
40004368:   13 12 53 95     sethi  %hi(0x494e5400), %o1                                   
    rtems_fatal(                                                                          
      RTEMS_FATAL_SOURCE_STACK_CHECKER,                                                   
      rtems_build_name( 'I', 'N', 'T', 'R' )                                              
    );                                                                                    
  }                                                                                       
}                                                                                         
4000436c:   81 c7 e0 08     ret                                                           
40004370:   81 e8 00 00     restore                                                       
  return memcmp(                                                                          
40004374:   90 10 00 1d     mov  %i5, %o0                                                 <== NOT EXECUTED
40004378:   13 10 00 4e     sethi  %hi(0x40013800), %o1                                   <== NOT EXECUTED
4000437c:   40 00 38 da     call  400126e4 <memcmp>                                       <== NOT EXECUTED
40004380:   92 12 60 28     or  %o1, 0x28, %o1  ! 40013828 <Stack_check_Sanity_pattern>   <== NOT EXECUTED
40004384:   b6 10 00 08     mov  %o0, %i3                                                 <== NOT EXECUTED
  printk("BLOWN STACK!!!\n");                                                             
40004388:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   <== NOT EXECUTED
4000438c:   40 00 11 fc     call  40008b7c <printk>                                       <== NOT EXECUTED
40004390:   90 12 23 80     or  %o0, 0x380, %o0 ! 40013780 <IMFS_node_control_sym_link+0x48><== NOT EXECUTED
  printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running);                   
40004394:   92 10 00 18     mov  %i0, %o1                                                 <== NOT EXECUTED
40004398:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   <== NOT EXECUTED
4000439c:   40 00 11 f8     call  40008b7c <printk>                                       <== NOT EXECUTED
400043a0:   90 12 23 90     or  %o0, 0x390, %o0 ! 40013790 <IMFS_node_control_sym_link+0x58><== NOT EXECUTED
  printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);                       
400043a4:   d2 06 20 08     ld  [ %i0 + 8 ], %o1                                          <== NOT EXECUTED
400043a8:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   <== NOT EXECUTED
400043ac:   40 00 11 f4     call  40008b7c <printk>                                       <== NOT EXECUTED
400043b0:   90 12 23 b0     or  %o0, 0x3b0, %o0 ! 400137b0 <IMFS_node_control_sym_link+0x78><== NOT EXECUTED
  printk(                                                                                 
400043b4:   d2 06 20 0c     ld  [ %i0 + 0xc ], %o1                                        <== NOT EXECUTED
400043b8:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   <== NOT EXECUTED
400043bc:   40 00 11 f0     call  40008b7c <printk>                                       <== NOT EXECUTED
400043c0:   90 12 23 c8     or  %o0, 0x3c8, %o0 ! 400137c8 <IMFS_node_control_sym_link+0x90><== NOT EXECUTED
  _Thread_Get_name(running, name, sizeof(name));                                          
400043c4:   94 10 20 20     mov  0x20, %o2                                                <== NOT EXECUTED
400043c8:   92 07 bf e0     add  %fp, -32, %o1                                            <== NOT EXECUTED
400043cc:   40 00 08 92     call  40006614 <_Thread_Get_name>                             <== NOT EXECUTED
400043d0:   90 10 00 18     mov  %i0, %o0                                                 <== NOT EXECUTED
  printk("task name string: %s\n", name);                                                 
400043d4:   92 07 bf e0     add  %fp, -32, %o1                                            <== NOT EXECUTED
400043d8:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   <== NOT EXECUTED
400043dc:   40 00 11 e8     call  40008b7c <printk>                                       <== NOT EXECUTED
400043e0:   90 12 23 e0     or  %o0, 0x3e0, %o0 ! 400137e0 <IMFS_node_control_sym_link+0xa8><== NOT EXECUTED
    (unsigned long) stack->size,                                                          
400043e4:   d2 06 20 cc     ld  [ %i0 + 0xcc ], %o1                                       <== NOT EXECUTED
    (intptr_t) stack->area,                                                               
400043e8:   d4 06 20 d0     ld  [ %i0 + 0xd0 ], %o2                                       <== NOT EXECUTED
  printk(                                                                                 
400043ec:   96 02 80 09     add  %o2, %o1, %o3                                            <== NOT EXECUTED
400043f0:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   <== NOT EXECUTED
400043f4:   40 00 11 e2     call  40008b7c <printk>                                       <== NOT EXECUTED
400043f8:   90 12 23 f8     or  %o0, 0x3f8, %o0 ! 400137f8 <IMFS_node_control_sym_link+0xc0><== NOT EXECUTED
  if (!pattern_ok) {                                                                      
400043fc:   80 a6 e0 00     cmp  %i3, 0                                                   <== NOT EXECUTED
40004400:   12 80 00 26     bne  40004498 <rtems_stack_checker_switch_extension+0x194>    <== NOT EXECUTED
40004404:   96 07 60 10     add  %i5, 0x10, %o3                                           <== NOT EXECUTED
40004408:   d2 06 20 0c     ld  [ %i0 + 0xc ], %o1                                        <== NOT EXECUTED
4000440c:   40 00 02 ca     call  40004f34 <_Terminate>                                   
40004410:   90 10 20 08     mov  8, %o0                                                   
40004414:   90 10 20 08     mov  8, %o0                                                   <== NOT EXECUTED
40004418:   40 00 02 c7     call  40004f34 <_Terminate>                                   <== NOT EXECUTED
4000441c:   92 12 60 52     or  %o1, 0x52, %o1                                            <== NOT EXECUTED
  printk("BLOWN STACK!!!\n");                                                             
40004420:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   
40004424:   40 00 11 d6     call  40008b7c <printk>                                       
40004428:   90 12 23 80     or  %o0, 0x380, %o0 ! 40013780 <IMFS_node_control_sym_link+0x48>
  printk("task control block: 0x%08" PRIxPTR "\n", (intptr_t) running);                   
4000442c:   92 10 00 18     mov  %i0, %o1                                                 
40004430:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   
40004434:   40 00 11 d2     call  40008b7c <printk>                                       
40004438:   90 12 23 90     or  %o0, 0x390, %o0 ! 40013790 <IMFS_node_control_sym_link+0x58>
  printk("task ID: 0x%08lx\n", (unsigned long) running->Object.id);                       
4000443c:   d2 06 20 08     ld  [ %i0 + 8 ], %o1                                          
40004440:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   
40004444:   40 00 11 ce     call  40008b7c <printk>                                       
40004448:   90 12 23 b0     or  %o0, 0x3b0, %o0 ! 400137b0 <IMFS_node_control_sym_link+0x78>
  printk(                                                                                 
4000444c:   d2 06 20 0c     ld  [ %i0 + 0xc ], %o1                                        
40004450:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   
40004454:   40 00 11 ca     call  40008b7c <printk>                                       
40004458:   90 12 23 c8     or  %o0, 0x3c8, %o0 ! 400137c8 <IMFS_node_control_sym_link+0x90>
  _Thread_Get_name(running, name, sizeof(name));                                          
4000445c:   94 10 20 20     mov  0x20, %o2                                                
40004460:   92 07 bf e0     add  %fp, -32, %o1                                            
40004464:   40 00 08 6c     call  40006614 <_Thread_Get_name>                             
40004468:   90 10 00 18     mov  %i0, %o0                                                 
  printk("task name string: %s\n", name);                                                 
4000446c:   92 07 bf e0     add  %fp, -32, %o1                                            
40004470:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   
40004474:   40 00 11 c2     call  40008b7c <printk>                                       
40004478:   90 12 23 e0     or  %o0, 0x3e0, %o0 ! 400137e0 <IMFS_node_control_sym_link+0xa8>
    (unsigned long) stack->size,                                                          
4000447c:   d2 06 20 cc     ld  [ %i0 + 0xcc ], %o1                                       
    (intptr_t) stack->area,                                                               
40004480:   d4 06 20 d0     ld  [ %i0 + 0xd0 ], %o2                                       
  printk(                                                                                 
40004484:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   
40004488:   96 02 80 09     add  %o2, %o1, %o3                                            
4000448c:   40 00 11 bc     call  40008b7c <printk>                                       
40004490:   90 12 23 f8     or  %o0, 0x3f8, %o0                                           
    printk(                                                                               
40004494:   96 07 60 10     add  %i5, 0x10, %o3                                           
40004498:   94 10 00 1d     mov  %i5, %o2                                                 
4000449c:   92 10 20 10     mov  0x10, %o1                                                
400044a0:   11 10 00 4d     sethi  %hi(0x40013400), %o0                                   
400044a4:   40 00 11 b6     call  40008b7c <printk>                                       
400044a8:   90 12 23 48     or  %o0, 0x348, %o0 ! 40013748 <IMFS_node_control_sym_link+0x10>
400044ac:   10 bf ff d8     b  4000440c <rtems_stack_checker_switch_extension+0x108>      
400044b0:   d2 06 20 0c     ld  [ %i0 + 0xc ], %o1