Chameleon

Chameleon Svn Source Tree

Root/branches/rewrite/i386/include/mach/i386/vm_param.h

Source at commit 1146 created 12 years 11 months ago.
By azimutz, Sync with trunk (r1145). Add nVidia dev id's, 0DF4 for "GeForce GT 450M" (issue 99) and 1251 for "GeForce GTX 560M" (thanks to oSxFr33k for testing).
1/*
2 * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5 *
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
14 *
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
25 *
26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27 */
28/*
29 * @OSF_COPYRIGHT@
30 */
31/*
32 * Mach Operating System
33 * Copyright (c) 1991,1990,1989,1988 Carnegie Mellon University
34 * All Rights Reserved.
35 *
36 * Permission to use, copy, modify and distribute this software and its
37 * documentation is hereby granted, provided that both the copyright
38 * notice and this permission notice appear in all copies of the
39 * software, derivative works or modified versions, and any portions
40 * thereof, and that both notices appear in supporting documentation.
41 *
42 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
43 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
44 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
45 *
46 * Carnegie Mellon requests users of this software to return to
47 *
48 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
49 * School of Computer Science
50 * Carnegie Mellon University
51 * Pittsburgh PA 15213-3890
52 *
53 * any improvements or extensions that they make and grant Carnegie Mellon
54 * the rights to redistribute these changes.
55 */
56
57/*
58 * Copyright (c) 1994 The University of Utah and
59 * the Computer Systems Laboratory at the University of Utah (CSL).
60 * All rights reserved.
61 *
62 * Permission to use, copy, modify and distribute this software is hereby
63 * granted provided that (1) source code retains these copyright, permission,
64 * and disclaimer notices, and (2) redistributions including binaries
65 * reproduce the notices in supporting documentation, and (3) all advertising
66 * materials mentioning features or use of this software display the following
67 * acknowledgement: ``This product includes software developed by the
68 * Computer Systems Laboratory at the University of Utah.''
69 *
70 * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
71 * IS" CONDITION. THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
72 * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
73 *
74 * CSL requests users of this software to return to csl-dist@cs.utah.edu any
75 * improvements that they make and grant CSL redistribution rights.
76 *
77 */
78
79/*
80 *File:vm_param.h
81 *Author:Avadis Tevanian, Jr.
82 *Date:1985
83 *
84 *I386 machine dependent virtual memory parameters.
85 *Most of the declarations are preceeded by I386_ (or i386_)
86 *which is OK because only I386 specific code will be using
87 *them.
88 */
89
90#ifndef_MACH_I386_VM_PARAM_H_
91#define _MACH_I386_VM_PARAM_H_
92
93#define BYTE_SIZE8/* byte size in bits */
94
95#define I386_PGBYTES4096/* bytes per 80386 page */
96#define I386_PGSHIFT12/* bitshift for pages */
97
98#definePAGE_SIZEI386_PGBYTES
99#definePAGE_SHIFTI386_PGSHIFT
100#definePAGE_MASK(PAGE_SIZE - 1)
101
102#define I386_LPGBYTES2*1024*1024/* bytes per large page */
103#define I386_LPGSHIFT21/* bitshift for large pages */
104#define I386_LPGMASK(I386_LPGBYTES-1)
105
106/*
107 *Convert bytes to pages and convert pages to bytes.
108 *No rounding is used.
109 */
110
111#define i386_btop(x)((ppnum_t)((x) >> I386_PGSHIFT))
112#define machine_btop(x)i386_btop(x)
113#define i386_ptob(x)(((pmap_paddr_t)(x)) << I386_PGSHIFT)
114
115/*
116 *Round off or truncate to the nearest page. These will work
117 *for either addresses or counts. (i.e. 1 byte rounds to 1 page
118 *bytes.
119 */
120
121#define i386_round_page(x)((((pmap_paddr_t)(x)) + I386_PGBYTES - 1) & \
122~(I386_PGBYTES-1))
123#define i386_trunc_page(x)(((pmap_paddr_t)(x)) & ~(I386_PGBYTES-1))
124
125
126
127#define VM_MIN_ADDRESS64((user_addr_t) 0x0000000000000000ULL)
128/*
129 * default top of user stack... it grows down from here
130 */
131#define VM_USRSTACK64((user_addr_t) 0x00007FFF5FC00000ULL)
132#define VM_DYLD64((user_addr_t) 0x00007FFF5FC00000ULL)
133#define VM_LIB64_SHR_DATA((user_addr_t) 0x00007FFF60000000ULL)
134#define VM_LIB64_SHR_TEXT((user_addr_t) 0x00007FFF80000000ULL)
135/*
136 * the end of the usable user address space , for now about 47 bits.
137 * the 64 bit commpage is past the end of this
138 */
139#define VM_MAX_PAGE_ADDRESS((user_addr_t) 0x00007FFFFFE00000ULL)
140/*
141 * canonical end of user address space for limits checking
142 */
143#define VM_MAX_USER_PAGE_ADDRESS ((user_addr_t)0x00007FFFFFFFF000ULL)
144
145
146/* system-wide values */
147#define MACH_VM_MIN_ADDRESS((mach_vm_offset_t) 0)
148#define MACH_VM_MAX_ADDRESS((mach_vm_offset_t) VM_MAX_PAGE_ADDRESS)
149
150/* process-relative values (all 32-bit legacy only for now) */
151#define VM_MIN_ADDRESS((vm_offset_t) 0)
152#define VM_USRSTACK32((vm_offset_t) 0xC0000000)
153#define VM_MAX_ADDRESS((vm_offset_t) 0xFFE00000)
154
155
156
157#endif/* _MACH_I386_VM_PARAM_H_ */
158

Archive Download this file

Revision: 1146