# $NetBSD: genassym.cf,v 1.39 2023/04/16 14:01:51 skrll Exp $ #- # Copyright (c) 2014 The NetBSD Foundation, Inc. # All rights reserved. # # This code is derived from software contributed to The NetBSD Foundation # by Matt Thomas of 3am Software Foundry. # # 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. # # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. #- if defined(_KERNEL_OPT) include "opt_multiprocessor.h" include "opt_compat_netbsd.h" include "opt_execfmt.h" endif include include include include include include include include include include include include include include include include include include include include include define __HAVE_FAST_SOFTINTS 1 #ifdef __HAVE_PIC_FAST_SOFTINTS #define __HAVE_PIC_FAST_SOFTINTS 1 #endif define MAXCPUS MAXCPUS define VM_MIN_KERNEL_ADDRESS VM_MIN_KERNEL_ADDRESS define VM_MAX_KERNEL_ADDRESS VM_MAX_KERNEL_ADDRESS define VM_KERNEL_IO_BASE VM_KERNEL_IO_BASE define VM_KERNEL_IO_SIZE VM_KERNEL_IO_SIZE define AARCH64_DIRECTMAP_START AARCH64_DIRECTMAP_START define AARCH64_DIRECTMAP_MASK AARCH64_DIRECTMAP_MASK define UPAGES UPAGES define USPACE (UPAGES * PAGE_SIZE) #define PV_PA offsetof(pv_addr_t, pv_pa) define AARCH64_ADDRTOP_TAG_BIT AARCH64_ADDRTOP_TAG_BIT define L0_ADDR_BITS L0_ADDR_BITS define L0_SHIFT L0_SHIFT define L0_TABLE L0_TABLE define L1_ADDR_BITS L1_ADDR_BITS define L1_BLOCK L1_BLOCK define L1_SHIFT L1_SHIFT define L1_SIZE L1_SIZE define L1_TABLE L1_TABLE define L2_ADDR_BITS L2_ADDR_BITS define L2_BLK_OA L2_BLK_OA define L2_BLOCK L2_BLOCK define L2_BLOCK_MASK L2_BLOCK_MASK define L2_SHIFT L2_SHIFT define L2_SIZE L2_SIZE define LX_BLKPAG_UXN LX_BLKPAG_UXN define LX_BLKPAG_PXN LX_BLKPAG_PXN define LX_BLKPAG_AF LX_BLKPAG_AF define LX_BLKPAG_AP LX_BLKPAG_AP define LX_BLKPAG_AP_RO LX_BLKPAG_AP_RO define LX_BLKPAG_AP_RW LX_BLKPAG_AP_RW define LX_BLKPAG_SH_IS LX_BLKPAG_SH_IS define LX_BLKPAG_ATTR_NORMAL_WB LX_BLKPAG_ATTR_NORMAL_WB define LX_BLKPAG_ATTR_NORMAL_NC LX_BLKPAG_ATTR_NORMAL_NC define LX_BLKPAG_ATTR_NORMAL_WT LX_BLKPAG_ATTR_NORMAL_WT define LX_BLKPAG_ATTR_DEVICE_MEM LX_BLKPAG_ATTR_DEVICE_MEM define Ln_ENTRIES Ln_ENTRIES define TCR_AS64K TCR_AS64K define TCR_TG1_16KB TCR_TG1_16KB define TCR_TG1_4KB TCR_TG1_4KB define TCR_TG1_64KB TCR_TG1_64KB define TCR_TG0_16KB TCR_TG0_16KB define TCR_TG0_4KB TCR_TG0_4KB define TCR_TG0_64KB TCR_TG0_64KB define TCR_SH1_NONE TCR_SH1_NONE define TCR_SH1_OUTER TCR_SH1_OUTER define TCR_SH1_INNER TCR_SH1_INNER define TCR_ORGN1_NC TCR_ORGN1_NC define TCR_ORGN1_WB_WA TCR_ORGN1_WB_WA define TCR_ORGN1_WT TCR_ORGN1_WT define TCR_ORGN1_WB TCR_ORGN1_WB define TCR_IRGN1_NC TCR_IRGN1_NC define TCR_IRGN1_WB_WA TCR_IRGN1_WB_WA define TCR_IRGN1_WT TCR_IRGN1_WT define TCR_IRGN1_WB TCR_IRGN1_WB define TCR_T1SZ TCR_T1SZ define TCR_SH0_NONE TCR_SH0_NONE define TCR_SH0_OUTER TCR_SH0_OUTER define TCR_SH0_INNER TCR_SH0_INNER define TCR_ORGN0_NC TCR_ORGN0_NC define TCR_ORGN0_WB_WA TCR_ORGN0_WB_WA define TCR_ORGN0_WT TCR_ORGN0_WT define TCR_ORGN0_WB TCR_ORGN0_WB define TCR_IRGN0_NC TCR_IRGN0_NC define TCR_IRGN0_WB_WA TCR_IRGN0_WB_WA define TCR_IRGN0_WT TCR_IRGN0_WT define TCR_IRGN0_WB TCR_IRGN0_WB define TCR_EPD0 TCR_EPD0 define TCR_T0SZ TCR_T0SZ define EFAULT EFAULT define PAGE_SIZE PAGE_SIZE define PAGE_MASK PAGE_MASK define PGSHIFT PGSHIFT # Important offsets into the lwp and proc structs & associated constants define L_PCB offsetof(struct lwp, l_addr) define L_CPU offsetof(struct lwp, l_cpu) define L_FLAG offsetof(struct lwp, l_flag) define L_PROC offsetof(struct lwp, l_proc) define L_PRIVATE offsetof(struct lwp, l_private) define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags) define L_MD_UTF offsetof(struct lwp, l_md.md_utf) define L_MD_CPACR offsetof(struct lwp, l_md.md_cpacr) define L_MD_ONFAULT offsetof(struct lwp, l_md.md_onfault) define L_MD_ASTPENDING offsetof(struct lwp, l_md.md_astpending) define L_MD_IA_KERN offsetof(struct lwp, l_md.md_ia_kern) define L_MD_IA_USER offsetof(struct lwp, l_md.md_ia_user) define L_MD_IB_USER offsetof(struct lwp, l_md.md_ib_user) define L_MD_DA_USER offsetof(struct lwp, l_md.md_da_user) define L_MD_DB_USER offsetof(struct lwp, l_md.md_db_user) define L_MD_GA_USER offsetof(struct lwp, l_md.md_ga_user) define L_NOPREEMPT offsetof(struct lwp, l_nopreempt) define LW_SYSTEM LW_SYSTEM define FB_X19 FB_X19 define FB_X20 FB_X20 define FB_X21 FB_X21 define FB_X22 FB_X22 define FB_X23 FB_X23 define FB_X24 FB_X24 define FB_X25 FB_X25 define FB_X26 FB_X26 define FB_X27 FB_X27 define FB_X28 FB_X28 define FB_X29 FB_X29 define FB_LR FB_LR define FB_SP FB_SP define FB_MAX FB_MAX define FB_T_SIZE roundup(sizeof(struct faultbuf), 16) define LBL_X19 LBL_X19 define LBL_X20 LBL_X20 define LBL_X21 LBL_X21 define LBL_X22 LBL_X22 define LBL_X23 LBL_X23 define LBL_X24 LBL_X24 define LBL_X25 LBL_X25 define LBL_X26 LBL_X26 define LBL_X27 LBL_X27 define LBL_X28 LBL_X28 define LBL_X29 LBL_X29 define LBL_LR LBL_LR define LBL_SP LBL_SP define LBL_MAX LBL_MAX define P_RASLIST offsetof(struct proc, p_raslist) define P_MD_SYSCALL offsetof(struct proc, p_md.md_syscall) define VM_MAP offsetof(struct vmspace, vm_map) define VM_PMAP offsetof(struct vmspace, vm_map.pmap) #define PR_BASE offsetof(struct uprof, pr_base) #define PR_SIZE offsetof(struct uprof, pr_size) #define PR_OFF offsetof(struct uprof, pr_off) #define PR_SCALE offsetof(struct uprof, pr_scale) define SIGTRAP SIGTRAP define SIGEMT SIGEMT define PCB_TF offsetof(struct pcb, pcb_tf) define TF_X0 offsetof(struct trapframe, tf_reg[0]) define TF_X1 offsetof(struct trapframe, tf_reg[1]) define TF_X2 offsetof(struct trapframe, tf_reg[2]) define TF_X3 offsetof(struct trapframe, tf_reg[3]) define TF_X4 offsetof(struct trapframe, tf_reg[4]) define TF_X5 offsetof(struct trapframe, tf_reg[5]) define TF_X6 offsetof(struct trapframe, tf_reg[6]) define TF_X7 offsetof(struct trapframe, tf_reg[7]) define TF_X8 offsetof(struct trapframe, tf_reg[8]) define TF_X9 offsetof(struct trapframe, tf_reg[9]) define TF_X10 offsetof(struct trapframe, tf_reg[10]) define TF_X11 offsetof(struct trapframe, tf_reg[11]) define TF_X12 offsetof(struct trapframe, tf_reg[12]) define TF_X13 offsetof(struct trapframe, tf_reg[13]) define TF_X14 offsetof(struct trapframe, tf_reg[14]) define TF_X15 offsetof(struct trapframe, tf_reg[15]) define TF_X16 offsetof(struct trapframe, tf_reg[16]) define TF_X17 offsetof(struct trapframe, tf_reg[17]) define TF_X18 offsetof(struct trapframe, tf_reg[18]) define TF_X19 offsetof(struct trapframe, tf_reg[19]) define TF_X20 offsetof(struct trapframe, tf_reg[20]) define TF_X21 offsetof(struct trapframe, tf_reg[21]) define TF_X22 offsetof(struct trapframe, tf_reg[22]) define TF_X23 offsetof(struct trapframe, tf_reg[23]) define TF_X24 offsetof(struct trapframe, tf_reg[24]) define TF_X25 offsetof(struct trapframe, tf_reg[25]) define TF_X26 offsetof(struct trapframe, tf_reg[26]) define TF_X27 offsetof(struct trapframe, tf_reg[27]) define TF_X28 offsetof(struct trapframe, tf_reg[28]) define TF_X29 offsetof(struct trapframe, tf_reg[29]) define TF_X30 offsetof(struct trapframe, tf_reg[30]) define TF_SP offsetof(struct trapframe, tf_sp) define TF_PC offsetof(struct trapframe, tf_pc) define TF_SPSR offsetof(struct trapframe, tf_spsr) define TF_ESR offsetof(struct trapframe, tf_esr) define TF_FAR offsetof(struct trapframe, tf_far) define TF_SIZE TF_SIZE define FPREG_Q0 offsetof(struct fpreg, fp_reg[0]) define FPREG_Q1 offsetof(struct fpreg, fp_reg[1]) define FPREG_Q2 offsetof(struct fpreg, fp_reg[2]) define FPREG_Q3 offsetof(struct fpreg, fp_reg[3]) define FPREG_Q4 offsetof(struct fpreg, fp_reg[4]) define FPREG_Q5 offsetof(struct fpreg, fp_reg[5]) define FPREG_Q6 offsetof(struct fpreg, fp_reg[6]) define FPREG_Q7 offsetof(struct fpreg, fp_reg[7]) define FPREG_Q8 offsetof(struct fpreg, fp_reg[8]) define FPREG_Q9 offsetof(struct fpreg, fp_reg[9]) define FPREG_Q10 offsetof(struct fpreg, fp_reg[10]) define FPREG_Q11 offsetof(struct fpreg, fp_reg[11]) define FPREG_Q12 offsetof(struct fpreg, fp_reg[12]) define FPREG_Q13 offsetof(struct fpreg, fp_reg[13]) define FPREG_Q14 offsetof(struct fpreg, fp_reg[14]) define FPREG_Q15 offsetof(struct fpreg, fp_reg[15]) define FPREG_Q16 offsetof(struct fpreg, fp_reg[16]) define FPREG_Q17 offsetof(struct fpreg, fp_reg[17]) define FPREG_Q18 offsetof(struct fpreg, fp_reg[18]) define FPREG_Q19 offsetof(struct fpreg, fp_reg[19]) define FPREG_Q20 offsetof(struct fpreg, fp_reg[20]) define FPREG_Q21 offsetof(struct fpreg, fp_reg[21]) define FPREG_Q22 offsetof(struct fpreg, fp_reg[22]) define FPREG_Q23 offsetof(struct fpreg, fp_reg[23]) define FPREG_Q24 offsetof(struct fpreg, fp_reg[24]) define FPREG_Q25 offsetof(struct fpreg, fp_reg[25]) define FPREG_Q26 offsetof(struct fpreg, fp_reg[26]) define FPREG_Q27 offsetof(struct fpreg, fp_reg[27]) define FPREG_Q28 offsetof(struct fpreg, fp_reg[28]) define FPREG_Q29 offsetof(struct fpreg, fp_reg[29]) define FPREG_Q30 offsetof(struct fpreg, fp_reg[30]) define FPREG_Q31 offsetof(struct fpreg, fp_reg[31]) define FPREG_FPCR offsetof(struct fpreg, fpcr) define FPREG_FPSR offsetof(struct fpreg, fpsr) define CPU_INFO_SIZE sizeof(struct cpu_info) define CI_CURLWP offsetof(struct cpu_info, ci_curlwp) define CI_CPL offsetof(struct cpu_info, ci_cpl) define CI_CPUID offsetof(struct cpu_info, ci_cpuid) define CI_MIDR offsetof(struct cpu_info, ci_id.ac_midr) define CI_MPIDR offsetof(struct cpu_info, ci_id.ac_mpidr) define CI_WANT_RESCHED offsetof(struct cpu_info, ci_want_resched) define CI_INTR_DEPTH offsetof(struct cpu_info, ci_intr_depth) define CI_MTX_COUNT offsetof(struct cpu_info, ci_mtx_count) define CI_SOFTINTS offsetof(struct cpu_info, ci_softints) define CI_IDLELWP offsetof(struct cpu_info, ci_data.cpu_idlelwp) define CI_CC_NINTR offsetof(struct cpu_info, ci_data.cpu_nintr) define V_RESCHED_KPREEMPT ilog2(RESCHED_KPREEMPT) define SPSR_M_EL1T SPSR_M_EL1T define DAIF_I DAIF_I define DAIF_F DAIF_F define DAIF_SETCLR_SHIFT DAIF_SETCLR_SHIFT define CNTHCTL_EL1PCTEN CNTHCTL_EL1PCTEN define CNTHCTL_EL1PCEN CNTHCTL_EL1PCEN define CNTKCTL_EL0VCTEN CNTKCTL_EL0VCTEN define SPSR_SS_SHIFT SPSR_SS_SHIFT define SPSR_F SPSR_F define SPSR_I SPSR_I define SPSR_A SPSR_A define SPSR_A64_D SPSR_A64_D define SPSR_M_EL1H SPSR_M_EL1H define CPACR_FPEN CPACR_FPEN define CPACR_TTA CPACR_TTA define CPACR_FPEN CPACR_FPEN define CPACR_FPEN_NONE CPACR_FPEN_NONE define CPACR_FPEN_EL1 CPACR_FPEN_EL1 define CPACR_FPEN_NONE_2 CPACR_FPEN_NONE_2 define CPACR_FPEN_ALL CPACR_FPEN_ALL define ID_AA64PFR0_EL1_GIC ID_AA64PFR0_EL1_GIC define ID_AA64PFR0_EL1_GIC_SHIFT ID_AA64PFR0_EL1_GIC_SHIFT define ID_AA64PFR0_EL1_GIC_CPUIF_EN ID_AA64PFR0_EL1_GIC_CPUIF_EN define MPIDR_AFF0 MPIDR_AFF0 define MPIDR_AFF1 MPIDR_AFF1 define MPIDR_AFF2 MPIDR_AFF2 define MPIDR_AFF3 MPIDR_AFF3 define MDSCR_MDE MDSCR_MDE define MDSCR_KDE MDSCR_KDE define MDSCR_TDCC MDSCR_TDCC define MDSCR_SS MDSCR_SS define MAIR_ATTR0 MAIR_ATTR0 define MAIR_ATTR1 MAIR_ATTR1 define MAIR_ATTR2 MAIR_ATTR2 define MAIR_ATTR3 MAIR_ATTR3 define MAIR_ATTR4 MAIR_ATTR4 define MAIR_DEVICE_nGnRnE MAIR_DEVICE_nGnRnE define MAIR_DEVICE_nGnRE MAIR_DEVICE_nGnRE define MAIR_NORMAL_NC MAIR_NORMAL_NC define MAIR_NORMAL_WT MAIR_NORMAL_WT define MAIR_NORMAL_WB MAIR_NORMAL_WB define SCTLR_RES1 SCTLR_RES1 define SCTLR_M SCTLR_M define SCTLR_A SCTLR_A define SCTLR_C SCTLR_C define SCTLR_SA SCTLR_SA define SCTLR_SA0 SCTLR_SA0 define SCTLR_CP15BEN SCTLR_CP15BEN define SCTLR_nAA SCTLR_nAA define SCTLR_ITD SCTLR_ITD define SCTLR_SED SCTLR_SED define SCTLR_UMA SCTLR_UMA define SCTLR_I SCTLR_I define SCTLR_DZE SCTLR_DZE define SCTLR_UCT SCTLR_UCT define SCTLR_nTWI SCTLR_nTWI define SCTLR_nTWE SCTLR_nTWE define SCTLR_WXN SCTLR_WXN define SCTLR_IESB SCTLR_IESB define SCTLR_SPAN SCTLR_SPAN define SCTLR_E0E SCTLR_E0E define SCTLR_EE SCTLR_EE define SCTLR_UCI SCTLR_UCI define SCTLR_nTLSMD SCTLR_nTLSMD define SCTLR_LSMAOE SCTLR_LSMAOE define SCTLR_EnIA SCTLR_EnIA define SCTLR_EnIB SCTLR_EnIB define SCTLR_EnDA SCTLR_EnDA define SCTLR_EnDB SCTLR_EnDB define ICC_SRE_EL2_EN ICC_SRE_EL2_EN define ICC_SRE_EL2_SRE ICC_SRE_EL2_SRE # for bus_space_asm define BS_STRIDE offsetof(struct bus_space, bs_stride) # Constants required for in_cksum() and friends. define M_LEN offsetof(struct mbuf, m_len) define M_DATA offsetof(struct mbuf, m_data) define M_NEXT offsetof(struct mbuf, m_next) define IP_SRC offsetof(struct ip, ip_src) define IP_DST offsetof(struct ip, ip_dst)