Module Name: src Committed By: uebayasi Date: Sun Nov 14 13:33:23 UTC 2010
Modified Files: src/sys/arch/alpha/include: pmap.h vmparam.h src/sys/arch/amd64/include: pmap.h vmparam.h src/sys/arch/arm/include/arm32: pmap.h vmparam.h src/sys/arch/hppa/include: pmap.h vmparam.h src/sys/arch/i386/include: pmap.h vmparam.h src/sys/arch/ia64/include: pmap.h vmparam.h src/sys/arch/mips/include: pmap.h vmparam.h src/sys/arch/powerpc/include/oea: pmap.h vmparam.h src/sys/arch/sh3/include: pmap.h vmparam.h src/sys/arch/sparc/include: pmap.h vmparam.h src/sys/arch/sparc64/include: pmap.h vmparam.h src/sys/arch/vax/include: pmap.h vmparam.h Log Message: Move struct vm_page_md definition from vmparam.h to pmap.h, because it's used only by pmap. vmparam.h has definitions for wider audience. All GENERIC kernels build tested, except ia64. powerpc/include/booke/vmparam.h has one too, but it has no pmap.h, so it's left as is. To generate a diff of this commit: cvs rdiff -u -r1.75 -r1.76 src/sys/arch/alpha/include/pmap.h cvs rdiff -u -r1.34 -r1.35 src/sys/arch/alpha/include/vmparam.h cvs rdiff -u -r1.22 -r1.23 src/sys/arch/amd64/include/pmap.h cvs rdiff -u -r1.23 -r1.24 src/sys/arch/amd64/include/vmparam.h cvs rdiff -u -r1.96 -r1.97 src/sys/arch/arm/include/arm32/pmap.h cvs rdiff -u -r1.24 -r1.25 src/sys/arch/arm/include/arm32/vmparam.h cvs rdiff -u -r1.28 -r1.29 src/sys/arch/hppa/include/pmap.h cvs rdiff -u -r1.17 -r1.18 src/sys/arch/hppa/include/vmparam.h cvs rdiff -u -r1.107 -r1.108 src/sys/arch/i386/include/pmap.h cvs rdiff -u -r1.71 -r1.72 src/sys/arch/i386/include/vmparam.h cvs rdiff -u -r1.6 -r1.7 src/sys/arch/ia64/include/pmap.h \ src/sys/arch/ia64/include/vmparam.h cvs rdiff -u -r1.58 -r1.59 src/sys/arch/mips/include/pmap.h cvs rdiff -u -r1.45 -r1.46 src/sys/arch/mips/include/vmparam.h cvs rdiff -u -r1.18 -r1.19 src/sys/arch/powerpc/include/oea/pmap.h cvs rdiff -u -r1.15 -r1.16 src/sys/arch/powerpc/include/oea/vmparam.h cvs rdiff -u -r1.34 -r1.35 src/sys/arch/sh3/include/pmap.h cvs rdiff -u -r1.20 -r1.21 src/sys/arch/sh3/include/vmparam.h cvs rdiff -u -r1.88 -r1.89 src/sys/arch/sparc/include/pmap.h cvs rdiff -u -r1.41 -r1.42 src/sys/arch/sparc/include/vmparam.h cvs rdiff -u -r1.52 -r1.53 src/sys/arch/sparc64/include/pmap.h cvs rdiff -u -r1.31 -r1.32 src/sys/arch/sparc64/include/vmparam.h cvs rdiff -u -r1.78 -r1.79 src/sys/arch/vax/include/pmap.h cvs rdiff -u -r1.46 -r1.47 src/sys/arch/vax/include/vmparam.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/alpha/include/pmap.h diff -u src/sys/arch/alpha/include/pmap.h:1.75 src/sys/arch/alpha/include/pmap.h:1.76 --- src/sys/arch/alpha/include/pmap.h:1.75 Mon Oct 26 03:51:43 2009 +++ src/sys/arch/alpha/include/pmap.h Sun Nov 14 13:33:20 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.75 2009/10/26 03:51:43 thorpej Exp $ */ +/* $NetBSD: pmap.h,v 1.76 2010/11/14 13:33:20 uebayasi Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2001, 2007 The NetBSD Foundation, Inc. @@ -349,6 +349,22 @@ } \ } while (0) +/* + * pmap-specific data store in the vm_page structure. + */ +#define __HAVE_VM_PAGE_MD +struct vm_page_md { + struct pv_entry *pvh_list; /* pv_entry list */ + int pvh_attrs; /* page attributes */ + unsigned pvh_refcnt; +}; + +#define VM_MDPAGE_INIT(pg) \ +do { \ + (pg)->mdpage.pvh_list = NULL; \ + (pg)->mdpage.pvh_refcnt = 0; \ +} while (/*CONSTCOND*/0) + #endif /* _KERNEL */ #endif /* _PMAP_MACHINE_ */ Index: src/sys/arch/alpha/include/vmparam.h diff -u src/sys/arch/alpha/include/vmparam.h:1.34 src/sys/arch/alpha/include/vmparam.h:1.35 --- src/sys/arch/alpha/include/vmparam.h:1.34 Sat Nov 6 15:42:43 2010 +++ src/sys/arch/alpha/include/vmparam.h Sun Nov 14 13:33:20 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.34 2010/11/06 15:42:43 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.35 2010/11/14 13:33:20 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -151,20 +151,4 @@ #define VM_NFREELIST 1 #define VM_FREELIST_DEFAULT 0 -/* - * pmap-specific data store in the vm_page structure. - */ -#define __HAVE_VM_PAGE_MD -struct vm_page_md { - struct pv_entry *pvh_list; /* pv_entry list */ - int pvh_attrs; /* page attributes */ - unsigned pvh_refcnt; -}; - -#define VM_MDPAGE_INIT(pg) \ -do { \ - (pg)->mdpage.pvh_list = NULL; \ - (pg)->mdpage.pvh_refcnt = 0; \ -} while (/*CONSTCOND*/0) - #endif /* ! _ALPHA_VMPARAM_H_ */ Index: src/sys/arch/amd64/include/pmap.h diff -u src/sys/arch/amd64/include/pmap.h:1.22 src/sys/arch/amd64/include/pmap.h:1.23 --- src/sys/arch/amd64/include/pmap.h:1.22 Sun Oct 26 00:08:15 2008 +++ src/sys/arch/amd64/include/pmap.h Sun Nov 14 13:33:20 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.22 2008/10/26 00:08:15 mrg Exp $ */ +/* $NetBSD: pmap.h,v 1.23 2010/11/14 13:33:20 uebayasi Exp $ */ /* * @@ -343,7 +343,18 @@ void pmap_prealloc_lowmem_ptps(void); void pmap_changeprot_local(vaddr_t, vm_prot_t); -#else /* __x86_64__ */ +#include <x86/pmap_pv.h> + +#define __HAVE_VM_PAGE_MD +#define VM_MDPAGE_INIT(pg) \ + memset(&(pg)->mdpage, 0, sizeof((pg)->mdpage)); \ + PMAP_PAGE_INIT(&(pg)->mdpage.mp_pp) + +struct vm_page_md { + struct pmap_page mp_pp; +}; + +#else /* !__x86_64__ */ #include <i386/pmap.h> Index: src/sys/arch/amd64/include/vmparam.h diff -u src/sys/arch/amd64/include/vmparam.h:1.23 src/sys/arch/amd64/include/vmparam.h:1.24 --- src/sys/arch/amd64/include/vmparam.h:1.23 Sat Nov 6 15:42:44 2010 +++ src/sys/arch/amd64/include/vmparam.h Sun Nov 14 13:33:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.23 2010/11/06 15:42:44 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.24 2010/11/14 13:33:21 uebayasi Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -156,17 +156,6 @@ #define VM_FREELIST_FIRST4G 1 #define VM_FREELIST_FIRST16 2 -#include <x86/pmap_pv.h> - -#define __HAVE_VM_PAGE_MD -#define VM_MDPAGE_INIT(pg) \ - memset(&(pg)->mdpage, 0, sizeof((pg)->mdpage)); \ - PMAP_PAGE_INIT(&(pg)->mdpage.mp_pp) - -struct vm_page_md { - struct pmap_page mp_pp; -}; - #else /* !__x86_64__ */ #include <i386/vmparam.h> Index: src/sys/arch/arm/include/arm32/pmap.h diff -u src/sys/arch/arm/include/arm32/pmap.h:1.96 src/sys/arch/arm/include/arm32/pmap.h:1.97 --- src/sys/arch/arm/include/arm32/pmap.h:1.96 Tue Nov 2 06:07:06 2010 +++ src/sys/arch/arm/include/arm32/pmap.h Sun Nov 14 13:33:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.96 2010/11/02 06:07:06 uebayasi Exp $ */ +/* $NetBSD: pmap.h,v 1.97 2010/11/14 13:33:21 uebayasi Exp $ */ /* * Copyright (c) 2002, 2003 Wasabi Systems, Inc. @@ -762,6 +762,50 @@ */ #define POOL_VTOPHYS(va) vtophys((vaddr_t) (va)) +#ifndef _LOCORE + +/* + * pmap-specific data store in the vm_page structure. + */ +#define __HAVE_VM_PAGE_MD +struct vm_page_md { + SLIST_HEAD(,pv_entry) pvh_list; /* pv_entry list */ + struct simplelock pvh_slock; /* lock on this head */ + int pvh_attrs; /* page attributes */ + u_int uro_mappings; + u_int urw_mappings; + union { + u_short s_mappings[2]; /* Assume kernel count <= 65535 */ + u_int i_mappings; + } k_u; +#define kro_mappings k_u.s_mappings[0] +#define krw_mappings k_u.s_mappings[1] +#define k_mappings k_u.i_mappings +}; + +/* + * Set the default color of each page. + */ +#if ARM_MMU_V6 > 0 +#define VM_MDPAGE_PVH_ATTRS_INIT(pg) \ + (pg)->mdpage.pvh_attrs = (pg)->phys_addr & arm_cache_prefer_mask +#else +#define VM_MDPAGE_PVH_ATTRS_INIT(pg) \ + (pg)->mdpage.pvh_attrs = 0 +#endif + +#define VM_MDPAGE_INIT(pg) \ +do { \ + SLIST_INIT(&(pg)->mdpage.pvh_list); \ + simple_lock_init(&(pg)->mdpage.pvh_slock); \ + VM_MDPAGE_PVH_ATTRS_INIT(pg); \ + (pg)->mdpage.uro_mappings = 0; \ + (pg)->mdpage.urw_mappings = 0; \ + (pg)->mdpage.k_mappings = 0; \ +} while (/*CONSTCOND*/0) + +#endif /* !_LOCORE */ + #endif /* _KERNEL */ #endif /* _ARM32_PMAP_H_ */ Index: src/sys/arch/arm/include/arm32/vmparam.h diff -u src/sys/arch/arm/include/arm32/vmparam.h:1.24 src/sys/arch/arm/include/arm32/vmparam.h:1.25 --- src/sys/arch/arm/include/arm32/vmparam.h:1.24 Fri Mar 6 20:31:47 2009 +++ src/sys/arch/arm/include/arm32/vmparam.h Sun Nov 14 13:33:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.24 2009/03/06 20:31:47 joerg Exp $ */ +/* $NetBSD: vmparam.h,v 1.25 2010/11/14 13:33:21 uebayasi Exp $ */ /* * Copyright (c) 2001, 2002 Wasabi Systems, Inc. @@ -96,47 +96,6 @@ #define VM_MAX_KERNEL_BUF \ ((virtual_end - virtual_avail) * 4 / 10) #endif - -/* - * pmap-specific data store in the vm_page structure. - */ -#define __HAVE_VM_PAGE_MD -struct vm_page_md { - SLIST_HEAD(,pv_entry) pvh_list; /* pv_entry list */ - struct simplelock pvh_slock; /* lock on this head */ - int pvh_attrs; /* page attributes */ - u_int uro_mappings; - u_int urw_mappings; - union { - u_short s_mappings[2]; /* Assume kernel count <= 65535 */ - u_int i_mappings; - } k_u; -#define kro_mappings k_u.s_mappings[0] -#define krw_mappings k_u.s_mappings[1] -#define k_mappings k_u.i_mappings -}; - -/* - * Set the default color of each page. - */ -#if ARM_MMU_V6 > 0 -#define VM_MDPAGE_PVH_ATTRS_INIT(pg) \ - (pg)->mdpage.pvh_attrs = (pg)->phys_addr & arm_cache_prefer_mask -#else -#define VM_MDPAGE_PVH_ATTRS_INIT(pg) \ - (pg)->mdpage.pvh_attrs = 0 -#endif - - -#define VM_MDPAGE_INIT(pg) \ -do { \ - SLIST_INIT(&(pg)->mdpage.pvh_list); \ - simple_lock_init(&(pg)->mdpage.pvh_slock); \ - VM_MDPAGE_PVH_ATTRS_INIT(pg); \ - (pg)->mdpage.uro_mappings = 0; \ - (pg)->mdpage.urw_mappings = 0; \ - (pg)->mdpage.k_mappings = 0; \ -} while (/*CONSTCOND*/0) #endif /* __ASSEMBLER__ */ #endif /* _KERNEL */ Index: src/sys/arch/hppa/include/pmap.h diff -u src/sys/arch/hppa/include/pmap.h:1.28 src/sys/arch/hppa/include/pmap.h:1.29 --- src/sys/arch/hppa/include/pmap.h:1.28 Tue Jul 6 20:50:34 2010 +++ src/sys/arch/hppa/include/pmap.h Sun Nov 14 13:33:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.28 2010/07/06 20:50:34 cegger Exp $ */ +/* $NetBSD: pmap.h,v 1.29 2010/11/14 13:33:21 uebayasi Exp $ */ /* $OpenBSD: pmap.h,v 1.35 2007/12/14 18:32:23 deraadt Exp $ */ @@ -192,6 +192,25 @@ ((((va) & 0xc0000000) != 0xc0000000) ? \ (pmap)->pm_space : HPPA_SID_KERNEL) +#define __HAVE_VM_PAGE_MD + +struct pv_entry; + +struct vm_page_md { + struct kmutex pvh_lock; /* locks every pv on this list */ + struct pv_entry *pvh_list; /* head of list (locked by pvh_lock) */ + u_int pvh_attrs; /* to preserve ref/mod */ + int pvh_aliases; /* alias counting */ +}; + +#define VM_MDPAGE_INIT(pg) \ +do { \ + mutex_init(&(pg)->mdpage.pvh_lock, MUTEX_NODEBUG, IPL_VM); \ + (pg)->mdpage.pvh_list = NULL; \ + (pg)->mdpage.pvh_attrs = 0; \ + (pg)->mdpage.pvh_aliases = 0; \ +} while (0) + #endif /* _KERNEL */ #endif /* _HPPA_PMAP_H_ */ Index: src/sys/arch/hppa/include/vmparam.h diff -u src/sys/arch/hppa/include/vmparam.h:1.17 src/sys/arch/hppa/include/vmparam.h:1.18 --- src/sys/arch/hppa/include/vmparam.h:1.17 Sun Nov 14 03:16:04 2010 +++ src/sys/arch/hppa/include/vmparam.h Sun Nov 14 13:33:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.17 2010/11/14 03:16:04 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.18 2010/11/14 13:33:21 uebayasi Exp $ */ /* $OpenBSD: vmparam.h,v 1.33 2006/06/04 17:21:24 miod Exp $ */ @@ -101,25 +101,4 @@ #define VM_FREELIST_DEFAULT 0 #define VM_FREELIST_ISADMA 1 -#if defined(_KERNEL) && !defined(_LOCORE) -#define __HAVE_VM_PAGE_MD - -struct pv_entry; - -struct vm_page_md { - struct kmutex pvh_lock; /* locks every pv on this list */ - struct pv_entry *pvh_list; /* head of list (locked by pvh_lock) */ - u_int pvh_attrs; /* to preserve ref/mod */ - int pvh_aliases; /* alias counting */ -}; - -#define VM_MDPAGE_INIT(pg) \ -do { \ - mutex_init(&(pg)->mdpage.pvh_lock, MUTEX_NODEBUG, IPL_VM); \ - (pg)->mdpage.pvh_list = NULL; \ - (pg)->mdpage.pvh_attrs = 0; \ - (pg)->mdpage.pvh_aliases = 0; \ -} while (0) -#endif - #endif /* _HPPA_VMPARAM_H_ */ Index: src/sys/arch/i386/include/pmap.h diff -u src/sys/arch/i386/include/pmap.h:1.107 src/sys/arch/i386/include/pmap.h:1.108 --- src/sys/arch/i386/include/pmap.h:1.107 Sat Jul 24 00:45:55 2010 +++ src/sys/arch/i386/include/pmap.h Sun Nov 14 13:33:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.107 2010/07/24 00:45:55 jym Exp $ */ +/* $NetBSD: pmap.h,v 1.108 2010/11/14 13:33:21 uebayasi Exp $ */ /* * @@ -447,4 +447,15 @@ int pmap_exec_fixup(struct vm_map *, struct trapframe *, struct pcb *); void pmap_ldt_cleanup(struct lwp *); +#include <x86/pmap_pv.h> + +#define __HAVE_VM_PAGE_MD +#define VM_MDPAGE_INIT(pg) \ + memset(&(pg)->mdpage, 0, sizeof((pg)->mdpage)); \ + PMAP_PAGE_INIT(&(pg)->mdpage.mp_pp) + +struct vm_page_md { + struct pmap_page mp_pp; +}; + #endif /* _I386_PMAP_H_ */ Index: src/sys/arch/i386/include/vmparam.h diff -u src/sys/arch/i386/include/vmparam.h:1.71 src/sys/arch/i386/include/vmparam.h:1.72 --- src/sys/arch/i386/include/vmparam.h:1.71 Sat Nov 6 15:42:45 2010 +++ src/sys/arch/i386/include/vmparam.h Sun Nov 14 13:33:21 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.71 2010/11/06 15:42:45 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.72 2010/11/14 13:33:21 uebayasi Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -133,15 +133,4 @@ #endif /* XEN */ #define VM_FREELIST_DEFAULT 0 -#include <x86/pmap_pv.h> - -#define __HAVE_VM_PAGE_MD -#define VM_MDPAGE_INIT(pg) \ - memset(&(pg)->mdpage, 0, sizeof((pg)->mdpage)); \ - PMAP_PAGE_INIT(&(pg)->mdpage.mp_pp) - -struct vm_page_md { - struct pmap_page mp_pp; -}; - #endif /* _I386_VMPARAM_H_ */ Index: src/sys/arch/ia64/include/pmap.h diff -u src/sys/arch/ia64/include/pmap.h:1.6 src/sys/arch/ia64/include/pmap.h:1.7 --- src/sys/arch/ia64/include/pmap.h:1.6 Mon Jul 20 04:41:37 2009 +++ src/sys/arch/ia64/include/pmap.h Sun Nov 14 13:33:22 2010 @@ -146,4 +146,23 @@ #define PMAP_VHPT_LOG2SIZE 16 +#include <sys/queue.h> +#include <sys/mutex.h> +/* + * pmap-specific data store in the vm_page structure. + */ +#define __HAVE_VM_PAGE_MD +struct vm_page_md { + TAILQ_HEAD(,pv_entry) pv_list; /* pv_entry list */ + int pv_list_count; + kmutex_t pv_mutex; /* lock on this head */ + int pvh_attrs; /* page attributes */ +}; + +#define VM_MDPAGE_INIT(pg) \ +do { \ + TAILQ_INIT(&(pg)->mdpage.pv_list); \ + mutex_init(&(pg)->mdpage.pv_mutex, MUTEX_DEFAULT, IPL_NONE); \ +} while (/*CONSTCOND*/0) + #endif /* _PMAP_MACHINE_ */ Index: src/sys/arch/ia64/include/vmparam.h diff -u src/sys/arch/ia64/include/vmparam.h:1.6 src/sys/arch/ia64/include/vmparam.h:1.7 --- src/sys/arch/ia64/include/vmparam.h:1.6 Sat Nov 6 15:42:46 2010 +++ src/sys/arch/ia64/include/vmparam.h Sun Nov 14 13:33:22 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.6 2010/11/06 15:42:46 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.7 2010/11/14 13:33:22 uebayasi Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -109,26 +109,4 @@ /* virtual sizes (bytes) for various kernel submaps */ #define VM_PHYS_SIZE (USRIOSIZE*PAGE_SIZE) -#ifndef _LOCORE - -#include <sys/queue.h> -#include <sys/mutex.h> -/* - * pmap-specific data store in the vm_page structure. - */ -#define __HAVE_VM_PAGE_MD -struct vm_page_md { - TAILQ_HEAD(,pv_entry) pv_list; /* pv_entry list */ - int pv_list_count; - kmutex_t pv_mutex; /* lock on this head */ - int pvh_attrs; /* page attributes */ -}; - -#define VM_MDPAGE_INIT(pg) \ -do { \ - TAILQ_INIT(&(pg)->mdpage.pv_list); \ - mutex_init(&(pg)->mdpage.pv_mutex, MUTEX_DEFAULT, IPL_NONE); \ -} while (/*CONSTCOND*/0) -#endif /*_LOCORE*/ - #endif /* _VMPARAM_H_ */ Index: src/sys/arch/mips/include/pmap.h diff -u src/sys/arch/mips/include/pmap.h:1.58 src/sys/arch/mips/include/pmap.h:1.59 --- src/sys/arch/mips/include/pmap.h:1.58 Tue Jul 6 20:50:34 2010 +++ src/sys/arch/mips/include/pmap.h Sun Nov 14 13:33:22 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.58 2010/07/06 20:50:34 cegger Exp $ */ +/* $NetBSD: pmap.h,v 1.59 2010/11/14 13:33:22 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -205,5 +205,20 @@ #define PGC_NOCACHE 0x4000000000000000ULL #endif +#define __HAVE_VM_PAGE_MD + +/* + * pmap-specific data stored in the vm_page structure. + */ +struct vm_page_md { + struct pv_entry *pvh_list; /* pv_entry list */ + u_int pvh_attrs; /* page attributes */ +}; + +#define VM_MDPAGE_INIT(pg) \ +do { \ + (pg)->mdpage.pvh_list = NULL; \ +} while (/* CONSTCOND */ 0) + #endif /* _KERNEL */ #endif /* _MIPS_PMAP_H_ */ Index: src/sys/arch/mips/include/vmparam.h diff -u src/sys/arch/mips/include/vmparam.h:1.45 src/sys/arch/mips/include/vmparam.h:1.46 --- src/sys/arch/mips/include/vmparam.h:1.45 Sat Nov 6 15:42:47 2010 +++ src/sys/arch/mips/include/vmparam.h Sun Nov 14 13:33:22 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.45 2010/11/06 15:42:47 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.46 2010/11/14 13:33:22 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -201,21 +201,6 @@ /* VM_PHYSSEG_MAX defined by platform-dependent code. */ #define VM_PHYSSEG_STRAT VM_PSTRAT_BSEARCH -#define __HAVE_VM_PAGE_MD - -/* - * pmap-specific data stored in the vm_page structure. - */ -struct vm_page_md { - struct pv_entry *pvh_list; /* pv_entry list */ - u_int pvh_attrs; /* page attributes */ -}; - -#define VM_MDPAGE_INIT(pg) \ -do { \ - (pg)->mdpage.pvh_list = NULL; \ -} while (/* CONSTCOND */ 0) - #ifndef VM_NFREELIST #define VM_NFREELIST 16 /* 16 distinct memory segments */ #define VM_FREELIST_DEFAULT 0 Index: src/sys/arch/powerpc/include/oea/pmap.h diff -u src/sys/arch/powerpc/include/oea/pmap.h:1.18 src/sys/arch/powerpc/include/oea/pmap.h:1.19 --- src/sys/arch/powerpc/include/oea/pmap.h:1.18 Sat Nov 7 07:27:45 2009 +++ src/sys/arch/powerpc/include/oea/pmap.h Sun Nov 14 13:33:22 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.18 2009/11/07 07:27:45 cegger Exp $ */ +/* $NetBSD: pmap.h,v 1.19 2010/11/14 13:33:22 uebayasi Exp $ */ /*- * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -253,6 +253,20 @@ void pmap_zero_page(paddr_t); void pmap_copy_page(paddr_t, paddr_t); +LIST_HEAD(pvo_head, pvo_entry); + +#define __HAVE_VM_PAGE_MD + +struct vm_page_md { + struct pvo_head mdpg_pvoh; + unsigned int mdpg_attrs; +}; + +#define VM_MDPAGE_INIT(pg) do { \ + LIST_INIT(&(pg)->mdpage.mdpg_pvoh); \ + (pg)->mdpage.mdpg_attrs = 0; \ +} while (/*CONSTCOND*/0) + __END_DECLS #endif /* _KERNEL */ #endif /* _LOCORE */ Index: src/sys/arch/powerpc/include/oea/vmparam.h diff -u src/sys/arch/powerpc/include/oea/vmparam.h:1.15 src/sys/arch/powerpc/include/oea/vmparam.h:1.16 --- src/sys/arch/powerpc/include/oea/vmparam.h:1.15 Sat Nov 6 15:42:48 2010 +++ src/sys/arch/powerpc/include/oea/vmparam.h Sun Nov 14 13:33:22 2010 @@ -194,22 +194,4 @@ #define VM_FREELIST_FIRST16 2 #define VM_FREELIST_MAX 3 -#ifndef _LOCORE - -LIST_HEAD(pvo_head, pvo_entry); - -#define __HAVE_VM_PAGE_MD - -struct vm_page_md { - struct pvo_head mdpg_pvoh; - unsigned int mdpg_attrs; -}; - -#define VM_MDPAGE_INIT(pg) do { \ - LIST_INIT(&(pg)->mdpage.mdpg_pvoh); \ - (pg)->mdpage.mdpg_attrs = 0; \ -} while (/*CONSTCOND*/0) - -#endif /* _LOCORE */ - #endif /* _POWERPC_OEA_VMPARAM_H_ */ Index: src/sys/arch/sh3/include/pmap.h diff -u src/sys/arch/sh3/include/pmap.h:1.34 src/sys/arch/sh3/include/pmap.h:1.35 --- src/sys/arch/sh3/include/pmap.h:1.34 Wed Oct 21 21:12:02 2009 +++ src/sys/arch/sh3/include/pmap.h Sun Nov 14 13:33:22 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.34 2009/10/21 21:12:02 rmind Exp $ */ +/* $NetBSD: pmap.h,v 1.35 2010/11/14 13:33:22 uebayasi Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -83,4 +83,22 @@ pt_entry_t *__pmap_pte_lookup(pmap_t, vaddr_t); pt_entry_t *__pmap_kpte_lookup(vaddr_t); bool __pmap_pte_load(pmap_t, vaddr_t, int); + +/* pmap-specific data store in the vm_page structure. */ +#define __HAVE_VM_PAGE_MD +#define PVH_REFERENCED 1 +#define PVH_MODIFIED 2 + +struct pv_entry; +struct vm_page_md { + SLIST_HEAD(, pv_entry) pvh_head; + int pvh_flags; +}; + +#define VM_MDPAGE_INIT(pg) \ +do { \ + struct vm_page_md *pvh = &(pg)->mdpage; \ + SLIST_INIT(&pvh->pvh_head); \ + pvh->pvh_flags = 0; \ +} while (/*CONSTCOND*/0) #endif /* !_SH3_PMAP_H_ */ Index: src/sys/arch/sh3/include/vmparam.h diff -u src/sys/arch/sh3/include/vmparam.h:1.20 src/sys/arch/sh3/include/vmparam.h:1.21 --- src/sys/arch/sh3/include/vmparam.h:1.20 Sat Nov 6 15:42:48 2010 +++ src/sys/arch/sh3/include/vmparam.h Sun Nov 14 13:33:22 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.20 2010/11/06 15:42:48 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.21 2010/11/14 13:33:22 uebayasi Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -83,24 +83,4 @@ #define sh3_trunc_page(x) ((uint32_t)(x) & ~PGOFSET) #define sh3_btop(x) ((uint32_t)(x) >> PGSHIFT) #define sh3_ptob(x) ((uint32_t)(x) << PGSHIFT) - -/* pmap-specific data store in the vm_page structure. */ -#define __HAVE_VM_PAGE_MD -#define PVH_REFERENCED 1 -#define PVH_MODIFIED 2 - -#ifndef _LOCORE -struct pv_entry; -struct vm_page_md { - SLIST_HEAD(, pv_entry) pvh_head; - int pvh_flags; -}; - -#define VM_MDPAGE_INIT(pg) \ -do { \ - struct vm_page_md *pvh = &(pg)->mdpage; \ - SLIST_INIT(&pvh->pvh_head); \ - pvh->pvh_flags = 0; \ -} while (/*CONSTCOND*/0) -#endif /* _LOCORE */ #endif /* !_SH3_VMPARAM_H_ */ Index: src/sys/arch/sparc/include/pmap.h diff -u src/sys/arch/sparc/include/pmap.h:1.88 src/sys/arch/sparc/include/pmap.h:1.89 --- src/sys/arch/sparc/include/pmap.h:1.88 Sat Nov 21 04:16:51 2009 +++ src/sys/arch/sparc/include/pmap.h Sun Nov 14 13:33:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.88 2009/11/21 04:16:51 rmind Exp $ */ +/* $NetBSD: pmap.h,v 1.89 2010/11/14 13:33:23 uebayasi Exp $ */ /* * Copyright (c) 1996 @@ -390,6 +390,32 @@ #endif /* SUN4M || SUN4D */ +#define __HAVE_VM_PAGE_MD + +/* + * For each managed physical page, there is a list of all currently + * valid virtual mappings of that page. Since there is usually one + * (or zero) mapping per page, the table begins with an initial entry, + * rather than a pointer; this head entry is empty iff its pv_pmap + * field is NULL. + */ +struct vm_page_md { + struct pvlist { + struct pvlist *pv_next; /* next pvlist, if any */ + struct pmap *pv_pmap; /* pmap of this va */ + vaddr_t pv_va; /* virtual address */ + int pv_flags; /* flags (below) */ + } pvlisthead; +}; +#define VM_MDPAGE_PVHEAD(pg) (&(pg)->mdpage.pvlisthead) + +#define VM_MDPAGE_INIT(pg) do { \ + (pg)->mdpage.pvlisthead.pv_next = NULL; \ + (pg)->mdpage.pvlisthead.pv_pmap = NULL; \ + (pg)->mdpage.pvlisthead.pv_va = 0; \ + (pg)->mdpage.pvlisthead.pv_flags = 0; \ +} while(/*CONSTCOND*/0) + #endif /* _KERNEL */ #endif /* _SPARC_PMAP_H_ */ Index: src/sys/arch/sparc/include/vmparam.h diff -u src/sys/arch/sparc/include/vmparam.h:1.41 src/sys/arch/sparc/include/vmparam.h:1.42 --- src/sys/arch/sparc/include/vmparam.h:1.41 Sat Nov 6 15:42:49 2010 +++ src/sys/arch/sparc/include/vmparam.h Sun Nov 14 13:33:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.41 2010/11/06 15:42:49 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.42 2010/11/14 13:33:23 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -118,30 +118,4 @@ #define VM_NFREELIST 1 #define VM_FREELIST_DEFAULT 0 -#define __HAVE_VM_PAGE_MD - -/* - * For each managed physical page, there is a list of all currently - * valid virtual mappings of that page. Since there is usually one - * (or zero) mapping per page, the table begins with an initial entry, - * rather than a pointer; this head entry is empty iff its pv_pmap - * field is NULL. - */ -struct vm_page_md { - struct pvlist { - struct pvlist *pv_next; /* next pvlist, if any */ - struct pmap *pv_pmap; /* pmap of this va */ - vaddr_t pv_va; /* virtual address */ - int pv_flags; /* flags (below) */ - } pvlisthead; -}; -#define VM_MDPAGE_PVHEAD(pg) (&(pg)->mdpage.pvlisthead) - -#define VM_MDPAGE_INIT(pg) do { \ - (pg)->mdpage.pvlisthead.pv_next = NULL; \ - (pg)->mdpage.pvlisthead.pv_pmap = NULL; \ - (pg)->mdpage.pvlisthead.pv_va = 0; \ - (pg)->mdpage.pvlisthead.pv_flags = 0; \ -} while(/*CONSTCOND*/0) - #endif /* _SPARC_VMPARAM_H_ */ Index: src/sys/arch/sparc64/include/pmap.h diff -u src/sys/arch/sparc64/include/pmap.h:1.52 src/sys/arch/sparc64/include/pmap.h:1.53 --- src/sys/arch/sparc64/include/pmap.h:1.52 Sat Mar 6 08:08:29 2010 +++ src/sys/arch/sparc64/include/pmap.h Sun Nov 14 13:33:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.52 2010/03/06 08:08:29 mrg Exp $ */ +/* $NetBSD: pmap.h,v 1.53 2010/11/14 13:33:23 uebayasi Exp $ */ /*- * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -210,6 +210,30 @@ extern int phys_installed_size; extern struct mem_region *phys_installed; +#define __HAVE_VM_PAGE_MD + +/* + * For each struct vm_page, there is a list of all currently valid virtual + * mappings of that page. An entry is a pv_entry_t. + */ +struct pmap; +typedef struct pv_entry { + struct pv_entry *pv_next; /* next pv_entry */ + struct pmap *pv_pmap; /* pmap where mapping lies */ + vaddr_t pv_va; /* virtual address for mapping */ +} *pv_entry_t; +/* PV flags encoded in the low bits of the VA of the first pv_entry */ + +struct vm_page_md { + struct pv_entry mdpg_pvh; +}; +#define VM_MDPAGE_INIT(pg) \ +do { \ + (pg)->mdpage.mdpg_pvh.pv_next = NULL; \ + (pg)->mdpage.mdpg_pvh.pv_pmap = NULL; \ + (pg)->mdpage.mdpg_pvh.pv_va = 0; \ +} while (/*CONSTCOND*/0) + #endif /* _KERNEL */ #endif /* _LOCORE */ Index: src/sys/arch/sparc64/include/vmparam.h diff -u src/sys/arch/sparc64/include/vmparam.h:1.31 src/sys/arch/sparc64/include/vmparam.h:1.32 --- src/sys/arch/sparc64/include/vmparam.h:1.31 Sat Nov 6 15:42:49 2010 +++ src/sys/arch/sparc64/include/vmparam.h Sun Nov 14 13:33:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.31 2010/11/06 15:42:49 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.32 2010/11/14 13:33:23 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -169,32 +169,4 @@ #define VM_NFREELIST 1 #define VM_FREELIST_DEFAULT 0 -#ifdef _KERNEL - -#define __HAVE_VM_PAGE_MD - -/* - * For each struct vm_page, there is a list of all currently valid virtual - * mappings of that page. An entry is a pv_entry_t. - */ -struct pmap; -typedef struct pv_entry { - struct pv_entry *pv_next; /* next pv_entry */ - struct pmap *pv_pmap; /* pmap where mapping lies */ - vaddr_t pv_va; /* virtual address for mapping */ -} *pv_entry_t; -/* PV flags encoded in the low bits of the VA of the first pv_entry */ - -struct vm_page_md { - struct pv_entry mdpg_pvh; -}; -#define VM_MDPAGE_INIT(pg) \ -do { \ - (pg)->mdpage.mdpg_pvh.pv_next = NULL; \ - (pg)->mdpage.mdpg_pvh.pv_pmap = NULL; \ - (pg)->mdpage.mdpg_pvh.pv_va = 0; \ -} while (/*CONSTCOND*/0) - -#endif /* _KERNEL */ - #endif Index: src/sys/arch/vax/include/pmap.h diff -u src/sys/arch/vax/include/pmap.h:1.78 src/sys/arch/vax/include/pmap.h:1.79 --- src/sys/arch/vax/include/pmap.h:1.78 Fri Nov 12 13:35:51 2010 +++ src/sys/arch/vax/include/pmap.h Sun Nov 14 13:33:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.78 2010/11/12 13:35:51 uebayasi Exp $ */ +/* $NetBSD: pmap.h,v 1.79 2010/11/14 13:33:23 uebayasi Exp $ */ /* * Copyright (c) 1991 Regents of the University of California. @@ -289,4 +289,14 @@ void pmap_bootstrap(void); vaddr_t pmap_map(vaddr_t, vaddr_t, vaddr_t, int); +#if 0 +#define __HAVE_VM_PAGE_MD + +struct vm_page_md { + unsigned int md_attrs; +}; + +#define VM_MDPAGE_INIT(pg) ((pg)->mdpage.md_attrs = 0) +#endif + #endif /* PMAP_H */ Index: src/sys/arch/vax/include/vmparam.h diff -u src/sys/arch/vax/include/vmparam.h:1.46 src/sys/arch/vax/include/vmparam.h:1.47 --- src/sys/arch/vax/include/vmparam.h:1.46 Sat Nov 6 15:42:50 2010 +++ src/sys/arch/vax/include/vmparam.h Sun Nov 14 13:33:23 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vmparam.h,v 1.46 2010/11/06 15:42:50 uebayasi Exp $ */ +/* $NetBSD: vmparam.h,v 1.47 2010/11/14 13:33:23 uebayasi Exp $ */ /*- * Copyright (c) 1990 The Regents of the University of California. @@ -108,15 +108,4 @@ #define USRIOSIZE (8 * VAX_NPTEPG) /* 512MB */ #define VM_PHYS_SIZE (USRIOSIZE*VAX_NBPG) -#if 0 -#define __HAVE_VM_PAGE_MD - -struct vm_page_md { - unsigned int md_attrs; -}; - -#define VM_MDPAGE_INIT(pg) ((pg)->mdpage.md_attrs = 0) -#endif - - #endif