diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-09-15 21:13:29 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-09-15 21:13:29 +0000 |
commit | c7944dc0d2be35242202bdad3b511d6b6e60cf3a (patch) | |
tree | 49728a73374c694c8937e8c1903dabf1e19ec820 /sys/arch/pmax/include/pmap.h | |
parent | 9923345416a4c9f9c668f0ca1c8b259113aac9e7 (diff) |
sync to netbsd; for graichen
Diffstat (limited to 'sys/arch/pmax/include/pmap.h')
-rw-r--r-- | sys/arch/pmax/include/pmap.h | 107 |
1 files changed, 4 insertions, 103 deletions
diff --git a/sys/arch/pmax/include/pmap.h b/sys/arch/pmax/include/pmap.h index 392b00aff3a..fba34a17110 100644 --- a/sys/arch/pmax/include/pmap.h +++ b/sys/arch/pmax/include/pmap.h @@ -1,105 +1,6 @@ -/* $NetBSD: pmap.h,v 1.8 1995/04/12 01:55:35 mellon Exp $ */ +/* $NetBSD: pmap.h,v 1.10 1996/03/19 04:39:05 jonathan Exp $ */ -/* - * Copyright (c) 1987 Carnegie-Mellon University - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Ralph Campbell. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)pmap.h 8.1 (Berkeley) 6/10/93 - */ +#include <mips/pmap.h> -#ifndef _PMAP_MACHINE_ -#define _PMAP_MACHINE_ - -/* - * The user address space is 2Gb (0x0 - 0x80000000). - * User programs are laid out in memory as follows: - * address - * USRTEXT 0x00001000 - * USRDATA USRTEXT + text_size - * USRSTACK 0x7FFFFFFF - * - * The user address space is mapped using a two level structure where - * virtual address bits 30..22 are used to index into a segment table which - * points to a page worth of PTEs (4096 page can hold 1024 PTEs). - * Bits 21..12 are then used to index a PTE which describes a page within - * a segment. - * - * The wired entries in the TLB will contain the following: - * 0-1 (UPAGES) for curproc user struct and kernel stack. - * - * Note: The kernel doesn't use the same data structures as user programs. - * All the PTE entries are stored in a single array in Sysmap which is - * dynamically allocated at boot time. - */ - -#define pmax_trunc_seg(x) ((vm_offset_t)(x) & ~SEGOFSET) -#define pmax_round_seg(x) (((vm_offset_t)(x) + SEGOFSET) & ~SEGOFSET) -#define pmap_segmap(m, v) ((m)->pm_segtab->seg_tab[((v) >> SEGSHIFT)]) - -#define PMAP_SEGTABSIZE 512 - -union pt_entry; - -struct segtab { - union pt_entry *seg_tab[PMAP_SEGTABSIZE]; -}; - -/* - * Machine dependent pmap structure. - */ -typedef struct pmap { - int pm_count; /* pmap reference count */ - simple_lock_data_t pm_lock; /* lock on pmap */ - struct pmap_statistics pm_stats; /* pmap statistics */ - int pm_tlbpid; /* address space tag */ - u_int pm_tlbgen; /* TLB PID generation number */ - struct segtab *pm_segtab; /* pointers to pages of PTEs */ -} *pmap_t; - -/* - * Defines for pmap_attributes[phys_mach_page]; - */ -#define PMAP_ATTR_MOD 0x01 /* page has been modified */ -#define PMAP_ATTR_REF 0x02 /* page has been referenced */ - -#ifdef _KERNEL -char *pmap_attributes; /* reference and modify bits */ -struct pmap kernel_pmap_store; - -#define pmap_wired_count(pmap) ((pmap)->pm_stats.wired_count) -#define pmap_kernel() (&kernel_pmap_store) -#endif /* _KERNEL */ - -#endif /* _PMAP_MACHINE_ */ +#define pmax_trunc_seg(a) mips_trunc_seg(a) +#define pmax_round_seg(a) mips_round_seg(a) |