Deleted Added
full compact
pmap.c (95232) pmap.c (95710)
1/*
2 * Copyright (c) 1991 Regents of the University of California.
3 * All rights reserved.
4 * Copyright (c) 1994 John S. Dyson
5 * All rights reserved.
6 * Copyright (c) 1994 David Greenman
7 * All rights reserved.
8 *

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

34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39 * SUCH DAMAGE.
40 *
41 * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
1/*
2 * Copyright (c) 1991 Regents of the University of California.
3 * All rights reserved.
4 * Copyright (c) 1994 John S. Dyson
5 * All rights reserved.
6 * Copyright (c) 1994 David Greenman
7 * All rights reserved.
8 *

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

34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
39 * SUCH DAMAGE.
40 *
41 * from: @(#)pmap.c 7.7 (Berkeley) 5/12/91
42 * $FreeBSD: head/sys/sparc64/sparc64/pmap.c 95232 2002-04-21 22:57:42Z jake $
42 * $FreeBSD: head/sys/sparc64/sparc64/pmap.c 95710 2002-04-29 07:43:16Z peter $
43 */
44
45/*
46 * Manages physical address maps.
47 *
48 * In addition to hardware address maps, this module is called upon to
49 * provide software-use-only maps which may or may not be stored in the
50 * same form as hardware maps. These pseudo-maps are used to store

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

401
402 /*
403 * Initialize the kernel pmap (which is statically allocated).
404 */
405 pm = kernel_pmap;
406 for (i = 0; i < MAXCPU; i++)
407 pm->pm_context[i] = TLB_CTX_KERNEL;
408 pm->pm_active = ~0;
43 */
44
45/*
46 * Manages physical address maps.
47 *
48 * In addition to hardware address maps, this module is called upon to
49 * provide software-use-only maps which may or may not be stored in the
50 * same form as hardware maps. These pseudo-maps are used to store

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

401
402 /*
403 * Initialize the kernel pmap (which is statically allocated).
404 */
405 pm = kernel_pmap;
406 for (i = 0; i < MAXCPU; i++)
407 pm->pm_context[i] = TLB_CTX_KERNEL;
408 pm->pm_active = ~0;
409 pm->pm_count = 1;
410 TAILQ_INIT(&pm->pm_pvlist);
411
412 /* XXX flush all non-locked tlb entries */
413}
414
415void
416pmap_map_tsb(void)
417{

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

1111void
1112pmap_pinit0(pmap_t pm)
1113{
1114 int i;
1115
1116 for (i = 0; i < MAXCPU; i++)
1117 pm->pm_context[i] = 0;
1118 pm->pm_active = 0;
409 TAILQ_INIT(&pm->pm_pvlist);
410
411 /* XXX flush all non-locked tlb entries */
412}
413
414void
415pmap_map_tsb(void)
416{

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

1110void
1111pmap_pinit0(pmap_t pm)
1112{
1113 int i;
1114
1115 for (i = 0; i < MAXCPU; i++)
1116 pm->pm_context[i] = 0;
1117 pm->pm_active = 0;
1119 pm->pm_count = 1;
1120 pm->pm_tsb = NULL;
1121 pm->pm_tsb_obj = NULL;
1122 TAILQ_INIT(&pm->pm_pvlist);
1123 bzero(&pm->pm_stats, sizeof(pm->pm_stats));
1124}
1125
1126/*
1127 * Initialize a preallocated and zeroed pmap structure, uch as one in a

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

1162
1163 ma[i] = m;
1164 }
1165 pmap_qenter((vm_offset_t)pm->pm_tsb, ma, TSB_PAGES);
1166
1167 for (i = 0; i < MAXCPU; i++)
1168 pm->pm_context[i] = -1;
1169 pm->pm_active = 0;
1118 pm->pm_tsb = NULL;
1119 pm->pm_tsb_obj = NULL;
1120 TAILQ_INIT(&pm->pm_pvlist);
1121 bzero(&pm->pm_stats, sizeof(pm->pm_stats));
1122}
1123
1124/*
1125 * Initialize a preallocated and zeroed pmap structure, uch as one in a

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

1160
1161 ma[i] = m;
1162 }
1163 pmap_qenter((vm_offset_t)pm->pm_tsb, ma, TSB_PAGES);
1164
1165 for (i = 0; i < MAXCPU; i++)
1166 pm->pm_context[i] = -1;
1167 pm->pm_active = 0;
1170 pm->pm_count = 1;
1171 TAILQ_INIT(&pm->pm_pvlist);
1172 bzero(&pm->pm_stats, sizeof(pm->pm_stats));
1173}
1174
1175void
1176pmap_pinit2(pmap_t pmap)
1177{
1178 /* XXX: Remove this stub when no longer called */

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

1215 * Grow the number of kernel page table entries. Unneeded.
1216 */
1217void
1218pmap_growkernel(vm_offset_t addr)
1219{
1220}
1221
1222/*
1168 TAILQ_INIT(&pm->pm_pvlist);
1169 bzero(&pm->pm_stats, sizeof(pm->pm_stats));
1170}
1171
1172void
1173pmap_pinit2(pmap_t pmap)
1174{
1175 /* XXX: Remove this stub when no longer called */

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

1212 * Grow the number of kernel page table entries. Unneeded.
1213 */
1214void
1215pmap_growkernel(vm_offset_t addr)
1216{
1217}
1218
1219/*
1223 * Retire the given physical map from service. Pmaps are always allocated
1224 * as part of a larger structure, so this never happens.
1225 */
1226void
1227pmap_destroy(pmap_t pm)
1228{
1229 panic("pmap_destroy: unimplemented");
1230}
1231
1232/*
1233 * Add a reference to the specified pmap.
1234 */
1235void
1236pmap_reference(pmap_t pm)
1237{
1238 if (pm != NULL)
1239 pm->pm_count++;
1240}
1241
1242/*
1243 * This routine is very drastic, but can save the system
1244 * in a pinch.
1245 */
1246void
1247pmap_collect(void)
1248{
1249 static int warningdone;
1250 vm_page_t m;

--- 584 unchanged lines hidden ---
1220 * This routine is very drastic, but can save the system
1221 * in a pinch.
1222 */
1223void
1224pmap_collect(void)
1225{
1226 static int warningdone;
1227 vm_page_t m;

--- 584 unchanged lines hidden ---