genassym.cf revision 1.1 1 1.1 nisimura # $NetBSD: genassym.cf,v 1.1 2000/01/05 08:49:03 nisimura 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.1 nisimura include "opt_compat_svr4.h"
39 1.1 nisimura
40 1.1 nisimura include <sys/param.h>
41 1.1 nisimura include <sys/buf.h>
42 1.1 nisimura include <sys/map.h>
43 1.1 nisimura include <sys/proc.h>
44 1.1 nisimura include <sys/mbuf.h>
45 1.1 nisimura include <sys/msgbuf.h>
46 1.1 nisimura include <sys/syscall.h>
47 1.1 nisimura include <sys/user.h>
48 1.1 nisimura
49 1.1 nisimura include <vm/vm.h>
50 1.1 nisimura
51 1.1 nisimura include <uvm/uvm_extern.h>
52 1.1 nisimura
53 1.1 nisimura ifdef COMPAT_SVR4
54 1.1 nisimura include <compat/svr4/svr4_syscall.h>
55 1.1 nisimura include <compat/svr4/svr4_ucontext.h>
56 1.1 nisimura endif
57 1.1 nisimura
58 1.1 nisimura include <machine/cpu.h>
59 1.1 nisimura include <machine/psl.h>
60 1.1 nisimura include <machine/reg.h>
61 1.1 nisimura include <machine/pte.h>
62 1.1 nisimura
63 1.1 nisimura # values for mmutype
64 1.1 nisimura define MMU_68030 MMU_68030
65 1.1 nisimura define MMU_68851 MMU_68851
66 1.1 nisimura define MMU_68040 MMU_68040
67 1.1 nisimura
68 1.1 nisimura # values for cputype
69 1.1 nisimura define CPU_68020 CPU_68020
70 1.1 nisimura define CPU_68030 CPU_68030
71 1.1 nisimura define CPU_68040 CPU_68040
72 1.1 nisimura
73 1.1 nisimura # CPU configuration options
74 1.1 nisimura ifdef M68020
75 1.1 nisimura define M68020 1
76 1.1 nisimura endif
77 1.1 nisimura ifdef M68030
78 1.1 nisimura define M68030 1
79 1.1 nisimura endif
80 1.1 nisimura ifdef M68040
81 1.1 nisimura define M68040 1
82 1.1 nisimura endif
83 1.1 nisimura
84 1.1 nisimura # values for fputype
85 1.1 nisimura define FPU_NONE FPU_NONE
86 1.1 nisimura define FPU_68881 FPU_68881
87 1.1 nisimura define FPU_68882 FPU_68882
88 1.1 nisimura define FPU_68040 FPU_68040
89 1.1 nisimura
90 1.1 nisimura # values for ectype
91 1.1 nisimura define EC_PHYS EC_PHYS
92 1.1 nisimura define EC_NONE EC_NONE
93 1.1 nisimura define EC_VIRT EC_VIRT
94 1.1 nisimura
95 1.1 nisimura # general constants
96 1.1 nisimura define UPAGES UPAGES
97 1.1 nisimura define USPACE USPACE
98 1.1 nisimura define NBPG NBPG
99 1.1 nisimura define PGSHIFT PGSHIFT
100 1.1 nisimura define USRSTACK USRSTACK
101 1.1 nisimura
102 1.1 nisimura # proc fields and values
103 1.1 nisimura define P_FORW offsetof(struct proc, p_forw)
104 1.1 nisimura define P_BACK offsetof(struct proc, p_back)
105 1.1 nisimura define P_VMSPACE offsetof(struct proc, p_vmspace)
106 1.1 nisimura define P_ADDR offsetof(struct proc, p_addr)
107 1.1 nisimura define P_PRIORITY offsetof(struct proc, p_priority)
108 1.1 nisimura define P_STAT offsetof(struct proc, p_stat)
109 1.1 nisimura define P_WCHAN offsetof(struct proc, p_wchan)
110 1.1 nisimura define P_MD_FLAGS offsetof(struct proc, p_md.md_flags)
111 1.1 nisimura define P_MD_REGS offsetof(struct proc, p_md.md_regs)
112 1.1 nisimura define SSLEEP SSLEEP
113 1.1 nisimura define SRUN SRUN
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.1 nisimura # exception frame offset/sizes
182 1.1 nisimura define FR_SP offsetof(struct frame, f_regs[15])
183 1.1 nisimura define FR_HW offsetof(struct frame, f_sr)
184 1.1 nisimura define FR_ADJ offsetof(struct frame, f_stackadj)
185 1.1 nisimura define FR_SIZE sizeof(struct trapframe)
186 1.1 nisimura
187 1.1 nisimura # system calls
188 1.1 nisimura define SYS_exit SYS_exit
189 1.1 nisimura define SYS_execve SYS_execve
190 1.1 nisimura define SYS___sigreturn14 SYS___sigreturn14
191 1.1 nisimura define SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13
192 1.1 nisimura
193 1.1 nisimura # errno
194 1.1 nisimura define EFAULT EFAULT
195 1.1 nisimura define ENAMETOOLONG ENAMETOOLONG
196 1.1 nisimura
197 1.1 nisimura # SVR4 binary compatibility
198 1.1 nisimura ifdef COMPAT_SVR4
199 1.1 nisimura define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler)
200 1.1 nisimura define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc)
201 1.1 nisimura define SVR4_SYS_context SVR4_SYS_context
202 1.1 nisimura define SVR4_SYS_exit SVR4_SYS_exit
203 1.1 nisimura define SVR4_SETCONTEXT SVR4_SETCONTEXT
204 1.1 nisimura endif
205 1.1 nisimura
206