genassym.cf revision 1.9
1# $NetBSD: genassym.cf,v 1.9 1998/04/24 05:27:24 scottr 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 38include <sys/param.h> 39include <sys/buf.h> 40include <sys/map.h> 41include <sys/mbuf.h> 42include <sys/msgbuf.h> 43include <sys/proc.h> 44include <sys/syscall.h> 45include <sys/user.h> 46 47include <vm/vm.h> 48 49ifdef UVM 50include <uvm/uvm_extern.h> 51endif 52 53include <machine/cpu.h> 54include <machine/psl.h> 55include <machine/reg.h> 56include <machine/pte.h> 57 58# machine class 59define CPUINFO_CLASS offsetof(struct cpu_model_info, class) 60define MACH_CLASSAV MACH_CLASSAV 61 62# values for mmutype 63define MMU_68851 MMU_68851 64define MMU_68030 MMU_68030 65define MMU_68040 MMU_68040 66 67# values for cputype 68define CPU_68020 CPU_68020 69define CPU_68030 CPU_68030 70define CPU_68040 CPU_68040 71 72# values for fputype 73define FPU_68881 FPU_68881 74define FPU_68882 FPU_68882 75define FPU_68040 FPU_68040 76 77# general constants 78define UPAGES UPAGES 79define USPACE USPACE 80define P1PAGES P1PAGES 81define CLSIZE CLSIZE 82define NBPG NBPG 83define NPTEPG NPTEPG 84define PGSHIFT PGSHIFT 85define SYSPTSIZE SYSPTSIZE 86define USRPTSIZE USRPTSIZE 87define USRIOSIZE USRIOSIZE 88define USRSTACK USRSTACK 89 90# proc fields and values 91define P_FORW offsetof(struct proc, p_forw) 92define P_BACK offsetof(struct proc, p_back) 93define P_VMSPACE offsetof(struct proc, p_vmspace) 94define P_ADDR offsetof(struct proc, p_addr) 95define P_MD offsetof(struct proc, p_md) 96define P_PID offsetof(struct proc, p_pid) 97define P_PRIORITY offsetof(struct proc, p_priority) 98define P_STAT offsetof(struct proc, p_stat) 99define P_WCHAN offsetof(struct proc, p_wchan) 100define P_FLAG offsetof(struct proc, p_flag) 101define P_MD_REGS offsetof(struct proc, p_md.md_regs) 102define P_MD_FLAGS offsetof(struct proc, p_md.md_flags) 103define SSLEEP SSLEEP 104define SRUN SRUN 105 106# interrupt/fault metering 107ifdef UVM 108define UVMEXP_INTRS offsetof(struct uvmexp, intrs) 109else 110define V_SWTCH offsetof(struct vmmeter, v_swtch) 111define V_TRAP offsetof(struct vmmeter, v_trap) 112define V_SYSCALL offsetof(struct vmmeter, v_syscall) 113define V_INTR offsetof(struct vmmeter, v_intr) 114define V_SOFT offsetof(struct vmmeter, v_soft) 115endif 116 117# PSL values (should just include psl.h?) 118define PSL_S PSL_S 119define PSL_IPL7 PSL_IPL7 120define PSL_LOWIPL PSL_LOWIPL 121define PSL_HIGHIPL PSL_HIGHIPL 122define PSL_USER PSL_USER 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) 129 130# magic 131define FC_USERD FC_USERD 132define FC_SUPERD FC_SUPERD 133define CACHE_ON CACHE_ON 134define CACHE_OFF CACHE_OFF 135define CACHE_CLR CACHE_CLR 136define CACHE40_ON CACHE40_ON 137define CACHE40_OFF CACHE40_OFF 138define IC_CLEAR IC_CLEAR 139define DC_CLEAR DC_CLEAR 140 141# pte/ste bits 142define PG_FRAME PG_FRAME 143 144# pcb fields 145define SIZEOF_PCB sizeof(struct pcb) 146define PCB_FLAGS offsetof(struct pcb, pcb_flags) 147define PCB_PS offsetof(struct pcb, pcb_ps) 148define PCB_USP offsetof(struct pcb, pcb_usp) 149define PCB_REGS offsetof(struct pcb, pcb_regs) 150define PCB_ONFAULT offsetof(struct pcb, pcb_onfault) 151define PCB_FPCTX offsetof(struct pcb, pcb_fpregs) 152define PCB_TRCB 5 153 154# exception frame offset/sizes 155define FR_SP offsetof(struct frame, f_regs[15]) 156define FR_HW offsetof(struct frame, f_sr) 157define FR_ADJ offsetof(struct frame, f_stackadj) 158define FR_SIZE sizeof(struct trapframe) 159 160# system calls 161define SYS_exit SYS_exit 162define SYS_execve SYS_execve 163define SYS_sigreturn SYS_sigreturn 164 165# errno 166define ENOENT ENOENT 167define EFAULT EFAULT 168define ENAMETOOLONG ENAMETOOLONG 169