示例#1
0
void
task2(intptr_t exinf)
{
	ER_UINT	ercd;

	check_point(22);
	check_state(false, false, TIPM_ENAALL, false, false, true);

	check_point(23);
	ercd = ena_tex();
	check_ercd(ercd, E_OK);

	check_state(false, false, TIPM_ENAALL, false, false, false);

	ercd = rot_rdq(TPRI_SELF);
	check_ercd(ercd, E_OK);

	check_point(30);
	ercd = ras_tex(TSK_SELF, 0x0002);
	check_ercd(ercd, E_OK);

	check_point(34);
	ercd = ena_dsp();
	check_ercd(ercd, E_OK);

	check_finish(36);
	check_point(0);
}
示例#2
0
void
task1(intptr_t exinf)
{
	ER_UINT	ercd;

	test_start(__FILE__);

	check_point(1);
	check_state(false, false, false, false, false);

	check_ipm(TIPM_ENAALL);

	ercd = dis_dsp();
	check_ercd(ercd, E_OK);

	check_point(2);
	check_state(false, false, true, true, false);

	check_ipm(TIPM_ENAALL);

	ercd = sta_alm(ALM1, TEST_TIME_PROC);
	check_ercd(ercd, E_OK);

	while(!alm1_flag);

	check_point(8);
	check_state(false, false, true, true, false);

	check_ipm(TIPM_ENAALL);

	check_finish(9);
	check_point(0);
}
void
task1(intptr_t exinf)
{
	ER_UINT	ercd;

	test_start(__FILE__);

	check_point(1);
	check_state(false, false, false, false, false);

	check_ipm(TIPM_ENAALL);

	ercd = check_chg_ipm(TMIN_INTPRI-1);
	check_ercd(ercd, E_OK);

	check_point(2);
	check_state(false, false, false, true, false);

	check_ipm(TMIN_INTPRI-1);

	RAISE_CPU_EXCEPTION;

	check_point(5);
	check_state(false, false, false, true, false);

	check_ipm(TMIN_INTPRI-1);

	check_finish(6);
	check_point(0);
}
void
task1(intptr_t exinf)
{
	ER		ercd;

	test_start(__FILE__);

	check_point(1);
	check_state(false, false, TIPM_ENAALL, false, false, true);
	ercd = dis_dsp();
	check_ercd(ercd, E_OK);
	ercd = ena_tex();
	check_ercd(ercd, E_OK);

	check_point(2);
	check_state(false, false, TIPM_ENAALL, true, true, false);
	ercd = sta_alm(ALM1, 1U);
	check_ercd(ercd, E_OK);

	while (!(alm1_flag));

	check_point(7);
	check_state(false, false, TIPM_ENAALL, true, true, false);

	check_finish(8);
}
示例#5
0
文件: main.c 项目: HemusAran/MaruBatu
// 再帰呼び出しで総当たりを再現
void put_loop(int depth) {
	// セルの数の深さになったら抜ける
	if (depth == DEPTH) return;

	// 現在の記号取得
	const int KIGOU = depth%2 ? BATU : MARU;
	
	for (int i=0; i<DEPTH; i++) {
		// 第一手に関しては中央以降にはコマを置かない
		if (depth==0 && i>=CENTER) return;

		if (is_put(i)) { // 置ける
			put(i, KIGOU);	// 置く
			//print();

			// 置けたら常に記号が揃ってるか確認
			int flag = check_finish(depth);
			if (flag) {
				//print();
				dell(i);
				continue;
			}
			
			// 次の人に処理を移す
			depth++;
			put_loop(depth);
			
			// 前に置いたのを削除し、forのループにて別の場所に置く
			dell(i);
			depth--;
		} else { // 置けない
			continue;
		}
	}
}
示例#6
0
void
task1(intptr_t exinf)
{
	ER		ercd;
	SIL_PRE_LOC;

	check_point(1);
	check_state(false, false, TIPM_ENAALL, false, false, true);
	ercd = dis_dsp();
	check_ercd(ercd, E_OK);
	ercd = ena_tex();
	check_ercd(ercd, E_OK);

	check_point(2);
	check_state(false, false, TIPM_ENAALL, true, true, false);
	SIL_LOC_INT();
	RAISE_CPU_EXCEPTION;

	check_point(5);
	SIL_UNL_INT();

	check_point(6);
	check_state(false, false, TIPM_ENAALL, true, true, false);

	check_finish(7);
}
示例#7
0
void
dhash_download::sent_request (ptr<dhash_fetchiter_res> res, clnt_stat err)
{

    assert (!fetch_acked);
    fetch_acked = true;

    if (err) {
        strbuf e;
        e << "RPC error, status " << err;
        fail ((str) e);
    } else if (res && res->status != DHASH_INPROGRESS) {
        strbuf e;
        e << "bad status, status " << res->status;
        fail ((str) e);
    } else
        ;

    // don't call check_finish before gotchunk has finished, unless gotchunk
    // will never be called.  otherwise you'll have issues with
    // buf_len == bytes_read == 0
    if (called_cb || error) {
        check_finish ();
    }
}
void
task1(intptr_t exinf)
{
	ER		ercd;

	switch (++task1_count) {
	case 1:
		test_start(__FILE__);

		check_point(1);
		check_state(false, false, TIPM_ENAALL, false, false, true);
		ercd = dis_dsp();
		check_ercd(ercd, E_OK);
		ercd = ena_tex();
		check_ercd(ercd, E_OK);

		check_point(2);
		check_state(false, false, TIPM_ENAALL, true, true, false);
		RAISE_CPU_EXCEPTION;

		check_point(0);
		break;

	case 2:
		check_point(8);
		check_state(false, false, TIPM_ENAALL, false, false, true);

		check_finish(9);
		break;

	default:
		check_point(0);
		break;
	}
}
示例#9
0
void
task1(intptr_t exinf)
{
	ER		ercd;

	test_start(__FILE__);

	check_point(1);
	check_state(false, false, TIPM_ENAALL, false, false, true);
	ercd = dis_dsp();
	check_ercd(ercd, E_OK);
	ercd = ena_tex();
	check_ercd(ercd, E_OK);
	ercd = loc_cpu();
	check_ercd(ercd, E_OK);

	check_point(2);
	check_state(false, true, TIPM_ENAALL, true, true, false);
	RAISE_CPU_EXCEPTION;

	check_point(5);
	check_state(false, true, TIPM_ENAALL, true, true, false);

	check_finish(6);
}
示例#10
0
void
task3(intptr_t exinf)
{
	ER		ercd;

	check_point(4);

	ercd = ena_tex();
	check_ercd(ercd, E_OK);

	/*
	 *  テスト項目(C)のテスト
	 */
	tex_start_count = 0U;
	ercd = ras_tex(TASK3, 0x0001);
	check_ercd(ercd, E_OK);
	check_assert(tex_start_count == UTASK_TEX_COUNT);

	check_point(5);

	/*
	 *  テスト項目(D)のテスト
	 */
	tex_start_count = 0U;
	ercd = ras_tex(TASK3, 0x0002);
	check_ercd(ercd, E_OK);
	check_assert(tex_start_count == UTASK_TEX_COUNT);

	check_finish(6);
}
示例#11
0
void
main_task(intptr_t exinf)
{
	HRTCNT		hrtcnt, prev_hrtcnt;
	char		*prev_hrtcnt_pos;
	ulong_t		i;

	cyclic_count = 0U;
	recent_hrtcnt = fch_hrt();
	syslog(LOG_NOTICE, "system performance time test starts.");

	for (i = 0; i < NO_LOOP; i++) {
		(void) loc_cpu();
		hrtcnt = fch_hrt();
		prev_hrtcnt = recent_hrtcnt;
		prev_hrtcnt_pos = recent_hrtcnt_pos;
		recent_hrtcnt = hrtcnt;
		recent_hrtcnt_pos = "TSK";
		(void) unl_cpu();

		if (prev_hrtcnt > hrtcnt) {
			syslog(LOG_NOTICE,
				"system performance time goes back: %d(%s) %d(TSK)",
								prev_hrtcnt, prev_hrtcnt_pos, hrtcnt);
		}
	}

	syslog(LOG_NOTICE, "system performance time test finishes.");
	syslog(LOG_NOTICE, "number of cyclic handler execution: %d", cyclic_count);
	check_finish(0);
}
示例#12
0
void
task1(intptr_t exinf)
{
	ER		ercd;

	switch (++task1_count) {
	case 1:
		check_point(1);
		check_state(false, false, TIPM_ENAALL, false, false, true);
		ercd = chg_ipm(TMAX_INTPRI);
		check_ercd(ercd, E_OK);
		ercd = ena_tex();
		check_ercd(ercd, E_OK);

		check_point(2);
		check_state(false, false, TMAX_INTPRI, false, true, false);
		RAISE_CPU_EXCEPTION;

		check_point(0);
		break;

	case 2:
		check_point(8);
		check_state(false, false, TIPM_ENAALL, false, false, true);

		check_finish(9);
		break;

	default:
		check_point(0);
		break;
	}
}
示例#13
0
void
task1(intptr_t exinf)
{
    ER		ercd;

    if (TMAX_INTPRI == TMIN_INTPRI) {
        syslog_0(LOG_NOTICE, "This test program is not necessary.");
        ext_ker();
    }

    check_point(1);
    check_state(false, false, TIPM_ENAALL, false, false, true);
    ercd = chg_ipm(TMAX_INTPRI);
    check_ercd(ercd, E_OK);
    ercd = ena_tex();
    check_ercd(ercd, E_OK);

    check_point(2);
    check_state(false, false, TMAX_INTPRI, false, true, false);
    RAISE_CPU_EXCEPTION;

    check_point(5);
    check_state(false, false, TMAX_INTPRI, false, true, false);

    check_finish(6);
}
void
task1(intptr_t exinf)
{
	ER_UINT	ercd;

	test_start(__FILE__);

	check_point(1);
	ercd = act_tsk(TASK2);
	check_ercd(ercd, E_OK);

	check_point(6);
	ercd = chg_pri(TASK3, HIGH_PRIORITY);
	check_ercd(ercd, E_NOSPT);

	check_point(7);
	ercd = wup_tsk(TASK3);
	check_ercd(ercd, E_NOSPT);

	check_point(8);
	ercd = can_wup(TASK3);
	check_ercd(ercd, E_NOSPT);

	check_point(9);
	ercd = rel_wai(TASK3);
	check_ercd(ercd, E_NOSPT);

	check_point(10);
	ercd = sus_tsk(TASK3);
	check_ercd(ercd, E_NOSPT);

	check_point(11);
	ercd = rsm_tsk(TASK3);
	check_ercd(ercd, E_NOSPT);

	check_point(12);
	ercd = sta_alm(ALM1, 10);
	check_ercd(ercd, E_OK);

	check_point(13);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(27);
	ercd = act_tsk(TASK3);
	check_ercd(ercd, E_OK);

	check_point(28);
	ercd = act_tsk(TASK4);
	check_ercd(ercd, E_OK);

	check_point(29);
	ercd = act_tsk(TASK2);
	check_ercd(ercd, E_OK);

	check_finish(34);
	check_point(0);
}
示例#15
0
void
task1(intptr_t exinf)
{
	ER		ercd;

	check_point(1);
	ercd = act_tsk(TASK2);
	check_ercd(ercd, E_OK);

	check_point(3);
	ercd = act_tsk(TASK3);
	check_ercd(ercd, E_OK);

	check_point(4);
	ercd = act_tsk(TASK4);
	check_ercd(ercd, E_OK);

	check_point(5);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(9);
	ercd = act_tsk(TASK5);
	check_ercd(ercd, E_OK);

	check_point(10);
	ercd = act_tsk(TASK6);
	check_ercd(ercd, E_OK);

	check_point(11);
	ercd = sus_tsk(TASK6);
	check_ercd(ercd, E_OK);

	check_point(12);
	ercd = sus_tsk(TASK5);
	check_ercd(ercd, E_OK);

	check_point(13);
	ercd = rsm_tsk(TASK5);
	check_ercd(ercd, E_OK);

	check_point(14);
	ercd = rsm_tsk(TASK6);
	check_ercd(ercd, E_OK);

	check_point(15);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(31);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_finish(38);

	check_point(0);
}
示例#16
0
void
task1(intptr_t exinf)
{
	ER_UINT	ercd;
	T_RTSK	rtsk;
	T_RMTX	rmtx;
	PRI		intpri;

	test_start(__FILE__);

	check_point(1);
	ercd = sta_alm(ALM1, TEST_TIME_CP);
	check_ercd(ercd, E_OK);

	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(3);
	ercd = act_tsk(TASK2);
	check_ercd(ercd, E_OK);

	check_point(5);
	ercd = ref_tsk(TASK2, &rtsk);
	check_ercd(ercd, E_OK);

	check_assert(rtsk.tskstat == TTS_DMT);

	ercd = ref_mtx(MTX1, &rmtx);
	check_ercd(ercd, E_OK);

	check_assert(rmtx.htskid == TSK_NONE);

	check_assert(rmtx.wtskid == TSK_NONE);

	ercd = act_tsk(TASK2);
	check_ercd(ercd, E_OK);

	check_point(16);
	ercd = get_ipm(&intpri);
	check_ercd(ercd, E_OK);

	check_assert(intpri == TIPM_ENAALL);

	ercd = act_tsk(TASK2);
	check_ercd(ercd, E_OK);

	check_point(23);
	check_assert(sns_dsp() == false);

	ercd = act_tsk(TASK2);
	check_ercd(ercd, E_OK);

	check_finish(28);
	check_point(0);
}
示例#17
0
void
task2(intptr_t exinf)
{
	/*
	 *  初期状態のチェック
	 */
	check_point(17);
	check_state(false, false, TIPM_ENAALL, false, false, true);

	check_finish(18);
}
void
task2(intptr_t exinf)
{
	ER_UINT	ercd;

	check_point(42);
	ercd = loc_mtx(MTX4);
	check_ercd(ercd, E_OK);

	check_point(46);
	ercd = unl_mtx(MTX4);
	check_ercd(ercd, E_OK);

	check_point(55);
	ercd = wup_tsk(TASK4);
	check_ercd(ercd, E_OK);

	check_point(57);
	ercd = wup_tsk(TASK5);
	check_ercd(ercd, E_OK);

	check_point(67);
	ercd = wup_tsk(TASK5);
	check_ercd(ercd, E_OK);

	check_point(70);
	ercd = wup_tsk(TASK3);
	check_ercd(ercd, E_OK);

	check_point(72);
	ercd = wup_tsk(TASK1);
	check_ercd(ercd, E_OK);

	check_point(75);
	ercd = wup_tsk(TASK4);
	check_ercd(ercd, E_OK);

	check_point(77);
	ercd = wup_tsk(TASK5);
	check_ercd(ercd, E_OK);

	check_point(104);
	ercd = ini_mtx(MTX1);
	check_ercd(ercd, E_OK);

	check_point(106);
	ercd = ter_tsk(TASK1);
	check_ercd(ercd, E_OK);

	check_finish(107);
	check_point(0);
}
示例#19
0
void
cpuexc_handler(void *p_excinf)
{
	check_point(3);
	check_assert(xsns_xpn(p_excinf) == true);
	check_assert(xsns_dpn(p_excinf) == true);

#ifdef CANNOT_RETURN_CPUEXC
	check_finish(4);
#endif /* CANNOT_RETURN_CPUEXC */

	check_point(4);
}
示例#20
0
/*
 *  メインタスク(低優先度)
 */
