From owner-p4-projects@FreeBSD.ORG Sat Nov 10 00:33:29 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6E46ACE6; Sat, 10 Nov 2012 00:33:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2B37DCE4 for ; Sat, 10 Nov 2012 00:33:29 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id EBE4C8FC0C for ; Sat, 10 Nov 2012 00:33:28 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.5/8.14.5) with ESMTP id qAA0XSn1026967 for ; Sat, 10 Nov 2012 00:33:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.5/8.14.5/Submit) id qAA0XSFT026964 for perforce@freebsd.org; Sat, 10 Nov 2012 00:33:28 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 10 Nov 2012 00:33:28 GMT Message-Id: <201211100033.qAA0XSFT026964@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson Subject: PERFORCE change 219715 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 10 Nov 2012 00:33:29 -0000 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 +#include #include #include #include #include -#include #include #include #include @@ -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(); }