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); }
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); }
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); }
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); }
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); }
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); }
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); }
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; }