void main_task(intptr_t exinf)
{
	syslog_0(LOG_NOTICE, "Performance evaluation program (2)");

	perf_eval(0);
	perf_eval(10);
	perf_eval(20);
	perf_eval(30);
	perf_eval(40);
	perf_eval(50);
	perf_eval(100);
	perf_eval(200);
	perf_eval(300);
	check_finish(0);
}
示例#21
0
void
task3(intptr_t exinf)
{
	ER_UINT	ercd;
	ID		somid;

	check_point(3);
	WAIT(task3_flag);

	check_point(6);
	WAIT(task3_flag);

	check_point(9);
	WAIT(task3_flag);

	check_point(11);
	WAIT(task3_flag);

	check_point(12);
	WAIT(task3_flag);

	check_point(15);
	ercd = chg_som(TSOM_STP);
	check_ercd(ercd, E_OK);

	ercd = get_som(&somid);
	check_ercd(ercd, E_OK);

	check_assert(somid == SOM2);

	check_point(16);
	WAIT(task3_flag);

	check_point(21);
	ercd = chg_som(TSOM_STP);
	check_ercd(ercd, E_OK);

	WAIT(task3_flag);

	check_point(27);
	ercd = chg_som(TSOM_STP);
	check_ercd(ercd, E_OK);

	WAIT(task3_flag);

	check_finish(32);
	check_point(0);
}
示例#22
0
/*
 *  メインタスク(低優先度)
 */
