xref: /netbsd/sys/arch/powerpc/oea/genassym.cf (revision 800148fb)
1*800148fbSthorpej#	$NetBSD: genassym.cf,v 1.29 2021/02/24 16:42:38 thorpej Exp $
22b0e97a5Smatt
32b0e97a5Smatt#
42b0e97a5Smatt# Copyright (C) 1995, 1996 Wolfgang Solfrank.
52b0e97a5Smatt# Copyright (C) 1995, 1996 TooLs GmbH.
62b0e97a5Smatt# All rights reserved.
72b0e97a5Smatt#
82b0e97a5Smatt# Redistribution and use in source and binary forms, with or without
92b0e97a5Smatt# modification, are permitted provided that the following conditions
102b0e97a5Smatt# are met:
112b0e97a5Smatt# 1. Redistributions of source code must retain the above copyright
122b0e97a5Smatt#    notice, this list of conditions and the following disclaimer.
132b0e97a5Smatt# 2. Redistributions in binary form must reproduce the above copyright
142b0e97a5Smatt#    notice, this list of conditions and the following disclaimer in the
152b0e97a5Smatt#    documentation and/or other materials provided with the distribution.
162b0e97a5Smatt# 3. All advertising materials mentioning features or use of this software
172b0e97a5Smatt#    must display the following acknowledgement:
182b0e97a5Smatt#	This product includes software developed by TooLs GmbH.
192b0e97a5Smatt# 4. The name of TooLs GmbH may not be used to endorse or promote products
202b0e97a5Smatt#    derived from this software without specific prior written permission.
212b0e97a5Smatt#
222b0e97a5Smatt# THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``AS IS'' AND ANY EXPRESS OR
232b0e97a5Smatt# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
242b0e97a5Smatt# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
252b0e97a5Smatt# IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
262b0e97a5Smatt# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
272b0e97a5Smatt# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
282b0e97a5Smatt# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
292b0e97a5Smatt# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
302b0e97a5Smatt# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
312b0e97a5Smatt# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
322b0e97a5Smatt#
332b0e97a5Smatt
3445cb1d76Srin#ifdef _KERNEL_OPT
3542382e46Smattinclude "opt_ppcarch.h"
3645cb1d76Srin#endif
3742382e46Smatt
382b0e97a5Smattinclude <sys/param.h>
392b0e97a5Smattinclude <sys/time.h>
40c6f7e7c6Smattinclude <sys/mutex.h>
41c6f7e7c6Smattinclude <sys/rwlock.h>
422b0e97a5Smattinclude <sys/proc.h>
4320e2c495Smattinclude <sys/bitops.h>
442b0e97a5Smatt
452b0e97a5Smattinclude <uvm/uvm_extern.h>
462b0e97a5Smatt
472b0e97a5Smattinclude <machine/pcb.h>
482b0e97a5Smattinclude <machine/pmap.h>
492b0e97a5Smatt
502b0e97a5Smattinclude <powerpc/cpu.h>
515b9b59adSmattinclude <powerpc/oea/bat.h>
524b513a99Sgarbledinclude <powerpc/oea/cpufeat.h>
532b0e97a5Smatt
54a685c6b4Smattdefine	FRAME_DAR	offsetof(struct ktrapframe, ktf_tf.tf_dar)
55a685c6b4Smattdefine	FRAME_DSISR	offsetof(struct ktrapframe, ktf_tf.tf_dsisr)
56a685c6b4Smattdefine	FRAME_VRSAVE	offsetof(struct ktrapframe, ktf_tf.tf_vrsave)
57a685c6b4Smattdefine	FRAME_MQ	offsetof(struct ktrapframe, ktf_tf.tf_mq)
582b0e97a5Smatt
5942382e46Smattifdef PPC_OEA64
6042382e46Smattdefine	PM_STEG		offsetof(struct pmap, pm_steg_table)
6142382e46Smattelse
62a2c12836Smattdefine	USER_SR		USER_SR
63a2c12836Smattdefine	KERNEL_SR	KERNEL_SR
642b0e97a5Smattdefine	PM_SR		offsetof(struct pmap, pm_sr[0])
652b0e97a5Smattdefine	PM_USRSR	offsetof(struct pmap, pm_sr[USER_SR])
662b0e97a5Smattdefine	PM_KERNELSR	offsetof(struct pmap, pm_sr[KERNEL_SR])
6742382e46Smattendif
682b0e97a5Smatt
69*800148fbSthorpejdefine	CI_BATTABLE	offsetof(struct cpu_info, ci_battable)
70e7b49f60Smattdefine	CI_TEMPSAVE	offsetof(struct cpu_info, ci_savearea[CI_SAVETEMP])
71e7b49f60Smattdefine	CI_DDBSAVE	offsetof(struct cpu_info, ci_savearea[CI_SAVEDDB])
72e7b49f60Smattdefine	CI_DISISAVE	offsetof(struct cpu_info, ci_savearea[CI_SAVEMMU])
732b0e97a5Smatt
74a2c12836Smattdefine	CPUSAVE_R28	CPUSAVE_R28*sizeof(register_t)
75a2c12836Smattdefine	CPUSAVE_R29	CPUSAVE_R29*sizeof(register_t)
76a2c12836Smattdefine	CPUSAVE_R30	CPUSAVE_R30*sizeof(register_t)
77a2c12836Smattdefine	CPUSAVE_R31	CPUSAVE_R31*sizeof(register_t)
78a2c12836Smattdefine	CPUSAVE_DAR	CPUSAVE_DAR*sizeof(register_t)
79a2c12836Smattdefine	CPUSAVE_DSISR	CPUSAVE_DSISR*sizeof(register_t)
80a2c12836Smattdefine	CPUSAVE_SRR0	CPUSAVE_SRR0*sizeof(register_t)
81a2c12836Smattdefine	CPUSAVE_SRR1	CPUSAVE_SRR1*sizeof(register_t)
822b0e97a5Smatt
83a2c12836Smattdefine	OEACPU_64	OEACPU_64
84a2c12836Smattdefine	OEACPU_64_BRIDGE	OEACPU_64_BRIDGE
85a2c12836Smattdefine	OEACPU_NOBAT	OEACPU_NOBAT
86a2c12836Smattdefine	OEACPU_HIGHBAT	OEACPU_HIGHBAT
87a2c12836Smattdefine	OEACPU_601	OEACPU_601
88a2c12836Smattdefine	OEACPU_HIGHSPRG	OEACPU_HIGHSPRG
89a2c12836Smattdefine	OEACPU_ALTIVEC	OEACPU_ALTIVEC
902b0e97a5Smatt
915b9b59adSmattdefine	BAT_ADDR_SHIFT	ilog2(BAT_IDX2VA(1))
925b9b59adSmatt
934517d72dSmattdefine	PTE_REF		PTE_REF
944517d72dSmattdefine	PTE_CHG		PTE_CHG
954517d72dSmattdefine	PTE_HID		PTE_HID
964517d72dSmattdefine	PTE_G		PTE_G
974517d72dSmatt
98a685c6b4Smattdefine	FPREG_F0	offsetof(struct fpreg, fpreg[0])
99a685c6b4Smattdefine	FPREG_F1	offsetof(struct fpreg, fpreg[1])
100a685c6b4Smattdefine	FPREG_F2	offsetof(struct fpreg, fpreg[2])
101a685c6b4Smattdefine	FPREG_F3	offsetof(struct fpreg, fpreg[3])
102a685c6b4Smattdefine	FPREG_F4	offsetof(struct fpreg, fpreg[4])
103a685c6b4Smattdefine	FPREG_F5	offsetof(struct fpreg, fpreg[5])
104a685c6b4Smattdefine	FPREG_F6	offsetof(struct fpreg, fpreg[6])
105a685c6b4Smattdefine	FPREG_F7	offsetof(struct fpreg, fpreg[7])
106a685c6b4Smattdefine	FPREG_F8	offsetof(struct fpreg, fpreg[8])
107a685c6b4Smattdefine	FPREG_F9	offsetof(struct fpreg, fpreg[9])
108a685c6b4Smattdefine	FPREG_F10	offsetof(struct fpreg, fpreg[10])
109a685c6b4Smattdefine	FPREG_F11	offsetof(struct fpreg, fpreg[11])
110a685c6b4Smattdefine	FPREG_F12	offsetof(struct fpreg, fpreg[12])
111a685c6b4Smattdefine	FPREG_F13	offsetof(struct fpreg, fpreg[13])
112a685c6b4Smattdefine	FPREG_F14	offsetof(struct fpreg, fpreg[14])
113a685c6b4Smattdefine	FPREG_F15	offsetof(struct fpreg, fpreg[15])
114a685c6b4Smattdefine	FPREG_F16	offsetof(struct fpreg, fpreg[16])
115a685c6b4Smattdefine	FPREG_F17	offsetof(struct fpreg, fpreg[17])
116a685c6b4Smattdefine	FPREG_F18	offsetof(struct fpreg, fpreg[18])
117a685c6b4Smattdefine	FPREG_F19	offsetof(struct fpreg, fpreg[19])
118a685c6b4Smattdefine	FPREG_F20	offsetof(struct fpreg, fpreg[20])
119a685c6b4Smattdefine	FPREG_F21	offsetof(struct fpreg, fpreg[21])
120a685c6b4Smattdefine	FPREG_F22	offsetof(struct fpreg, fpreg[22])
121a685c6b4Smattdefine	FPREG_F23	offsetof(struct fpreg, fpreg[23])
122a685c6b4Smattdefine	FPREG_F24	offsetof(struct fpreg, fpreg[24])
123a685c6b4Smattdefine	FPREG_F25	offsetof(struct fpreg, fpreg[25])
124a685c6b4Smattdefine	FPREG_F26	offsetof(struct fpreg, fpreg[26])
125a685c6b4Smattdefine	FPREG_F27	offsetof(struct fpreg, fpreg[27])
126a685c6b4Smattdefine	FPREG_F28	offsetof(struct fpreg, fpreg[28])
127a685c6b4Smattdefine	FPREG_F29	offsetof(struct fpreg, fpreg[29])
128a685c6b4Smattdefine	FPREG_F30	offsetof(struct fpreg, fpreg[30])
129a685c6b4Smattdefine	FPREG_F31	offsetof(struct fpreg, fpreg[31])
130a685c6b4Smattdefine	FPREG_FPSCR	offsetof(struct fpreg, fpscr)
131a685c6b4Smatt
132a685c6b4Smattdefine	VREG_V0		offsetof(struct vreg, vreg[0][0])
133a685c6b4Smattdefine	VREG_V1		offsetof(struct vreg, vreg[1][0])
134a685c6b4Smattdefine	VREG_V2		offsetof(struct vreg, vreg[2][0])
135a685c6b4Smattdefine	VREG_V3		offsetof(struct vreg, vreg[3][0])
136a685c6b4Smattdefine	VREG_V4		offsetof(struct vreg, vreg[4][0])
137a685c6b4Smattdefine	VREG_V5		offsetof(struct vreg, vreg[5][0])
138a685c6b4Smattdefine	VREG_V6		offsetof(struct vreg, vreg[6][0])
139a685c6b4Smattdefine	VREG_V7		offsetof(struct vreg, vreg[7][0])
140a685c6b4Smattdefine	VREG_V8		offsetof(struct vreg, vreg[8][0])
141a685c6b4Smattdefine	VREG_V9		offsetof(struct vreg, vreg[9][0])
142a685c6b4Smattdefine	VREG_V10	offsetof(struct vreg, vreg[10][0])
143a685c6b4Smattdefine	VREG_V11	offsetof(struct vreg, vreg[11][0])
144a685c6b4Smattdefine	VREG_V12	offsetof(struct vreg, vreg[12][0])
145a685c6b4Smattdefine	VREG_V13	offsetof(struct vreg, vreg[13][0])
146a685c6b4Smattdefine	VREG_V14	offsetof(struct vreg, vreg[14][0])
147a685c6b4Smattdefine	VREG_V15	offsetof(struct vreg, vreg[15][0])
148a685c6b4Smattdefine	VREG_V16	offsetof(struct vreg, vreg[16][0])
149a685c6b4Smattdefine	VREG_V17	offsetof(struct vreg, vreg[17][0])
150a685c6b4Smattdefine	VREG_V18	offsetof(struct vreg, vreg[18][0])
151a685c6b4Smattdefine	VREG_V19	offsetof(struct vreg, vreg[19][0])
152a685c6b4Smattdefine	VREG_V20	offsetof(struct vreg, vreg[20][0])
153a685c6b4Smattdefine	VREG_V21	offsetof(struct vreg, vreg[21][0])
154a685c6b4Smattdefine	VREG_V22	offsetof(struct vreg, vreg[22][0])
155a685c6b4Smattdefine	VREG_V23	offsetof(struct vreg, vreg[23][0])
156a685c6b4Smattdefine	VREG_V24	offsetof(struct vreg, vreg[24][0])
157a685c6b4Smattdefine	VREG_V25	offsetof(struct vreg, vreg[25][0])
158a685c6b4Smattdefine	VREG_V26	offsetof(struct vreg, vreg[26][0])
159a685c6b4Smattdefine	VREG_V27	offsetof(struct vreg, vreg[27][0])
160a685c6b4Smattdefine	VREG_V28	offsetof(struct vreg, vreg[28][0])
161a685c6b4Smattdefine	VREG_V29	offsetof(struct vreg, vreg[29][0])
162a685c6b4Smattdefine	VREG_V30	offsetof(struct vreg, vreg[30][0])
163a685c6b4Smattdefine	VREG_V31	offsetof(struct vreg, vreg[31][0])
164a685c6b4Smattdefine	VREG_VRSAVE	offsetof(struct vreg, vrsave)
165a685c6b4Smattdefine	VREG_VSCR	offsetof(struct vreg, vscr)
166