コード例 #1
0
ファイル: sysstartup.c プロジェクト: kidasan/tkernel
/*
 * 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 */
}
コード例 #2
0
ファイル: sysstartup.c プロジェクト: Ninals-GitHub/TRON
/*
 * 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);
}
コード例 #3
0
ファイル: sysstartup.c プロジェクト: kidasan/tkernel
/*
 * 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 */
}