Esempio n. 1
0
void net_test(void)
{
	T_CSEM csem;
	T_CTSK ctsk;

	printf(" == net test == \n");

	net_conf(NET_CONF_EMULATOR, NET_CONF_DHCP);
	net_show();

	csem.maxsem = 100;
	csem.isemcnt = 0;
	csem.sematr = TA_TFIFO | TA_FIRST;
	semid = tk_cre_sem(&csem);
	semid2 = tk_cre_sem(&csem);

	bzero(&ctsk, sizeof ctsk);
	ctsk.tskatr = TA_HLNG | TA_RNG0;
	ctsk.task = server_task;
	ctsk.itskpri = 100;
	ctsk.stksz = 32 * 1024 * 2;
	server_tskid = tk_cre_tsk(&ctsk);
	DEBUG_PRINT(("start server task %d\n", server_tskid));
	tk_sta_tsk(server_tskid, 0);

	DEBUG_PRINT(("wait server semaphore\n"));
	tk_wai_sem(semid, 1, TMO_FEVR);

	bzero(&ctsk, sizeof ctsk);
	ctsk.tskatr = TA_HLNG | TA_RNG0;
	ctsk.task = client_task;
	ctsk.itskpri = 101;
	ctsk.stksz = 4 * 1024 * 2;
	client_tskid = tk_cre_tsk(&ctsk);
	DEBUG_PRINT(("start client task %d\n", client_tskid));
	tk_sta_tsk(client_tskid, 0);

	DEBUG_PRINT(("waiting for server and client semaphore\n"));
	tk_wai_sem(semid, 2, TMO_FEVR);

	printf(" == net test end == \n");

	tk_del_sem(semid);
	tk_del_sem(semid2);
}
Esempio n. 2
0
/*
 * syslog initialization
 */
EXPORT ER initialize_syslog( void )
{
#if USE_SYSLOG_CONSIO
	T_CMBF	cmbf;
	T_CTSK	ctsk;
	ID	tskid;
	ER	ercd;

	/* Generate message buffer */
	SetOBJNAME(cmbf.exinf, OBJNAME_SYSLOG);
	cmbf.mbfatr = TA_TFIFO | TA_NODISWAI;
	cmbf.bufsz  = MBF_LOG_BUFSZ;
	cmbf.maxmsz = MBF_LOG_MAXMSZ;
	ercd = tk_cre_mbf(&cmbf);
	if ( ercd < E_OK ) {
		goto err_ret1;
	}
	log_mbfid = ercd;

	/* Temporarily lower the local task priority 
	   so that the system log task executes initialization sequence. */
	tk_chg_pri(TSK_SELF, 10);

	/* Start log task */
	SetOBJNAME(ctsk.exinf, OBJNAME_SYSLOG);
	ctsk.tskatr  = TA_HLNG | TA_RNG0;
	ctsk.task    = log_task;
	ctsk.itskpri = 6;
	ctsk.stksz   = 512;
	ercd = tk_cre_tsk(&ctsk);
	if ( ercd < E_OK ) {
		goto err_ret1;
	}
	tskid = ercd;
	ercd = tk_sta_tsk(tskid, CONSOLE_PORT);
	if ( ercd < E_OK ) {
		goto err_ret2;
	}

	/* Return local task priority */
	tk_chg_pri(TSK_SELF, TPRI_INI);

	return E_OK;

err_ret2:
	tk_del_tsk(tskid);
err_ret1:
	DEBUG_PRINT(("initialize_syslog ercd = %d\n", ercd));
	return ercd;
#else
	return E_OK;
#endif
}
Esempio n. 3
0
/*
        create & start task
*/
EXPORT	INT	kpCreTask(W name, FP entry)
{
	T_CTSK	ctsk;
	ID	tskid;
	INT	er;

        /* task creation */
	ctsk.exinf = (void*)name;
	ctsk.task = entry;
	ctsk.itskpri = TaskPri;
	ctsk.stksz = TASK_STKSZ;
	ctsk.tskatr = TA_HLNG | TA_RNG0;

	tskid = er = tk_cre_tsk(&ctsk);
	if (er >= E_OK) {	/* start task */
		er = tk_sta_tsk(tskid, 0);
		if (er < E_OK) tk_del_tsk(tskid);
	}
	return (er >= E_OK) ? tskid : er;
}