From owner-p4-projects@FreeBSD.ORG Mon Nov 12 01:50:09 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F2CB1E34; Mon, 12 Nov 2012 01:50:08 +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 931A5E32 for ; Mon, 12 Nov 2012 01:50:08 +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 706D58FC19 for ; Mon, 12 Nov 2012 01:50:08 +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 qAC1o8Q7039441 for ; Mon, 12 Nov 2012 01:50:08 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 qAC1o8cQ039438 for perforce@freebsd.org; Mon, 12 Nov 2012 01:50:08 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 12 Nov 2012 01:50:08 GMT Message-Id: <201211120150.qAC1o8cQ039438@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 219756 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: Mon, 12 Nov 2012 01:50:09 -0000 http://p4web.freebsd.org/@@219756?ac=10 Change 219756 by rwatson@rwatson_zenith_cl_cam_ac_uk on 2012/11/12 01:50:06 Simple implementation of a sandbox invocation target: unpacks sandbox invocation arguments, runs some C code a bit under-defensively, and returns a value to be picked up by the calling code. Much work to be done here, and depends on a CJALR call, returning via CJR, rather than CCALL and CRETURN. However, runs in a new segment successfully. Affected files ... .. //depot/projects/ctsrd/cheribsd/src/libexec/cheritest-helper/Makefile#3 edit .. //depot/projects/ctsrd/cheribsd/src/libexec/cheritest-helper/cheritest-helper.c#2 edit .. //depot/projects/ctsrd/cheribsd/src/libexec/cheritest-helper/mips64/chsbrt.S#1 add .. //depot/projects/ctsrd/cheribsd/src/libexec/cheritest-helper/sandbox.ld#2 edit Differences ... ==== //depot/projects/ctsrd/cheribsd/src/libexec/cheritest-helper/Makefile#3 (text+ko) ==== @@ -2,17 +2,22 @@ # $FreeBSD$ # PROG= cheritest-helper -SRCS= cheritest-helper.c -LDFLAGS+= --script=sandbox.ld -nostdlib +SRCS= cheritest-helper.c chsbrt.S +LDFLAGS+= -Wl,--script=${.CURDIR}/sandbox.ld -nostdlib +CFLAGS+= -G0 -Wa,-G0 NO_MAN= -STRIP= +#STRIP= +NO_SHARED= yes FILESOWN= ${LIBOWN} FILESGRP= ${LIBGRP} FILESMODE= ${LIBMODE} -FILESDIR= ${LIBDIR} -FILES= cheritest-helper.bin cheritest-helper.dump -CLEANFILES= cheritest-helper.bin cheritest-helper.dump +FILESDIR= ${LIBEXECDIR} +FILES= cheritest-helper.bin cheritest-helper.dump chsbrt.o +CLEANFILES= cheritest-helper.bin cheritest-helper.dump chsbrt.o + +chsbrt.o: + ${AS} -G0 -o ${.TARGET} ${.ALLSRC} cheritest-helper.bin: cheritest-helper objcopy -S -O binary ${.ALLSRC} ${.TARGET} @@ -20,4 +25,6 @@ cheritest-helper.dump: cheritest-helper objdump -xsSD ${.ALLSRC} > ${.TARGET} +.PATH: ${.CURDIR}/${MACHINE_ARCH} + .include ==== //depot/projects/ctsrd/cheribsd/src/libexec/cheritest-helper/cheritest-helper.c#2 (text+ko) ==== @@ -30,9 +30,12 @@ #include +int invoke(register_t a0, register_t a1, register_t a2, register_t a3); + int -main(int argc __unused, char *argv[] __unused) +invoke(register_t a0 __unused, register_t a1 __unused, register_t a2 __unused, + register_t a3 __unused) { - return (0); + return (123456); } ==== //depot/projects/ctsrd/cheribsd/src/libexec/cheritest-helper/sandbox.ld#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2011 Robert N. M. Watson + * Copyright (c) 2011-2012 Robert N. M. Watson * All rights reserved. * * This software was developed by SRI International and the University of @@ -40,7 +40,10 @@ SECTIONS { . = __code_base__; + + .text ALIGN(0x8): { chsbrt.o } .text ALIGN(0x8): { *(.text) } + .MIPS.options ALIGN(0x8): { *(.MIPS.options) } .bss ALIGN(0x8): { *(.bss) } .data ALIGN(0x8): { *(.data) }