pmap.h (99578) | pmap.h (99862) |
---|---|
1/* 2 * Copyright (c) 1991 Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * the Systems Programming Group of the University of Utah Computer 7 * Science Department and William Jolitz of UUNET Technologies Inc. 8 * --- 28 unchanged lines hidden (view full) --- 37 * Derived from hp300 version by Mike Hibler, this version by William 38 * Jolitz uses a recursive map [a pde points to the page directory] to 39 * map the page tables using the pagetables themselves. This is done to 40 * reduce the impact on kernel virtual memory for lots of sparse address 41 * space, and to reduce the cost of memory to each process. 42 * 43 * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 44 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 | 1/* 2 * Copyright (c) 1991 Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * the Systems Programming Group of the University of Utah Computer 7 * Science Department and William Jolitz of UUNET Technologies Inc. 8 * --- 28 unchanged lines hidden (view full) --- 37 * Derived from hp300 version by Mike Hibler, this version by William 38 * Jolitz uses a recursive map [a pde points to the page directory] to 39 * map the page tables using the pagetables themselves. This is done to 40 * reduce the impact on kernel virtual memory for lots of sparse address 41 * space, and to reduce the cost of memory to each process. 42 * 43 * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 44 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 |
45 * $FreeBSD: head/sys/i386/include/pmap.h 99578 2002-07-08 08:14:28Z peter $ | 45 * $FreeBSD: head/sys/i386/include/pmap.h 99862 2002-07-12 07:56:11Z peter $ |
46 */ 47 48#ifndef _MACHINE_PMAP_H_ 49#define _MACHINE_PMAP_H_ 50 51/* 52 * Page-directory and page-table entires follow this format, with a few 53 * of the fields not present here and there, depending on a lot of things. --- 92 unchanged lines hidden (view full) --- 146 * Address of current and alternate address space page table maps 147 * and directories. 148 */ 149#ifdef _KERNEL 150extern pt_entry_t PTmap[], APTmap[]; 151extern pd_entry_t PTD[], APTD[]; 152extern pd_entry_t PTDpde, APTDpde; 153 | 46 */ 47 48#ifndef _MACHINE_PMAP_H_ 49#define _MACHINE_PMAP_H_ 50 51/* 52 * Page-directory and page-table entires follow this format, with a few 53 * of the fields not present here and there, depending on a lot of things. --- 92 unchanged lines hidden (view full) --- 146 * Address of current and alternate address space page table maps 147 * and directories. 148 */ 149#ifdef _KERNEL 150extern pt_entry_t PTmap[], APTmap[]; 151extern pd_entry_t PTD[], APTD[]; 152extern pd_entry_t PTDpde, APTDpde; 153 |
154extern pd_entry_t IdlePTD; /* physical address of "Idle" state directory */ | 154extern pd_entry_t *IdlePTD; /* physical address of "Idle" state directory */ |
155#endif 156 157#ifdef _KERNEL 158/* 159 * virtual address to page table entry and 160 * to physical address. Likewise for alternate address space. 161 * Note: these work recursively, thus vtopte of a pte will give 162 * the corresponding pde that in turn maps it. --- 85 unchanged lines hidden (view full) --- 248extern vm_offset_t avail_start; 249extern vm_offset_t clean_eva; 250extern vm_offset_t clean_sva; 251extern vm_offset_t phys_avail[]; 252extern char *ptvmmap; /* poor name! */ 253extern vm_offset_t virtual_avail; 254extern vm_offset_t virtual_end; 255 | 155#endif 156 157#ifdef _KERNEL 158/* 159 * virtual address to page table entry and 160 * to physical address. Likewise for alternate address space. 161 * Note: these work recursively, thus vtopte of a pte will give 162 * the corresponding pde that in turn maps it. --- 85 unchanged lines hidden (view full) --- 248extern vm_offset_t avail_start; 249extern vm_offset_t clean_eva; 250extern vm_offset_t clean_sva; 251extern vm_offset_t phys_avail[]; 252extern char *ptvmmap; /* poor name! */ 253extern vm_offset_t virtual_avail; 254extern vm_offset_t virtual_end; 255 |
256void pmap_bootstrap( vm_offset_t, vm_offset_t); | 256void pmap_bootstrap(vm_offset_t, vm_offset_t); |
257void *pmap_mapdev(vm_offset_t, vm_size_t); 258void pmap_unmapdev(vm_offset_t, vm_size_t); 259pt_entry_t *pmap_pte(pmap_t, vm_offset_t) __pure2; 260vm_page_t pmap_use_pt(pmap_t, vm_offset_t); | 257void *pmap_mapdev(vm_offset_t, vm_size_t); 258void pmap_unmapdev(vm_offset_t, vm_size_t); 259pt_entry_t *pmap_pte(pmap_t, vm_offset_t) __pure2; 260vm_page_t pmap_use_pt(pmap_t, vm_offset_t); |
261#ifdef SMP | |
262void pmap_set_opt(void); | 261void pmap_set_opt(void); |
263#endif | 262void pmap_invalidate_page(pmap_t, vm_offset_t); 263void pmap_invalidate_range(pmap_t, vm_offset_t, vm_offset_t); 264void pmap_invalidate_all(pmap_t); |
264 265#endif /* _KERNEL */ 266 267#endif /* !LOCORE */ 268 269#endif /* !_MACHINE_PMAP_H_ */ | 265 266#endif /* _KERNEL */ 267 268#endif /* !LOCORE */ 269 270#endif /* !_MACHINE_PMAP_H_ */ |