1# $NetBSD: genassym.cf,v 1.4 2024/05/30 15:56:43 skrll Exp $ 2 3# 4# Copyright (c) 2001 The NetBSD Foundation, Inc. 5# All rights reserved. 6# 7# This code is derived from software contributed to The NetBSD Foundation 8# by Matt Thomas <matt@3am-sfotware.com>. 9# 10# Redistribution and use in source and binary forms, with or without 11# modification, are permitted provided that the following conditions 12# are met: 13# 1. Redistributions of source code must retain the above copyright 14# notice, this list of conditions and the following disclaimer. 15# 2. Redistributions in binary form must reproduce the above copyright 16# notice, this list of conditions and the following disclaimer in the 17# documentation and/or other materials provided with the distribution. 18# 19# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29# POSSIBILITY OF SUCH DAMAGE. 30# 31 32include <sys/types.h> 33include <sys/cpu.h> 34include <sys/queue.h> 35include <sys/signal.h> 36include <sys/ucontext.h> 37 38include <machine/setjmp.h> 39 40define UC_GREGS_RA offsetof(ucontext_t, uc_mcontext.__gregs[_REG_RA]) 41define UC_GREGS_SP offsetof(ucontext_t, uc_mcontext.__gregs[_REG_SP]) 42define UC_GREGS_GP offsetof(ucontext_t, uc_mcontext.__gregs[_REG_GP]) 43define UC_GREGS_TP offsetof(ucontext_t, uc_mcontext.__gregs[_REG_TP]) 44define UC_GREGS_T0 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_T0]) 45define UC_GREGS_T1 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_T1]) 46define UC_GREGS_T2 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_T2]) 47define UC_GREGS_S0 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S0]) 48define UC_GREGS_S1 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S1]) 49define UC_GREGS_A0 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A0]) 50define UC_GREGS_A1 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A1]) 51define UC_GREGS_A2 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A2]) 52define UC_GREGS_A3 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A3]) 53define UC_GREGS_A4 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A4]) 54define UC_GREGS_A5 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A5]) 55define UC_GREGS_A6 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A6]) 56define UC_GREGS_A7 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_A7]) 57define UC_GREGS_S2 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S2]) 58define UC_GREGS_S3 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S3]) 59define UC_GREGS_S4 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S4]) 60define UC_GREGS_S5 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S5]) 61define UC_GREGS_S6 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S6]) 62define UC_GREGS_S7 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S7]) 63define UC_GREGS_S8 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S8]) 64define UC_GREGS_S9 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S9]) 65define UC_GREGS_S10 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S10]) 66define UC_GREGS_S11 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_S11]) 67define UC_GREGS_T3 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_T3]) 68define UC_GREGS_T4 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_T4]) 69define UC_GREGS_T5 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_T5]) 70define UC_GREGS_T6 offsetof(ucontext_t, uc_mcontext.__gregs[_REG_T6]) 71define UC_GREGS_RV offsetof(ucontext_t, uc_mcontext.__gregs[_REG_RV]) 72define UC_GREGS_PC offsetof(ucontext_t, uc_mcontext.__gregs[_REG_PC]) 73define UC_GREGS offsetof(ucontext_t, uc_mcontext.__gregs[0]) 74 75define SIG_BLOCK SIG_BLOCK 76define SIG_SETMASK SIG_SETMASK 77define SIGINFO_SIZE (sizeof(siginfo_t) + __ALIGNBYTES) & ~__ALIGNBYTES 78 79define JBLEN _JBLEN * sizeof(_BSD_JBSLOT_T_) 80define JB_MAGIC _JB_MAGIC * sizeof(_BSD_JBSLOT_T_) 81define JB_RA _JB_RA * sizeof(_BSD_JBSLOT_T_) 82define JB_S0 _JB_S0 * sizeof(_BSD_JBSLOT_T_) 83define JB_S1 _JB_S1 * sizeof(_BSD_JBSLOT_T_) 84define JB_S2 _JB_S2 * sizeof(_BSD_JBSLOT_T_) 85define JB_S3 _JB_S3 * sizeof(_BSD_JBSLOT_T_) 86define JB_S4 _JB_S4 * sizeof(_BSD_JBSLOT_T_) 87define JB_S5 _JB_S5 * sizeof(_BSD_JBSLOT_T_) 88define JB_S6 _JB_S6 * sizeof(_BSD_JBSLOT_T_) 89define JB_S7 _JB_S7 * sizeof(_BSD_JBSLOT_T_) 90define JB_S8 _JB_S8 * sizeof(_BSD_JBSLOT_T_) 91define JB_S9 _JB_S9 * sizeof(_BSD_JBSLOT_T_) 92define JB_S10 _JB_S10 * sizeof(_BSD_JBSLOT_T_) 93define JB_S11 _JB_S11 * sizeof(_BSD_JBSLOT_T_) 94define JB_SP _JB_SP * sizeof(_BSD_JBSLOT_T_) 95define JB_TP _JB_TP * sizeof(_BSD_JBSLOT_T_) 96define JB_GP _JB_GP * sizeof(_BSD_JBSLOT_T_) 97define JB_FCSR _JB_FCSR * sizeof(_BSD_JBSLOT_T_) 98 99define JB_FS0 _JB_FS0 * sizeof(_BSD_JBSLOT_T_) 100define JB_FS1 _JB_FS1 * sizeof(_BSD_JBSLOT_T_) 101define JB_FS2 _JB_FS2 * sizeof(_BSD_JBSLOT_T_) 102define JB_FS3 _JB_FS3 * sizeof(_BSD_JBSLOT_T_) 103define JB_FS4 _JB_FS4 * sizeof(_BSD_JBSLOT_T_) 104define JB_FS5 _JB_FS5 * sizeof(_BSD_JBSLOT_T_) 105define JB_FS6 _JB_FS6 * sizeof(_BSD_JBSLOT_T_) 106define JB_FS7 _JB_FS7 * sizeof(_BSD_JBSLOT_T_) 107define JB_FS8 _JB_FS8 * sizeof(_BSD_JBSLOT_T_) 108define JB_FS9 _JB_FS9 * sizeof(_BSD_JBSLOT_T_) 109define JB_FS10 _JB_FS10 * sizeof(_BSD_JBSLOT_T_) 110define JB_FS11 _JB_FS11 * sizeof(_BSD_JBSLOT_T_) 111 112define JB_SIGMASK _JB_SIGMASK * sizeof(_BSD_JBSLOT_T_) 113