Changeset 3ab90627 in rtems


Ignore:
Timestamp:
Feb 11, 2003, 11:43:36 PM (18 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
eed01493
Parents:
4b833782
Message:

2003-02-11 Joel Sherrill <joel@…>

  • cpu_asm.c: Rework logic that decides when to call _Thread_Dispatch. Analysis by Sergei Organov <osv@…> determined that _ISR_Signals_to_thread_executing was not being honored and/or cleared properly.
Location:
cpukit/score/cpu
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/cpu/a29k/ChangeLog

    r4b833782 r3ab90627  
     12003-02-11      Joel Sherrill <joel@OARcorp.com>
     2
     3        * cpu_asm.c: Rework logic that decides when to call
     4        _Thread_Dispatch.  Analysis by Sergei Organov <osv@javad.ru>
     5        determined that _ISR_Signals_to_thread_executing was not being
     6        honored and/or cleared properly.
     7
    182002-12-11      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
    29
  • cpukit/score/cpu/a29k/cpu.c

    r4b833782 r3ab90627  
    271271   --_Thread_Dispatch_disable_level;
    272272   --_ISR_Nest_level;
    273    if ( !_Thread_Dispatch_disable_level && !_ISR_Nest_level &&
    274     (_Context_Switch_necessary || _ISR_Signals_to_thread_executing ))
    275       _Thread_Dispatch();
    276    return;
    277 }
     273
     274   if ( _ISR_Nest_level )
     275     return;
     276
     277   if ( _Thread_Dispatch_disable_level ) {
     278     _ISR_Signals_to_thread_executing = FALSE;
     279     return;
     280   }
     281
     282   if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) {
     283     _ISR_Signals_to_thread_executing = FALSE;
     284     _Thread_Dispatch();
     285   }
     286}
  • cpukit/score/cpu/no_cpu/ChangeLog

    r4b833782 r3ab90627  
     12003-02-11      Joel Sherrill <joel@OARcorp.com>
     2
     3        * cpu_asm.c: Rework logic that decides when to call
     4        _Thread_Dispatch.  Analysis by Sergei Organov <osv@javad.ru>
     5        determined that _ISR_Signals_to_thread_executing was not being
     6        honored and/or cleared properly.
     7
    182002-12-11      Ralf Corsepius <corsepiu@faw.uni-ulm.de>
    29
  • cpukit/score/cpu/no_cpu/cpu_asm.c

    r4b833782 r3ab90627  
    155155   *  (*_ISR_Vector_table[ vector ])( vector );
    156156   *
     157   *  _Thread_Dispatch_disable_level--;
     158   *
    157159   *  --_ISR_Nest_level;
    158160   *
     
    160162   *    goto the label "exit interrupt (simple case)"
    161163   *
    162    *  #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
    163    *    restore stack
    164    *  #endif
    165    * 
    166    *  if ( !_Context_Switch_necessary )
    167    *    goto the label "exit interrupt (simple case)"
    168    * 
    169    *  if ( !_ISR_Signals_to_thread_executing )
     164   *  if ( _Thread_Dispatch_disable_level )
    170165   *    _ISR_Signals_to_thread_executing = FALSE;
    171166   *    goto the label "exit interrupt (simple case)"
    172167   *
    173    *  call _Thread_Dispatch() or prepare to return to _ISR_Dispatch
    174    *
    175    *  prepare to get out of interrupt
    176    *  return from interrupt  (maybe to _ISR_Dispatch)
     168   *  if ( _Context_Switch_necessary || _ISR_Signals_to_thread_executing ) {
     169   *    _ISR_Signals_to_thread_executing = FALSE;
     170   *    call _Thread_Dispatch() or prepare to return to _ISR_Dispatch
     171   *    prepare to get out of interrupt
     172   *    return from interrupt  (maybe to _ISR_Dispatch)
    177173   *
    178174   *  LABEL "exit interrupt (simple case):
     175   *  #if ( CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE )
     176   *    if outermost interrupt
     177   *      restore stack
     178   *  #endif
    179179   *  prepare to get out of interrupt
    180180   *  return from interrupt
Note: See TracChangeset for help on using the changeset viewer.