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