| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: pmap.c,v 1.221 2008/09/23 21:30:11 martin Exp $ */ | | 1 | /* $NetBSD: pmap.c,v 1.222 2008/10/05 02:07:39 nakayama Exp $ */ |
2 | /* | | 2 | /* |
3 | * | | 3 | * |
4 | * Copyright (C) 1996-1999 Eduardo Horvath. | | 4 | * Copyright (C) 1996-1999 Eduardo Horvath. |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * | | 7 | * |
8 | * Redistribution and use in source and binary forms, with or without | | 8 | * Redistribution and use in source and binary forms, with or without |
9 | * modification, are permitted provided that the following conditions | | 9 | * modification, are permitted provided that the following conditions |
10 | * are met: | | 10 | * are met: |
11 | * 1. Redistributions of source code must retain the above copyright | | 11 | * 1. Redistributions of source code must retain the above copyright |
12 | * notice, this list of conditions and the following disclaimer. | | 12 | * notice, this list of conditions and the following disclaimer. |
13 | * | | 13 | * |
14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND | | 14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND |
| @@ -16,27 +16,27 @@ | | | @@ -16,27 +16,27 @@ |
16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | 16 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
17 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE | | 17 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE |
18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | 18 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | | 19 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
20 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 20 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
21 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | 21 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
22 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 22 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
23 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | | 23 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
24 | * SUCH DAMAGE. | | 24 | * SUCH DAMAGE. |
25 | * | | 25 | * |
26 | */ | | 26 | */ |
27 | | | 27 | |
28 | #include <sys/cdefs.h> | | 28 | #include <sys/cdefs.h> |
29 | __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.221 2008/09/23 21:30:11 martin Exp $"); | | 29 | __KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.222 2008/10/05 02:07:39 nakayama Exp $"); |
30 | | | 30 | |
31 | #undef NO_VCACHE /* Don't forget the locked TLB in dostart */ | | 31 | #undef NO_VCACHE /* Don't forget the locked TLB in dostart */ |
32 | #define HWREF | | 32 | #define HWREF |
33 | | | 33 | |
34 | #include "opt_ddb.h" | | 34 | #include "opt_ddb.h" |
35 | #include "opt_multiprocessor.h" | | 35 | #include "opt_multiprocessor.h" |
36 | | | 36 | |
37 | #include <sys/param.h> | | 37 | #include <sys/param.h> |
38 | #include <sys/malloc.h> | | 38 | #include <sys/malloc.h> |
39 | #include <sys/queue.h> | | 39 | #include <sys/queue.h> |
40 | #include <sys/systm.h> | | 40 | #include <sys/systm.h> |
41 | #include <sys/msgbuf.h> | | 41 | #include <sys/msgbuf.h> |
42 | #include <sys/pool.h> | | 42 | #include <sys/pool.h> |
| @@ -1249,30 +1249,30 @@ pmap_init() | | | @@ -1249,30 +1249,30 @@ pmap_init() |
1249 | 1 /* priv */, | | 1249 | 1 /* priv */, |
1250 | 1 /* Write */, | | 1250 | 1 /* Write */, |
1251 | 1 /* Cacheable */, | | 1251 | 1 /* Cacheable */, |
1252 | FORCE_ALIAS /* ALIAS -- Disable D$ */, | | 1252 | FORCE_ALIAS /* ALIAS -- Disable D$ */, |
1253 | 1 /* valid */, | | 1253 | 1 /* valid */, |
1254 | 0 /* IE */); | | 1254 | 0 /* IE */); |
1255 | pmap_enter_kpage(va, data); | | 1255 | pmap_enter_kpage(va, data); |
1256 | va += PAGE_SIZE; | | 1256 | va += PAGE_SIZE; |
1257 | } | | 1257 | } |
1258 | | | 1258 | |
1259 | /* | | 1259 | /* |
1260 | * initialize the pmap pools. | | 1260 | * initialize the pmap pools. |
1261 | */ | | 1261 | */ |
1262 | pool_cache_bootstrap(&pmap_cache, sizeof(struct pmap), 0, 0, 0, | | 1262 | pool_cache_bootstrap(&pmap_cache, sizeof(struct pmap), BLOCK_SIZE, 0, |
1263 | "pmappl", NULL, IPL_NONE, NULL, NULL, NULL); | | 1263 | 0, "pmappl", NULL, IPL_NONE, NULL, NULL, NULL); |
1264 | pool_cache_bootstrap(&pmap_pv_cache, sizeof(struct pv_entry), 0, 0, 0, | | 1264 | pool_cache_bootstrap(&pmap_pv_cache, sizeof(struct pv_entry), 0, 0, |
1265 | "pv_entry", NULL, IPL_NONE, NULL, NULL, NULL); | | 1265 | PR_LARGECACHE, "pv_entry", NULL, IPL_NONE, NULL, NULL, NULL); |
1266 | | | 1266 | |
1267 | vm_first_phys = avail_start; | | 1267 | vm_first_phys = avail_start; |
1268 | vm_num_phys = avail_end - avail_start; | | 1268 | vm_num_phys = avail_end - avail_start; |
1269 | | | 1269 | |
1270 | mutex_init(&pmap_lock, MUTEX_DEFAULT, IPL_NONE); | | 1270 | mutex_init(&pmap_lock, MUTEX_DEFAULT, IPL_NONE); |
1271 | } | | 1271 | } |
1272 | | | 1272 | |
1273 | /* | | 1273 | /* |
1274 | * How much virtual space is available to the kernel? | | 1274 | * How much virtual space is available to the kernel? |
1275 | */ | | 1275 | */ |
1276 | static vaddr_t kbreak; /* End of kernel VA */ | | 1276 | static vaddr_t kbreak; /* End of kernel VA */ |
1277 | void | | 1277 | void |
1278 | pmap_virtual_space(start, end) | | 1278 | pmap_virtual_space(start, end) |