From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LsGLm-0004rP-GZ for qemu-devel@nongnu.org; Fri, 10 Apr 2009 09:00:54 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LsGLi-0004qz-V0 for qemu-devel@nongnu.org; Fri, 10 Apr 2009 09:00:52 -0400 Received: from [199.232.76.173] (port=41820 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LsGLi-0004ql-AX for qemu-devel@nongnu.org; Fri, 10 Apr 2009 09:00:50 -0400 Received: from savannah.gnu.org ([199.232.41.3]:35212 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 1LsGLh-00013a-Sf for qemu-devel@nongnu.org; Fri, 10 Apr 2009 09:00:50 -0400 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1LsGLc-0007P8-Ms for qemu-devel@nongnu.org; Fri, 10 Apr 2009 13:00:47 +0000 Received: from blueswir1 by cvs.savannah.gnu.org with local (Exim 4.69) (envelope-from ) id 1LsGLT-0007Mm-LY for qemu-devel@nongnu.org; Fri, 10 Apr 2009 13:00:40 +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: Fri, 10 Apr 2009 13:00:35 +0000 Subject: [Qemu-devel] [7066] BSD user: add support for OpenBSD/amd64 host 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: 7066 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=7066 Author: blueswir1 Date: 2009-04-10 13:00:29 +0000 (Fri, 10 Apr 2009) Log Message: ----------- BSD user: add support for OpenBSD/amd64 host Modified Paths: -------------- trunk/cpu-exec.c Modified: trunk/cpu-exec.c =================================================================== --- trunk/cpu-exec.c 2009-04-10 07:29:34 UTC (rev 7065) +++ trunk/cpu-exec.c 2009-04-10 13:00:29 UTC (rev 7066) @@ -1207,14 +1207,20 @@ #elif defined(__x86_64__) #ifdef __NetBSD__ -#define REG_ERR _REG_ERR -#define REG_TRAPNO _REG_TRAPNO - -#define QEMU_UC_MCONTEXT_GREGS(uc, reg) (uc)->uc_mcontext.__gregs[(reg)] -#define QEMU_UC_MACHINE_PC(uc) _UC_MACHINE_PC(uc) +#define PC_sig(context) _UC_MACHINE_PC(context) +#define TRAP_sig(context) ((context)->uc_mcontext.__gregs[_REG_TRAPNO]) +#define ERROR_sig(context) ((context)->uc_mcontext.__gregs[_REG_ERR]) +#define MASK_sig(context) ((context)->uc_sigmask) +#elif defined(__OpenBSD__) +#define PC_sig(context) ((context)->sc_rip) +#define TRAP_sig(context) ((context)->sc_trapno) +#define ERROR_sig(context) ((context)->sc_err) +#define MASK_sig(context) ((context)->sc_mask) #else -#define QEMU_UC_MCONTEXT_GREGS(uc, reg) (uc)->uc_mcontext.gregs[(reg)] -#define QEMU_UC_MACHINE_PC(uc) QEMU_UC_MCONTEXT_GREGS(uc, REG_RIP) +#define PC_sig(context) ((context)->uc_mcontext.gregs[REG_RIP]) +#define TRAP_sig(context) ((context)->uc_mcontext.gregs[REG_TRAPNO]) +#define ERROR_sig(context) ((context)->uc_mcontext.gregs[REG_ERR]) +#define MASK_sig(context) ((context)->uc_sigmask) #endif int cpu_signal_handler(int host_signum, void *pinfo, @@ -1224,15 +1230,17 @@ unsigned long pc; #ifdef __NetBSD__ ucontext_t *uc = puc; +#elif defined(__OpenBSD__) + struct sigcontext *uc = puc; #else struct ucontext *uc = puc; #endif - pc = QEMU_UC_MACHINE_PC(uc); + pc = PC_sig(uc); return handle_cpu_signal(pc, (unsigned long)info->si_addr, - QEMU_UC_MCONTEXT_GREGS(uc, REG_TRAPNO) == 0xe ? - (QEMU_UC_MCONTEXT_GREGS(uc, REG_ERR) >> 1) & 1 : 0, - &uc->uc_sigmask, puc); + TRAP_sig(uc) == 0xe ? + (ERROR_sig(uc) >> 1) & 1 : 0, + &MASK_sig(uc), puc); } #elif defined(_ARCH_PPC)