1# $NetBSD: genassym.cf,v 1.25 2003/04/08 22:57:56 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 PAGE_SIZE PAGE_SIZE 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