1#	$NetBSD: genassym.cf,v 1.17 2023/10/06 11:45:16 skrll Exp $
2
3#
4# Copyright (c) 1998 The NetBSD Foundation, Inc.
5# All rights reserved.
6#
7# This code is derived from software contributed to The NetBSD Foundation
8# by Charles M. Hannum.
9#
10# Redistribution and use in source and binary forms, with or without
11# modification, are permitted provided that the following conditions
12# are met:
13# 1. Redistributions of source code must retain the above copyright
14#    notice, this list of conditions and the following disclaimer.
15# 2. Redistributions in binary form must reproduce the above copyright
16#    notice, this list of conditions and the following disclaimer in the
17#    documentation and/or other materials provided with the distribution.
18#
19# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29# POSSIBILITY OF SUCH DAMAGE.
30#
31
32#
33# Copyright (c) 1982, 1990 The Regents of the University of California.
34# All rights reserved.
35#
36# This code is derived from software contributed to Berkeley by
37# William Jolitz.
38#
39# Redistribution and use in source and binary forms, with or without
40# modification, are permitted provided that the following conditions
41# are met:
42# 1. Redistributions of source code must retain the above copyright
43#    notice, this list of conditions and the following disclaimer.
44# 2. Redistributions in binary form must reproduce the above copyright
45#    notice, this list of conditions and the following disclaimer in the
46#    documentation and/or other materials provided with the distribution.
47# 3. Neither the name of the University nor the names of its contributors
48#    may be used to endorse or promote products derived from this software
49#    without specific prior written permission.
50#
51# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
52# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
53# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
54# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
55# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
56# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
57# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
58# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
59# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
60# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
61# SUCH DAMAGE.
62#
63#	@(#)genassym.c	5.11 (Berkeley) 5/10/91
64#
65
66include <sys/param.h>
67include <sys/proc.h>
68include <sys/resourcevar.h>
69include <sys/device.h>
70include <sys/exec_elf.h>
71include <sys/ucontext.h>
72
73include <uvm/uvm.h>
74
75include <machine/pmap.h>
76include <machine/vmparam.h>
77include <machine/pte.h>
78include <machine/frame.h>
79include <machine/types.h>
80include <machine/pcb.h>
81
82define	PAGE_SIZE		PAGE_SIZE
83define	PAGE_SHIFT		PAGE_SHIFT
84define	KSTACK_PAGES		KSTACK_PAGES
85
86define	IA64_VM_MINKERN_REGION	IA64_VM_MINKERN_REGION
87define	IA64_PBVM_RR		IA64_PBVM_RR
88define	IA64_PBVM_PAGE_SHIFT	IA64_PBVM_PAGE_SHIFT
89define	IA64_PSR_I		IA64_PSR_I
90define	IA64_PSR_DT		IA64_PSR_DT
91define	IA64_PSR_DFL		IA64_PSR_DFL
92define	IA64_PSR_DFH		IA64_PSR_DFH
93define	IA64_PSR_IT		IA64_PSR_IT
94define	IA64_PSR_RT		IA64_PSR_RT
95define	IA64_PSR_BN		IA64_PSR_BN
96define	IA64_PBVM_BASE		IA64_PBVM_BASE
97define	IA64_PBVM_PGTBL		IA64_PBVM_PGTBL
98define	IA64_DCR_DEFAULT	IA64_DCR_DEFAULT
99
100define	PTE_PRESENT		PTE_PRESENT
101define	PTE_ACCESSED		PTE_ACCESSED
102define	PTE_DIRTY		PTE_DIRTY
103define	PTE_PL_KERN		PTE_PL_KERN
104define	PTE_AR_RWX		PTE_AR_RWX
105define	PTE_MA_WB		PTE_MA_WB
106define	PTE_MA_UC		PTE_MA_UC
107
108# errno values
109define	ENAMETOOLONG		ENAMETOOLONG
110define	EFAULT			EFAULT
111
112# Important offsets into the lwp and proc structs & associated constants
113define	L_PCB			offsetof(struct lwp, l_addr)
114
115define	SIZEOF_PCB		sizeof(struct pcb)
116define	SIZEOF_TRAPFRAME	sizeof(struct trapframe)
117define	SIZEOF_SPECIAL		sizeof(struct _special)
118
119define	MC_SPECIAL		offsetof(struct __mcontext, mc_special)
120define	UC_MCONTEXT		offsetof(struct __ucontext, uc_mcontext)
121
122# general constants
123define	VM_MAX_ADDRESS		VM_MAX_ADDRESS
124
125# Important offsets into the user struct & associated constants
126define	UPAGES			UPAGES
127
128define	FRAME_SYSCALL		FRAME_SYSCALL
129
130define	PC_CURLWP		offsetof(struct cpu_info, ci_curlwp)
131define	PCB_ONFAULT		offsetof(struct pcb, pcb_onfault)
132