Make "pmaps" (list of non-kernel pmaps) and "pmaps_lock" externally

visible. Required by pmap MD code that could reside in other
files, notably Xen's pmap.
This commit is contained in:
jym 2011-10-18 23:14:28 +00:00
parent 61b0782790
commit 0d68d0e3ba
2 changed files with 13 additions and 10 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: pmap.h,v 1.42 2011/09/20 00:12:23 jym Exp $ */ /* $NetBSD: pmap.h,v 1.43 2011/10/18 23:14:28 jym Exp $ */
/* /*
* Copyright (c) 1997 Charles D. Cranor and Washington University. * Copyright (c) 1997 Charles D. Cranor and Washington University.
@ -118,6 +118,12 @@
LIST_HEAD(pmap_head, pmap); /* struct pmap_head: head of a pmap list */ LIST_HEAD(pmap_head, pmap); /* struct pmap_head: head of a pmap list */
/*
* linked list of all non-kernel pmaps
*/
extern struct pmap_head pmaps;
extern kmutex_t pmaps_lock; /* protects pmaps */
/* /*
* the pmap structure * the pmap structure
* *
@ -245,6 +251,8 @@ u_int x86_mmap_flags(paddr_t);
bool pmap_is_curpmap(struct pmap *); bool pmap_is_curpmap(struct pmap *);
void pmap_invalidate_pool_caches(void);
vaddr_t reserve_dumppages(vaddr_t); /* XXX: not a pmap fn */ vaddr_t reserve_dumppages(vaddr_t); /* XXX: not a pmap fn */
typedef enum tlbwhy { typedef enum tlbwhy {

View File

@ -1,4 +1,4 @@
/* $NetBSD: pmap.c,v 1.135 2011/10/11 23:53:31 yamt Exp $ */ /* $NetBSD: pmap.c,v 1.136 2011/10/18 23:14:28 jym Exp $ */
/*- /*-
* Copyright (c) 2008, 2010 The NetBSD Foundation, Inc. * Copyright (c) 2008, 2010 The NetBSD Foundation, Inc.
@ -171,7 +171,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.135 2011/10/11 23:53:31 yamt Exp $"); __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.136 2011/10/18 23:14:28 jym Exp $");
#include "opt_user_ldt.h" #include "opt_user_ldt.h"
#include "opt_lockdebug.h" #include "opt_lockdebug.h"
@ -325,7 +325,8 @@ pd_entry_t * const normal_pdes[] = PDES_INITIALIZER;
long nkptp[] = NKPTP_INITIALIZER; long nkptp[] = NKPTP_INITIALIZER;
static kmutex_t pmaps_lock; struct pmap_head pmaps;
kmutex_t pmaps_lock;
static vaddr_t pmap_maxkvaddr; static vaddr_t pmap_maxkvaddr;
@ -480,12 +481,6 @@ static bool pmap_initialized __read_mostly = false; /* pmap_init done yet? */
static vaddr_t virtual_avail __read_mostly; /* VA of first free KVA */ static vaddr_t virtual_avail __read_mostly; /* VA of first free KVA */
static vaddr_t virtual_end __read_mostly; /* VA of last free KVA */ static vaddr_t virtual_end __read_mostly; /* VA of last free KVA */
/*
* linked list of all non-kernel pmaps
*/
static struct pmap_head pmaps;
/* /*
* pool that pmap structures are allocated from * pool that pmap structures are allocated from
*/ */