diff options
Diffstat (limited to 'sys/arch/alpha')
-rw-r--r-- | sys/arch/alpha/alpha/genassym.cf | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/sys/arch/alpha/alpha/genassym.cf b/sys/arch/alpha/alpha/genassym.cf new file mode 100644 index 00000000000..e8cdfb11489 --- /dev/null +++ b/sys/arch/alpha/alpha/genassym.cf @@ -0,0 +1,176 @@ +# $OpenBSD: genassym.cf,v 1.1 2001/05/11 09:45:22 art Exp $ + +# Copyright (c) 1994, 1995 Gordon W. Ross +# Copyright (c) 1993 Adam Glass +# Copyright (c) 1982, 1990, 1993 +# The Regents of the University of California. All rights reserved. +# +# 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. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the University of +# California, Berkeley and its contributors. +# 4. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. + +include <sys/param.h> +include <sys/buf.h> +include <sys/map.h> +include <sys/proc.h> +include <sys/mbuf.h> +include <sys/msgbuf.h> +include <sys/syscall.h> +include <sys/user.h> + +include <machine/cpu.h> +include <machine/reg.h> +include <machine/frame.h> +include <machine/rpb.h> +include <machine/vmparam.h> + +ifdef COMPAT_NETBSD +include <compat/netbsd/netbsd_syscall.h> +endif + +include <vm/vm.h> + +# general constants +define NBPG NBPG +define PGSHIFT PGSHIFT +define VM_MAX_ADDRESS VM_MAX_ADDRESS + +# Register offsets, for stack frames. +define FRAME_V0 FRAME_V0 +define FRAME_T0 FRAME_T0 +define FRAME_T1 FRAME_T1 +define FRAME_T2 FRAME_T2 +define FRAME_T3 FRAME_T3 +define FRAME_T4 FRAME_T4 +define FRAME_T5 FRAME_T5 +define FRAME_T6 FRAME_T6 +define FRAME_T7 FRAME_T7 +define FRAME_S0 FRAME_S0 +define FRAME_S1 FRAME_S1 +define FRAME_S2 FRAME_S2 +define FRAME_S3 FRAME_S3 +define FRAME_S4 FRAME_S4 +define FRAME_S5 FRAME_S5 +define FRAME_S6 FRAME_S6 +define FRAME_A3 FRAME_A3 +define FRAME_A4 FRAME_A4 +define FRAME_A5 FRAME_A5 +define FRAME_T8 FRAME_T8 +define FRAME_T9 FRAME_T9 +define FRAME_T10 FRAME_T10 +define FRAME_T11 FRAME_T11 +define FRAME_RA FRAME_RA +define FRAME_T12 FRAME_T12 +define FRAME_AT FRAME_AT +define FRAME_SP FRAME_SP + +define FRAME_SW_SIZE FRAME_SW_SIZE + +define FRAME_PS FRAME_PS +define FRAME_PC FRAME_PC +define FRAME_GP FRAME_GP +define FRAME_A0 FRAME_A0 +define FRAME_A1 FRAME_A1 +define FRAME_A2 FRAME_A2 + +define FRAME_SIZE FRAME_SIZE + +# bits of the PS register +define ALPHA_PSL_USERMODE ALPHA_PSL_USERMODE +define ALPHA_PSL_IPL_MASK ALPHA_PSL_IPL_MASK +define ALPHA_PSL_IPL_0 ALPHA_PSL_IPL_0 +define ALPHA_PSL_IPL_SOFT ALPHA_PSL_IPL_SOFT +define ALPHA_PSL_IPL_HIGH ALPHA_PSL_IPL_HIGH + +# pte bits +define ALPHA_PTE_VALID ALPHA_PTE_VALID +define ALPHA_PTE_ASM ALPHA_PTE_ASM +define ALPHA_PTE_KR ALPHA_PTE_KR +define ALPHA_PTE_KW ALPHA_PTE_KW + +# Important offsets into the proc struct & associated constants +define P_FORW offsetof(struct proc, p_forw) +define P_BACK offsetof(struct proc, p_back) +define P_ADDR offsetof(struct proc, p_addr) +define P_VMSPACE offsetof(struct proc, p_vmspace) +define P_STAT offsetof(struct proc, p_stat) +define P_MD_FLAGS offsetof(struct proc, p_md.md_flags) +define P_MD_PCBPADDR offsetof(struct proc, p_md.md_pcbpaddr) +define PH_LINK offsetof(struct prochd, ph_link) +define PH_RLINK offsetof(struct prochd, ph_rlink) + +# offsets needed by cpu_switch() to switch mappings. +define VM_MAP_PMAP offsetof(struct vmspace, vm_map.pmap) + +# Important offsets into the user struct & associated constants +define UPAGES UPAGES +define U_PCB offsetof(struct user, u_pcb) +define U_PCB_HWPCB offsetof(struct user, u_pcb.pcb_hw) +define U_PCB_HWPCB_KSP offsetof(struct user, u_pcb.pcb_hw.apcb_ksp) +define U_PCB_CONTEXT offsetof(struct user, u_pcb.pcb_context[0]) +define U_PCB_ONFAULT offsetof(struct user, u_pcb.pcb_onfault) +define U_PCB_ACCESSADDR offsetof(struct user, u_pcb.pcb_accessaddr) + +# Offsets into struct fpstate, for save, restore +define FPREG_FPR_REGS offsetof(struct fpreg, fpr_regs[0]) +define FPREG_FPR_CR offsetof(struct fpreg, fpr_cr) + +# Important other addresses +define HWRPB_ADDR HWRPB_ADDR +define VPTBASE VPTBASE + +# Offsets into the HWRPB. +define RPB_PRIMARY_CPU_ID offsetof(struct rpb, rpb_primary_cpu_id) + +# Kernel entries +define ALPHA_KENTRY_ARITH ALPHA_KENTRY_ARITH +define ALPHA_KENTRY_MM ALPHA_KENTRY_MM +define ALPHA_KENTRY_IF ALPHA_KENTRY_IF +define ALPHA_KENTRY_UNA ALPHA_KENTRY_UNA + +# errno values +define ENAMETOOLONG ENAMETOOLONG +define EFAULT EFAULT + +# Syscalls called from sigreturn. +define SYS_sigreturn SYS_sigreturn +define SYS_exit SYS_exit + +ifdef COMPAT_NETBSD +# XXX - these should probably use the magic macro from machine/asm.h +define NETBSD_SYS___sigreturn14 NETBSD_SYS___sigreturn14 +define NETBSD_SYS_exit NETBSD_SYS_exit +endif + +# CPU info +define CPU_INFO_CURPROC offsetof(struct cpu_info, ci_curproc) +define CPU_INFO_FPCURPROC offsetof(struct cpu_info, ci_fpcurproc) +define CPU_INFO_CURPCB offsetof(struct cpu_info, ci_curpcb) +define CPU_INFO_IDLE_PCB_PADDR offsetof(struct cpu_info, ci_idle_pcb_paddr) +define CPU_INFO_WANT_RESCHED offsetof(struct cpu_info, ci_want_resched) +define CPU_INFO_ASTPENDING offsetof(struct cpu_info, ci_astpending) +define CPU_INFO_SIZEOF sizeof(struct cpu_info) |