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