void main_task(intptr_t exinf)
{
	syslog_0(LOG_NOTICE, "Performance evaluation program (1)");
	init_hist(1);
	init_hist(2);

	act_tsk(TASK1);
	act_tsk(TASK2);

	syslog_0(LOG_NOTICE, "Execution times of wup_tsk -> slp_tsk");
	print_hist(1);

	syslog_0(LOG_NOTICE, "Execution times of slp_tsk -> wup_tsk");
	print_hist(2);
	check_finish(0);
}
示例#23
0
void
dhash_download::gotchunk (str data, int offset, int totsz)
{
    //first chunk
    if (offset < 0) {
        fail ("Block not found");
    } else {
        if (buf_len == 0) {
            buf_len = totsz;
            buffer = (char *)malloc (buf_len);
        }
        add_data (data, offset);
    }

    check_finish ();
}
示例#24
0
/*
 * We suck in lots of fsck code, and just pick & choose the stuff we want.
 *
 * fsreadfd is set up to read from the file system, fswritefd to write to
 * the file system.
 */
int
main(int argc, char *argv[])
{
    int ch, rval;
    char *fsys = NULL;

    while (-1 != (ch = getopt(argc, argv, "fdr"))) {
        switch (ch) {
        case 'f':
            /* The -f option is left for historical
             * reasons and has no meaning.
             */
            break;
        case 'd':
            check_debug++;
            break;
        case 'r':
            nflag++; /* "no" in fsck, readonly for us */
            break;
        default:
            usage();
        }
    }
    argc -= optind;
    argv += optind;
    if (argc != 1)
        usage();
    else
        fsys = argv[0];

    check_sblock_init();
    if (!check_setup(fsys, 0))
        errx(1, "cannot set up file system `%s'", fsys);
    printf("%s file system `%s'\nLast Mounted on %s\n",
        nflag? "Examining": "Editing", fsys, check_sblk.b_un.b_fs->fs_fsmnt);
    rval = cmdloop();
    if (!nflag) {
        check_sblk.b_un.b_fs->fs_clean = 0;	/* mark it dirty */
        dirty(&check_sblk);
        check_finish(0);
        printf("*** FILE SYSTEM MARKED DIRTY\n");
        printf("*** BE SURE TO RUN FSCK TO CLEAN UP ANY DAMAGE\n");
        printf("*** IF IT WAS MOUNTED, RE-MOUNT WITH -u -o reload\n");
    }
    exit(rval);
}
示例#25
0
void
cpuexc_handler(void *p_excinf)
{
    ER		ercd;

    check_point(4);
    check_state_i(true, true, true, true, false);
    check_assert(xsns_xpn(p_excinf) == true);
    check_assert(xsns_dpn(p_excinf) == true);

#ifdef CANNOT_RETURN_CPUEXC
    check_finish(5);
#endif /* CANNOT_RETURN_CPUEXC */

    check_point(5);
    ercd = iunl_cpu();
    check_ercd(ercd, E_OK);
}
示例#26
0
void
task1(intptr_t exinf)
{
	ER		ercd;

	check_point(1);
	check_state(false, false, TIPM_ENAALL, false, false, true);
	ercd = dis_dsp();
	check_ercd(ercd, E_OK);

	check_point(2);
	check_state(false, false, TIPM_ENAALL, true, true, true);
	RAISE_CPU_EXCEPTION;

	check_point(5);
	check_state(false, false, TIPM_ENAALL, true, true, true);

	check_finish(6);
}
示例#27
0
void
task1(intptr_t exinf)
{
	ER		ercd;

	check_point(1);
	check_state(false, false, TIPM_ENAALL, false, false, true);
	ercd = chg_ipm(TMIN_INTPRI);
	check_ercd(ercd, E_OK);

	check_point(2);
	check_state(false, false, TMIN_INTPRI, false, true, true);
	RAISE_CPU_EXCEPTION;

	check_point(5);
	check_state(false, false, TMIN_INTPRI, false, true, true);

	check_finish(6);
}
示例#28
0
void
task1(intptr_t exinf)
{
	ER_UINT	ercd;
	T_ROVR	rovr;

	test_start(__FILE__);

	check_point(1);
	ercd = sta_ovr(TSK_SELF, UNIT_TIME);
	check_ercd(ercd, E_OBJ);

	ercd = stp_ovr(TSK_SELF);
	check_ercd(ercd, E_OBJ);

	ercd = ref_ovr(TSK_SELF, &rovr);
	check_ercd(ercd, E_OBJ);

	check_finish(2);
	check_point(0);
}
示例#29
0
void
task2(intptr_t exinf)
{
	ER		ercd;

	/*
	 *  初期状態のチェック
	 */
	check_point(21);
	check_state(false, false, TIPM_ENAALL, false, false, true);

	/*
	 *  タスク例外処理の許可
	 */
	check_point(22);
	ercd = ena_tex();
	check_ercd(ercd, E_OK);
	check_state(false, false, TIPM_ENAALL, false, false, false);

	/*
	 *  タスク3に切り換える
	 */
	ercd = rot_rdq(TPRI_SELF);
	/* ここで他のタスクが動作する */
	check_ercd(ercd, E_OK);

	/*
	 *  タスク例外処理を要求
	 */
	check_point(29);
	ercd = ras_tex(TSK_SELF, 0x0002);
	/* ここでタスク例外処理ルーチンが動作する */
	check_ercd(ercd, E_OK);

	/*
	 *  テスト終了
	 */
	check_finish(34);
}
示例#30
0
void
task2(intptr_t exinf)
{
	ER		ercd;

	/*
	 *  check init state
	 */
	check_point(22);
	check_state(false, false, TIPM_ENAALL, false, false, true);

	/*
	 *  enable task exception
	 */
	check_point(23);
	ercd = ena_tex();
	check_ercd(ercd, E_OK);
	check_state(false, false, TIPM_ENAALL, false, false, false);

	/*
	 *  switch to task3
	 */
	ercd = rot_rdq(TPRI_SELF);
	/* other tasks run here */
	check_ercd(ercd, E_OK);

	/*
	 *  raise task exception request
	 */
	check_point(30);
	ercd = ras_tex(TSK_SELF, 0x0002);
	/* task exception routine runs here */
	check_ercd(ercd, E_OK);

	/*
	 *  test exits
	 */
	check_finish(35);
}