Changeset 389fa850 in rtems


Ignore:
Timestamp:
02/14/96 17:06:40 (28 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
df26b788
Parents:
8bde6ea9
Message:

Moved some initialization from the system initialization thread to
initialize_executive_early. This was done to clear up an ordering problem
in which global tasks could be created before the MPCI layer was initialized.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/sapi/src/exinit.c

    r8bde6ea9 r389fa850  
    175175  );
    176176
     177  /*
     178   *  No threads should be created before this point!!! _Thread_Executing
     179   *  and _Thread_Heir are not set yet.
     180   */
     181
     182  _Internal_threads_Initialization();
     183
    177184  _MPCI_Handler_initialization(
    178185    multiprocessing_table->User_mpci_table,
    179186    RTEMS_TIMEOUT
    180187  );
    181 
    182   _Internal_threads_Initialization();
    183188
    184189/* MANAGERS */
     
    201206  _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
    202207
     208  /*
     209   *  Run the API and BSPs predriver hook.
     210   */
     211 
     212  _API_extensions_Run_predriver();
     213 
     214  if ( _CPU_Table.predriver_hook )
     215    (*_CPU_Table.predriver_hook)();
     216 
     217  /*
     218   *  Initialize all the device drivers and initialize the MPCI layer.
     219   *
     220   *  NOTE:  The MPCI may be build upon a device driver.
     221   */
     222 
     223  _IO_Initialize_all_drivers();
     224 
     225  if ( _System_state_Is_multiprocessing ) {
     226    _MPCI_Initialization();
     227    _Internal_threads_MP_Send_process_packet(
     228      INTERNAL_THREADS_MP_SYSTEM_VERIFY
     229    );
     230  }
     231 
     232  /*
     233   *  Run the APIs and BSPs postdriver hooks.
     234   *
     235   *  The API extensions are supposed to create user initialization tasks.
     236   */
     237 
     238  _API_extensions_Run_postdriver();
     239 
     240  if ( _CPU_Table.postdriver_hook )
     241    (*_CPU_Table.postdriver_hook)();
     242
    203243  return bsp_level;
    204244}
  • cpukit/sapi/src/exinit.c

    r8bde6ea9 r389fa850  
    175175  );
    176176
     177  /*
     178   *  No threads should be created before this point!!! _Thread_Executing
     179   *  and _Thread_Heir are not set yet.
     180   */
     181
     182  _Internal_threads_Initialization();
     183
    177184  _MPCI_Handler_initialization(
    178185    multiprocessing_table->User_mpci_table,
    179186    RTEMS_TIMEOUT
    180187  );
    181 
    182   _Internal_threads_Initialization();
    183188
    184189/* MANAGERS */
     
    201206  _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
    202207
     208  /*
     209   *  Run the API and BSPs predriver hook.
     210   */
     211 
     212  _API_extensions_Run_predriver();
     213 
     214  if ( _CPU_Table.predriver_hook )
     215    (*_CPU_Table.predriver_hook)();
     216 
     217  /*
     218   *  Initialize all the device drivers and initialize the MPCI layer.
     219   *
     220   *  NOTE:  The MPCI may be build upon a device driver.
     221   */
     222 
     223  _IO_Initialize_all_drivers();
     224 
     225  if ( _System_state_Is_multiprocessing ) {
     226    _MPCI_Initialization();
     227    _Internal_threads_MP_Send_process_packet(
     228      INTERNAL_THREADS_MP_SYSTEM_VERIFY
     229    );
     230  }
     231 
     232  /*
     233   *  Run the APIs and BSPs postdriver hooks.
     234   *
     235   *  The API extensions are supposed to create user initialization tasks.
     236   */
     237 
     238  _API_extensions_Run_postdriver();
     239 
     240  if ( _CPU_Table.postdriver_hook )
     241    (*_CPU_Table.postdriver_hook)();
     242
    203243  return bsp_level;
    204244}
Note: See TracChangeset for help on using the changeset viewer.