/* * Start system */ EXPORT void start_system( void ) { ER ercd; /* Initialize segment manager */ DispProgress(0x30); ercd = start_segmgr(); if ( ercd < E_OK ) { goto err_ret; } /* Start memory manager */ DispProgress(0x31); ercd = start_memmgr(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize system manager */ DispProgress(0x32); ercd = SystemManager(0, NULL); if ( ercd < E_OK ) { goto err_ret; } /* Initialize library (libtk) V/K/Smalloc is available after this. */ DispProgress(0x33); _InitLibtk(); /* Lower the initial task priority to initialize sequence for the subsystem task at first. */ tk_chg_pri(TSK_SELF, InitTaskPri); /* Start system dependent sequence */ DispProgress(0x34); ercd = start_device(); if ( ercd < E_OK ) { goto err_ret; } /* Start subsystem */ DispProgress(0x35); ercd = start_subsystems(); if ( ercd < E_OK ) { goto err_ret; } return; err_ret: #if USE_KERNEL_MESSAGE tm_putstring((UB*)"!ERROR! start_system\n"); #endif tm_monitor(); /* Stop */ }
/* * Initialize sequence before T-Kernel starts */ EXPORT ER init_system( void ) { ER ercd; /* Platform dependent initialize sequence */ DispProgress(0x10); ercd = init_device(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize subsystem */ DispProgress(0x11); ercd = init_subsystems(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize segment manager */ DispProgress(0x12); ercd = init_segmgr(); if ( ercd < E_OK ) { goto err_ret; } #ifdef _BTRON_ ercd = init_bk_early(); if (ercd < E_OK) { vd_printf("error init_bk_early\n"); goto err_ret; } #endif /* Initialize memory manager */ DispProgress(0x13); ercd = init_memmgr(); if ( ercd < E_OK ) { goto err_ret; } #ifdef _BTRON_ /* Initialize slab allocator */ DispProgress(0x14); ercd = init_slab_allocator(); if ( ercd < E_OK ) { vd_printf("init_slab_allocator\n"); goto err_ret; } /* Initialize bk */ DispProgress(0x15); ercd = init_bk(); if ( ercd < E_OK ) { vd_printf("init_bk\n"); goto err_ret; } #else /* Initialize Imalloc */ DispProgress(0x14); ercd = init_Imalloc(); if ( ercd < E_OK ) { goto err_ret; } #endif return(ercd); err_ret: #if USE_KERNEL_MESSAGE tm_putstring((UB*)"!ERROR! init_kernel\n"); #endif //tm_monitor(); /* Stop */ return(ercd); }
/* * Initialize sequence before T-Kernel starts */ EXPORT void init_system( void ) { ER ercd; /* if i'm first processor, execution */ if ( get_prid() == 0 ) { /* Platform dependent initialize sequence */ DispProgress(0x10); ercd = init_device(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize subsystem */ DispProgress(0x11); ercd = init_subsystems(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize segment manager */ DispProgress(0x12); ercd = init_segmgr(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize memory manager */ DispProgress(0x13); ercd = init_memmgr(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize Imalloc */ DispProgress(0x14); ercd = init_Imalloc(); if ( ercd < E_OK ) { goto err_ret; } } else { /* Platform dependent initialize sequence */ DispProgress(0x10); ercd = init_device(); if ( ercd < E_OK ) { goto err_ret; } /* Initialize segment manager */ DispProgress(0x12); ercd = init_segmgr(); if ( ercd < E_OK ) { goto err_ret; } } return; err_ret: #if USE_KERNEL_MESSAGE tm_putstring((UB*)"!ERROR! init_kernel\n"); #endif tm_monitor(); /* Stop */ }