xref: /netbsd/sys/arch/amiga/amiga/genassym.cf (revision bf9ec67e)
1#	$NetBSD: genassym.cf,v 1.16 2002/05/11 09:39:25 jdolecek Exp $
2
3#
4# Copyright (c) 1982, 1990, 1993
5#	The Regents of the University of California.  All rights reserved.
6#
7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions
9# are met:
10# 1. Redistributions of source code must retain the above copyright
11#    notice, this list of conditions and the following disclaimer.
12# 2. Redistributions in binary form must reproduce the above copyright
13#    notice, this list of conditions and the following disclaimer in the
14#    documentation and/or other materials provided with the distribution.
15# 3. All advertising materials mentioning features or use of this software
16#    must display the following acknowledgement:
17#	This product includes software developed by the University of
18#	California, Berkeley and its contributors.
19# 4. Neither the name of the University nor the names of its contributors
20#    may be used to endorse or promote products derived from this software
21#    without specific prior written permission.
22#
23# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33# SUCH DAMAGE.
34#
35#	@(#)genassym.c	8.3 (Berkeley) 1/4/94
36#
37
38if defined(_KERNEL_OPT)
39include "opt_compat_svr4.h"
40endif
41
42include <sys/param.h>
43include <sys/buf.h>
44include <sys/proc.h>
45include <sys/mbuf.h>
46include <sys/msgbuf.h>
47include <sys/syscall.h>
48include <sys/user.h>
49
50include <uvm/uvm_extern.h>
51
52ifdef COMPAT_SVR4
53include <compat/svr4/svr4_syscall.h>
54include <compat/svr4/svr4_ucontext.h>
55endif
56
57include <machine/cpu.h>
58include <machine/psl.h>
59include <machine/reg.h>
60include <machine/pte.h>
61
62include <amiga/amiga/cia.h>
63include <amiga/amiga/isr.h>
64
65# values for mmutype
66define	MMU_68851	MMU_68851
67define	MMU_68030	MMU_68030
68define	MMU_68040	MMU_68040
69define	MMU_68060	MMU_68060
70
71# values for cputype
72define	CPU_68020	CPU_68020
73define	CPU_68030	CPU_68030
74define	CPU_68040	CPU_68040
75define	CPU_68060	CPU_68060
76
77# values for ectype
78define	EC_NONE		EC_NONE
79
80# values for fputype
81define	FPU_NONE	FPU_NONE
82define	FPU_68881	FPU_68881
83define	FPU_68882	FPU_68882
84define	FPU_68040	FPU_68040
85define	FPU_68060	FPU_68060
86define	FPU_UNKNOWN	FPU_UNKNOWN
87
88ifdef FPU_EMULATE
89define	FPU_EMULATE	FPU_EMULATE
90endif
91
92# values for machineid
93define	AMIGA_68020	AMIGA_68020
94define	AMIGA_68030	AMIGA_68030
95define	AMIGA_68040	AMIGA_68040
96define	AMIGA_68060	AMIGA_68060
97ifdef DRACO
98define	DRACO		DRACO
99endif
100
101# proc structure fields and values
102define	P_FORW		offsetof(struct proc, p_forw)
103define	P_BACK		offsetof(struct proc, p_back)
104define	P_VMSPACE	offsetof(struct proc, p_vmspace)
105define	P_ADDR		offsetof(struct proc, p_addr)
106define	P_PRIORITY	offsetof(struct proc, p_priority)
107define	P_STAT		offsetof(struct proc, p_stat)
108define	P_WCHAN		offsetof(struct proc, p_wchan)
109define	P_MD		offsetof(struct proc, p_md)
110define	P_PID		offsetof(struct proc, p_pid)
111define	MD_REGS		offsetof(struct mdproc, md_regs)
112define	SRUN		SRUN
113define	SONPROC		SONPROC
114
115# interrupt/fault metering
116define	UVMEXP_INTRS	offsetof(struct uvmexp, intrs)
117
118# general constants
119define	UPAGES		UPAGES
120define	USPACE		USPACE
121define	NBPG		NBPG
122define	PGSHIFT		PGSHIFT
123define	USRSTACK	USRSTACK
124
125# PSL values (should just include psl.h?)
126define	PSL_S		PSL_S
127define	PSL_IPL7	PSL_IPL7
128define	PSL_LOWIPL	PSL_LOWIPL
129define	PSL_HIGHIPL	PSL_HIGHIPL
130define	PSL_USER	PSL_USER
131define	SPL1		PSL_S | PSL_IPL1
132define	SPL2		PSL_S | PSL_IPL2
133define	SPL3		PSL_S | PSL_IPL3
134define	SPL4		PSL_S | PSL_IPL4
135define	SPL5		PSL_S | PSL_IPL5
136define	SPL6		PSL_S | PSL_IPL6
137
138# magic
139define	FC_USERD	FC_USERD
140define	FC_SUPERD	FC_SUPERD
141define	CACHE_ON	CACHE_ON
142define	CACHE_OFF	CACHE_OFF
143define	CACHE_CLR	CACHE_CLR
144define	IC_CLEAR	IC_CLEAR
145define	DC_CLEAR	DC_CLEAR
146define	CACHE40_ON	CACHE40_ON
147define	CACHE40_OFF	CACHE40_OFF
148define	CACHE60_ON	CACHE60_ON
149define	CACHE60_OFF	CACHE60_OFF
150define	IC60_CUBC	IC60_CUBC
151define	IC60_CABC	IC60_CABC
152
153# pte bits
154define	PG_V		PG_V
155define	PG_NV		PG_NV
156define	PG_RO		PG_RO
157define	PG_RW		PG_RW
158define	PG_CI		PG_CI
159define	PG_PROT		PG_PROT
160define	PG_FRAME	PG_FRAME
161
162# pcb fields
163define	PCB_FLAGS	offsetof(struct pcb, pcb_flags)
164define	PCB_PS		offsetof(struct pcb, pcb_ps)
165define	PCB_USP		offsetof(struct pcb, pcb_usp)
166define	PCB_REGS	offsetof(struct pcb, pcb_regs)
167define	PCB_CMAP2	offsetof(struct pcb, pcb_cmap2)
168define	PCB_ONFAULT	offsetof(struct pcb, pcb_onfault)
169define	PCB_FPCTX	offsetof(struct pcb, pcb_fpregs)
170define	SIZEOF_PCB	sizeof(struct pcb)
171
172# exception frame offsets
173define	FR_SP		offsetof(struct frame, f_regs[15])
174define	FR_HW		offsetof(struct frame, f_sr)
175define	FR_ADJ		offsetof(struct frame, f_stackadj)
176
177# FP frame offsets
178define	FPF_REGS	offsetof(struct fpframe, fpf_regs[0])
179define	FPF_FPCR	offsetof(struct fpframe, fpf_fpcr)
180define	FPF_FPSR	offsetof(struct fpframe, fpf_fpsr)
181define	FPF_FPI		offsetof(struct fpframe, fpf_fpiar)
182
183# isr fields
184define	ISR_FORW	offsetof(struct isr, isr_forw)
185define	ISR_INTR	offsetof(struct isr, isr_intr)
186define	ISR_ARG		offsetof(struct isr, isr_arg)
187
188# system calls
189define	SYS_exit	SYS_exit
190define	SYS___sigreturn14 SYS___sigreturn14
191define	SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13
192
193# miscellaneous custom chip register offsets
194define	CIAICR		offsetof(struct CIA, icr)
195
196# SVR4 binary compatibility
197ifdef COMPAT_SVR4
198define SVR4_SIGF_HANDLER	offsetof(struct svr4_sigframe, sf_handler)
199define SVR4_SIGF_UC		offsetof(struct svr4_sigframe, sf_uc)
200define SVR4_SYS_context		SVR4_SYS_context
201define SVR4_SYS_exit		SVR4_SYS_exit
202define SVR4_SETCONTEXT		SVR4_SETCONTEXT
203endif
204