mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2025-01-09 16:01:19 +01:00
Eliminated a whole pile of ancient (we're taking 4.3BSD) VM system
related #define constants. Corrected incorrect VM_MAX_KERNEL_ADDRESS. Reviewed by: John Dyson
This commit is contained in:
parent
ed74321b1a
commit
cde7257454
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=2689
sys
amd64
i386
ufs/mfs
vm
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)genassym.c 5.11 (Berkeley) 5/10/91
|
||||
* $Id: genassym.c,v 1.9 1994/09/01 05:12:16 davidg Exp $
|
||||
* $Id: genassym.c,v 1.10 1994/09/02 05:58:50 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -66,7 +66,6 @@ main()
|
||||
struct sigframe *sigf = (struct sigframe *)0;
|
||||
register unsigned i;
|
||||
|
||||
printf("#define\tI386_CR3PAT %d\n", I386_CR3PAT);
|
||||
printf("#define\tUDOT_SZ %d\n", sizeof(struct user));
|
||||
printf("#define\tP_FORW %d\n", &p->p_forw);
|
||||
printf("#define\tP_BACK %d\n", &p->p_back);
|
||||
@ -91,7 +90,6 @@ main()
|
||||
/* printf("#define\tV_PGREC %d\n", &vm->v_pgrec); */
|
||||
/* printf("#define\tV_FASTPGREC %d\n", &vm->v_fastpgrec); */
|
||||
printf("#define\tUPAGES %d\n", UPAGES);
|
||||
printf("#define\tHIGHPAGES %d\n", HIGHPAGES);
|
||||
printf("#define\tCLSIZE %d\n", CLSIZE);
|
||||
printf("#define\tNBPG %d\n", NBPG);
|
||||
printf("#define\tNPTEPG %d\n", NPTEPG);
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)locore.s 7.3 (Berkeley) 5/13/91
|
||||
* $Id: locore.s,v 1.25 1994/09/05 05:20:29 davidg Exp $
|
||||
* $Id: locore.s,v 1.26 1994/09/05 14:09:41 bde Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -480,7 +480,6 @@ NON_GPROF_ENTRY(btext)
|
||||
|
||||
/* load base of page directory and enable mapping */
|
||||
movl %esi,%eax /* phys address of ptd in proc 0 */
|
||||
orl $I386_CR3PAT,%eax
|
||||
movl %eax,%cr3 /* load ptd addr into mmu */
|
||||
movl %cr0,%eax /* get control word */
|
||||
orl $CR0_PE|CR0_PG,%eax /* enable paging */
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)locore.s 7.3 (Berkeley) 5/13/91
|
||||
* $Id: locore.s,v 1.25 1994/09/05 05:20:29 davidg Exp $
|
||||
* $Id: locore.s,v 1.26 1994/09/05 14:09:41 bde Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -480,7 +480,6 @@ NON_GPROF_ENTRY(btext)
|
||||
|
||||
/* load base of page directory and enable mapping */
|
||||
movl %esi,%eax /* phys address of ptd in proc 0 */
|
||||
orl $I386_CR3PAT,%eax
|
||||
movl %eax,%cr3 /* load ptd addr into mmu */
|
||||
movl %cr0,%eax /* get control word */
|
||||
orl $CR0_PE|CR0_PG,%eax /* enable paging */
|
||||
|
@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: support.s,v 1.15 1994/08/09 11:21:44 davidg Exp $
|
||||
* $Id: support.s,v 1.16 1994/09/04 10:24:22 davidg Exp $
|
||||
*/
|
||||
|
||||
#include "assym.s" /* system definitions */
|
||||
@ -1189,7 +1189,6 @@ ENTRY(rcr3)
|
||||
/* void load_cr3(caddr_t cr3) */
|
||||
ENTRY(load_cr3)
|
||||
movl 4(%esp),%eax
|
||||
orl $I386_CR3PAT,%eax
|
||||
movl %eax,%cr3
|
||||
ret
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: support.s,v 1.15 1994/08/09 11:21:44 davidg Exp $
|
||||
* $Id: support.s,v 1.16 1994/09/04 10:24:22 davidg Exp $
|
||||
*/
|
||||
|
||||
#include "assym.s" /* system definitions */
|
||||
@ -1189,7 +1189,6 @@ ENTRY(rcr3)
|
||||
/* void load_cr3(caddr_t cr3) */
|
||||
ENTRY(load_cr3)
|
||||
movl 4(%esp),%eax
|
||||
orl $I386_CR3PAT,%eax
|
||||
movl %eax,%cr3
|
||||
ret
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
|
||||
* $Id: vmparam.h,v 1.13 1994/05/25 08:57:22 rgrimes Exp $
|
||||
* $Id: vmparam.h,v 1.14 1994/09/01 03:16:40 davidg Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -47,23 +47,6 @@
|
||||
* Machine dependent constants for 386.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Virtual address space arrangement. On 386, both user and kernel
|
||||
* share the address space, not unlike the vax.
|
||||
* USRTEXT is the start of the user text/data space, while USRSTACK
|
||||
* is the top (end) of the user stack. Immediately above the user stack
|
||||
* resides the user structure, which is UPAGES long and contains the
|
||||
* kernel stack.
|
||||
*
|
||||
* Immediately after the user structure is the page table map, and then
|
||||
* kernal address space.
|
||||
*/
|
||||
#define USRTEXT 0UL
|
||||
/* #define USRSTACK 0xFDBFE000UL */
|
||||
#define BTOPUSRSTACK (0xFDC00-(UPAGES)) /* btop(USRSTACK) */
|
||||
#define LOWPAGES 0UL
|
||||
#define HIGHPAGES UPAGES
|
||||
|
||||
/*
|
||||
* Virtual memory related constants, all in bytes
|
||||
*/
|
||||
@ -84,6 +67,8 @@
|
||||
#define SGROWSIZ (128UL*1024) /* amount to grow stack */
|
||||
#endif
|
||||
|
||||
#define USRTEXT (1*NBPG) /* base of user text XXX bogus */
|
||||
|
||||
/*
|
||||
* Default sizes of swap allocation chunks (see dmap.h).
|
||||
* The actual values may be changed in vminit() based on MAXDSIZ.
|
||||
@ -111,11 +96,6 @@
|
||||
*/
|
||||
#define USRIOSIZE 1024
|
||||
|
||||
/*
|
||||
* The size of the clock loop.
|
||||
*/
|
||||
#define LOOPPAGES (maxfree - firstfree)
|
||||
|
||||
/*
|
||||
* The time for a process to be blocked before being very swappable.
|
||||
* This is a number of seconds which the system takes as being a non-trivial
|
||||
@ -127,82 +107,12 @@
|
||||
*/
|
||||
#define MAXSLP 20
|
||||
|
||||
/*
|
||||
* A swapped in process is given a small amount of core without being bothered
|
||||
* by the page replacement algorithm. Basically this says that if you are
|
||||
* swapped in you deserve some resources. We protect the last SAFERSS
|
||||
* pages against paging and will just swap you out rather than paging you.
|
||||
* Note that each process has at least UPAGES+CLSIZE pages which are not
|
||||
* paged anyways (this is currently 8+2=10 pages or 5k bytes), so this
|
||||
* number just means a swapped in process is given around 25k bytes.
|
||||
* Just for fun: current memory prices are 4600$ a megabyte on VAX (4/22/81),
|
||||
* so we loan each swapped in process memory worth 100$, or just admit
|
||||
* that we don't consider it worthwhile and swap it out to disk which costs
|
||||
* $30/mb or about $0.75.
|
||||
* { wfj 6/16/89: Retail AT memory expansion $800/megabyte, loan of $17
|
||||
* on disk costing $7/mb or $0.18 (in memory still 100:1 in cost!) }
|
||||
*/
|
||||
#define SAFERSS 8 /* nominal ``small'' resident set size
|
||||
protected against replacement */
|
||||
|
||||
/*
|
||||
* DISKRPM is used to estimate the number of paging i/o operations
|
||||
* which one can expect from a single disk controller.
|
||||
*/
|
||||
#define DISKRPM 60
|
||||
|
||||
/*
|
||||
* Klustering constants. Klustering is the gathering
|
||||
* of pages together for pagein/pageout, while clustering
|
||||
* is the treatment of hardware page size as though it were
|
||||
* larger than it really is.
|
||||
*
|
||||
* KLMAX gives maximum cluster size in CLSIZE page (cluster-page)
|
||||
* units. Note that KLMAX*CLSIZE must be <= DMMIN in dmap.h.
|
||||
*/
|
||||
|
||||
#define KLMAX (4/CLSIZE)
|
||||
#define KLSEQL (2/CLSIZE) /* in klust if vadvise(VA_SEQL) */
|
||||
#define KLIN (4/CLSIZE) /* default data/stack in klust */
|
||||
#define KLTXT (4/CLSIZE) /* default text in klust */
|
||||
#define KLOUT (4/CLSIZE)
|
||||
|
||||
/*
|
||||
* KLSDIST is the advance or retard of the fifo reclaim for sequential
|
||||
* processes data space.
|
||||
*/
|
||||
#define KLSDIST 3 /* klusters advance/retard for seq. fifo */
|
||||
|
||||
/*
|
||||
* There are two clock hands, initially separated by HANDSPREAD bytes
|
||||
* (but at most all of user memory). The amount of time to reclaim
|
||||
* a page once the pageout process examines it increases with this
|
||||
* distance and decreases as the scan rate rises.
|
||||
*/
|
||||
#define HANDSPREAD (2 * 1024 * 1024)
|
||||
|
||||
/*
|
||||
* The number of times per second to recompute the desired paging rate
|
||||
* and poke the pagedaemon.
|
||||
*/
|
||||
#define RATETOSCHEDPAGING 4
|
||||
|
||||
/*
|
||||
* Believed threshold (in megabytes) for which interleaved
|
||||
* swapping area is desirable.
|
||||
*/
|
||||
#define LOTSOFMEM 2
|
||||
|
||||
#define mapin(pte, v, pfnum, prot) \
|
||||
{(*(int *)(pte) = ((pfnum)<<PGSHIFT) | (prot)) ; }
|
||||
|
||||
/*
|
||||
* Mach derived constants
|
||||
*/
|
||||
|
||||
/* user/kernel map constants */
|
||||
#define KERNBASE (0-(NKPDE+1)*(NBPG*NPTEPG))
|
||||
#define KERNSIZE (NKPDE*NBPG*NPTEPG)
|
||||
#define KERNBASE ((0x400-1-NKPDE)*(NBPG*NPTEPG))
|
||||
|
||||
#define VM_MIN_ADDRESS ((vm_offset_t)0)
|
||||
#define VM_MAXUSER_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NPTEPG+UPAGES)))
|
||||
@ -212,27 +122,13 @@
|
||||
#define VM_MAX_ADDRESS UPT_MAX_ADDRESS
|
||||
#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NKPDE+2)))
|
||||
#define UPDT VM_MIN_KERNEL_ADDRESS
|
||||
#define KPT_MIN_ADDRESS ((vm_offset_t)(KERNBASE) - (NBPG*(NKPDE+1)))
|
||||
#define KPT_MAX_ADDRESS ((vm_offset_t)(KERNBASE) - NBPG)
|
||||
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)ALT_MIN_ADDRESS - NBPG)
|
||||
#define ALT_MIN_ADDRESS ((vm_offset_t)((APTDPTDI) << 22))
|
||||
#define HIGHPAGES UPAGES
|
||||
|
||||
#define KPT_MIN_ADDRESS ((vm_offset_t)KERNBASE - NBPG*(NKPDE+1))
|
||||
#define KPT_MAX_ADDRESS ((vm_offset_t)KERNBASE - NBPG)
|
||||
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPT*NBPG*NPTEPG)
|
||||
|
||||
/* virtual sizes (bytes) for various kernel submaps */
|
||||
#define VM_MBUF_SIZE (NMBCLUSTERS*MCLBYTES)
|
||||
#define VM_KMEM_SIZE (16 * 1024 * 1024)
|
||||
#define VM_PHYS_SIZE (USRIOSIZE*CLBYTES)
|
||||
|
||||
/* pcb base */
|
||||
#define pcbb(p) ((u_int)(p)->p_addr)
|
||||
|
||||
/*
|
||||
* Flush MMU TLB
|
||||
*/
|
||||
|
||||
#ifndef I386_CR3PAT
|
||||
#define I386_CR3PAT 0x0
|
||||
#endif
|
||||
|
||||
#endif /* _MACHINE_VMPARAM_H_ */
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)genassym.c 5.11 (Berkeley) 5/10/91
|
||||
* $Id: genassym.c,v 1.9 1994/09/01 05:12:16 davidg Exp $
|
||||
* $Id: genassym.c,v 1.10 1994/09/02 05:58:50 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -66,7 +66,6 @@ main()
|
||||
struct sigframe *sigf = (struct sigframe *)0;
|
||||
register unsigned i;
|
||||
|
||||
printf("#define\tI386_CR3PAT %d\n", I386_CR3PAT);
|
||||
printf("#define\tUDOT_SZ %d\n", sizeof(struct user));
|
||||
printf("#define\tP_FORW %d\n", &p->p_forw);
|
||||
printf("#define\tP_BACK %d\n", &p->p_back);
|
||||
@ -91,7 +90,6 @@ main()
|
||||
/* printf("#define\tV_PGREC %d\n", &vm->v_pgrec); */
|
||||
/* printf("#define\tV_FASTPGREC %d\n", &vm->v_fastpgrec); */
|
||||
printf("#define\tUPAGES %d\n", UPAGES);
|
||||
printf("#define\tHIGHPAGES %d\n", HIGHPAGES);
|
||||
printf("#define\tCLSIZE %d\n", CLSIZE);
|
||||
printf("#define\tNBPG %d\n", NBPG);
|
||||
printf("#define\tNPTEPG %d\n", NPTEPG);
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)locore.s 7.3 (Berkeley) 5/13/91
|
||||
* $Id: locore.s,v 1.25 1994/09/05 05:20:29 davidg Exp $
|
||||
* $Id: locore.s,v 1.26 1994/09/05 14:09:41 bde Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -480,7 +480,6 @@ NON_GPROF_ENTRY(btext)
|
||||
|
||||
/* load base of page directory and enable mapping */
|
||||
movl %esi,%eax /* phys address of ptd in proc 0 */
|
||||
orl $I386_CR3PAT,%eax
|
||||
movl %eax,%cr3 /* load ptd addr into mmu */
|
||||
movl %cr0,%eax /* get control word */
|
||||
orl $CR0_PE|CR0_PG,%eax /* enable paging */
|
||||
|
@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: support.s,v 1.15 1994/08/09 11:21:44 davidg Exp $
|
||||
* $Id: support.s,v 1.16 1994/09/04 10:24:22 davidg Exp $
|
||||
*/
|
||||
|
||||
#include "assym.s" /* system definitions */
|
||||
@ -1189,7 +1189,6 @@ ENTRY(rcr3)
|
||||
/* void load_cr3(caddr_t cr3) */
|
||||
ENTRY(load_cr3)
|
||||
movl 4(%esp),%eax
|
||||
orl $I386_CR3PAT,%eax
|
||||
movl %eax,%cr3
|
||||
ret
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* from: @(#)vmparam.h 5.9 (Berkeley) 5/12/91
|
||||
* $Id: vmparam.h,v 1.13 1994/05/25 08:57:22 rgrimes Exp $
|
||||
* $Id: vmparam.h,v 1.14 1994/09/01 03:16:40 davidg Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -47,23 +47,6 @@
|
||||
* Machine dependent constants for 386.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Virtual address space arrangement. On 386, both user and kernel
|
||||
* share the address space, not unlike the vax.
|
||||
* USRTEXT is the start of the user text/data space, while USRSTACK
|
||||
* is the top (end) of the user stack. Immediately above the user stack
|
||||
* resides the user structure, which is UPAGES long and contains the
|
||||
* kernel stack.
|
||||
*
|
||||
* Immediately after the user structure is the page table map, and then
|
||||
* kernal address space.
|
||||
*/
|
||||
#define USRTEXT 0UL
|
||||
/* #define USRSTACK 0xFDBFE000UL */
|
||||
#define BTOPUSRSTACK (0xFDC00-(UPAGES)) /* btop(USRSTACK) */
|
||||
#define LOWPAGES 0UL
|
||||
#define HIGHPAGES UPAGES
|
||||
|
||||
/*
|
||||
* Virtual memory related constants, all in bytes
|
||||
*/
|
||||
@ -84,6 +67,8 @@
|
||||
#define SGROWSIZ (128UL*1024) /* amount to grow stack */
|
||||
#endif
|
||||
|
||||
#define USRTEXT (1*NBPG) /* base of user text XXX bogus */
|
||||
|
||||
/*
|
||||
* Default sizes of swap allocation chunks (see dmap.h).
|
||||
* The actual values may be changed in vminit() based on MAXDSIZ.
|
||||
@ -111,11 +96,6 @@
|
||||
*/
|
||||
#define USRIOSIZE 1024
|
||||
|
||||
/*
|
||||
* The size of the clock loop.
|
||||
*/
|
||||
#define LOOPPAGES (maxfree - firstfree)
|
||||
|
||||
/*
|
||||
* The time for a process to be blocked before being very swappable.
|
||||
* This is a number of seconds which the system takes as being a non-trivial
|
||||
@ -127,82 +107,12 @@
|
||||
*/
|
||||
#define MAXSLP 20
|
||||
|
||||
/*
|
||||
* A swapped in process is given a small amount of core without being bothered
|
||||
* by the page replacement algorithm. Basically this says that if you are
|
||||
* swapped in you deserve some resources. We protect the last SAFERSS
|
||||
* pages against paging and will just swap you out rather than paging you.
|
||||
* Note that each process has at least UPAGES+CLSIZE pages which are not
|
||||
* paged anyways (this is currently 8+2=10 pages or 5k bytes), so this
|
||||
* number just means a swapped in process is given around 25k bytes.
|
||||
* Just for fun: current memory prices are 4600$ a megabyte on VAX (4/22/81),
|
||||
* so we loan each swapped in process memory worth 100$, or just admit
|
||||
* that we don't consider it worthwhile and swap it out to disk which costs
|
||||
* $30/mb or about $0.75.
|
||||
* { wfj 6/16/89: Retail AT memory expansion $800/megabyte, loan of $17
|
||||
* on disk costing $7/mb or $0.18 (in memory still 100:1 in cost!) }
|
||||
*/
|
||||
#define SAFERSS 8 /* nominal ``small'' resident set size
|
||||
protected against replacement */
|
||||
|
||||
/*
|
||||
* DISKRPM is used to estimate the number of paging i/o operations
|
||||
* which one can expect from a single disk controller.
|
||||
*/
|
||||
#define DISKRPM 60
|
||||
|
||||
/*
|
||||
* Klustering constants. Klustering is the gathering
|
||||
* of pages together for pagein/pageout, while clustering
|
||||
* is the treatment of hardware page size as though it were
|
||||
* larger than it really is.
|
||||
*
|
||||
* KLMAX gives maximum cluster size in CLSIZE page (cluster-page)
|
||||
* units. Note that KLMAX*CLSIZE must be <= DMMIN in dmap.h.
|
||||
*/
|
||||
|
||||
#define KLMAX (4/CLSIZE)
|
||||
#define KLSEQL (2/CLSIZE) /* in klust if vadvise(VA_SEQL) */
|
||||
#define KLIN (4/CLSIZE) /* default data/stack in klust */
|
||||
#define KLTXT (4/CLSIZE) /* default text in klust */
|
||||
#define KLOUT (4/CLSIZE)
|
||||
|
||||
/*
|
||||
* KLSDIST is the advance or retard of the fifo reclaim for sequential
|
||||
* processes data space.
|
||||
*/
|
||||
#define KLSDIST 3 /* klusters advance/retard for seq. fifo */
|
||||
|
||||
/*
|
||||
* There are two clock hands, initially separated by HANDSPREAD bytes
|
||||
* (but at most all of user memory). The amount of time to reclaim
|
||||
* a page once the pageout process examines it increases with this
|
||||
* distance and decreases as the scan rate rises.
|
||||
*/
|
||||
#define HANDSPREAD (2 * 1024 * 1024)
|
||||
|
||||
/*
|
||||
* The number of times per second to recompute the desired paging rate
|
||||
* and poke the pagedaemon.
|
||||
*/
|
||||
#define RATETOSCHEDPAGING 4
|
||||
|
||||
/*
|
||||
* Believed threshold (in megabytes) for which interleaved
|
||||
* swapping area is desirable.
|
||||
*/
|
||||
#define LOTSOFMEM 2
|
||||
|
||||
#define mapin(pte, v, pfnum, prot) \
|
||||
{(*(int *)(pte) = ((pfnum)<<PGSHIFT) | (prot)) ; }
|
||||
|
||||
/*
|
||||
* Mach derived constants
|
||||
*/
|
||||
|
||||
/* user/kernel map constants */
|
||||
#define KERNBASE (0-(NKPDE+1)*(NBPG*NPTEPG))
|
||||
#define KERNSIZE (NKPDE*NBPG*NPTEPG)
|
||||
#define KERNBASE ((0x400-1-NKPDE)*(NBPG*NPTEPG))
|
||||
|
||||
#define VM_MIN_ADDRESS ((vm_offset_t)0)
|
||||
#define VM_MAXUSER_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NPTEPG+UPAGES)))
|
||||
@ -212,27 +122,13 @@
|
||||
#define VM_MAX_ADDRESS UPT_MAX_ADDRESS
|
||||
#define VM_MIN_KERNEL_ADDRESS ((vm_offset_t)KERNBASE - (NBPG*(NKPDE+2)))
|
||||
#define UPDT VM_MIN_KERNEL_ADDRESS
|
||||
#define KPT_MIN_ADDRESS ((vm_offset_t)(KERNBASE) - (NBPG*(NKPDE+1)))
|
||||
#define KPT_MAX_ADDRESS ((vm_offset_t)(KERNBASE) - NBPG)
|
||||
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)ALT_MIN_ADDRESS - NBPG)
|
||||
#define ALT_MIN_ADDRESS ((vm_offset_t)((APTDPTDI) << 22))
|
||||
#define HIGHPAGES UPAGES
|
||||
|
||||
#define KPT_MIN_ADDRESS ((vm_offset_t)KERNBASE - NBPG*(NKPDE+1))
|
||||
#define KPT_MAX_ADDRESS ((vm_offset_t)KERNBASE - NBPG)
|
||||
#define VM_MAX_KERNEL_ADDRESS ((vm_offset_t)KERNBASE + NKPT*NBPG*NPTEPG)
|
||||
|
||||
/* virtual sizes (bytes) for various kernel submaps */
|
||||
#define VM_MBUF_SIZE (NMBCLUSTERS*MCLBYTES)
|
||||
#define VM_KMEM_SIZE (16 * 1024 * 1024)
|
||||
#define VM_PHYS_SIZE (USRIOSIZE*CLBYTES)
|
||||
|
||||
/* pcb base */
|
||||
#define pcbb(p) ((u_int)(p)->p_addr)
|
||||
|
||||
/*
|
||||
* Flush MMU TLB
|
||||
*/
|
||||
|
||||
#ifndef I386_CR3PAT
|
||||
#define I386_CR3PAT 0x0
|
||||
#endif
|
||||
|
||||
#endif /* _MACHINE_VMPARAM_H_ */
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)mfs_vnops.c 8.3 (Berkeley) 9/21/93
|
||||
* $Id$
|
||||
* $Id: mfs_vnops.c,v 1.3 1994/08/02 07:54:44 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -190,85 +190,6 @@ mfs_strategy(ap)
|
||||
return (0);
|
||||
}
|
||||
|
||||
#if defined(vax) || defined(tahoe)
|
||||
/*
|
||||
* Memory file system I/O.
|
||||
*
|
||||
* Essentially play ubasetup() and disk interrupt service routine by
|
||||
* doing the copies to or from the memfs process. If doing physio
|
||||
* (i.e. pagein), we must map the I/O through the kernel virtual
|
||||
* address space.
|
||||
*/
|
||||
void
|
||||
mfs_doio(bp, base)
|
||||
register struct buf *bp;
|
||||
caddr_t base;
|
||||
{
|
||||
register struct pte *pte, *ppte;
|
||||
register caddr_t vaddr;
|
||||
int off, npf, npf2, reg;
|
||||
caddr_t kernaddr, offset;
|
||||
|
||||
/*
|
||||
* For phys I/O, map the b_data into kernel virtual space using
|
||||
* the Mfsiomap pte's.
|
||||
*/
|
||||
if ((bp->b_flags & B_PHYS) == 0) {
|
||||
kernaddr = bp->b_data;
|
||||
} else {
|
||||
if (bp->b_flags & (B_PAGET | B_UAREA | B_DIRTY))
|
||||
panic("swap on memfs?");
|
||||
off = (int)bp->b_data & PGOFSET;
|
||||
npf = btoc(bp->b_bcount + off);
|
||||
/*
|
||||
* Get some mapping page table entries
|
||||
*/
|
||||
while ((reg = rmalloc(mfsmap, (long)npf)) == 0) {
|
||||
mfsmap_want++;
|
||||
sleep((caddr_t)&mfsmap_want, PZERO-1);
|
||||
}
|
||||
reg--;
|
||||
pte = vtopte(bp->b_proc, btop(bp->b_data));
|
||||
/*
|
||||
* Do vmaccess() but with the Mfsiomap page table.
|
||||
*/
|
||||
ppte = &Mfsiomap[reg];
|
||||
vaddr = &mfsiobuf[reg * NBPG];
|
||||
kernaddr = vaddr + off;
|
||||
for (npf2 = npf; npf2; npf2--) {
|
||||
mapin(ppte, (u_int)vaddr, pte->pg_pfnum,
|
||||
(int)(PG_V|PG_KW));
|
||||
#if defined(tahoe)
|
||||
if ((bp->b_flags & B_READ) == 0)
|
||||
mtpr(P1DC, vaddr);
|
||||
#endif
|
||||
ppte++;
|
||||
pte++;
|
||||
vaddr += NBPG;
|
||||
}
|
||||
}
|
||||
offset = base + (bp->b_blkno << DEV_BSHIFT);
|
||||
if (bp->b_flags & B_READ)
|
||||
bp->b_error = copyin(offset, kernaddr, bp->b_bcount);
|
||||
else
|
||||
bp->b_error = copyout(kernaddr, offset, bp->b_bcount);
|
||||
if (bp->b_error)
|
||||
bp->b_flags |= B_ERROR;
|
||||
/*
|
||||
* Release pte's used by physical I/O.
|
||||
*/
|
||||
if (bp->b_flags & B_PHYS) {
|
||||
rmfree(mfsmap, (long)npf, (long)++reg);
|
||||
if (mfsmap_want) {
|
||||
mfsmap_want = 0;
|
||||
wakeup((caddr_t)&mfsmap_want);
|
||||
}
|
||||
}
|
||||
biodone(bp);
|
||||
}
|
||||
#endif /* vax || tahoe */
|
||||
|
||||
#if defined(hp300) || defined(i386) || defined(mips) || defined(sparc) || defined(luna68k)
|
||||
/*
|
||||
* Memory file system I/O.
|
||||
*
|
||||
@ -289,7 +210,6 @@ mfs_doio(bp, base)
|
||||
bp->b_flags |= B_ERROR;
|
||||
biodone(bp);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* This is a noop, simply returning what one has been given.
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vm_meter.c 8.4 (Berkeley) 1/4/94
|
||||
* $Id$
|
||||
* $Id: vm_meter.c,v 1.3 1994/08/02 07:55:27 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -44,7 +44,6 @@
|
||||
struct loadavg averunnable; /* load average, of runnable procs */
|
||||
|
||||
int maxslp = MAXSLP;
|
||||
int saferss = SAFERSS;
|
||||
|
||||
void
|
||||
vmmeter()
|
||||
|
Loading…
Reference in New Issue
Block a user