From owner-cvs-src@FreeBSD.ORG Mon Aug 9 20:44:41 2004 Return-Path: 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 DEE7316A4D3; Mon, 9 Aug 2004 20:44:41 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D103743D49; Mon, 9 Aug 2004 20:44:41 +0000 (GMT) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i79KifOp077985; Mon, 9 Aug 2004 20:44:41 GMT (envelope-from marcel@repoman.freebsd.org) Received: (from marcel@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i79KifUN077984; Mon, 9 Aug 2004 20:44:41 GMT (envelope-from marcel) Message-Id: <200408092044.i79KifUN077984@repoman.freebsd.org> From: Marcel Moolenaar Date: Mon, 9 Aug 2004 20:44:41 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/ia64/ia64 pmap.c src/sys/ia64/include pte.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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: Mon, 09 Aug 2004 20:44:42 -0000 marcel 2004-08-09 20:44:41 UTC FreeBSD src repository Modified files: sys/ia64/ia64 pmap.c sys/ia64/include pte.h Log: Better preserve the original protection for the mappings we maintain. The hardware always gives read access for privilege level 0, which means that we cannot use the hardware access rights and privilege level in the PTE to test whether there's a change in protection. So, we save the original vm_prot_t in the PTE as well. Add pmap_pte_prot() to set the proper access rights and privilege level on the PTE given a pmap and the requested protection. The above allows us to compare the protection in pmap_extract_and_hold() which was missing. While in pmap_extract_and_hold(), add pmap locking. While here, clean up most (i.e. all but one) PTE macros we inherited from alpha. They were either unused, used inconsistently, badly named or simply weren't beneficial. We save the wired and managed state of the PTE in distinct (bit) fields. While in pte.h, s/u_int64_t/uint64_t/g pmap locking obtained from: alc@ feedback & review by: alc@ Revision Changes Path 1.146 +92 -171 src/sys/ia64/ia64/pmap.c 1.3 +46 -49 src/sys/ia64/include/pte.h