1# $NetBSD: genassym.cf,v 1.22 2002/05/11 09:39:26 jdolecek 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/map.h> 45include <sys/mbuf.h> 46include <sys/msgbuf.h> 47include <sys/proc.h> 48include <sys/syscall.h> 49include <sys/user.h> 50 51include <uvm/uvm_extern.h> 52 53ifdef COMPAT_SVR4 54include <compat/svr4/svr4_syscall.h> 55include <compat/svr4/svr4_ucontext.h> 56endif 57 58include <machine/cpu.h> 59include <machine/psl.h> 60include <machine/reg.h> 61include <machine/pte.h> 62 63# machine class 64define CPUINFO_CLASS offsetof(struct cpu_model_info, class) 65define MACH_CLASSAV MACH_CLASSAV 66 67# values for mmutype 68define MMU_68851 MMU_68851 69define MMU_68030 MMU_68030 70define MMU_68040 MMU_68040 71 72# values for cputype 73define CPU_68020 CPU_68020 74define CPU_68030 CPU_68030 75define CPU_68040 CPU_68040 76 77# values for fputype 78define FPU_68881 FPU_68881 79define FPU_68882 FPU_68882 80define FPU_68040 FPU_68040 81 82# general constants 83define UPAGES UPAGES 84define USPACE USPACE 85define P1PAGES P1PAGES 86define NBPG NBPG 87define NPTEPG NPTEPG 88define PGSHIFT PGSHIFT 89define SYSPTSIZE SYSPTSIZE 90define USRPTSIZE USRPTSIZE 91define USRIOSIZE USRIOSIZE 92define USRSTACK USRSTACK 93 94# proc fields and values 95define P_FORW offsetof(struct proc, p_forw) 96define P_BACK offsetof(struct proc, p_back) 97define P_VMSPACE offsetof(struct proc, p_vmspace) 98define P_ADDR offsetof(struct proc, p_addr) 99define P_MD offsetof(struct proc, p_md) 100define P_PID offsetof(struct proc, p_pid) 101define P_PRIORITY offsetof(struct proc, p_priority) 102define P_STAT offsetof(struct proc, p_stat) 103define P_WCHAN offsetof(struct proc, p_wchan) 104define P_FLAG offsetof(struct proc, p_flag) 105define P_MD_REGS offsetof(struct proc, p_md.md_regs) 106define P_MD_FLAGS offsetof(struct proc, p_md.md_flags) 107define SSLEEP SSLEEP 108define SRUN SRUN 109define SONPROC SONPROC 110 111# interrupt/fault metering 112define UVMEXP_INTRS offsetof(struct uvmexp, intrs) 113 114# PSL values (should just include psl.h?) 115define PSL_S PSL_S 116define PSL_IPL7 PSL_IPL7 117define PSL_LOWIPL PSL_LOWIPL 118define PSL_HIGHIPL PSL_HIGHIPL 119define PSL_USER PSL_USER 120define PSL_TS (PSL_T | PSL_S) 121define SPL1 (PSL_S | PSL_IPL1) 122define SPL2 (PSL_S | PSL_IPL2) 123define SPL3 (PSL_S | PSL_IPL3) 124define SPL4 (PSL_S | PSL_IPL4) 125define SPL5 (PSL_S | PSL_IPL5) 126define SPL6 (PSL_S | PSL_IPL6) 127define MAC68K_IPL_CLOCK MAC68K_IPL_CLOCK 128 129# magic 130define FC_USERD FC_USERD 131define FC_SUPERD FC_SUPERD 132define CACHE_ON CACHE_ON 133define CACHE_OFF CACHE_OFF 134define CACHE_CLR CACHE_CLR 135define CACHE40_ON CACHE40_ON 136define CACHE40_OFF CACHE40_OFF 137define IC_CLEAR IC_CLEAR 138define DC_CLEAR DC_CLEAR 139 140# pte/ste bits 141define PG_FRAME PG_FRAME 142 143# pcb fields 144define SIZEOF_PCB sizeof(struct pcb) 145define PCB_FLAGS offsetof(struct pcb, pcb_flags) 146define PCB_PS offsetof(struct pcb, pcb_ps) 147define PCB_USP offsetof(struct pcb, pcb_usp) 148define PCB_REGS offsetof(struct pcb, pcb_regs) 149define PCB_ONFAULT offsetof(struct pcb, pcb_onfault) 150define PCB_FPCTX offsetof(struct pcb, pcb_fpregs) 151define PCB_TRCB 5 152 153# exception frame offset/sizes 154define FR_SP offsetof(struct frame, f_regs[15]) 155define FR_HW offsetof(struct frame, f_sr) 156define FR_ADJ offsetof(struct frame, f_stackadj) 157define FR_SIZE sizeof(struct trapframe) 158 159# FP frame offsets 160define FPF_REGS offsetof(struct fpframe, fpf_regs[0]) 161define FPF_FPCR offsetof(struct fpframe, fpf_fpcr) 162 163# system calls 164define SYS_exit SYS_exit 165define SYS_execve SYS_execve 166define SYS___sigreturn14 SYS___sigreturn14 167define SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13 168 169# errno 170define ENOENT ENOENT 171define EFAULT EFAULT 172define ENAMETOOLONG ENAMETOOLONG 173 174# SVR4 binary compatibility 175ifdef COMPAT_SVR4 176define SVR4_SIGF_HANDLER offsetof(struct svr4_sigframe, sf_handler) 177define SVR4_SIGF_UC offsetof(struct svr4_sigframe, sf_uc) 178define SVR4_SYS_context SVR4_SYS_context 179define SVR4_SYS_exit SVR4_SYS_exit 180define SVR4_SETCONTEXT SVR4_SETCONTEXT 181endif 182