Date: Sat, 10 Nov 2012 00:33:28 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 219715 for review Message-ID: <201211100033.qAA0XSFT026964@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@219715?ac=10 Change 219715 by rwatson@rwatson_svr_ctsrd_mipsbuild on 2012/11/10 00:33:10 Use gettimeofday() instead of sched_yield() for the sample system call -- it is more implemented. Fix iteration over cheritest arguments, which prevented multi-command sequences from running correctly. Affected files ... .. //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest.c#6 edit Differences ... ==== //depot/projects/ctsrd/cheribsd/src/bin/cheritest/cheritest.c#6 (text+ko) ==== @@ -29,13 +29,13 @@ */ #include <sys/types.h> +#include <sys/time.h> #include <machine/cheri.h> #include <machine/cpuregs.h> #include <err.h> #include <inttypes.h> -#include <sched.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -70,7 +70,7 @@ fprintf(stderr, "cheritest sandbox\n"); fprintf(stderr, "cheritest sleep\n"); fprintf(stderr, "cheritest unsandbox\n"); - fprintf(stderr, "cheritest yieldtest\n"); + fprintf(stderr, "cheritest syscalltest\n"); exit(EX_USAGE); } @@ -147,7 +147,6 @@ * system calls. */ CHERI_CSETLEN(0, 1, CHERI_CAP_USER_LENGTH - 1); - } static void @@ -155,22 +154,23 @@ { /* - * Restore a more privielged C0 so that the kernel will accept system + * Restore a more privileged C0 so that the kernel will accept system * calls again. */ CHERI_CSETLEN(0, 1, CHERI_CAP_USER_LENGTH); } static void -cheritest_yieldtest(void) +cheritest_syscalltest(void) { + struct timeval tv; int ret; cheritest_sandbox(); - ret = sched_yield(); + ret = gettimeofday(&tv, NULL); cheritest_unsandbox(); if (ret) - err(1, "sched_yield"); + err(1, "gettimeofday"); } @@ -194,20 +194,20 @@ CHERI_CMOVE(1, 0); for (i = 0; i < argc; i++) { - if (strcmp(argv[0], "listregs") == 0) + if (strcmp(argv[i], "listregs") == 0) cheritest_listregs(); - else if (strcmp(argv[0], "copyregs") == 0) + else if (strcmp(argv[i], "copyregs") == 0) cheritest_copyregs(); - else if (strcmp(argv[0], "overrun") == 0) + else if (strcmp(argv[i], "overrun") == 0) cheritest_overrun(); - else if (strcmp(argv[0], "sandbox") == 0) + else if (strcmp(argv[i], "sandbox") == 0) cheritest_sandbox(); - else if (strcmp(argv[0], "sleep") == 0) + else if (strcmp(argv[i], "sleep") == 0) sleep(10); - else if (strcmp(argv[0], "unsandbox") == 0) + else if (strcmp(argv[i], "unsandbox") == 0) cheritest_unsandbox(); - else if (strcmp(argv[0], "yieldtest") == 0) - cheritest_yieldtest(); + else if (strcmp(argv[i], "syscalltest") == 0) + cheritest_syscalltest(); else usage(); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211100033.qAA0XSFT026964>