genassym.cf revision 1.24
1# $NetBSD: genassym.cf,v 1.24 2003/01/17 23:21:40 thorpej Exp $ 2 3# 4# Copyright (c) 1990 The Regents of the University of California. 5# All rights reserved. 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions 9# are met: 10# 1. Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 2. Redistributions in binary form must reproduce the above copyright 13# notice, this list of conditions and the following disclaimer in the 14# documentation and/or other materials provided with the distribution. 15# 3. All advertising materials mentioning features or use of this software 16# must display the following acknowledgement: 17# This product includes software developed by the University of 18# California, Berkeley and its contributors. 19# 4. Neither the name of the University nor the names of its contributors 20# may be used to endorse or promote products derived from this software 21# without specific prior written permission. 22# 23# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33# SUCH DAMAGE. 34# 35# @(#)genassym.c 7.8 (Berkeley) 5/7/91 36# 37 38if defined(_KERNEL_OPT) 39include "opt_compat_svr4.h" 40endif 41 42include <sys/param.h> 43include <sys/buf.h> 44include <sys/mbuf.h> 45include <sys/msgbuf.h> 46include <sys/proc.h> 47include <sys/syscall.h> 48include <sys/user.h> 49 50include <uvm/uvm_extern.h> 51 52ifdef COMPAT_SVR4 53include <compat/svr4/svr4_syscall.h> 54include <compat/svr4/svr4_ucontext.h> 55endif 56 57include <machine/cpu.h> 58include <machine/psl.h> 59include <machine/reg.h> 60include <machine/pte.h> 61 62# machine class 63define CPUINFO_CLASS offsetof(struct cpu_model_info, class) 64define MACH_CLASSAV MACH_CLASSAV 65 66# values for mmutype 67define MMU_68851 MMU_68851 68define MMU_68030 MMU_68030 69define MMU_68040 MMU_68040 70 71# values for cputype 72define CPU_68020 CPU_68020 73define CPU_68030 CPU_68030 74define CPU_68040 CPU_68040 75 76# values for fputype 77define FPU_68881 FPU_68881 78define FPU_68882 FPU_68882 79define FPU_68040 FPU_68040 80 81# general constants 82define UPAGES UPAGES 83define USPACE USPACE 84define P1PAGES P1PAGES 85define NBPG NBPG 86define NPTEPG NPTEPG 87define PGSHIFT PGSHIFT 88define SYSPTSIZE SYSPTSIZE 89define USRPTSIZE USRPTSIZE 90define USRIOSIZE USRIOSIZE 91define USRSTACK USRSTACK 92 93# lwp & proc fields and values 94define L_ADDR offsetof(struct lwp, l_addr) 95define L_BACK offsetof(struct lwp, l_back) 96define L_FORW offsetof(struct lwp, l_forw) 97define L_PRIORITY offsetof(struct lwp, l_priority) 98define L_STAT offsetof(struct lwp, l_stat) 99define L_WCHAN offsetof(struct lwp, l_wchan) 100define L_PROC offsetof(struct lwp, l_proc) 101define L_MD_REGS offsetof(struct lwp, l_md.md_regs) 102define L_MD_FLAGS offsetof(struct lwp, l_md.md_flags) 103define P_FLAG offsetof(struct proc, p_flag) 104define P_NRAS offsetof(struct proc, p_nras) 105define P_VMSPACE offsetof(struct proc, p_vmspace) 106 107# lwp fields and values 108 109define LSSLEEP LSSLEEP 110define LSRUN LSRUN 111define LSONPROC LSONPROC 112 113# interrupt/fault metering 114define UVMEXP_INTRS offsetof(struct uvmexp, intrs) 115 116#mE PSL values (should just include psl.h?) 117define PSL_S PSL_S 118define PSL_IPL7 PSL_IPL7 119define PSL_LOWIPL PSL_LOWIPL 120define PSL_HIGHIPL PSL_HIGHIPL 121define PSL_USER PSL_USER 122define PSL_TS (PSL_T | PSL_S) 123define SPL1 (PSL_S | PSL_IPL1) 124define SPL2 (PSL_S | PSL_IPL2) 125define SPL3 (PSL_S | PSL_IPL3) 126define SPL4 (PSL_S | PSL_IPL4) 127define SPL5 (PSL_S | PSL_IPL5) 128define SPL6 (PSL_S | PSL_IPL6) 129define MAC68K_IPL_CLOCK MAC68K_IPL_CLOCK 130 131# magic 132define FC_USERD FC_USERD 133define FC_SUPERD FC_SUPERD 134define CACHE_ON CACHE_ON 135define CACHE_OFF CACHE_OFF 136define CACHE_CLR CACHE_CLR 137define CACHE40_ON CACHE40_ON 138define CACHE40_OFF CACHE40_OFF 139define IC_CLEAR IC_CLEAR 140define DC_CLEAR DC_CLEAR 141 142# pte/ste bits 143define PG_FRAME PG_FRAME 144 145# pcb fields 146define SIZEOF_PCB sizeof(struct pcb) 147define PCB_FLAGS offsetof(struct pcb, pcb_flags) 148define PCB_PS offsetof(struct pcb, pcb_ps) 149define PCB_USP offsetof(struct pcb, pcb_usp) 150define PCB_REGS offsetof(struct pcb, pcb_regs) 151define PCB_ONFAULT offsetof(struct pcb, pcb_onfault) 152define PCB_FPCTX offsetof(struct pcb, pcb_fpregs) 153define PCB_TRCB 5 154 155# frame offsets 156define TF_PC offsetof(struct frame, f_pc) 157 158# exception frame offset/sizes 159define FR_SP offsetof(struct frame, f_regs[15]) 160define FR_HW offsetof(struct frame, f_sr) 161define FR_ADJ offsetof(struct frame, f_stackadj) 162define FR_SIZE sizeof(struct trapframe) 163 164# FP frame offsets 165define FPF_REGS offsetof(struct fpframe, fpf_regs[0]) 166define FPF_FPCR offsetof(struct fpframe, fpf_fpcr) 167 168# system calls 169define SYS_exit SYS_exit 170define SYS_execve SYS_execve 171define SYS___sigreturn14 SYS___sigreturn14 172define SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13 173 174# errno 175define ENOENT ENOENT 176define EFAULT EFAULT 177define ENAMETOOLONG ENAMETOOLONG 178 179# SVR4 binary compatibility 180ifdef COMPAT_SVR4 181define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler) 182define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc) 183define SVR4_SYS_context SVR4_SYS_context 184define SVR4_SYS_exit SVR4_SYS_exit 185define SVR4_SETCONTEXT SVR4_SETCONTEXT 186endif 187