| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: pmap.h,v 1.67 2017/06/17 08:07:03 maxv Exp $ */ | | 1 | /* $NetBSD: pmap.h,v 1.68 2017/09/29 03:17:18 ozaki-r Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright (c) 1997 Charles D. Cranor and Washington University. | | 4 | * Copyright (c) 1997 Charles D. Cranor and Washington University. |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * Redistribution and use in source and binary forms, with or without | | 7 | * Redistribution and use in source and binary forms, with or without |
8 | * modification, are permitted provided that the following conditions | | 8 | * modification, are permitted provided that the following conditions |
9 | * are met: | | 9 | * are met: |
10 | * 1. Redistributions of source code must retain the above copyright | | 10 | * 1. Redistributions of source code must retain the above copyright |
11 | * notice, this list of conditions and the following disclaimer. | | 11 | * notice, this list of conditions and the following disclaimer. |
12 | * 2. Redistributions in binary form must reproduce the above copyright | | 12 | * 2. Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the | | 13 | * notice, this list of conditions and the following disclaimer in the |
14 | * documentation and/or other materials provided with the distribution. | | 14 | * documentation and/or other materials provided with the distribution. |
| @@ -190,26 +190,27 @@ struct pmap { | | | @@ -190,26 +190,27 @@ struct pmap { |
190 | | | 190 | |
191 | /* | | 191 | /* |
192 | * PDPpaddr is the physical address of the kernel's PDP. | | 192 | * PDPpaddr is the physical address of the kernel's PDP. |
193 | * - i386 non-PAE and amd64: PDPpaddr corresponds directly to the %cr3 | | 193 | * - i386 non-PAE and amd64: PDPpaddr corresponds directly to the %cr3 |
194 | * value associated to the kernel process, proc0. | | 194 | * value associated to the kernel process, proc0. |
195 | * - i386 PAE: it still represents the PA of the kernel's PDP (L2). Due to | | 195 | * - i386 PAE: it still represents the PA of the kernel's PDP (L2). Due to |
196 | * the L3 PD, it cannot be considered as the equivalent of a %cr3 any more. | | 196 | * the L3 PD, it cannot be considered as the equivalent of a %cr3 any more. |
197 | * - Xen: it corresponds to the PFN of the kernel's PDP. | | 197 | * - Xen: it corresponds to the PFN of the kernel's PDP. |
198 | */ | | 198 | */ |
199 | extern u_long PDPpaddr; | | 199 | extern u_long PDPpaddr; |
200 | | | 200 | |
201 | extern pd_entry_t pmap_pg_g; /* do we support PG_G? */ | | 201 | extern pd_entry_t pmap_pg_g; /* do we support PG_G? */ |
202 | extern pd_entry_t pmap_pg_nx; /* do we support PG_NX? */ | | 202 | extern pd_entry_t pmap_pg_nx; /* do we support PG_NX? */ |
| | | 203 | extern int pmap_largepages; |
203 | extern long nkptp[PTP_LEVELS]; | | 204 | extern long nkptp[PTP_LEVELS]; |
204 | | | 205 | |
205 | /* | | 206 | /* |
206 | * macros | | 207 | * macros |
207 | */ | | 208 | */ |
208 | | | 209 | |
209 | #define pmap_resident_count(pmap) ((pmap)->pm_stats.resident_count) | | 210 | #define pmap_resident_count(pmap) ((pmap)->pm_stats.resident_count) |
210 | #define pmap_wired_count(pmap) ((pmap)->pm_stats.wired_count) | | 211 | #define pmap_wired_count(pmap) ((pmap)->pm_stats.wired_count) |
211 | | | 212 | |
212 | #define pmap_clear_modify(pg) pmap_clear_attrs(pg, PG_M) | | 213 | #define pmap_clear_modify(pg) pmap_clear_attrs(pg, PG_M) |
213 | #define pmap_clear_reference(pg) pmap_clear_attrs(pg, PG_U) | | 214 | #define pmap_clear_reference(pg) pmap_clear_attrs(pg, PG_U) |
214 | #define pmap_copy(DP,SP,D,L,S) __USE(L) | | 215 | #define pmap_copy(DP,SP,D,L,S) __USE(L) |
215 | #define pmap_is_modified(pg) pmap_test_attrs(pg, PG_M) | | 216 | #define pmap_is_modified(pg) pmap_test_attrs(pg, PG_M) |