From owner-cvs-src@FreeBSD.ORG Sat Oct 21 00:46:57 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8164116A403; Sat, 21 Oct 2006 00:46:57 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3A8C643D67; Sat, 21 Oct 2006 00:46:57 +0000 (GMT) (envelope-from cognet@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k9L0kv47095761; Sat, 21 Oct 2006 00:46:57 GMT (envelope-from cognet@repoman.freebsd.org) Received: (from cognet@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k9L0kvWY095756; Sat, 21 Oct 2006 00:46:57 GMT (envelope-from cognet) Message-Id: <200610210046.k9L0kvWY095756@repoman.freebsd.org> From: Olivier Houchard Date: Sat, 21 Oct 2006 00:46:56 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/arm/arm trap.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Oct 2006 00:46:57 -0000 cognet 2006-10-21 00:46:56 UTC FreeBSD src repository Modified files: sys/arm/arm trap.c Log: Ok I am an idiot. On 32 bits big-endian systems, it is needed to handle the syscalls using __syscall but only actually returning 32bits, such as mmap(), specially : they set the return value in td->td_retval[0], but the userland functions will expect this in r1, and not in r0 as it is normally done, as it is the LSB. So add a special case for all these syscalls (all except lseek, which truly returns 64bits). Many thanks to Peter Grehan for his patience while explaining me the issue. Revision Changes Path 1.30 +17 -2 src/sys/arm/arm/trap.c