From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L3zBn-0004jI-Hk for qemu-devel@nongnu.org; Sat, 22 Nov 2008 15:34:47 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L3zBm-0004j3-Vd for qemu-devel@nongnu.org; Sat, 22 Nov 2008 15:34:47 -0500 Received: from [199.232.76.173] (port=38516 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L3zBm-0004ix-N5 for qemu-devel@nongnu.org; Sat, 22 Nov 2008 15:34:46 -0500 Received: from savannah.gnu.org ([199.232.41.3]:55039 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1L3zBm-00085T-Qs for qemu-devel@nongnu.org; Sat, 22 Nov 2008 15:34:46 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1L3zBl-0003iS-Rw for qemu-devel@nongnu.org; Sat, 22 Nov 2008 20:34:45 +0000 Received: from blueswir1 by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1L3zBl-0003iO-MT for qemu-devel@nongnu.org; Sat, 22 Nov 2008 20:34:45 +0000 MIME-Version: 1.0 Errors-To: blueswir1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Blue Swirl Message-Id: Date: Sat, 22 Nov 2008 20:34:45 +0000 Subject: [Qemu-devel] [5777] Fix BSD user compilation on other than OpenBSD Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 5777 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5777 Author: blueswir1 Date: 2008-11-22 20:34:45 +0000 (Sat, 22 Nov 2008) Log Message: ----------- Fix BSD user compilation on other than OpenBSD Modified Paths: -------------- trunk/bsd-user/main.c trunk/bsd-user/openbsd/syscall_nr.h Modified: trunk/bsd-user/main.c =================================================================== --- trunk/bsd-user/main.c 2008-11-22 20:24:29 UTC (rev 5776) +++ trunk/bsd-user/main.c 2008-11-22 20:34:45 UTC (rev 5777) @@ -186,9 +186,6 @@ case 0x100: #endif syscall_nr = env->gregs[1]; -#if defined(TARGET_SPARC) - syscall_nr &= ~(SYSCALL_G7RFLAG | SYSCALL_G2RFLAG); -#endif if (bsd_type == target_freebsd) ret = do_freebsd_syscall(env, syscall_nr, env->regwptr[0], env->regwptr[1], @@ -199,11 +196,16 @@ env->regwptr[0], env->regwptr[1], env->regwptr[2], env->regwptr[3], env->regwptr[4], env->regwptr[5]); - else //if (bsd_type == target_openbsd) + else { //if (bsd_type == target_openbsd) +#if defined(TARGET_SPARC64) + syscall_nr &= ~(TARGET_OPENBSD_SYSCALL_G7RFLAG | + TARGET_OPENBSD_SYSCALL_G2RFLAG); +#endif ret = do_openbsd_syscall(env, syscall_nr, env->regwptr[0], env->regwptr[1], env->regwptr[2], env->regwptr[3], env->regwptr[4], env->regwptr[5]); + } if ((unsigned int)ret >= (unsigned int)(-515)) { #if defined(TARGET_SPARC64) && !defined(TARGET_ABI32) env->xcc |= PSR_CARRY; @@ -219,11 +221,13 @@ } env->regwptr[0] = ret; /* next instruction */ -#if defined(TARGET_SPARC) - if (env->gregs[1] & SYSCALL_G2RFLAG) { +#if defined(TARGET_SPARC64) + if (bsd_type == target_openbsd && + env->gregs[1] & TARGET_OPENBSD_SYSCALL_G2RFLAG) { env->pc = env->gregs[2]; env->npc = env->pc + 4; - } else if (env->gregs[1] & SYSCALL_G7RFLAG) { + } else if (bsd_type == target_openbsd && + env->gregs[1] & TARGET_OPENBSD_SYSCALL_G7RFLAG) { env->pc = env->gregs[7]; env->npc = env->pc + 4; } else { Modified: trunk/bsd-user/openbsd/syscall_nr.h =================================================================== --- trunk/bsd-user/openbsd/syscall_nr.h 2008-11-22 20:24:29 UTC (rev 5776) +++ trunk/bsd-user/openbsd/syscall_nr.h 2008-11-22 20:34:45 UTC (rev 5777) @@ -193,3 +193,33 @@ #define TARGET_OPENBSD_NR_statfs 307 #define TARGET_OPENBSD_NR_fstatfs 308 #define TARGET_OPENBSD_NR_fhstatfs 309 + +/* syscall flags from machine/trap.h */ + +/* $OpenBSD: trap.h,v 1.4 2008/07/04 22:04:37 kettenis Exp $ */ +/* $NetBSD: trap.h,v 1.4 1999/06/07 05:28:04 eeh Exp $ */ + +/* + * Copyright (c) 1996-1999 Eduardo Horvath + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ +#define TARGET_OPENBSD_SYSCALL_G2RFLAG 0x400 /* on success, return to %g2 rather than npc */ +#define TARGET_OPENBSD_SYSCALL_G7RFLAG 0x800 /* use %g7 as above (deprecated) */