genassym.cf revision 1.18 1 1.18 matt # $NetBSD: genassym.cf,v 1.18 2010/12/20 00:25:36 matt 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
45 1.1 nisimura include <uvm/uvm_extern.h>
46 1.1 nisimura
47 1.1 nisimura ifdef COMPAT_SVR4
48 1.1 nisimura include <compat/svr4/svr4_syscall.h>
49 1.1 nisimura include <compat/svr4/svr4_ucontext.h>
50 1.1 nisimura endif
51 1.1 nisimura
52 1.1 nisimura include <machine/cpu.h>
53 1.1 nisimura include <machine/psl.h>
54 1.1 nisimura include <machine/reg.h>
55 1.1 nisimura include <machine/pte.h>
56 1.1 nisimura
57 1.1 nisimura # values for mmutype
58 1.1 nisimura define MMU_68030 MMU_68030
59 1.1 nisimura define MMU_68851 MMU_68851
60 1.1 nisimura define MMU_68040 MMU_68040
61 1.1 nisimura
62 1.1 nisimura # values for cputype
63 1.1 nisimura define CPU_68020 CPU_68020
64 1.1 nisimura define CPU_68030 CPU_68030
65 1.1 nisimura define CPU_68040 CPU_68040
66 1.1 nisimura
67 1.1 nisimura # CPU configuration options
68 1.1 nisimura ifdef M68020
69 1.1 nisimura define M68020 1
70 1.1 nisimura endif
71 1.1 nisimura ifdef M68030
72 1.1 nisimura define M68030 1
73 1.1 nisimura endif
74 1.1 nisimura ifdef M68040
75 1.1 nisimura define M68040 1
76 1.1 nisimura endif
77 1.1 nisimura
78 1.1 nisimura # values for fputype
79 1.1 nisimura define FPU_NONE FPU_NONE
80 1.1 nisimura define FPU_68881 FPU_68881
81 1.1 nisimura define FPU_68882 FPU_68882
82 1.1 nisimura define FPU_68040 FPU_68040
83 1.1 nisimura
84 1.1 nisimura # values for ectype
85 1.1 nisimura define EC_PHYS EC_PHYS
86 1.1 nisimura define EC_NONE EC_NONE
87 1.1 nisimura define EC_VIRT EC_VIRT
88 1.1 nisimura
89 1.1 nisimura # general constants
90 1.1 nisimura define UPAGES UPAGES
91 1.1 nisimura define USPACE USPACE
92 1.8 thorpej define PAGE_SIZE PAGE_SIZE
93 1.1 nisimura define PGSHIFT PGSHIFT
94 1.1 nisimura define USRSTACK USRSTACK
95 1.1 nisimura
96 1.7 thorpej # lwp & proc fields and values
97 1.17 rmind define L_PCB offsetof(struct lwp, l_addr)
98 1.7 thorpej define L_PRIORITY offsetof(struct lwp, l_priority)
99 1.7 thorpej define L_STAT offsetof(struct lwp, l_stat)
100 1.7 thorpej define L_WCHAN offsetof(struct lwp, l_wchan)
101 1.7 thorpej define L_PROC offsetof(struct lwp, l_proc)
102 1.7 thorpej define L_MD_REGS offsetof(struct lwp, l_md.md_regs)
103 1.7 thorpej define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags)
104 1.7 thorpej define P_FLAG offsetof(struct proc, p_flag)
105 1.10 dsl define P_RASLIST offsetof(struct proc, p_raslist)
106 1.1 nisimura define P_VMSPACE offsetof(struct proc, p_vmspace)
107 1.7 thorpej
108 1.7 thorpej # lwp fields and values
109 1.7 thorpej
110 1.7 thorpej define LSSLEEP LSSLEEP
111 1.7 thorpej define LSRUN LSRUN
112 1.7 thorpej define LSONPROC LSONPROC
113 1.1 nisimura
114 1.1 nisimura # interrupt/fault metering
115 1.18 matt define CI_NINTR offsetof(struct cpu_info, ci_data.cpu_nintr)
116 1.1 nisimura
117 1.1 nisimura define T_BUSERR T_BUSERR
118 1.1 nisimura define T_ADDRERR T_ADDRERR
119 1.1 nisimura define T_ILLINST T_ILLINST
120 1.1 nisimura define T_ZERODIV T_ZERODIV
121 1.1 nisimura define T_CHKINST T_CHKINST
122 1.1 nisimura define T_TRAPVINST T_TRAPVINST
123 1.1 nisimura define T_PRIVINST T_PRIVINST
124 1.1 nisimura define T_TRACE T_TRACE
125 1.1 nisimura define T_MMUFLT T_MMUFLT
126 1.1 nisimura define T_SSIR T_SSIR
127 1.1 nisimura define T_FMTERR T_FMTERR
128 1.1 nisimura define T_COPERR T_COPERR
129 1.1 nisimura define T_FPERR T_FPERR
130 1.1 nisimura define T_ASTFLT T_ASTFLT
131 1.1 nisimura define T_TRAP15 T_TRAP15
132 1.1 nisimura define T_FPEMULI T_FPEMULI
133 1.1 nisimura define T_FPEMULD T_FPEMULD
134 1.1 nisimura
135 1.1 nisimura # PSL values (should just include psl.h?)
136 1.1 nisimura define PSL_S PSL_S
137 1.1 nisimura define PSL_IPL7 PSL_IPL7
138 1.1 nisimura define PSL_LOWIPL PSL_LOWIPL
139 1.1 nisimura define PSL_HIGHIPL PSL_HIGHIPL
140 1.1 nisimura define PSL_USER PSL_USER
141 1.1 nisimura define PSL_TS PSL_T | PSL_S
142 1.1 nisimura define SPL1 PSL_S | PSL_IPL1
143 1.1 nisimura define SPL2 PSL_S | PSL_IPL2
144 1.1 nisimura define SPL3 PSL_S | PSL_IPL3
145 1.1 nisimura define SPL4 PSL_S | PSL_IPL4
146 1.1 nisimura define SPL5 PSL_S | PSL_IPL5
147 1.1 nisimura define SPL6 PSL_S | PSL_IPL6
148 1.1 nisimura
149 1.1 nisimura # magic
150 1.1 nisimura define FC_USERD FC_USERD
151 1.1 nisimura define FC_SUPERD FC_SUPERD
152 1.1 nisimura define CACHE_ON CACHE_ON
153 1.1 nisimura define CACHE_OFF CACHE_OFF
154 1.1 nisimura define CACHE_CLR CACHE_CLR
155 1.1 nisimura define IC_CLEAR IC_CLEAR
156 1.1 nisimura define DC_CLEAR DC_CLEAR
157 1.1 nisimura
158 1.1 nisimura # pte/ste bits
159 1.1 nisimura define PG_V PG_V
160 1.1 nisimura define PG_NV PG_NV
161 1.1 nisimura define PG_RO PG_RO
162 1.1 nisimura define PG_RW PG_RW
163 1.1 nisimura define PG_CI PG_CI
164 1.1 nisimura define PG_PROT PG_PROT
165 1.1 nisimura define PG_FRAME PG_FRAME
166 1.1 nisimura define SG_V SG_V
167 1.1 nisimura define SG_NV SG_NV
168 1.1 nisimura define SG_RW SG_RW
169 1.1 nisimura define SG_FRAME SG_FRAME
170 1.1 nisimura define SG_ISHIFT SG_ISHIFT
171 1.1 nisimura
172 1.1 nisimura # pcb fields
173 1.1 nisimura define PCB_PS offsetof(struct pcb, pcb_ps)
174 1.1 nisimura define PCB_USP offsetof(struct pcb, pcb_usp)
175 1.1 nisimura define PCB_REGS offsetof(struct pcb, pcb_regs)
176 1.1 nisimura define PCB_ONFAULT offsetof(struct pcb, pcb_onfault)
177 1.1 nisimura define PCB_FPCTX offsetof(struct pcb, pcb_fpregs)
178 1.1 nisimura define SIZEOF_PCB sizeof(struct pcb)
179 1.1 nisimura
180 1.7 thorpej # frame offsets
181 1.7 thorpej define TF_PC offsetof(struct frame, f_pc)
182 1.7 thorpej
183 1.1 nisimura # exception frame offset/sizes
184 1.1 nisimura define FR_SP offsetof(struct frame, f_regs[15])
185 1.1 nisimura define FR_HW offsetof(struct frame, f_sr)
186 1.1 nisimura define FR_ADJ offsetof(struct frame, f_stackadj)
187 1.1 nisimura define FR_SIZE sizeof(struct trapframe)
188 1.4 tsutsui
189 1.4 tsutsui # FP frame offsets
190 1.4 tsutsui define FPF_REGS offsetof(struct fpframe, fpf_regs[0])
191 1.4 tsutsui define FPF_FPCR offsetof(struct fpframe, fpf_fpcr)
192 1.1 nisimura
193 1.1 nisimura # system calls
194 1.1 nisimura define SYS_exit SYS_exit
195 1.1 nisimura define SYS_execve SYS_execve
196 1.9 cl define SYS_compat_16___sigreturn14 SYS_compat_16___sigreturn14
197 1.1 nisimura define SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13
198 1.1 nisimura
199 1.1 nisimura # errno
200 1.1 nisimura define EFAULT EFAULT
201 1.1 nisimura define ENAMETOOLONG ENAMETOOLONG
202 1.1 nisimura
203 1.1 nisimura # SVR4 binary compatibility
204 1.1 nisimura ifdef COMPAT_SVR4
205 1.1 nisimura define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler)
206 1.1 nisimura define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc)
207 1.1 nisimura define SVR4_SYS_context SVR4_SYS_context
208 1.1 nisimura define SVR4_SYS_exit SVR4_SYS_exit
209 1.1 nisimura define SVR4_SETCONTEXT SVR4_SETCONTEXT
210 1.1 nisimura endif
211