Annotation of src/sys/arch/i386/i386/genassym.cf, Revision 1.40.16.4
1.40.16.4! yamt 1: # $NetBSD: genassym.cf,v 1.40.16.3 2006/12/30 20:46:09 yamt Exp $
1.9 mycroft 2:
3: #
4: # Copyright (c) 1998 The NetBSD Foundation, Inc.
5: # All rights reserved.
6: #
7: # This code is derived from software contributed to The NetBSD Foundation
8: # by Charles M. Hannum.
9: #
10: # Redistribution and use in source and binary forms, with or without
11: # modification, are permitted provided that the following conditions
12: # are met:
13: # 1. Redistributions of source code must retain the above copyright
14: # notice, this list of conditions and the following disclaimer.
15: # 2. Redistributions in binary form must reproduce the above copyright
16: # notice, this list of conditions and the following disclaimer in the
17: # documentation and/or other materials provided with the distribution.
18: # 3. All advertising materials mentioning features or use of this software
19: # must display the following acknowledgement:
20: # This product includes software developed by the NetBSD
21: # Foundation, Inc. and its contributors.
22: # 4. Neither the name of The NetBSD Foundation nor the names of its
23: # contributors may be used to endorse or promote products derived
24: # from this software without specific prior written permission.
25: #
26: # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27: # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28: # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29: # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
30: # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31: # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32: # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33: # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34: # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35: # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36: # POSSIBILITY OF SUCH DAMAGE.
37: #
1.1 mycroft 38:
39: #
40: # Copyright (c) 1982, 1990 The Regents of the University of California.
41: # All rights reserved.
42: #
43: # This code is derived from software contributed to Berkeley by
44: # William Jolitz.
45: #
46: # Redistribution and use in source and binary forms, with or without
47: # modification, are permitted provided that the following conditions
48: # are met:
49: # 1. Redistributions of source code must retain the above copyright
50: # notice, this list of conditions and the following disclaimer.
51: # 2. Redistributions in binary form must reproduce the above copyright
52: # notice, this list of conditions and the following disclaimer in the
53: # documentation and/or other materials provided with the distribution.
54: # 3. All advertising materials mentioning features or use of this software
55: # must display the following acknowledgement:
56: # This product includes software developed by the University of
57: # California, Berkeley and its contributors.
58: # 4. Neither the name of the University nor the names of its contributors
59: # may be used to endorse or promote products derived from this software
60: # without specific prior written permission.
61: #
62: # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
63: # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
64: # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
65: # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
66: # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
67: # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
68: # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
69: # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
70: # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
71: # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
72: # SUCH DAMAGE.
73: #
74: # @(#)genassym.c 5.11 (Berkeley) 5/10/91
75: #
76:
1.29 jdolecek 77: if defined(_KERNEL_OPT)
1.8 thorpej 78: include "opt_compat_svr4.h"
79: include "opt_compat_freebsd.h"
80: include "opt_compat_linux.h"
1.40.16.2 yamt 81: include "opt_compat_netbsd.h"
1.32 fvdl 82: include "opt_multiprocessor.h"
1.22 jdolecek 83: endif
1.7 thorpej 84:
1.40.16.4! yamt 85: quote #define __MUTEX_PRIVATE
! 86: quote #define __RWLOCK_PRIVATE
! 87:
1.1 mycroft 88: include <sys/param.h>
89: include <sys/proc.h>
90: include <sys/resourcevar.h>
91: include <sys/device.h>
92: include <sys/user.h>
93: include <sys/mbuf.h>
1.40.16.4! yamt 94: include <sys/mutex.h>
! 95: include <sys/rwlock.h>
! 96:
1.25 fvdl 97: include <netinet/in.h>
98: include <netinet/in_systm.h>
99: include <netinet/ip.h>
1.27 sommerfe 100: include <netinet/ip6.h>
1.25 fvdl 101: include <netinet/ip_var.h>
1.1 mycroft 102:
1.18 thorpej 103: include <uvm/uvm.h>
1.6 mrg 104:
1.1 mycroft 105: include <machine/trap.h>
106: include <machine/pmap.h>
107: include <machine/vmparam.h>
1.33 fvdl 108: include <machine/intr.h>
109: include <machine/types.h>
1.1 mycroft 110:
1.22 jdolecek 111: if defined(_KERNEL) && !defined(_LKM)
1.33 fvdl 112: include "ioapic.h"
1.40.16.3 yamt 113: include "apmbios.h"
1.22 jdolecek 114: endif
1.40.16.3 yamt 115: if NAPMBIOS > 0
1.3 jtk 116: include <machine/bioscall.h>
1.1 mycroft 117: include <machine/apmvar.h>
118: endif
119:
1.40.16.2 yamt 120: include <compat/sys/signal.h>
121:
1.1 mycroft 122: ifdef COMPAT_SVR4
123: include <compat/svr4/svr4_ucontext.h>
124: endif
125:
126: ifdef COMPAT_LINUX
1.13 fvdl 127: include <compat/linux/common/linux_signal.h>
128: include <compat/linux/common/linux_machdep.h>
1.1 mycroft 129: endif
130:
131: ifdef COMPAT_FREEBSD
132: include <machine/freebsd_machdep.h>
133: endif
134:
1.32 fvdl 135: ifdef MULTIPROCESSOR
136: include <machine/cpu.h>
137: endif
138:
1.33 fvdl 139: if NIOAPIC > 0
1.37 fvdl 140: include <machine/i82093reg.h>
1.33 fvdl 141: include <machine/i82093var.h>
142: endif
143:
1.22 jdolecek 144: if defined(_KERNEL) && !defined(_LKM)
1.1 mycroft 145: include "isa.h"
1.22 jdolecek 146: endif
1.1 mycroft 147: if NISA > 0
1.14 cgd 148: include <machine/isa_machdep.h>
1.1 mycroft 149: endif
150:
1.32 fvdl 151: include <machine/tlog.h>
1.36 thorpej 152:
153: define PAGE_SIZE PAGE_SIZE
154:
1.35 thorpej 155: define LSRUN LSRUN
156: define LSONPROC LSONPROC
1.1 mycroft 157:
1.40.16.2 yamt 158: define PTE_BASE PTE_BASE
159: define UPAGES UPAGES
160: define USPACE USPACE
161: define KSTACK_SIZE KSTACK_SIZE
162: define KERNBASE KERNBASE
163: define KERNTEXTOFF KERNTEXTOFF
164:
165: define PGSHIFT PGSHIFT
166: define PGOFSET PGOFSET
167: define PDSHIFT PDSHIFT
168: define PDOFSET PDOFSET
169: define NBPD NBPD
170:
171: define PG_RW PG_RW
172: define PG_V PG_V
173: define PG_KW PG_KW
174: define PG_KR PG_KR
175:
1.6 mrg 176: define PDSLOT_PTE PDSLOT_PTE
177: define PDSLOT_APTE PDSLOT_APTE
178: define PDSLOT_KERN PDSLOT_KERN
179: define NKPTP_MIN NKPTP_MIN
180: define NKPTP_MAX NKPTP_MAX
1.1 mycroft 181:
182: define VM_MAXUSER_ADDRESS (int)VM_MAXUSER_ADDRESS
1.18 thorpej 183:
184: define UVM_PAGE_IDLE_ZERO offsetof(struct uvm, page_idle_zero)
1.1 mycroft 185:
1.35 thorpej 186: define L_ADDR offsetof(struct lwp, l_addr)
187: define L_BACK offsetof(struct lwp, l_back)
188: define L_FORW offsetof(struct lwp, l_forw)
189: define L_PRIORITY offsetof(struct lwp, l_priority)
190: define L_STAT offsetof(struct lwp, l_stat)
191: define L_WCHAN offsetof(struct lwp, l_wchan)
192: define L_PROC offsetof(struct lwp, l_proc)
193: define L_MD_TSS_SEL offsetof(struct lwp, l_md.md_tss_sel)
194: define L_MD_REGS offsetof(struct lwp, l_md.md_regs)
195: define L_CPU offsetof(struct lwp, l_cpu)
1.40.16.4! yamt 196: define L_MUTEX offsetof(struct lwp, l_mutex)
! 197: define L_MD_ASTPENDING offsetof(struct lwp, l_md.md_astpending)
1.1 mycroft 198: define P_FLAG offsetof(struct proc, p_flag)
1.39 dsl 199: define P_RASLIST offsetof(struct proc, p_raslist)
1.24 mycroft 200: define P_MD_SYSCALL offsetof(struct proc, p_md.md_syscall)
1.1 mycroft 201:
1.40.16.4! yamt 202: define PK_SYSTEM PK_SYSTEM
1.1 mycroft 203:
204: define M_DATA offsetof(struct mbuf, m_data)
205: define M_LEN offsetof(struct mbuf, m_len)
206: define M_NEXT offsetof(struct mbuf, m_next)
1.40.16.1 yamt 207: define M_FLAGS offsetof(struct mbuf, m_flags)
208:
209: define M_EXT_LAZY M_EXT_LAZY
1.25 fvdl 210:
211: define IP_SRC offsetof(struct ip, ip_src)
212: define IP_DST offsetof(struct ip, ip_dst)
1.27 sommerfe 213:
214: define IP6_SRC offsetof(struct ip6_hdr, ip6_src)
215: define IP6_DST offsetof(struct ip6_hdr, ip6_dst)
1.1 mycroft 216:
1.6 mrg 217: define V_TRAP offsetof(struct uvmexp, traps)
218: define V_INTR offsetof(struct uvmexp, intrs)
1.1 mycroft 219:
220: define PCB_CR3 offsetof(struct pcb, pcb_cr3)
221: define PCB_EBP offsetof(struct pcb, pcb_ebp)
222: define PCB_ESP offsetof(struct pcb, pcb_esp)
223: define PCB_CR0 offsetof(struct pcb, pcb_cr0)
224: define PCB_LDT_SEL offsetof(struct pcb, pcb_ldt_sel)
225: define PCB_ONFAULT offsetof(struct pcb, pcb_onfault)
1.32 fvdl 226: define PCB_FPCPU offsetof(struct pcb, pcb_fpcpu)
1.1 mycroft 227:
228: define TF_CS offsetof(struct trapframe, tf_cs)
1.5 mycroft 229: define TF_EIP offsetof(struct trapframe, tf_eip)
1.4 mycroft 230: define TF_ERR offsetof(struct trapframe, tf_err)
1.1 mycroft 231: define TF_TRAPNO offsetof(struct trapframe, tf_trapno)
232: define TF_EFLAGS offsetof(struct trapframe, tf_eflags)
233:
1.33 fvdl 234: define TF_GS offsetof(struct trapframe, tf_gs)
235: define TF_FS offsetof(struct trapframe, tf_fs)
236: define TF_ES offsetof(struct trapframe, tf_es)
237: define TF_DS offsetof(struct trapframe, tf_ds)
238: define TF_EDI offsetof(struct trapframe, tf_edi)
239: define TF_ESI offsetof(struct trapframe, tf_esi)
240: define TF_EBP offsetof(struct trapframe, tf_ebp)
241: define TF_EBX offsetof(struct trapframe, tf_ebx)
242: define TF_EDX offsetof(struct trapframe, tf_edx)
243: define TF_ECX offsetof(struct trapframe, tf_ecx)
244: define TF_EAX offsetof(struct trapframe, tf_eax)
245:
246: define TF_PUSHSIZE offsetof(struct trapframe, tf_trapno)
247:
1.1 mycroft 248: define FRAMESIZE sizeof(struct trapframe)
249:
250: ifdef COMPAT_SVR4
251: define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler)
252: define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc)
253: endif
254:
255: ifdef COMPAT_LINUX
256: define LINUX_SIGF_HANDLER offsetof(struct linux_sigframe, sf_handler)
257: define LINUX_SIGF_SC offsetof(struct linux_sigframe, sf_sc)
1.34 christos 258: define LINUX_RT_SIGF_HANDLER offsetof(struct linux_rt_sigframe, sf_handler)
1.38 christos 259: define LINUX_RT_SIGF_UC offsetof(struct linux_rt_sigframe, sf_uc)
1.1 mycroft 260: endif
261:
262: ifdef COMPAT_FREEBSD
263: define FREEBSD_SIGF_HANDLER offsetof(struct freebsd_sigframe, sf_handler)
264: define FREEBSD_SIGF_SC offsetof(struct freebsd_sigframe, sf_sc)
265: endif
266:
267: define IH_FUN offsetof(struct intrhand, ih_fun)
268: define IH_ARG offsetof(struct intrhand, ih_arg)
1.33 fvdl 269: define IH_LEVEL offsetof(struct intrhand, ih_level)
1.1 mycroft 270: define IH_NEXT offsetof(struct intrhand, ih_next)
271:
1.40.16.3 yamt 272: if NAPMBIOS > 0
1.1 mycroft 273: define APM_CODE32 offsetof(struct apm_connect_info, apm_code32_seg_base)
274: define APM_CODE16 offsetof(struct apm_connect_info, apm_code16_seg_base)
275: define APM_DATA offsetof(struct apm_connect_info, apm_data_seg_base)
276: define APM_CODE32_LEN offsetof(struct apm_connect_info, apm_code32_seg_len)
277: define APM_DATA_LEN offsetof(struct apm_connect_info, apm_data_seg_len)
278: define APM_ENTRY offsetof(struct apm_connect_info, apm_entrypt)
279: define APM_DETAIL offsetof(struct apm_connect_info, apm_detail)
280: define APM_SIZE sizeof(struct apm_connect_info)
1.10 jtk 281: define BIOSCALLREG_EAX offsetof(struct bioscallregs, EAX)
282: define BIOSCALLREG_EBX offsetof(struct bioscallregs, EBX)
283: define BIOSCALLREG_ECX offsetof(struct bioscallregs, ECX)
284: define BIOSCALLREG_EDX offsetof(struct bioscallregs, EDX)
285: define BIOSCALLREG_ESI offsetof(struct bioscallregs, ESI)
286: define BIOSCALLREG_EDI offsetof(struct bioscallregs, EDI)
287: define BIOSCALLREG_EFLAGS offsetof(struct bioscallregs, EFLAGS)
1.26 augustss 288: endif
1.32 fvdl 289:
1.40.16.4! yamt 290: define CPU_INFO_SELF150 offsetof(struct cpu_info, ci_self150)
1.32 fvdl 291: define CPU_INFO_SELF offsetof(struct cpu_info, ci_self)
292: define CPU_INFO_RESCHED offsetof(struct cpu_info, ci_want_resched)
1.40 yamt 293: define CPU_INFO_WANT_PMAPLOAD offsetof(struct cpu_info, ci_want_pmapload)
294: define CPU_INFO_TLBSTATE offsetof(struct cpu_info, ci_tlbstate)
295: define TLBSTATE_VALID TLBSTATE_VALID
1.35 thorpej 296: define CPU_INFO_CURLWP offsetof(struct cpu_info, ci_curlwp)
1.32 fvdl 297: define CPU_INFO_CURPCB offsetof(struct cpu_info, ci_curpcb)
298: define CPU_INFO_IDLE_PCB offsetof(struct cpu_info, ci_idle_pcb)
299: define CPU_INFO_IDLE_TSS_SEL offsetof(struct cpu_info, ci_idle_tss_sel)
300: define CPU_INFO_ASTPENDING offsetof(struct cpu_info, ci_astpending)
301:
302: define CPU_INFO_LEVEL offsetof(struct cpu_info, ci_cpuid_level)
303: define CPU_INFO_VENDOR offsetof(struct cpu_info, ci_vendor[0])
304: define CPU_INFO_SIGNATURE offsetof(struct cpu_info, ci_signature)
305: define CPU_INFO_FEATURES offsetof(struct cpu_info, ci_feature_flags)
306: define CPU_INFO_BRAND offsetof(struct cpu_info, ci_brand_id)
307:
308: define CPU_TLOG_OFFSET offsetof(struct cpu_info, ci_tlog_offset)
309: define CPU_TLOG_BASE offsetof(struct cpu_info, ci_tlog_base)
310:
311: define CPU_INFO_GDT offsetof(struct cpu_info, ci_gdt)
1.33 fvdl 312: define CPU_INFO_IPENDING offsetof(struct cpu_info, ci_ipending)
313: define CPU_INFO_IMASK offsetof(struct cpu_info, ci_imask)
314: define CPU_INFO_IUNMASK offsetof(struct cpu_info, ci_iunmask)
315: define CPU_INFO_ILEVEL offsetof(struct cpu_info, ci_ilevel)
316: define CPU_INFO_IDEPTH offsetof(struct cpu_info, ci_idepth)
317: define CPU_INFO_ISOURCES offsetof(struct cpu_info, ci_isources)
1.40.16.4! yamt 318: define CPU_INFO_MTX_COUNT offsetof(struct cpu_info, ci_mtx_count)
! 319: define CPU_INFO_MTX_OLDSPL offsetof(struct cpu_info, ci_mtx_oldspl)
1.40.16.3 yamt 320: define CPU_INFO_INTRSTACK offsetof(struct cpu_info, ci_intrstack)
1.40.16.4! yamt 321: define CPU_INFO_ISTATE offsetof(struct cpu_info, ci_istate)
1.33 fvdl 322:
323: if NIOAPIC > 0
324: define IOAPIC_SC_REG offsetof(struct ioapic_softc, sc_reg)
325: define IOAPIC_SC_DATA offsetof(struct ioapic_softc, sc_data)
326: define PIC_LOCK offsetof(struct pic, pic_lock)
327: endif
1.32 fvdl 328:
329: define SIZEOF_CPU_INFO sizeof(struct cpu_info)
330:
1.33 fvdl 331: define SIZEOF_ISOURCE sizeof(struct intrsource)
332: define SIZEOF_ISTUB sizeof(struct intrstub)
333:
334: define IS_RECURSE offsetof(struct intrsource, is_recurse)
335: define IS_RESUME offsetof(struct intrsource, is_resume)
336: define IS_EVCNTLO offsetof(struct intrsource, is_evcnt.ev_count)
337: define IS_EVCNTHI offsetof(struct intrsource, is_evcnt.ev_count)+4
338: define IS_HANDLERS offsetof(struct intrsource, is_handlers)
339: define IS_PIC offsetof(struct intrsource, is_pic)
340: define IS_FLAGS offsetof(struct intrsource, is_flags)
341: define IS_PIN offsetof(struct intrsource, is_pin)
342: define IS_TYPE offsetof(struct intrsource, is_type)
343: define IS_MAXLEVEL offsetof(struct intrsource, is_maxlevel)
344:
1.32 fvdl 345: define TREC_SP offsetof(struct trec, tr_sp)
346: define TREC_HPC offsetof(struct trec, tr_hpc)
347: define TREC_IPC offsetof(struct trec, tr_ipc)
348: define TREC_TSC offsetof(struct trec, tr_tsc)
349: define TREC_LBF offsetof(struct trec, tr_lbf)
350: define TREC_LBT offsetof(struct trec, tr_lbt)
351: define TREC_IBF offsetof(struct trec, tr_ibf)
352: define TREC_IBT offsetof(struct trec, tr_ibt)
353:
354: define SIZEOF_TREC sizeof(struct trec)
355: define SIZEOF_TLOG sizeof(struct tlog)
1.40.16.2 yamt 356:
357: define IPL_NONE IPL_NONE
358: define IPL_SCHED IPL_SCHED
359: define IPL_CLOCK IPL_CLOCK
360: define IPL_HIGH IPL_HIGH
361: define IPL_IPI IPL_IPI
362:
363: define IPL_SOFTNET IPL_SOFTNET
364: define IPL_SOFTCLOCK IPL_SOFTCLOCK
365: define IPL_SOFTSERIAL IPL_SOFTSERIAL
366:
367: define LIR_IPI LIR_IPI
368: define LIR_TIMER LIR_TIMER
369:
370: define SIR_NET SIR_NET
371: define SIR_CLOCK SIR_CLOCK
372: define SIR_SERIAL SIR_SERIAL
373:
374: define IREENT_MAGIC IREENT_MAGIC
375:
376: define X86_SOFTINTR_SOFTSERIAL X86_SOFTINTR_SOFTSERIAL
377: define X86_SOFTINTR_SOFTNET X86_SOFTINTR_SOFTNET
378: define X86_SOFTINTR_SOFTCLOCK X86_SOFTINTR_SOFTCLOCK
379:
380: define PSL_AC PSL_AC
381: define PSL_MBO PSL_MBO
382: define PSL_ID PSL_ID
383: define PSL_VM PSL_VM
1.40.16.3 yamt 384: define PSL_I PSL_I
1.40.16.4! yamt 385:
! 386: define MTX_IPL offsetof(struct kmutex, u.s.mtxs_ipl)
! 387: define MTX_LOCK offsetof(struct kmutex, mtx_lock)
! 388: define MTX_OWNER offsetof(struct kmutex, u.mtxa_owner)
! 389:
! 390: define RW_OWNER offsetof(struct krwlock, rw_owner)
! 391: define RW_WRITE_LOCKED RW_WRITE_LOCKED
! 392: define RW_WRITE_WANTED RW_WRITE_WANTED
! 393: define RW_READ_INCR RW_READ_INCR
! 394: define RW_HAS_WAITERS RW_HAS_WAITERS
! 395: define RW_THREAD RW_THREAD
! 396: define RW_READER RW_READER
! 397: define RW_WRITER RW_WRITER
CVSweb <webmaster@jp.NetBSD.org>