summaryrefslogtreecommitdiff
path: root/sys/arch/amiga/amiga/genassym.cf
blob: 29208b323cf2ff4990863a547472d7b4d3eda03c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
#	$OpenBSD: genassym.cf,v 1.1 1997/03/27 11:52:07 niklas Exp $
#
# Copyright (c) 1982, 1990 The Regents of the University of California.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
#    must display the following acknowledgement:
#	This product includes software developed by the University of
#	California, Berkeley and its contributors.
# 4. Neither the name of the University nor the names of its contributors
#    may be used to endorse or promote products derived from this software
#    without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
#	@(#)genassym.c	7.8 (Berkeley) 5/7/91
#

include <sys/param.h>
include <sys/buf.h>
include <sys/proc.h>
include <sys/mbuf.h>
include <sys/msgbuf.h>
include <sys/syscall.h>
include <sys/user.h>

include <vm/vm.h>

include <machine/cpu.h>
include <machine/trap.h>
include <machine/psl.h>
include <machine/reg.h>
include <machine/vmparam.h>
include <machine/pte.h>

include <amiga/amiga/cia.h>
include <amiga/amiga/isr.h>

# values for mmutype
define  MMU_68060	MMU_68060
define  MMU_68040	MMU_68040
define  MMU_68030	MMU_68030
define  MMU_68851	MMU_68851

# values for cputype
define  CPU_68020	CPU_68020
define  CPU_68030	CPU_68030
define  CPU_68040	CPU_68040
define  CPU_68060	CPU_68060

# values for machineid
define	AMIGA_68020	AMIGA_68020
define	AMIGA_68030	AMIGA_68030
define	AMIGA_68040	AMIGA_68040
define	AMIGA_68060	AMIGA_68060

# proc fields and values
define	P_FORW		offsetof(struct proc, p_forw)
define	P_BACK		offsetof(struct proc, p_back)
define	P_VMSPACE	offsetof(struct proc, p_vmspace)
define	P_ADDR		offsetof(struct proc, p_addr)
define	P_PRIORITY	offsetof(struct proc, p_priority)
define	P_STAT		offsetof(struct proc, p_stat)
define	P_WCHAN		offsetof(struct proc, p_wchan)
define	P_PID		offsetof(struct proc, p_pid)
define  P_MD_REGS	offsetof(struct proc, p_md.md_regs)

define	SRUN		SRUN

# VM structure fields
define	VM_PMAP		offsetof(struct vmspace, vm_pmap)
define	PM_STCHG	offsetof(struct pmap, pm_stchanged)

# interrupt/fault metering
define	V_INTR		offsetof(struct vmmeter, v_intr)

# PSL values (should just include psl.h?)
define	PSL_S		PSL_S
define	PSL_IPL7	PSL_IPL7
define	PSL_IPL		PSL_IPL
define	PSL_LOWIPL	PSL_LOWIPL
define	PSL_HIGHIPL	PSL_HIGHIPL
define	PSL_USER	PSL_USER
define	SPL1		PSL_S | PSL_IPL1
define	SPL2		PSL_S | PSL_IPL2
define	SPL3		PSL_S | PSL_IPL3
define	SPL4		PSL_S | PSL_IPL4
define	SPL5		PSL_S | PSL_IPL5
define	SPL6		PSL_S | PSL_IPL6

# magic
define	FC_USERD	FC_USERD
define	FC_SUPERD	FC_SUPERD
define	CACHE_ON	CACHE_ON
define	CACHE_OFF	CACHE_OFF
define	CACHE_CLR	CACHE_CLR
define	IC_CLEAR	IC_CLEAR
define	DC_CLEAR	DC_CLEAR
define	CACHE40_ON	CACHE40_ON
define	CACHE40_OFF	CACHE40_OFF
define	CACHE60_ON	CACHE60_ON
define	CACHE60_OFF	CACHE60_OFF
define	IC60_CUBC	IC60_CUBC
define	IC60_CABC	IC60_CABC

# pte/ste bits
define	PG_V		PG_V
define	PG_NV		PG_NV
define	PG_RO		PG_RO
define	PG_RW		PG_RW
define	PG_CI		PG_CI
define	PG_PROT		PG_PROT
define	PG_FRAME	PG_FRAME

# pcb fields
define	PCB_FLAGS	offsetof(struct pcb, pcb_flags)
define	PCB_PS		offsetof(struct pcb, pcb_ps)
define	PCB_USTP	offsetof(struct pcb, pcb_ustp)
define	PCB_USP		offsetof(struct pcb, pcb_usp)
define	PCB_REGS	offsetof(struct pcb, pcb_regs)
define	PCB_CMAP2	offsetof(struct pcb, pcb_cmap2)
define	PCB_ONFAULT	offsetof(struct pcb, pcb_onfault)
define	PCB_FPCTX	offsetof(struct pcb, pcb_fpregs)
define	SIZEOF_PCB	sizeof(struct pcb)

# exception frame offset/sizes
define	FR_SP		offsetof(struct frame, f_regs[15])
define	FR_HW		offsetof(struct frame, f_sr)
define	FR_ADJ		offsetof(struct frame, f_stackadj)

# system calls
define	SYS_exit	SYS_exit
define	SYS_execve	SYS_execve
define	SYS_sigreturn	SYS_sigreturn

# Various constants
define	UPAGES		UPAGES
define	USPACE		USPACE
define	NBPG		NBPG
define	PGSHIFT		PGSHIFT
define	USRSTACK	USRSTACK
#ifdef DRACO
define	DRACO		DRACO
#endif

# user fields
define	U_PROF		offsetof(struct user, u_stats.p_prof)
define	U_PROFSCALE	offsetof(struct user, u_stats.p_prof.pr_scale)

# Traps
define	T_BUSERR	T_BUSERR
define	T_ADDRERR	T_ADDRERR
define	T_ILLINST	T_ILLINST
define	T_ZERODIV	T_ZERODIV
define	T_CHKINST	T_CHKINST
define	T_TRAPVINST	T_TRAPVINST
define	T_PRIVINST	T_PRIVINST
define	T_TRACE		T_TRACE
define	T_MMUFLT	T_MMUFLT
define	T_FMTERR	T_FMTERR
define	T_COPERR	T_COPERR
define	T_FPERR		T_FPERR
define	T_ASTFLT	T_ASTFLT
define	T_TRAP15	T_TRAP15

# Custom chip registers
define	CIAICR		offsetof(struct CIA, icr)

# Interrupt service routine entry fields
define	ISR_FORW	offsetof(struct isr, isr_forw)
define	ISR_INTR	offsetof(struct isr, isr_intr)
define	ISR_ARG		offsetof(struct isr, isr_arg)