genassym.cf revision 1.7 1 1.7 thorpej # $NetBSD: genassym.cf,v 1.7 2003/01/17 23:13:12 thorpej Exp $
2 1.1 nisimura
3 1.1 nisimura #
4 1.1 nisimura # Copyright (c) 1982, 1990, 1993
5 1.1 nisimura # The Regents of the University of California. All rights reserved.
6 1.1 nisimura #
7 1.1 nisimura # Redistribution and use in source and binary forms, with or without
8 1.1 nisimura # modification, are permitted provided that the following conditions
9 1.1 nisimura # are met:
10 1.1 nisimura # 1. Redistributions of source code must retain the above copyright
11 1.1 nisimura # notice, this list of conditions and the following disclaimer.
12 1.1 nisimura # 2. Redistributions in binary form must reproduce the above copyright
13 1.1 nisimura # notice, this list of conditions and the following disclaimer in the
14 1.1 nisimura # documentation and/or other materials provided with the distribution.
15 1.1 nisimura # 3. All advertising materials mentioning features or use of this software
16 1.1 nisimura # must display the following acknowledgement:
17 1.1 nisimura # This product includes software developed by the University of
18 1.1 nisimura # California, Berkeley and its contributors.
19 1.1 nisimura # 4. Neither the name of the University nor the names of its contributors
20 1.1 nisimura # may be used to endorse or promote products derived from this software
21 1.1 nisimura # without specific prior written permission.
22 1.1 nisimura #
23 1.1 nisimura # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 1.1 nisimura # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 1.1 nisimura # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 1.1 nisimura # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 1.1 nisimura # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 1.1 nisimura # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 1.1 nisimura # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 1.1 nisimura # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 1.1 nisimura # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 1.1 nisimura # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 1.1 nisimura # SUCH DAMAGE.
34 1.1 nisimura #
35 1.1 nisimura # @(#)genassym.c 8.3 (Berkeley) 1/4/94
36 1.1 nisimura #
37 1.1 nisimura
38 1.5 bjh21 ifdef _KERNEL_OPT
39 1.1 nisimura include "opt_compat_svr4.h"
40 1.5 bjh21 endif
41 1.1 nisimura
42 1.1 nisimura include <sys/param.h>
43 1.1 nisimura include <sys/buf.h>
44 1.1 nisimura include <sys/proc.h>
45 1.1 nisimura include <sys/mbuf.h>
46 1.1 nisimura include <sys/msgbuf.h>
47 1.1 nisimura include <sys/syscall.h>
48 1.1 nisimura include <sys/user.h>
49 1.1 nisimura
50 1.1 nisimura include <uvm/uvm_extern.h>
51 1.1 nisimura
52 1.1 nisimura ifdef COMPAT_SVR4
53 1.1 nisimura include <compat/svr4/svr4_syscall.h>
54 1.1 nisimura include <compat/svr4/svr4_ucontext.h>
55 1.1 nisimura endif
56 1.1 nisimura
57 1.1 nisimura include <machine/cpu.h>
58 1.1 nisimura include <machine/psl.h>
59 1.1 nisimura include <machine/reg.h>
60 1.1 nisimura include <machine/pte.h>
61 1.1 nisimura
62 1.7 thorpej include <m68k/saframe.h>
63 1.7 thorpej
64 1.1 nisimura # values for mmutype
65 1.1 nisimura define MMU_68030 MMU_68030
66 1.1 nisimura define MMU_68851 MMU_68851
67 1.1 nisimura define MMU_68040 MMU_68040
68 1.1 nisimura
69 1.1 nisimura # values for cputype
70 1.1 nisimura define CPU_68020 CPU_68020
71 1.1 nisimura define CPU_68030 CPU_68030
72 1.1 nisimura define CPU_68040 CPU_68040
73 1.1 nisimura
74 1.1 nisimura # CPU configuration options
75 1.1 nisimura ifdef M68020
76 1.1 nisimura define M68020 1
77 1.1 nisimura endif
78 1.1 nisimura ifdef M68030
79 1.1 nisimura define M68030 1
80 1.1 nisimura endif
81 1.1 nisimura ifdef M68040
82 1.1 nisimura define M68040 1
83 1.1 nisimura endif
84 1.1 nisimura
85 1.1 nisimura # values for fputype
86 1.1 nisimura define FPU_NONE FPU_NONE
87 1.1 nisimura define FPU_68881 FPU_68881
88 1.1 nisimura define FPU_68882 FPU_68882
89 1.1 nisimura define FPU_68040 FPU_68040
90 1.1 nisimura
91 1.1 nisimura # values for ectype
92 1.1 nisimura define EC_PHYS EC_PHYS
93 1.1 nisimura define EC_NONE EC_NONE
94 1.1 nisimura define EC_VIRT EC_VIRT
95 1.1 nisimura
96 1.1 nisimura # general constants
97 1.1 nisimura define UPAGES UPAGES
98 1.1 nisimura define USPACE USPACE
99 1.1 nisimura define NBPG NBPG
100 1.1 nisimura define PGSHIFT PGSHIFT
101 1.1 nisimura define USRSTACK USRSTACK
102 1.1 nisimura
103 1.7 thorpej # lwp & proc fields and values
104 1.7 thorpej define L_ADDR offsetof(struct lwp, l_addr)
105 1.7 thorpej define L_BACK offsetof(struct lwp, l_back)
106 1.7 thorpej define L_FORW offsetof(struct lwp, l_forw)
107 1.7 thorpej define L_PRIORITY offsetof(struct lwp, l_priority)
108 1.7 thorpej define L_STAT offsetof(struct lwp, l_stat)
109 1.7 thorpej define L_WCHAN offsetof(struct lwp, l_wchan)
110 1.7 thorpej define L_PROC offsetof(struct lwp, l_proc)
111 1.7 thorpej define L_MD_REGS offsetof(struct lwp, l_md.md_regs)
112 1.7 thorpej define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags)
113 1.7 thorpej define P_FLAG offsetof(struct proc, p_flag)
114 1.7 thorpej define P_NRAS offsetof(struct proc, p_nras)
115 1.1 nisimura define P_VMSPACE offsetof(struct proc, p_vmspace)
116 1.7 thorpej
117 1.7 thorpej # lwp fields and values
118 1.7 thorpej
119 1.7 thorpej define LSSLEEP LSSLEEP
120 1.7 thorpej define LSRUN LSRUN
121 1.7 thorpej define LSONPROC LSONPROC
122 1.1 nisimura
123 1.1 nisimura # interrupt/fault metering
124 1.1 nisimura define UVMEXP_INTRS offsetof(struct uvmexp, intrs)
125 1.1 nisimura
126 1.1 nisimura define T_BUSERR T_BUSERR
127 1.1 nisimura define T_ADDRERR T_ADDRERR
128 1.1 nisimura define T_ILLINST T_ILLINST
129 1.1 nisimura define T_ZERODIV T_ZERODIV
130 1.1 nisimura define T_CHKINST T_CHKINST
131 1.1 nisimura define T_TRAPVINST T_TRAPVINST
132 1.1 nisimura define T_PRIVINST T_PRIVINST
133 1.1 nisimura define T_TRACE T_TRACE
134 1.1 nisimura define T_MMUFLT T_MMUFLT
135 1.1 nisimura define T_SSIR T_SSIR
136 1.1 nisimura define T_FMTERR T_FMTERR
137 1.1 nisimura define T_COPERR T_COPERR
138 1.1 nisimura define T_FPERR T_FPERR
139 1.1 nisimura define T_ASTFLT T_ASTFLT
140 1.1 nisimura define T_TRAP15 T_TRAP15
141 1.1 nisimura define T_FPEMULI T_FPEMULI
142 1.1 nisimura define T_FPEMULD T_FPEMULD
143 1.1 nisimura
144 1.1 nisimura # PSL values (should just include psl.h?)
145 1.1 nisimura define PSL_S PSL_S
146 1.1 nisimura define PSL_IPL7 PSL_IPL7
147 1.1 nisimura define PSL_LOWIPL PSL_LOWIPL
148 1.1 nisimura define PSL_HIGHIPL PSL_HIGHIPL
149 1.1 nisimura define PSL_USER PSL_USER
150 1.1 nisimura define PSL_TS PSL_T | PSL_S
151 1.1 nisimura define SPL1 PSL_S | PSL_IPL1
152 1.1 nisimura define SPL2 PSL_S | PSL_IPL2
153 1.1 nisimura define SPL3 PSL_S | PSL_IPL3
154 1.1 nisimura define SPL4 PSL_S | PSL_IPL4
155 1.1 nisimura define SPL5 PSL_S | PSL_IPL5
156 1.1 nisimura define SPL6 PSL_S | PSL_IPL6
157 1.1 nisimura
158 1.1 nisimura # magic
159 1.1 nisimura define FC_USERD FC_USERD
160 1.1 nisimura define FC_SUPERD FC_SUPERD
161 1.1 nisimura define CACHE_ON CACHE_ON
162 1.1 nisimura define CACHE_OFF CACHE_OFF
163 1.1 nisimura define CACHE_CLR CACHE_CLR
164 1.1 nisimura define IC_CLEAR IC_CLEAR
165 1.1 nisimura define DC_CLEAR DC_CLEAR
166 1.1 nisimura
167 1.1 nisimura # pte/ste bits
168 1.1 nisimura define PG_V PG_V
169 1.1 nisimura define PG_NV PG_NV
170 1.1 nisimura define PG_RO PG_RO
171 1.1 nisimura define PG_RW PG_RW
172 1.1 nisimura define PG_CI PG_CI
173 1.1 nisimura define PG_PROT PG_PROT
174 1.1 nisimura define PG_FRAME PG_FRAME
175 1.1 nisimura define SG_V SG_V
176 1.1 nisimura define SG_NV SG_NV
177 1.1 nisimura define SG_RW SG_RW
178 1.1 nisimura define SG_FRAME SG_FRAME
179 1.1 nisimura define SG_ISHIFT SG_ISHIFT
180 1.1 nisimura
181 1.1 nisimura # pcb fields
182 1.1 nisimura define PCB_PS offsetof(struct pcb, pcb_ps)
183 1.1 nisimura define PCB_USP offsetof(struct pcb, pcb_usp)
184 1.1 nisimura define PCB_REGS offsetof(struct pcb, pcb_regs)
185 1.1 nisimura define PCB_ONFAULT offsetof(struct pcb, pcb_onfault)
186 1.1 nisimura define PCB_FPCTX offsetof(struct pcb, pcb_fpregs)
187 1.1 nisimura define SIZEOF_PCB sizeof(struct pcb)
188 1.1 nisimura
189 1.7 thorpej # frame offsets
190 1.7 thorpej define TF_PC offsetof(struct frame, f_pc)
191 1.7 thorpej
192 1.1 nisimura # exception frame offset/sizes
193 1.1 nisimura define FR_SP offsetof(struct frame, f_regs[15])
194 1.1 nisimura define FR_HW offsetof(struct frame, f_sr)
195 1.1 nisimura define FR_ADJ offsetof(struct frame, f_stackadj)
196 1.1 nisimura define FR_SIZE sizeof(struct trapframe)
197 1.4 tsutsui
198 1.4 tsutsui # FP frame offsets
199 1.4 tsutsui define FPF_REGS offsetof(struct fpframe, fpf_regs[0])
200 1.4 tsutsui define FPF_FPCR offsetof(struct fpframe, fpf_fpcr)
201 1.1 nisimura
202 1.1 nisimura # system calls
203 1.1 nisimura define SYS_exit SYS_exit
204 1.1 nisimura define SYS_execve SYS_execve
205 1.1 nisimura define SYS___sigreturn14 SYS___sigreturn14
206 1.1 nisimura define SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13
207 1.1 nisimura
208 1.1 nisimura # errno
209 1.1 nisimura define EFAULT EFAULT
210 1.1 nisimura define ENAMETOOLONG ENAMETOOLONG
211 1.1 nisimura
212 1.1 nisimura # SVR4 binary compatibility
213 1.1 nisimura ifdef COMPAT_SVR4
214 1.1 nisimura define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler)
215 1.1 nisimura define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc)
216 1.1 nisimura define SVR4_SYS_context SVR4_SYS_context
217 1.1 nisimura define SVR4_SYS_exit SVR4_SYS_exit
218 1.1 nisimura define SVR4_SETCONTEXT SVR4_SETCONTEXT
219 1.1 nisimura endif
220