# $NetBSD: genassym.cf,v 1.25 2026/06/13 20:16:23 rkujawa Exp $ # # Copyright (C) 1995, 1996 Wolfgang Solfrank. # Copyright (C) 1995, 1996 TooLs GmbH. # 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 TooLs GmbH. # 4. The name of TooLs GmbH may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``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 TOOLS GMBH 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 include include define FRAME_DEAR offsetof(struct ktrapframe, ktf_tf.tf_dear) define FRAME_ESR offsetof(struct ktrapframe, ktf_tf.tf_esr) define FRAME_PID offsetof(struct ktrapframe, ktf_tf.tf_pid) define PM_CTX offsetof(struct pmap, pm_ctx) define KERNEL_PID KERNEL_PID define CI_INTSTK offsetof(struct cpu_info, ci_intstk) define CI_TEMPSAVE offsetof(struct cpu_info, ci_savearea[CI_SAVETEMP]) define CI_DDBSAVE offsetof(struct cpu_info, ci_savearea[CI_SAVEDDB]) define CI_TLBMISSSAVE offsetof(struct cpu_info, ci_savearea[CI_SAVEMMU]) # critical/machine-check save area (reuses the obsolete IPKDB slot) define CI_CRITSAVE offsetof(struct cpu_info, ci_savearea[CI_SAVEIPKDB]) define CPUSAVE_R28 CPUSAVE_R28*sizeof(register_t) define CPUSAVE_R29 CPUSAVE_R29*sizeof(register_t) define CPUSAVE_R30 CPUSAVE_R30*sizeof(register_t) define CPUSAVE_R31 CPUSAVE_R31*sizeof(register_t) define CPUSAVE_DEAR CPUSAVE_DEAR*sizeof(register_t) define CPUSAVE_ESR CPUSAVE_ESR*sizeof(register_t) define CPUSAVE_SRR0 CPUSAVE_SRR0*sizeof(register_t) define CPUSAVE_SRR1 CPUSAVE_SRR1*sizeof(register_t) # FPU context offsets for fpu_subr.S (440 cores with an FPU: 460EX). # Harmless for FPU-less kernels: assym.h entries cost nothing unused. include define FPREG_F0 offsetof(struct fpreg, fpreg[0]) define FPREG_F1 offsetof(struct fpreg, fpreg[1]) define FPREG_F2 offsetof(struct fpreg, fpreg[2]) define FPREG_F3 offsetof(struct fpreg, fpreg[3]) define FPREG_F4 offsetof(struct fpreg, fpreg[4]) define FPREG_F5 offsetof(struct fpreg, fpreg[5]) define FPREG_F6 offsetof(struct fpreg, fpreg[6]) define FPREG_F7 offsetof(struct fpreg, fpreg[7]) define FPREG_F8 offsetof(struct fpreg, fpreg[8]) define FPREG_F9 offsetof(struct fpreg, fpreg[9]) define FPREG_F10 offsetof(struct fpreg, fpreg[10]) define FPREG_F11 offsetof(struct fpreg, fpreg[11]) define FPREG_F12 offsetof(struct fpreg, fpreg[12]) define FPREG_F13 offsetof(struct fpreg, fpreg[13]) define FPREG_F14 offsetof(struct fpreg, fpreg[14]) define FPREG_F15 offsetof(struct fpreg, fpreg[15]) define FPREG_F16 offsetof(struct fpreg, fpreg[16]) define FPREG_F17 offsetof(struct fpreg, fpreg[17]) define FPREG_F18 offsetof(struct fpreg, fpreg[18]) define FPREG_F19 offsetof(struct fpreg, fpreg[19]) define FPREG_F20 offsetof(struct fpreg, fpreg[20]) define FPREG_F21 offsetof(struct fpreg, fpreg[21]) define FPREG_F22 offsetof(struct fpreg, fpreg[22]) define FPREG_F23 offsetof(struct fpreg, fpreg[23]) define FPREG_F24 offsetof(struct fpreg, fpreg[24]) define FPREG_F25 offsetof(struct fpreg, fpreg[25]) define FPREG_F26 offsetof(struct fpreg, fpreg[26]) define FPREG_F27 offsetof(struct fpreg, fpreg[27]) define FPREG_F28 offsetof(struct fpreg, fpreg[28]) define FPREG_F29 offsetof(struct fpreg, fpreg[29]) define FPREG_F30 offsetof(struct fpreg, fpreg[30]) define FPREG_F31 offsetof(struct fpreg, fpreg[31]) define FPREG_FPSCR offsetof(struct fpreg, fpscr)