From owner-cvs-all Tue Jan 1 12:56:37 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 946F637B41B; Tue, 1 Jan 2002 12:56:28 -0800 (PST) Received: (from jake@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g01KuSW38482; Tue, 1 Jan 2002 12:56:28 -0800 (PST) (envelope-from jake) Message-Id: <200201012056.g01KuSW38482@freefall.freebsd.org> From: Jake Burkholder Date: Tue, 1 Jan 2002 12:56:28 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/sparc64/include proc.h src/sys/sparc64/sparc64 exception.s machdep.c sys_machdep.c vm_machdep.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG jake 2002/01/01 12:56:28 PST Modified files: sys/sparc64/include proc.h sys/sparc64/sparc64 exception.s machdep.c sys_machdep.c vm_machdep.c Log: Implement user trap delivery as specified by the sparc abi. This provides an efficient way for the kernel to bounce certain mundane traps back to userland for handling there. A user trap handler returns directly to the trapping user code, rather than going through the kernel again. Only a handful of instructions are actually executed in kernel mode. Implement sysarch(SPARC_UTRAP_INSTALL). Add code to handle sharing of the user trap table across forks and unsharing at exec. This can be used to implement efficient tracking of floating point register usage in userland, fe by a thread library, and to handle alignment fault fixups and instruction emulation in userland, for which the code may need to be different for 32bit and 64bit binaries. Revision Changes Path 1.8 +7 -0 src/sys/sparc64/include/proc.h 1.18 +47 -1 src/sys/sparc64/sparc64/exception.s 1.28 +10 -0 src/sys/sparc64/sparc64/machdep.c 1.8 +63 -1 src/sys/sparc64/sparc64/sys_machdep.c 1.17 +15 -1 src/sys/sparc64/sparc64/vm_machdep.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message