summaryrefslogtreecommitdiff
path: root/sys/arch/amiga/amiga/genassym.cf
blob: 7e6f0b293ef1f60dc7866a413aaf2287d72100f1 (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
#	$NetBSD: genassym.cf,v 1.3 1997/07/16 00:01:49 is Exp $
#	$OpenBSD: genassym.cf,v 1.8 2001/08/31 00:37:15 miod Exp $
#
# Copyright (c) 1982, 1990, 1993
#	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	8.3 (Berkeley) 1/4/94
#

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 <uvm/uvm_extern.h>

include <machine/cpu.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_68851	MMU_68851
define	MMU_68030	MMU_68030
define	MMU_68040	MMU_68040
define	MMU_68060	MMU_68060

# 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 ectype
define	EC_NONE		EC_NONE

# values for fputype
define	FPU_NONE	FPU_NONE
define	FPU_68881	FPU_68881
define	FPU_68882	FPU_68882
define	FPU_68040	FPU_68040
define	FPU_68060	FPU_68060
define	FPU_UNKNOWN	FPU_UNKNOWN

ifdef FPU_EMULATE
define	FPU_EMULATE	FPU_EMULATE
endif

# values for machineid
define	AMIGA_68020	AMIGA_68020
define	AMIGA_68030	AMIGA_68030
define	AMIGA_68040	AMIGA_68040
define	AMIGA_68060	AMIGA_68060
ifdef DRACO
define	DRACO		DRACO
endif
ifdef BB060STUPIDROM
define BB060STUPIDROM BB060STUPIDROM
endif

# proc structure fields and values
define	P_VMSPACE	offsetof(struct proc, p_vmspace)
define	P_ADDR		offsetof(struct proc, p_addr)
define  P_MD_REGS	offsetof(struct proc, p_md.md_regs)

# interrupt/fault metering
define	UVMEXP_INTRS	offsetof(struct uvmexp, intrs)

# general constants
define	UPAGES		UPAGES
define	USPACE		USPACE
define	PGSHIFT		PGSHIFT
define	USRSTACK	USRSTACK

# PSL values
define	PSL_S		PSL_S
define	PSL_IPL7	PSL_IPL7
define	PSL_IPL		PSL_IPL
define	PSL_LOWIPL	PSL_LOWIPL
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_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_USP		offsetof(struct pcb, pcb_usp)
define	PCB_REGS	offsetof(struct pcb, pcb_regs)
define	PCB_CMAP2	offsetof(struct pcb, pcb_cmap2)
define	PCB_FPCTX	offsetof(struct pcb, pcb_fpregs)
define	SIZEOF_PCB	sizeof(struct pcb)

# isr 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)

# system calls
define	SYS_exit	SYS_exit
define	SYS_execve	SYS_execve

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

# miscellaneous custom chip register offsets
define	CIAICR		offsetof(struct CIA, icr)