genassym.cf revision 1.42
1# $NetBSD: genassym.cf,v 1.42 2005/11/07 11:42:34 yamt Exp $ 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# 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 77if defined(_KERNEL_OPT) 78include "opt_compat_svr4.h" 79include "opt_compat_freebsd.h" 80include "opt_compat_linux.h" 81include "opt_compat_netbsd.h" 82include "opt_multiprocessor.h" 83endif 84 85include <sys/param.h> 86include <sys/proc.h> 87include <sys/resourcevar.h> 88include <sys/device.h> 89include <sys/user.h> 90include <sys/mbuf.h> 91include <netinet/in.h> 92include <netinet/in_systm.h> 93include <netinet/ip.h> 94include <netinet/ip6.h> 95include <netinet/ip_var.h> 96 97include <uvm/uvm.h> 98 99include <machine/trap.h> 100include <machine/pmap.h> 101include <machine/vmparam.h> 102include <machine/intr.h> 103include <machine/types.h> 104 105if defined(_KERNEL) && !defined(_LKM) 106include "ioapic.h" 107include "apm.h" 108endif 109if NAPM > 0 110include <machine/bioscall.h> 111include <machine/apmvar.h> 112endif 113 114include <compat/sys/signal.h> 115 116ifdef COMPAT_SVR4 117include <compat/svr4/svr4_ucontext.h> 118endif 119 120ifdef COMPAT_LINUX 121include <compat/linux/common/linux_signal.h> 122include <compat/linux/common/linux_machdep.h> 123endif 124 125ifdef COMPAT_FREEBSD 126include <machine/freebsd_machdep.h> 127endif 128 129ifdef MULTIPROCESSOR 130include <machine/cpu.h> 131endif 132 133if NIOAPIC > 0 134include <machine/i82093reg.h> 135include <machine/i82093var.h> 136endif 137 138if defined(_KERNEL) && !defined(_LKM) 139include "isa.h" 140endif 141if NISA > 0 142include <machine/isa_machdep.h> 143endif 144 145include <machine/tlog.h> 146 147define PAGE_SIZE PAGE_SIZE 148 149define LSRUN LSRUN 150define LSONPROC LSONPROC 151 152define PTE_BASE PTE_BASE 153define UPAGES UPAGES 154define USPACE USPACE 155define KERNBASE KERNBASE 156define KERNTEXTOFF KERNTEXTOFF 157 158define PGSHIFT PGSHIFT 159define PGOFSET PGOFSET 160define PDSHIFT PDSHIFT 161define PDOFSET PDOFSET 162define NBPD NBPD 163 164define PG_RW PG_RW 165define PG_V PG_V 166define PG_KW PG_KW 167define PG_KR PG_KR 168 169define PDSLOT_PTE PDSLOT_PTE 170define PDSLOT_APTE PDSLOT_APTE 171define PDSLOT_KERN PDSLOT_KERN 172define NKPTP_MIN NKPTP_MIN 173define NKPTP_MAX NKPTP_MAX 174 175define VM_MAXUSER_ADDRESS (int)VM_MAXUSER_ADDRESS 176 177define UVM_PAGE_IDLE_ZERO offsetof(struct uvm, page_idle_zero) 178 179define L_ADDR offsetof(struct lwp, l_addr) 180define L_BACK offsetof(struct lwp, l_back) 181define L_FORW offsetof(struct lwp, l_forw) 182define L_PRIORITY offsetof(struct lwp, l_priority) 183define L_STAT offsetof(struct lwp, l_stat) 184define L_WCHAN offsetof(struct lwp, l_wchan) 185define L_PROC offsetof(struct lwp, l_proc) 186define L_MD_TSS_SEL offsetof(struct lwp, l_md.md_tss_sel) 187define L_MD_REGS offsetof(struct lwp, l_md.md_regs) 188define L_CPU offsetof(struct lwp, l_cpu) 189define P_FLAG offsetof(struct proc, p_flag) 190define P_RASLIST offsetof(struct proc, p_raslist) 191define P_MD_SYSCALL offsetof(struct proc, p_md.md_syscall) 192define P_MD_ASTPENDING offsetof(struct proc, p_md.md_astpending) 193 194define P_SYSTEM P_SYSTEM 195 196define M_DATA offsetof(struct mbuf, m_data) 197define M_LEN offsetof(struct mbuf, m_len) 198define M_NEXT offsetof(struct mbuf, m_next) 199 200define IP_SRC offsetof(struct ip, ip_src) 201define IP_DST offsetof(struct ip, ip_dst) 202 203define IP6_SRC offsetof(struct ip6_hdr, ip6_src) 204define IP6_DST offsetof(struct ip6_hdr, ip6_dst) 205 206define V_TRAP offsetof(struct uvmexp, traps) 207define V_INTR offsetof(struct uvmexp, intrs) 208 209define PCB_CR3 offsetof(struct pcb, pcb_cr3) 210define PCB_EBP offsetof(struct pcb, pcb_ebp) 211define PCB_ESP offsetof(struct pcb, pcb_esp) 212define PCB_CR0 offsetof(struct pcb, pcb_cr0) 213define PCB_LDT_SEL offsetof(struct pcb, pcb_ldt_sel) 214define PCB_ONFAULT offsetof(struct pcb, pcb_onfault) 215define PCB_FPCPU offsetof(struct pcb, pcb_fpcpu) 216 217define TF_CS offsetof(struct trapframe, tf_cs) 218define TF_EIP offsetof(struct trapframe, tf_eip) 219define TF_ERR offsetof(struct trapframe, tf_err) 220define TF_TRAPNO offsetof(struct trapframe, tf_trapno) 221define TF_EFLAGS offsetof(struct trapframe, tf_eflags) 222 223define TF_GS offsetof(struct trapframe, tf_gs) 224define TF_FS offsetof(struct trapframe, tf_fs) 225define TF_ES offsetof(struct trapframe, tf_es) 226define TF_DS offsetof(struct trapframe, tf_ds) 227define TF_EDI offsetof(struct trapframe, tf_edi) 228define TF_ESI offsetof(struct trapframe, tf_esi) 229define TF_EBP offsetof(struct trapframe, tf_ebp) 230define TF_EBX offsetof(struct trapframe, tf_ebx) 231define TF_EDX offsetof(struct trapframe, tf_edx) 232define TF_ECX offsetof(struct trapframe, tf_ecx) 233define TF_EAX offsetof(struct trapframe, tf_eax) 234 235define TF_PUSHSIZE offsetof(struct trapframe, tf_trapno) 236 237define FRAMESIZE sizeof(struct trapframe) 238 239ifdef COMPAT_SVR4 240define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler) 241define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc) 242endif 243 244ifdef COMPAT_LINUX 245define LINUX_SIGF_HANDLER offsetof(struct linux_sigframe, sf_handler) 246define LINUX_SIGF_SC offsetof(struct linux_sigframe, sf_sc) 247define LINUX_RT_SIGF_HANDLER offsetof(struct linux_rt_sigframe, sf_handler) 248define LINUX_RT_SIGF_UC offsetof(struct linux_rt_sigframe, sf_uc) 249endif 250 251ifdef COMPAT_FREEBSD 252define FREEBSD_SIGF_HANDLER offsetof(struct freebsd_sigframe, sf_handler) 253define FREEBSD_SIGF_SC offsetof(struct freebsd_sigframe, sf_sc) 254endif 255 256define IH_FUN offsetof(struct intrhand, ih_fun) 257define IH_ARG offsetof(struct intrhand, ih_arg) 258define IH_LEVEL offsetof(struct intrhand, ih_level) 259define IH_NEXT offsetof(struct intrhand, ih_next) 260 261if NAPM > 0 262define APM_CODE32 offsetof(struct apm_connect_info, apm_code32_seg_base) 263define APM_CODE16 offsetof(struct apm_connect_info, apm_code16_seg_base) 264define APM_DATA offsetof(struct apm_connect_info, apm_data_seg_base) 265define APM_CODE32_LEN offsetof(struct apm_connect_info, apm_code32_seg_len) 266define APM_DATA_LEN offsetof(struct apm_connect_info, apm_data_seg_len) 267define APM_ENTRY offsetof(struct apm_connect_info, apm_entrypt) 268define APM_DETAIL offsetof(struct apm_connect_info, apm_detail) 269define APM_SIZE sizeof(struct apm_connect_info) 270define BIOSCALLREG_EAX offsetof(struct bioscallregs, EAX) 271define BIOSCALLREG_EBX offsetof(struct bioscallregs, EBX) 272define BIOSCALLREG_ECX offsetof(struct bioscallregs, ECX) 273define BIOSCALLREG_EDX offsetof(struct bioscallregs, EDX) 274define BIOSCALLREG_ESI offsetof(struct bioscallregs, ESI) 275define BIOSCALLREG_EDI offsetof(struct bioscallregs, EDI) 276define BIOSCALLREG_EFLAGS offsetof(struct bioscallregs, EFLAGS) 277endif 278 279define CPU_INFO_SELF offsetof(struct cpu_info, ci_self) 280define CPU_INFO_RESCHED offsetof(struct cpu_info, ci_want_resched) 281define CPU_INFO_WANT_PMAPLOAD offsetof(struct cpu_info, ci_want_pmapload) 282define CPU_INFO_TLBSTATE offsetof(struct cpu_info, ci_tlbstate) 283define TLBSTATE_VALID TLBSTATE_VALID 284define CPU_INFO_CURLWP offsetof(struct cpu_info, ci_curlwp) 285define CPU_INFO_CURPCB offsetof(struct cpu_info, ci_curpcb) 286define CPU_INFO_IDLE_PCB offsetof(struct cpu_info, ci_idle_pcb) 287define CPU_INFO_IDLE_TSS_SEL offsetof(struct cpu_info, ci_idle_tss_sel) 288define CPU_INFO_ASTPENDING offsetof(struct cpu_info, ci_astpending) 289 290define CPU_INFO_LEVEL offsetof(struct cpu_info, ci_cpuid_level) 291define CPU_INFO_VENDOR offsetof(struct cpu_info, ci_vendor[0]) 292define CPU_INFO_SIGNATURE offsetof(struct cpu_info, ci_signature) 293define CPU_INFO_FEATURES offsetof(struct cpu_info, ci_feature_flags) 294define CPU_INFO_BRAND offsetof(struct cpu_info, ci_brand_id) 295 296define CPU_TLOG_OFFSET offsetof(struct cpu_info, ci_tlog_offset) 297define CPU_TLOG_BASE offsetof(struct cpu_info, ci_tlog_base) 298 299define CPU_INFO_GDT offsetof(struct cpu_info, ci_gdt) 300define CPU_INFO_IPENDING offsetof(struct cpu_info, ci_ipending) 301define CPU_INFO_IMASK offsetof(struct cpu_info, ci_imask) 302define CPU_INFO_IUNMASK offsetof(struct cpu_info, ci_iunmask) 303define CPU_INFO_ILEVEL offsetof(struct cpu_info, ci_ilevel) 304define CPU_INFO_IDEPTH offsetof(struct cpu_info, ci_idepth) 305define CPU_INFO_ISOURCES offsetof(struct cpu_info, ci_isources) 306 307if NIOAPIC > 0 308define IOAPIC_SC_REG offsetof(struct ioapic_softc, sc_reg) 309define IOAPIC_SC_DATA offsetof(struct ioapic_softc, sc_data) 310define PIC_LOCK offsetof(struct pic, pic_lock) 311endif 312 313define SIZEOF_CPU_INFO sizeof(struct cpu_info) 314 315define SIZEOF_ISOURCE sizeof(struct intrsource) 316define SIZEOF_ISTUB sizeof(struct intrstub) 317 318define IS_RECURSE offsetof(struct intrsource, is_recurse) 319define IS_RESUME offsetof(struct intrsource, is_resume) 320define IS_EVCNTLO offsetof(struct intrsource, is_evcnt.ev_count) 321define IS_EVCNTHI offsetof(struct intrsource, is_evcnt.ev_count)+4 322define IS_HANDLERS offsetof(struct intrsource, is_handlers) 323define IS_PIC offsetof(struct intrsource, is_pic) 324define IS_FLAGS offsetof(struct intrsource, is_flags) 325define IS_PIN offsetof(struct intrsource, is_pin) 326define IS_TYPE offsetof(struct intrsource, is_type) 327define IS_MAXLEVEL offsetof(struct intrsource, is_maxlevel) 328 329define TREC_SP offsetof(struct trec, tr_sp) 330define TREC_HPC offsetof(struct trec, tr_hpc) 331define TREC_IPC offsetof(struct trec, tr_ipc) 332define TREC_TSC offsetof(struct trec, tr_tsc) 333define TREC_LBF offsetof(struct trec, tr_lbf) 334define TREC_LBT offsetof(struct trec, tr_lbt) 335define TREC_IBF offsetof(struct trec, tr_ibf) 336define TREC_IBT offsetof(struct trec, tr_ibt) 337 338define SIZEOF_TREC sizeof(struct trec) 339define SIZEOF_TLOG sizeof(struct tlog) 340 341define IPL_NONE IPL_NONE 342define IPL_SCHED IPL_SCHED 343define IPL_CLOCK IPL_CLOCK 344define IPL_HIGH IPL_HIGH 345define IPL_IPI IPL_IPI 346 347define IPL_SOFTNET IPL_SOFTNET 348define IPL_SOFTCLOCK IPL_SOFTCLOCK 349define IPL_SOFTSERIAL IPL_SOFTSERIAL 350 351define LIR_IPI LIR_IPI 352define LIR_TIMER LIR_TIMER 353 354define SIR_NET SIR_NET 355define SIR_CLOCK SIR_CLOCK 356define SIR_SERIAL SIR_SERIAL 357 358define IREENT_MAGIC IREENT_MAGIC 359 360define X86_SOFTINTR_SOFTSERIAL X86_SOFTINTR_SOFTSERIAL 361define X86_SOFTINTR_SOFTNET X86_SOFTINTR_SOFTNET 362define X86_SOFTINTR_SOFTCLOCK X86_SOFTINTR_SOFTCLOCK 363 364define PSL_AC PSL_AC 365define PSL_MBO PSL_MBO 366define PSL_ID PSL_ID 367define PSL_VM PSL_VM 368