xref: /netbsd/sys/arch/mac68k/mac68k/genassym.cf (revision bf9ec67e)
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