Deleted Added
full compact
pmap-v6.h (295206) pmap-v6.h (295257)
1/*-
2 * Copyright 2014 Svatopluk Kraus <onwahe@gmail.com>
3 * Copyright 2014 Michal Meloun <meloun@miracle.cz>
4 * Copyright (c) 1991 Regents of the University of California.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to Berkeley by
8 * the Systems Programming Group of the University of Utah Computer

--- 28 unchanged lines hidden (view full) ---

37 * map the page tables using the pagetables themselves. This is done to
38 * reduce the impact on kernel virtual memory for lots of sparse address
39 * space, and to reduce the cost of memory to each process.
40 *
41 * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
42 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
43 * from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30
44 *
1/*-
2 * Copyright 2014 Svatopluk Kraus <onwahe@gmail.com>
3 * Copyright 2014 Michal Meloun <meloun@miracle.cz>
4 * Copyright (c) 1991 Regents of the University of California.
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to Berkeley by
8 * the Systems Programming Group of the University of Utah Computer

--- 28 unchanged lines hidden (view full) ---

37 * map the page tables using the pagetables themselves. This is done to
38 * reduce the impact on kernel virtual memory for lots of sparse address
39 * space, and to reduce the cost of memory to each process.
40 *
41 * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
42 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
43 * from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30
44 *
45 * $FreeBSD: head/sys/arm/include/pmap-v6.h 295206 2016-02-03 12:11:07Z skra $
45 * $FreeBSD: head/sys/arm/include/pmap-v6.h 295257 2016-02-04 14:15:24Z skra $
46 */
47
48#ifndef _MACHINE_PMAP_H_
49#define _MACHINE_PMAP_H_
50
51#include <sys/queue.h>
52#include <sys/_cpuset.h>
53#include <sys/_lock.h>

--- 56 unchanged lines hidden (view full) ---

110};
111#endif
112struct pv_entry;
113struct pv_chunk;
114
115struct md_page {
116 TAILQ_HEAD(,pv_entry) pv_list;
117 uint16_t pt2_wirecount[4];
46 */
47
48#ifndef _MACHINE_PMAP_H_
49#define _MACHINE_PMAP_H_
50
51#include <sys/queue.h>
52#include <sys/_cpuset.h>
53#include <sys/_lock.h>

--- 56 unchanged lines hidden (view full) ---

110};
111#endif
112struct pv_entry;
113struct pv_chunk;
114
115struct md_page {
116 TAILQ_HEAD(,pv_entry) pv_list;
117 uint16_t pt2_wirecount[4];
118 int pat_mode;
118 vm_memattr_t pat_mode;
119};
120
121struct pmap {
122 struct mtx pm_mtx;
123 pt1_entry_t *pm_pt1; /* KVA of pt1 */
124 pt2_entry_t *pm_pt2tab; /* KVA of pt2 pages table */
125 TAILQ_HEAD(,pv_chunk) pm_pvchunk; /* list of mappings in pmap */
126 cpuset_t pm_active; /* active on cpus */

--- 41 unchanged lines hidden (view full) ---

168 TAILQ_ENTRY(pv_chunk) pc_lru;
169 struct pv_entry pc_pventry[_NPCPV];
170};
171
172#ifdef _KERNEL
173struct pcb;
174extern ttb_entry_t pmap_kern_ttb; /* TTB for kernel pmap */
175
119};
120
121struct pmap {
122 struct mtx pm_mtx;
123 pt1_entry_t *pm_pt1; /* KVA of pt1 */
124 pt2_entry_t *pm_pt2tab; /* KVA of pt2 pages table */
125 TAILQ_HEAD(,pv_chunk) pm_pvchunk; /* list of mappings in pmap */
126 cpuset_t pm_active; /* active on cpus */

--- 41 unchanged lines hidden (view full) ---

168 TAILQ_ENTRY(pv_chunk) pc_lru;
169 struct pv_entry pc_pventry[_NPCPV];
170};
171
172#ifdef _KERNEL
173struct pcb;
174extern ttb_entry_t pmap_kern_ttb; /* TTB for kernel pmap */
175
176#define pmap_page_get_memattr(m) ((vm_memattr_t)(m)->md.pat_mode)
176#define pmap_page_get_memattr(m) ((m)->md.pat_mode)
177#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0)
178
179/*
180 * Only the following functions or macros may be used before pmap_bootstrap()
181 * is called: pmap_kenter(), pmap_kextract(), pmap_kremove(), vtophys(), and
182 * vtopte2().
183 */
184void pmap_bootstrap(vm_offset_t );

--- 74 unchanged lines hidden ---
177#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0)
178
179/*
180 * Only the following functions or macros may be used before pmap_bootstrap()
181 * is called: pmap_kenter(), pmap_kextract(), pmap_kremove(), vtophys(), and
182 * vtopte2().
183 */
184void pmap_bootstrap(vm_offset_t );

--- 74 unchanged lines hidden ---