1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* or http://www.opensolaris.org/os/licensing.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright (c) 1987-1998,2001 by Sun Microsystems, Inc.
* All rights reserved.
*/
#ifndef _SUN4_VMPARAM_H
#define _SUN4_VMPARAM_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#include <sun4/param.h>
/*
* Machine dependent constants for Sun-4
*/
/*
* USRTEXT is the start of the user text/data space, while USRSTACK
* is the top (end) of the user stack.
*/
#define USRTEXT 0x2000
#define USRSTACK KERNELBASE
/*
* Virtual memory related constants for UNIX resource control, all in bytes
* The default stack size of 8M allows an optimization of mmu mapping
* resources so that in normal use a single mmu region map entry (smeg)
* can be used to map both the stack and shared libraries
*/
#define DFLSSIZ (8*1024*1024) /* initial stack size limit */
#define DFLDSIZ_260 ((512*1024*1024)-USRTEXT) /* initial data size limit */
#define MAXDSIZ_260 ((512*1024*1024)-USRTEXT) /* max data size limit */
#define MAXSSIZ_260 ((512*1024*1024)-KERNELSIZE) /* max stack size limit */
#define DFLDSIZ_470 ((2048*1024*1024)-USRTEXT) /* initial data size limit */
#define MAXDSIZ_470 ((2048*1024*1024)-USRTEXT) /* max data size limit */
#define MAXSSIZ_470 ((2048*1024*1024)-KERNELSIZE) /* max stack size limit */
#define DFLDSIZ dfldsiz
#define MAXDSIZ maxdsiz
#define MAXSSIZ maxssiz
#ifndef LOCORE
extern unsigned int dfldsiz;
extern unsigned int maxdsiz;
extern unsigned int maxssiz;
#endif /* !LOCORE */
#define SSIZE 1 /* initial stack size */
#define SINCR 1 /* increment of stack */
/*
* Size of the kernel segkmem system pte table. This virtual
* space is controlled by the resource map "kernelmap".
*/
#define SYSPTSIZE (0x640000 / MMU_PAGESIZE)
/*
* Minimum allowable virtual address space to be used
* by the seg_map segment driver for fast kernel mappings.
*/
#define MINMAPSIZE 0x200000
/*
* 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
* amount of real time. You probably shouldn't change this;
* it is used in subtle ways (fractions and multiples of it are, that is, like
* half of a ``long time'', almost a long time, etc.)
* It is related to human patience and other factors which don't really
* change over time.
*/
#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 pages which are not
* paged anyways so this number just means a swapped in process is
* given around 32k bytes.
*/
#define SAFERSS 3
/*
* DISKRPM is used to estimate the number of paging i/o operations
* which one can expect from a single disk controller.
*/
#define DISKRPM 60
/*
* Paging thresholds (see vm_pageout.c).
* Strategy of 3/17/83:
* lotsfree is 256k bytes, but at most 1/8 of memory
* desfree is 100k bytes, but at most 1/16 of memory
* minfree is 32k bytes, but at most 1/2 of desfree
*/
#define LOTSFREE (256 * 1024)
#define LOTSFREEFRACT 8
#define DESFREE (100 * 1024)
#define DESFREEFRACT 16
#define MINFREE (32 * 1024)
#define MINFREEFRACT 2
/*
* 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)
/*
* Paged text files that are less than PGTHRESH bytes
* may be "prefaulted in" instead of demand paged.
*/
#define PGTHRESH (280 * 1024)
#ifdef __cplusplus
}
#endif
#endif /* !_SUN4_VMPARAM_H */
|