Annotation of sys/arch/m88k/include/vmparam.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: vmparam.h,v 1.8 2006/06/04 17:20:39 miod Exp $ */
2: /*
3: * Mach Operating System
4: * Copyright (c) 1992 Carnegie Mellon University
5: * All Rights Reserved.
6: *
7: * Permission to use, copy, modify and distribute this software and its
8: * documentation is hereby granted, provided that both the copyright
9: * notice and this permission notice appear in all copies of the
10: * software, derivative works or modified versions, and any portions
11: * thereof, and that both notices appear in supporting documentation.
12: *
13: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
14: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
15: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
16: *
17: * Carnegie Mellon requests users of this software to return to
18: *
19: * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
20: * School of Computer Science
21: * Carnegie Mellon University
22: * Pittsburgh PA 15213-3890
23: *
24: * any improvements or extensions that they make and grant Carnegie Mellon
25: * the rights to redistribute these changes.
26: */
27:
28: /*
29: * machine dependent virtual memory parameters.
30: */
31:
32:
33: #ifndef _MACHINE_VM_PARAM_
34: #define _MACHINE_VM_PARAM_
35:
36: /*
37: * USRTEXT is the start of the user text/data space, while USRSTACK
38: * is the top (end) of the user stack.
39: */
40: #define USRTEXT 0x1000 /* Start of user text */
41: #define USRSTACK VM_MAXUSER_ADDRESS /* Start of user stack */
42:
43: /*
44: * Virtual memory related constants, all in bytes
45: */
46: #ifndef MAXTSIZ
47: #define MAXTSIZ (8*1024*1024) /* max text size */
48: #endif
49: #ifndef DFLDSIZ
50: #define DFLDSIZ (32*1024*1024) /* initial data size limit */
51: #endif
52: #ifndef MAXDSIZ
53: #define MAXDSIZ (64*1024*1024) /* max data size */
54: #endif
55: #ifndef DFLSSIZ
56: #define DFLSSIZ (2*1024*1024) /* initial stack size limit */
57: #endif
58: #ifndef MAXSSIZ
59: #define MAXSSIZ MAXDSIZ /* max stack size */
60: #endif
61:
62: #define STACKGAP_RANDOM 256*1024
63:
64: /*
65: * Size of shared memory map
66: */
67: #ifndef SHMMAXPGS
68: #define SHMMAXPGS 1024
69: #endif
70:
71: #define VM_MIN_ADDRESS ((vaddr_t)0)
72: #define VM_MAX_ADDRESS ((vaddr_t)0xfffff000)
73: #define VM_MAXUSER_ADDRESS VM_MAX_ADDRESS
74:
75: /*
76: * Although user and supervisor address spaces are separate, we limit
77: * ourselves to 512KB KVM because the kernel page table is statically
78: * allocated.
79: */
80: #define VM_MIN_KERNEL_ADDRESS ((vaddr_t)0)
81: #define VM_MAX_KERNEL_ADDRESS ((vaddr_t)0x20000000)
82:
83: /* virtual sizes (bytes) for various kernel submaps */
84: #define VM_PHYS_SIZE (1 * NPTEPG * PAGE_SIZE)
85:
86: /*
87: * Constants which control the way the VM system deals with memory segments.
88: * The mvme88k only has one physical memory segment.
89: */
90: #define VM_PHYSSEG_MAX 1
91: #define VM_PHYSSEG_STRAT VM_PSTRAT_RANDOM
92: #define VM_PHYSSEG_NOADD
93:
94: #define VM_NFREELIST 1
95: #define VM_FREELIST_DEFAULT 0
96:
97: #ifndef _LOCORE
98: /*
99: * pmap-specific data stored in the vm_physmem[] array.
100: */
101:
102: /* XXX - belongs in pmap.h, but put here because of ordering issues */
103: struct pv_entry {
104: struct pv_entry *pv_next; /* next pv_entry */
105: struct pmap *pv_pmap; /* pmap where mapping lies */
106: vaddr_t pv_va; /* virtual address for mapping */
107: int pv_flags;
108: };
109:
110: #define __HAVE_VM_PAGE_MD
111: struct vm_page_md {
112: struct pv_entry pvent;
113: };
114:
115: #define VM_MDPAGE_INIT(pg) do { \
116: (pg)->mdpage.pvent.pv_next = NULL; \
117: (pg)->mdpage.pvent.pv_pmap = NULL; \
118: (pg)->mdpage.pvent.pv_va = 0; \
119: (pg)->mdpage.pvent.pv_flags = 0; \
120: } while (0)
121:
122: #endif /* _LOCORE */
123:
124: #endif /* _MACHINE_VM_PARAM_ */
CVSweb