コード例 #1
33
ファイル: sem-2.c プロジェクト: BhargavKola/xenomai-forge
int main(int argc, char *argv[])
{
	TASK_ID rtid, ptid;

	copperplate_init(argc, argv);

	traceobj_init(&trobj, argv[0], sizeof(tseq) / sizeof(int));

	rtid = taskSpawn("rootTask", 50, 0, 0, rootTask,
			 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
	traceobj_assert(&trobj, rtid != ERROR);

	traceobj_mark(&trobj, 18);

	ptid = taskSpawn("peerTask", 10, 0, 0, peerTask,
			 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
	traceobj_assert(&trobj, ptid != ERROR);

	traceobj_mark(&trobj, 19);

	traceobj_join(&trobj);

	traceobj_verify(&trobj, tseq, sizeof(tseq) / sizeof(int));

	exit(0);
}
コード例 #2
0
ファイル: task-3.c プロジェクト: BhargavKola/xenomai-forge
int main(int argc, char *argv[])
{
	u_long tid;
	int ret;

	copperplate_init(argc, argv);

	traceobj_init(&trobj, argv[0], 0);

	ret = t_create("TSKA", 20, 0, 0, 0, &tidA);
	traceobj_assert(&trobj, ret == SUCCESS);

	ret = t_create("TSKB", 21, 0, 0, 0, &tidB);
	traceobj_assert(&trobj, ret == SUCCESS);

	tid = ~tidA;
	ret = t_ident("TSKA", 0, &tid);
	traceobj_assert(&trobj, ret == SUCCESS);
	traceobj_assert(&trobj, tid == tidA);

	tid = ~tidB;
	ret = t_ident("TSKB", 0, &tid);
	traceobj_assert(&trobj, ret == SUCCESS);
	traceobj_assert(&trobj, tid == tidB);

	ret = t_delete(tidA);
	traceobj_assert(&trobj, ret == SUCCESS);
	ret = t_ident("TSKA", 0, &tid);
	traceobj_assert(&trobj, ret == ERR_OBJNF);

	ret = t_ident("TSKB", 1, &tid);
	traceobj_assert(&trobj, ret == ERR_NODENO);

	exit(0);
}
コード例 #3
0
ファイル: tm-5.c プロジェクト: BhargavKola/xenomai-forge
int main(int argc, char *argv[])
{
	u_long args[] = { 1, 2, 3, 4 };
	int ret;

	copperplate_init(argc, argv);

	traceobj_init(&trobj, argv[0], sizeof(tseq) / sizeof(int));

	traceobj_mark(&trobj, 1);

	ret = t_create("TASK", 20, 0, 0, 0, &tid);
	traceobj_assert(&trobj, ret == SUCCESS);

	ret = t_start(tid, 0, task, args);
	traceobj_assert(&trobj, ret == SUCCESS);

	traceobj_mark(&trobj, 2);

	traceobj_join(&trobj);

	traceobj_verify(&trobj, tseq, sizeof(tseq) / sizeof(int));

	exit(0);
}
コード例 #4
0
ファイル: sem-3.c プロジェクト: BhargavKola/xenomai-forge
int main(int argc, char *argv[])
{
	TASK_ID tid;
	int ret;

	copperplate_init(argc, argv);

	traceobj_init(&trobj, argv[0], sizeof(tseq) / sizeof(int));

	tid = taskSpawn("rootTask", 50, 0, 0, rootTask,
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
	traceobj_assert(&trobj, tid != ERROR);

	traceobj_mark(&trobj, 5);

	ret = semDelete(sem_id);
	traceobj_assert(&trobj, ret == OK);

	traceobj_mark(&trobj, 6);

	traceobj_join(&trobj);

	traceobj_verify(&trobj, tseq, sizeof(tseq) / sizeof(int));

	exit(0);
}
コード例 #5
0
ファイル: msgQ-2.c プロジェクト: BhargavKola/xenomai-forge
int main(int argc, char *argv[])
{
	TASK_ID tid;

	copperplate_init(argc, argv);

	traceobj_init(&trobj, argv[0], sizeof(tseq) / sizeof(int));

	tid = taskSpawn("rootTask", 50,	0, 0, rootTask,
			0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
	traceobj_assert(&trobj, tid != ERROR);

	traceobj_join(&trobj);

	exit(0);
}
コード例 #6
0
ファイル: mq-3.c プロジェクト: BhargavKola/xenomai-forge
int main(int argc, char *argv[])
{
	u_long args[] = { 1, 2, 3, 4 }, msgbuf[4], count;
	int ret, n;

	copperplate_init(argc, argv);

	traceobj_init(&trobj, argv[0], sizeof(tseq) / sizeof(int));

	ret = q_create("QUEUE", Q_NOLIMIT, 0, &qid);
	traceobj_assert(&trobj, ret == SUCCESS);

	ret = t_create("TSKA", 21, 0, 0, 0, &tidA);
	traceobj_assert(&trobj, ret == SUCCESS);

	ret = t_create("TSKB", 20, 0, 0, 0, &tidB);
	traceobj_assert(&trobj, ret == SUCCESS);

	ret = t_start(tidA, 0, task_A, args);
	traceobj_assert(&trobj, ret == SUCCESS);

	ret = t_start(tidB, 0, task_B, args);
	traceobj_assert(&trobj, ret == SUCCESS);

	for (n = 0; n < 3; n++) {
		msgbuf[0] = n + 1;
		msgbuf[1] = n + 2;
		msgbuf[2] = n + 3;
		msgbuf[3] = n + 4;
		count = 0;
		traceobj_mark(&trobj, 7);
		ret = q_broadcast(qid, msgbuf, &count);
		traceobj_assert(&trobj, ret == SUCCESS && count == 2);
	}

	traceobj_mark(&trobj, 8);

	traceobj_join(&trobj);

	traceobj_verify(&trobj, tseq, sizeof(tseq) / sizeof(int));

	ret = q_delete(qid);
	traceobj_assert(&trobj, ret == SUCCESS);

	exit(0);
}
コード例 #7
0
ファイル: pt-1.c プロジェクト: BhargavKola/xenomai-forge
int main(int argc, char *argv[])
{
	u_long nbufs, ptid, _ptid, n;
	void *buf, *lbuf;
	int ret;

	copperplate_init(argc, argv);

	traceobj_init(&trobj, argv[0], 0);

	ret = pt_create("PART", pt_mem, NULL, sizeof(pt_mem), 16, PT_NODEL, &ptid, &nbufs);
	traceobj_assert(&trobj, ret == SUCCESS);

	for (n = 0, lbuf = NULL;; n++, lbuf = buf) {
		ret = pt_getbuf(ptid, &buf);
		if (ret) {
			traceobj_assert(&trobj, ret == ERR_NOBUF);
			break;
		}
		if (lbuf)
			traceobj_assert(&trobj, (caddr_t)lbuf + 16 == (caddr_t)buf);
		memset(buf, 0xaa, 16);
	}

	traceobj_assert(&trobj, nbufs == n);

	ret = pt_delete(ptid);
	traceobj_assert(&trobj, ret == ERR_BUFINUSE);

	for (buf = lbuf; n > 0; n--, buf = (caddr_t)buf - 16) {
		ret = pt_retbuf(ptid, buf);
		traceobj_assert(&trobj, ret == SUCCESS);
	}

	ret = pt_ident("PART", 0, &_ptid);
	traceobj_assert(&trobj, ret == SUCCESS && _ptid == ptid);

	ret = pt_delete(ptid);
	traceobj_assert(&trobj, ret == SUCCESS);

	exit(0);
}
コード例 #8
0
ファイル: wakeup-time.c プロジェクト: Lmaths/xenomai-forge
int main(int argc, char *const *argv)
{
	int err, c;

	copperplate_init(&argc, &argv);

	while ((c = getopt(argc, argv, "hp:n:i:")) != EOF)
		switch (c) {
		case 'h':
			/* ./switch --h[istogram] */
			do_histogram = 1;
			break;

		case 'p':
			sampling_period = atoi(optarg) * 1000;
			break;

		case 'n':
			nsamples = atoi(optarg);
			break;

		case 'i':
			warmup = atoi(optarg);
			break;

		default:

			fprintf(stderr, "usage: switch [options]\n"
				"\t-h		  - enable histogram\n"
				"\t-p <period_us> - timer period\n"
				"\t-n <samples>	  - number of samples to collect\n"
				"\t-i <samples>	  - number of _first_ samples to ignore\n");
			exit(2);
		}

	if (sampling_period == 0)
		sampling_period = 100000;	/* ns */

	if (nsamples <= 0) {
		warning("disregarding -n <%lld>, using -n <100000> "
			"samples\n", nsamples);
		nsamples = 100000;
	}

	signal(SIGINT, SIG_IGN);
	signal(SIGTERM, SIG_IGN);

	setlinebuf(stdout);

	mlockall(MCL_CURRENT|MCL_FUTURE);

	printf("== Sampling period: %llu us\n", sampling_period / 1000);
	printf("== Do not interrupt this program\n");

	err = rt_task_create(&worker_task, "worker", 0, 98, 0);
	if (err) {
		warning("failed to create WORKER task (%s)\n",
			symerror(err));
		return 1;
	}

	err = rt_task_start(&worker_task, &worker, NULL);
	if (err) {
		warning("failed to start WORKER task (%s)\n",
			symerror(err));
		return 1;
	}

	err = rt_task_create(&event_task, "event", 0, 99, 0);
	if (err) {
		warning("failed to create EVENT task (%s)\n",
			symerror(err));
		return 1;
	}

	err = rt_task_start(&event_task, &event, NULL);
	if (err) {
		warning("failed to start EVENT task (%s)\n",
			symerror(err));
		return 1;
	}

	for (;;)
		pause();

	return 0;
}