genassym.cf revision 1.42
11.42Sthorpej#	$NetBSD: genassym.cf,v 1.42 2023/12/27 03:03:41 thorpej Exp $
21.1Sscottr
31.1Sscottr#
41.1Sscottr# Copyright (c) 1990 The Regents of the University of California.
51.1Sscottr# All rights reserved.
61.1Sscottr#
71.1Sscottr# Redistribution and use in source and binary forms, with or without
81.1Sscottr# modification, are permitted provided that the following conditions
91.1Sscottr# are met:
101.1Sscottr# 1. Redistributions of source code must retain the above copyright
111.1Sscottr#    notice, this list of conditions and the following disclaimer.
121.1Sscottr# 2. Redistributions in binary form must reproduce the above copyright
131.1Sscottr#    notice, this list of conditions and the following disclaimer in the
141.1Sscottr#    documentation and/or other materials provided with the distribution.
151.32Stsutsui# 3. Neither the name of the University nor the names of its contributors
161.1Sscottr#    may be used to endorse or promote products derived from this software
171.1Sscottr#    without specific prior written permission.
181.1Sscottr#
191.1Sscottr# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
201.1Sscottr# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
211.1Sscottr# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
221.1Sscottr# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
231.1Sscottr# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
241.1Sscottr# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
251.1Sscottr# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
261.1Sscottr# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
271.1Sscottr# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
281.1Sscottr# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
291.1Sscottr# SUCH DAMAGE.
301.1Sscottr#
311.1Sscottr#	@(#)genassym.c	7.8 (Berkeley) 5/7/91
321.1Sscottr#
331.1Sscottr
341.1Sscottrinclude	<sys/param.h>
351.1Sscottrinclude	<sys/buf.h>
361.1Sscottrinclude	<sys/mbuf.h>
371.1Sscottrinclude	<sys/msgbuf.h>
381.8Sscottrinclude	<sys/proc.h>
391.1Sscottrinclude	<sys/syscall.h>
401.9Sscottr
411.9Sscottrinclude <uvm/uvm_extern.h>
421.1Sscottr
431.1Sscottrinclude	<machine/cpu.h>
441.1Sscottrinclude	<machine/psl.h>
451.36Srmindinclude	<machine/pcb.h>
461.1Sscottrinclude	<machine/pte.h>
471.1Sscottr
481.8Sscottr# machine class
491.8Sscottrdefine	CPUINFO_CLASS		offsetof(struct cpu_model_info, class)
501.8Sscottrdefine	MACH_CLASSAV		MACH_CLASSAV
511.8Sscottr
521.8Sscottr# values for mmutype
531.8Sscottrdefine	MMU_68851		MMU_68851
541.8Sscottrdefine	MMU_68030		MMU_68030
551.8Sscottrdefine	MMU_68040		MMU_68040
561.8Sscottr
571.8Sscottr# values for cputype
581.8Sscottrdefine	CPU_68020		CPU_68020
591.8Sscottrdefine	CPU_68030		CPU_68030
601.8Sscottrdefine	CPU_68040		CPU_68040
611.8Sscottr
621.8Sscottr# values for fputype
631.8Sscottrdefine	FPU_68881		FPU_68881
641.8Sscottrdefine	FPU_68882		FPU_68882
651.8Sscottrdefine	FPU_68040		FPU_68040
661.8Sscottr
671.8Sscottr# general constants
681.8Sscottrdefine	UPAGES			UPAGES
691.8Sscottrdefine	USPACE			USPACE
701.8Sscottrdefine	P1PAGES 		P1PAGES
711.25Sthorpejdefine	PAGE_SIZE		PAGE_SIZE
721.8Sscottrdefine	NPTEPG			NPTEPG
731.8Sscottrdefine	PGSHIFT 		PGSHIFT
741.8Sscottrdefine	USRIOSIZE		USRIOSIZE
751.8Sscottrdefine	USRSTACK		USRSTACK
761.8Sscottr
771.42Sthorpej# MMU configuration constants (from pmap.h)
781.42Sthorpejexport	MMU51_SRP_BITS
791.42Sthorpejexport	MMU51_CRP_BITS
801.42Sthorpejexport	MMU51_TCR_BITS
811.42Sthorpejexport	MMU40_TCR_BITS
821.42Sthorpej
831.24Sthorpej# lwp & proc fields and values
841.34Srminddefine	L_PCB			offsetof(struct lwp, l_addr)
851.24Sthorpejdefine	L_PROC			offsetof(struct lwp, l_proc)
861.24Sthorpejdefine	L_MD_REGS		offsetof(struct lwp, l_md.md_regs)
871.24Sthorpejdefine	L_MD_FLAGS		offsetof(struct lwp, l_md.md_flags)
881.24Sthorpejdefine	P_FLAG			offsetof(struct proc, p_flag)
891.27Sdsldefine	P_RASLIST		offsetof(struct proc, p_raslist)
901.1Sscottrdefine	P_VMSPACE		offsetof(struct proc, p_vmspace)
911.24Sthorpej
921.8Sscottr# interrupt/fault metering
931.35Smattdefine	CI_NINTR		offsetof(struct cpu_info, ci_data.cpu_nintr)
941.1Sscottr
951.24Sthorpej#mE PSL values (should just include psl.h?)
961.1Sscottrdefine	PSL_S			PSL_S
971.1Sscottrdefine	PSL_IPL7		PSL_IPL7
981.1Sscottrdefine	PSL_LOWIPL		PSL_LOWIPL
991.1Sscottrdefine	PSL_HIGHIPL		PSL_HIGHIPL
1001.1Sscottrdefine	PSL_USER		PSL_USER
1011.16Sscottrdefine	PSL_TS			(PSL_T | PSL_S)
1021.1Sscottrdefine	SPL1			(PSL_S | PSL_IPL1)
1031.1Sscottrdefine	SPL2			(PSL_S | PSL_IPL2)
1041.1Sscottrdefine	SPL3			(PSL_S | PSL_IPL3)
1051.1Sscottrdefine	SPL4			(PSL_S | PSL_IPL4)
1061.1Sscottrdefine	SPL5			(PSL_S | PSL_IPL5)
1071.1Sscottrdefine	SPL6			(PSL_S | PSL_IPL6)
1081.29Stsutsuidefine	IPL_CLOCK		IPL_CLOCK
1091.1Sscottr
1101.8Sscottr# magic
1111.1Sscottrdefine	FC_USERD		FC_USERD
1121.1Sscottrdefine	FC_SUPERD		FC_SUPERD
1131.1Sscottrdefine	CACHE_ON		CACHE_ON
1141.1Sscottrdefine	CACHE_OFF		CACHE_OFF
1151.1Sscottrdefine	CACHE_CLR		CACHE_CLR
1161.1Sscottrdefine	CACHE40_ON		CACHE40_ON
1171.1Sscottrdefine	CACHE40_OFF		CACHE40_OFF
1181.1Sscottrdefine	IC_CLEAR		IC_CLEAR
1191.1Sscottrdefine	DC_CLEAR		DC_CLEAR
1201.1Sscottr
1211.8Sscottr# pte/ste bits
1221.1Sscottrdefine	PG_FRAME		PG_FRAME
1231.1Sscottr
1241.8Sscottr# pcb fields
1251.1Sscottrdefine	SIZEOF_PCB		sizeof(struct pcb)
1261.1Sscottrdefine	PCB_FLAGS		offsetof(struct pcb, pcb_flags)
1271.1Sscottrdefine	PCB_PS			offsetof(struct pcb, pcb_ps)
1281.1Sscottrdefine	PCB_USP 		offsetof(struct pcb, pcb_usp)
1291.1Sscottrdefine	PCB_REGS		offsetof(struct pcb, pcb_regs)
1301.1Sscottrdefine	PCB_ONFAULT		offsetof(struct pcb, pcb_onfault)
1311.1Sscottrdefine	PCB_FPCTX		offsetof(struct pcb, pcb_fpregs)
1321.1Sscottrdefine	PCB_TRCB		5
1331.24Sthorpej
1341.24Sthorpej# frame offsets
1351.24Sthorpejdefine	TF_PC			offsetof(struct frame, f_pc)
1361.1Sscottr
1371.8Sscottr# exception frame offset/sizes
1381.1Sscottrdefine	FR_SP			offsetof(struct frame, f_regs[15])
1391.1Sscottrdefine	FR_HW			offsetof(struct frame, f_sr)
1401.1Sscottrdefine	FR_ADJ			offsetof(struct frame, f_stackadj)
1411.8Sscottrdefine	FR_SIZE			sizeof(struct trapframe)
1421.20Stsutsui
1431.20Stsutsui# FP frame offsets
1441.20Stsutsuidefine	FPF_REGS		offsetof(struct fpframe, fpf_regs[0])
1451.20Stsutsuidefine	FPF_FPCR		offsetof(struct fpframe, fpf_fpcr)
1461.1Sscottr
1471.8Sscottr# system calls
1481.8Sscottrdefine	SYS_exit		SYS_exit
1491.8Sscottrdefine	SYS_execve		SYS_execve
1501.26Scldefine	SYS_compat_16___sigreturn14	SYS_compat_16___sigreturn14
1511.11Sthorpejdefine	SYS_compat_13_sigreturn13 SYS_compat_13_sigreturn13
1521.1Sscottr
1531.8Sscottr# errno
1541.1Sscottrdefine	ENOENT			ENOENT
1551.1Sscottrdefine	EFAULT			EFAULT
1561.1Sscottrdefine	ENAMETOOLONG		ENAMETOOLONG
1571.13Skleink
1581.37Sjklos# machine ids
1591.37Sjklosdefine MACH_MACC610		MACH_MACC610
1601.37Sjklosdefine MACH_MACQ610		MACH_MACQ610
1611.37Sjklosdefine MACH_MACC650		MACH_MACC650
1621.37Sjklosdefine MACH_MACQ650		MACH_MACQ650
1631.37Sjklosdefine MACH_MACQ800		MACH_MACQ800
164