| @@ -1,207 +1,208 @@ | | | @@ -1,207 +1,208 @@ |
1 | # $NetBSD: genassym.cf,v 1.26 2011/01/22 10:57:07 skrll Exp $ | | 1 | # $NetBSD: genassym.cf,v 1.27 2011/01/22 19:27:43 skrll Exp $ |
2 | | | 2 | |
3 | # $OpenBSD: genassym.cf,v 1.18 2001/09/20 18:31:14 mickey Exp $ | | 3 | # $OpenBSD: genassym.cf,v 1.18 2001/09/20 18:31:14 mickey Exp $ |
4 | | | 4 | |
5 | # | | 5 | # |
6 | # Copyright (c) 1982, 1990, 1993 | | 6 | # Copyright (c) 1982, 1990, 1993 |
7 | # The Regents of the University of California. All rights reserved. | | 7 | # The Regents of the University of California. All rights reserved. |
8 | # | | 8 | # |
9 | # Redistribution and use in source and binary forms, with or without | | 9 | # Redistribution and use in source and binary forms, with or without |
10 | # modification, are permitted provided that the following conditions | | 10 | # modification, are permitted provided that the following conditions |
11 | # are met: | | 11 | # are met: |
12 | # 1. Redistributions of source code must retain the above copyright | | 12 | # 1. Redistributions of source code must retain the above copyright |
13 | # notice, this list of conditions and the following disclaimer. | | 13 | # notice, this list of conditions and the following disclaimer. |
14 | # 2. Redistributions in binary form must reproduce the above copyright | | 14 | # 2. Redistributions in binary form must reproduce the above copyright |
15 | # notice, this list of conditions and the following disclaimer in the | | 15 | # notice, this list of conditions and the following disclaimer in the |
16 | # documentation and/or other materials provided with the distribution. | | 16 | # documentation and/or other materials provided with the distribution. |
17 | # 3. Neither the name of the University nor the names of its contributors | | 17 | # 3. Neither the name of the University nor the names of its contributors |
18 | # may be used to endorse or promote products derived from this software | | 18 | # may be used to endorse or promote products derived from this software |
19 | # without specific prior written permission. | | 19 | # without specific prior written permission. |
20 | # | | 20 | # |
21 | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | | 21 | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND |
22 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | | 22 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
23 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | | 23 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
24 | # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | | 24 | # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE |
25 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | | 25 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
26 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | | 26 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
27 | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 27 | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
28 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | 28 | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
29 | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 29 | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
30 | # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | | 30 | # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
31 | # SUCH DAMAGE. | | 31 | # SUCH DAMAGE. |
32 | # | | 32 | # |
33 | # @(#)genassym.c 8.3 (Berkeley) 1/4/94 | | 33 | # @(#)genassym.c 8.3 (Berkeley) 1/4/94 |
34 | # | | 34 | # |
35 | | | 35 | |
36 | if defined(_KERNEL_OPT) | | 36 | if defined(_KERNEL_OPT) |
37 | include "opt_multiprocessor.h" | | 37 | include "opt_multiprocessor.h" |
38 | endif | | 38 | endif |
39 | | | 39 | |
40 | quote #define __MUTEX_PRIVATE | | 40 | quote #define __MUTEX_PRIVATE |
41 | quote #define __RWLOCK_PRIVATE | | 41 | quote #define __RWLOCK_PRIVATE |
42 | | | 42 | |
43 | include <sys/param.h> | | 43 | include <sys/param.h> |
44 | include <sys/systm.h> | | 44 | include <sys/systm.h> |
45 | include <sys/buf.h> | | 45 | include <sys/buf.h> |
46 | include <sys/proc.h> | | 46 | include <sys/proc.h> |
47 | include <sys/mbuf.h> | | 47 | include <sys/mbuf.h> |
48 | include <sys/msgbuf.h> | | 48 | include <sys/msgbuf.h> |
49 | include <sys/syscall.h> | | 49 | include <sys/syscall.h> |
50 | include <sys/mutex.h> | | 50 | include <sys/mutex.h> |
51 | include <sys/rwlock.h> | | 51 | include <sys/rwlock.h> |
52 | include <sys/device.h> | | 52 | include <sys/device.h> |
53 | | | 53 | |
54 | include <uvm/uvm.h> | | 54 | include <uvm/uvm.h> |
55 | include <uvm/uvm_extern.h> | | 55 | include <uvm/uvm_extern.h> |
56 | | | 56 | |
57 | include <machine/types.h> | | 57 | include <machine/types.h> |
58 | include <machine/cpu.h> | | 58 | include <machine/cpu.h> |
59 | include <machine/psl.h> | | 59 | include <machine/psl.h> |
60 | include <machine/pcb.h> | | 60 | include <machine/pcb.h> |
61 | include <machine/reg.h> | | 61 | include <machine/reg.h> |
62 | include <machine/pte.h> | | 62 | include <machine/pte.h> |
63 | include <machine/frame.h> | | 63 | include <machine/frame.h> |
64 | include <machine/pmap.h> | | 64 | include <machine/pmap.h> |
65 | include <machine/iomod.h> | | 65 | include <machine/iomod.h> |
66 | include <machine/lock.h> | | 66 | include <machine/lock.h> |
67 | | | 67 | |
68 | include <hp700/hp700/intr.h> | | 68 | include <hp700/hp700/intr.h> |
69 | | | 69 | |
70 | include <hppa/hppa/hpt.h> | | 70 | include <hppa/hppa/hpt.h> |
71 | | | 71 | |
72 | # general constants | | 72 | # general constants |
73 | export PAGE_SIZE | | 73 | export PAGE_SIZE |
74 | export PGSHIFT | | 74 | export PGSHIFT |
75 | export USRSTACK | | 75 | export USRSTACK |
76 | export HPPA_PID_KERNEL | | 76 | export HPPA_PID_KERNEL |
77 | export HPPA_SID_KERNEL | | 77 | export HPPA_SID_KERNEL |
78 | export VM_MAXUSER_ADDRESS | | 78 | export VM_MAXUSER_ADDRESS |
79 | export HPPA_LDCW_ALIGN | | 79 | export HPPA_LDCW_ALIGN |
| | | 80 | export __SIMPLELOCK_RAW_UNLOCKED |
80 | | | 81 | |
81 | # `break' entry points | | 82 | # `break' entry points |
82 | export HPPA_BREAK_KERNEL | | 83 | export HPPA_BREAK_KERNEL |
83 | export HPPA_BREAK_GET_PSW | | 84 | export HPPA_BREAK_GET_PSW |
84 | export HPPA_BREAK_SET_PSW | | 85 | export HPPA_BREAK_SET_PSW |
85 | | | 86 | |
86 | # hp700_int_reg fields | | 87 | # hp700_int_reg fields |
87 | struct hp700_int_reg | | 88 | struct hp700_int_reg |
88 | member INT_REG_REQ int_reg_req | | 89 | member INT_REG_REQ int_reg_req |
89 | member INT_REG_BITS_MAP int_reg_bits_map | | 90 | member INT_REG_BITS_MAP int_reg_bits_map |
90 | export INT_REG_BIT_REG | | 91 | export INT_REG_BIT_REG |
91 | | | 92 | |
92 | # struct cpu_info fields | | 93 | # struct cpu_info fields |
93 | define CI_CPL offsetof(struct cpu_info, ci_cpl) | | 94 | define CI_CPL offsetof(struct cpu_info, ci_cpl) |
94 | define CI_IPENDING offsetof(struct cpu_info, ci_ipending) | | 95 | define CI_IPENDING offsetof(struct cpu_info, ci_ipending) |
95 | #define CI_INTR_DEPTH offsetof(struct cpu_info, ci_intr_depth) | | 96 | #define CI_INTR_DEPTH offsetof(struct cpu_info, ci_intr_depth) |
96 | #define CI_SOFTLWPS offsetof(struct cpu_info, ci_softlwps) | | 97 | #define CI_SOFTLWPS offsetof(struct cpu_info, ci_softlwps) |
97 | define CI_MTX_COUNT offsetof(struct cpu_info, ci_mtx_count) | | 98 | define CI_MTX_COUNT offsetof(struct cpu_info, ci_mtx_count) |
98 | define CI_TRAPSAVE offsetof(struct cpu_info, ci_trapsave) | | 99 | define CI_TRAPSAVE offsetof(struct cpu_info, ci_trapsave) |
99 | ifdef MULTIPROCESSOR | | 100 | ifdef MULTIPROCESSOR |
100 | define CI_CURLWP offsetof(struct cpu_info, ci_curlwp) | | 101 | define CI_CURLWP offsetof(struct cpu_info, ci_curlwp) |
101 | endif | | 102 | endif |
102 | | | 103 | |
103 | | | 104 | |
104 | define MTX_IPL offsetof(struct kmutex, mtx_ipl) | | 105 | define MTX_IPL offsetof(struct kmutex, mtx_ipl) |
105 | define MTX_LOCK offsetof(struct kmutex, mtx_lock) | | 106 | define MTX_LOCK offsetof(struct kmutex, mtx_lock) |
106 | define MTX_OWNER offsetof(struct kmutex, mtx_owner) | | 107 | define MTX_OWNER offsetof(struct kmutex, mtx_owner) |
107 | define MTX_WAITERS offsetof(struct kmutex, mtx_waiters) | | 108 | define MTX_WAITERS offsetof(struct kmutex, mtx_waiters) |
108 | | | 109 | |
109 | define RW_OWNER offsetof(struct krwlock, rw_owner) | | 110 | define RW_OWNER offsetof(struct krwlock, rw_owner) |
110 | define RW_WRITE_LOCKED RW_WRITE_LOCKED | | 111 | define RW_WRITE_LOCKED RW_WRITE_LOCKED |
111 | define RW_WRITE_WANTED RW_WRITE_WANTED | | 112 | define RW_WRITE_WANTED RW_WRITE_WANTED |
112 | define RW_READ_INCR RW_READ_INCR | | 113 | define RW_READ_INCR RW_READ_INCR |
113 | define RW_HAS_WAITERS RW_HAS_WAITERS | | 114 | define RW_HAS_WAITERS RW_HAS_WAITERS |
114 | define RW_THREAD RW_THREAD | | 115 | define RW_THREAD RW_THREAD |
115 | define RW_READER RW_READER | | 116 | define RW_READER RW_READER |
116 | define RW_WRITER RW_WRITER | | 117 | define RW_WRITER RW_WRITER |
117 | | | 118 | |
118 | # saved state fields | | 119 | # saved state fields |
119 | struct trapframe | | 120 | struct trapframe |
120 | member TF_FLAGS tf_flags | | 121 | member TF_FLAGS tf_flags |
121 | member TF_R1 tf_r1 | | 122 | member TF_R1 tf_r1 |
122 | member TF_R2 tf_rp | | 123 | member TF_R2 tf_rp |
123 | member TF_R3 tf_r3 | | 124 | member TF_R3 tf_r3 |
124 | member TF_R4 tf_r4 | | 125 | member TF_R4 tf_r4 |
125 | member TF_R5 tf_r5 | | 126 | member TF_R5 tf_r5 |
126 | member TF_R6 tf_r6 | | 127 | member TF_R6 tf_r6 |
127 | member TF_R7 tf_r7 | | 128 | member TF_R7 tf_r7 |
128 | member TF_R8 tf_r8 | | 129 | member TF_R8 tf_r8 |
129 | member TF_R9 tf_r9 | | 130 | member TF_R9 tf_r9 |
130 | member TF_R10 tf_r10 | | 131 | member TF_R10 tf_r10 |
131 | member TF_R11 tf_r11 | | 132 | member TF_R11 tf_r11 |
132 | member TF_R12 tf_r12 | | 133 | member TF_R12 tf_r12 |
133 | member TF_R13 tf_r13 | | 134 | member TF_R13 tf_r13 |
134 | member TF_R14 tf_r14 | | 135 | member TF_R14 tf_r14 |
135 | member TF_R15 tf_r15 | | 136 | member TF_R15 tf_r15 |
136 | member TF_R16 tf_r16 | | 137 | member TF_R16 tf_r16 |
137 | member TF_R17 tf_r17 | | 138 | member TF_R17 tf_r17 |
138 | member TF_R18 tf_r18 | | 139 | member TF_R18 tf_r18 |
139 | member TF_R19 tf_t4 | | 140 | member TF_R19 tf_t4 |
140 | member TF_R20 tf_t3 | | 141 | member TF_R20 tf_t3 |
141 | member TF_R21 tf_t2 | | 142 | member TF_R21 tf_t2 |
142 | member TF_R22 tf_t1 | | 143 | member TF_R22 tf_t1 |
143 | member TF_R23 tf_arg3 | | 144 | member TF_R23 tf_arg3 |
144 | member TF_R24 tf_arg2 | | 145 | member TF_R24 tf_arg2 |
145 | member TF_R25 tf_arg1 | | 146 | member TF_R25 tf_arg1 |
146 | member TF_R26 tf_arg0 | | 147 | member TF_R26 tf_arg0 |
147 | member TF_R27 tf_dp | | 148 | member TF_R27 tf_dp |
148 | member TF_R28 tf_ret0 | | 149 | member TF_R28 tf_ret0 |
149 | member TF_R29 tf_ret1 | | 150 | member TF_R29 tf_ret1 |
150 | member TF_R30 tf_sp | | 151 | member TF_R30 tf_sp |
151 | member TF_R31 tf_r31 | | 152 | member TF_R31 tf_r31 |
152 | member TF_SR0 tf_sr0 | | 153 | member TF_SR0 tf_sr0 |
153 | member TF_SR1 tf_sr1 | | 154 | member TF_SR1 tf_sr1 |
154 | member TF_SR2 tf_sr2 | | 155 | member TF_SR2 tf_sr2 |
155 | member TF_SR3 tf_sr3 | | 156 | member TF_SR3 tf_sr3 |
156 | member TF_SR4 tf_sr4 | | 157 | member TF_SR4 tf_sr4 |
157 | member TF_SR5 tf_sr5 | | 158 | member TF_SR5 tf_sr5 |
158 | member TF_SR6 tf_sr6 | | 159 | member TF_SR6 tf_sr6 |
159 | member TF_SR7 tf_sr7 | | 160 | member TF_SR7 tf_sr7 |
160 | member TF_CR0 tf_rctr | | 161 | member TF_CR0 tf_rctr |
161 | member TF_IIOQH tf_iioq_head | | 162 | member TF_IIOQH tf_iioq_head |
162 | member TF_IIOQT tf_iioq_tail | | 163 | member TF_IIOQT tf_iioq_tail |
163 | member TF_IISQH tf_iisq_head | | 164 | member TF_IISQH tf_iisq_head |
164 | member TF_IISQT tf_iisq_tail | | 165 | member TF_IISQT tf_iisq_tail |
165 | member TF_CR8 tf_pidr1 | | 166 | member TF_CR8 tf_pidr1 |
166 | member TF_CR9 tf_pidr2 | | 167 | member TF_CR9 tf_pidr2 |
167 | member TF_CR10 tf_ccr | | 168 | member TF_CR10 tf_ccr |
168 | member TF_CR11 tf_sar | | 169 | member TF_CR11 tf_sar |
169 | member TF_CR12 tf_pidr3 | | 170 | member TF_CR12 tf_pidr3 |
170 | member TF_CR13 tf_pidr4 | | 171 | member TF_CR13 tf_pidr4 |
171 | member TF_CR15 tf_eiem | | 172 | member TF_CR15 tf_eiem |
172 | member TF_CR19 tf_iir | | 173 | member TF_CR19 tf_iir |
173 | member TF_CR20 tf_isr | | 174 | member TF_CR20 tf_isr |
174 | member TF_CR21 tf_ior | | 175 | member TF_CR21 tf_ior |
175 | member TF_CR22 tf_ipsw | | 176 | member TF_CR22 tf_ipsw |
176 | member TF_CR23 tf_eirr | | 177 | member TF_CR23 tf_eirr |
177 | member TF_CR25 tf_vtop | | 178 | member TF_CR25 tf_vtop |
178 | member TF_CR28 tf_cr28 | | 179 | member TF_CR28 tf_cr28 |
179 | member TF_CR30 tf_cr30 | | 180 | member TF_CR30 tf_cr30 |
180 | | | 181 | |
181 | # proc fields and values | | 182 | # proc fields and values |
182 | struct proc | | 183 | struct proc |
183 | member P_RASLIST p_raslist | | 184 | member P_RASLIST p_raslist |
184 | member P_MD p_md | | 185 | member P_MD p_md |
185 | | | 186 | |
186 | struct lwp | | 187 | struct lwp |
187 | member L_PROC l_proc | | 188 | member L_PROC l_proc |
188 | member L_CPU l_cpu | | 189 | member L_CPU l_cpu |
189 | member L_PCB l_addr | | 190 | member L_PCB l_addr |
190 | member L_PRIORITY l_priority | | 191 | member L_PRIORITY l_priority |
191 | member L_STAT l_stat | | 192 | member L_STAT l_stat |
192 | member L_WCHAN l_wchan | | 193 | member L_WCHAN l_wchan |
193 | member L_MD l_md | | 194 | member L_MD l_md |
194 | member L_MD_REGS l_md.md_regs | | 195 | member L_MD_REGS l_md.md_regs |
195 | member L_CTXSWTCH l_ctxswtch | | 196 | member L_CTXSWTCH l_ctxswtch |
196 | | | 197 | |
197 | struct pcb | | 198 | struct pcb |
198 | member PCB_FPREGS pcb_fpregs | | 199 | member PCB_FPREGS pcb_fpregs |
199 | member PCB_ONFAULT pcb_onfault | | 200 | member PCB_ONFAULT pcb_onfault |
200 | member PCB_SPACE pcb_space | | 201 | member PCB_SPACE pcb_space |
201 | member PCB_KSP pcb_ksp | | 202 | member PCB_KSP pcb_ksp |
202 | | | 203 | |
203 | # system calls | | 204 | # system calls |
204 | export SYSCALLGATE | | 205 | export SYSCALLGATE |
205 | export SYS_exit | | 206 | export SYS_exit |
206 | export SYS_execve | | 207 | export SYS_execve |
207 | export SYS_compat_16___sigreturn14 | | 208 | export SYS_compat_16___sigreturn14 |