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
|
# $NetBSD: genassym.cf,v 1.16 2020/02/20 08:27:40 skrll 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. 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.
#
# from: @(#)genassym.c 8.3 (Berkeley) 1/4/94
#
#
# Copyright (c) 1994, 1995 Gordon W. Ross
# Copyright (c) 1993 Adam Glass
#
# 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.
#
# from: @(#)genassym.c 8.3 (Berkeley) 1/4/94
#
include <sys/param.h>
include <sys/cdefs.h>
include <sys/errno.h>
include <sys/proc.h>
include <sys/syscall.h>
include <uvm/uvm_extern.h>
include <machine/cpu.h>
include <machine/dvma.h>
include <machine/mon.h>
include <machine/pcb.h>
include <machine/pmap.h>
include <machine/psl.h>
include <machine/pte.h>
include <machine/vmparam.h>
include <sun3/sun3/buserr.h>
include <sun3/sun3/cache.h>
include <sun3/sun3/fc.h>
include <sun3/sun3x/enable.h>
# XXX: for copy.s
define M68030 1
# bus error stuff XXX
# define BUSERR_REG BUSERR_REG
# define BUSERR_MMU BUSERR_MMU
# 68k isms
define PSL_LOWIPL PSL_LOWIPL
define PSL_HIGHIPL PSL_HIGHIPL
define PSL_USER PSL_USER
define PSL_S PSL_S
define PSL_TS PSL_T | PSL_S
define FC_CONTROL FC_CONTROL
define FC_SUPERD FC_SUPERD
define FC_USERD FC_USERD
define IC_CLEAR IC_CLEAR
define DC_CLEAR DC_CLEAR
define CACHE_CLR CACHE_CLR
# sun3 memory map
define USRSTACK3X USRSTACK3X
define SUN3X_MONSTART SUN3X_MONSTART
define SUN3X_PROM_BASE SUN3X_PROM_BASE
define SUN3X_MONEND SUN3X_MONEND
# kernel-isms
define KERNBASE3X KERNBASE3X
define USPACE USPACE
define PAGE_SIZE PAGE_SIZE
# system calls
define SYS_exit SYS_exit
define SYS_compat_16___sigreturn14 SYS_compat_16___sigreturn14
define SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13
# errno-isms
define EFAULT EFAULT
define ENAMETOOLONG ENAMETOOLONG
# trap types: locore.s includes trap.h
#
# unix structure-isms
#
# lwp & proc fields and values
define L_PCB offsetof(struct lwp, l_addr)
define L_PROC offsetof(struct lwp, l_proc)
define L_MD_REGS offsetof(struct lwp, l_md.md_regs)
define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags)
define P_FLAG offsetof(struct proc, p_flag)
define P_RASLIST offsetof(struct proc, p_raslist)
define P_VMSPACE offsetof(struct proc, p_vmspace)
# XXX: HP-UX trace bit?
# VM/pmap structure fields
define VM_PMAP offsetof(struct vmspace, vm_map.pmap)
define PM_A_PHYS offsetof(struct pmap, pm_a_phys)
define PM_A_TMGR offsetof(struct pmap, pm_a_tmgr)
# pcb offsets
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[0])
define PCB_ONFAULT offsetof(struct pcb, pcb_onfault)
define PCB_FPCTX offsetof(struct pcb, pcb_fpregs)
define SIZEOF_PCB sizeof(struct pcb)
# frame offsets
define TF_PC offsetof(struct frame, f_pc)
# exception frame offset/sizes
define FR_SP offsetof(struct trapframe, tf_regs[15])
define FR_ADJ offsetof(struct trapframe, tf_stackadj)
define FR_HW offsetof(struct trapframe, tf_sr)
define FR_SIZE sizeof(struct trapframe)
# FP frame offsets
define FPF_REGS offsetof(struct fpframe, fpf_regs[0])
define FPF_FPCR offsetof(struct fpframe, fpf_fpcr)
|