#       $NetBSD: genassym.cf,v 1.3 2020/10/21 01:24:04 thorpej Exp $

#
# Copyright (c) 2001 The NetBSD Foundation, Inc.
# All rights reserved.
#
# This code is derived from software contributed to The NetBSD Foundation
# by Matt Thomas <[email protected]>.
#
# 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.
#
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
# ``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 THE FOUNDATION OR CONTRIBUTORS
# 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 <sys/types.h>
include <machine/reg.h>
include <ucontext.h>
include <signal.h>

define _REG_V0          _REG_V0         /* 0 */
define _REG_T0          _REG_T0         /* 1 */
define _REG_T1          _REG_T1         /* 2 */
define _REG_T2          _REG_T2         /* 3 */
define _REG_T3          _REG_T3         /* 4 */
define _REG_T4          _REG_T4         /* 5 */
define _REG_T5          _REG_T5         /* 6 */
define _REG_T6          _REG_T6         /* 7 */
define _REG_T7          _REG_T7         /* 8 */
define _REG_S0          _REG_S0         /* 9 */
define _REG_S1          _REG_S1         /* 10 */
define _REG_S2          _REG_S2         /* 11 */
define _REG_S3          _REG_S3         /* 12 */
define _REG_S4          _REG_S4         /* 13 */
define _REG_S5          _REG_S5         /* 14 */
define _REG_S6          _REG_S6         /* 15 */
define _REG_A0          _REG_A0         /* 16 */
define _REG_A1          _REG_A1         /* 17 */
define _REG_A2          _REG_A2         /* 18 */
define _REG_A3          _REG_A3         /* 19 */
define _REG_A4          _REG_A4         /* 20 */
define _REG_A5          _REG_A5         /* 21 */
define _REG_T8          _REG_T8         /* 22 */
define _REG_T9          _REG_T9         /* 23 */
define _REG_T10         _REG_T10        /* 24 */
define _REG_T11         _REG_T11        /* 25 */
define _REG_RA          _REG_RA         /* 26 */
define _REG_T12         _REG_T12        /* 27 */
define _REG_PV          _REG_PV         /* 27 */
define _REG_AT          _REG_AT         /* 28 */
define _REG_GP          _REG_GP         /* 29 */
define _REG_SP          _REG_SP         /* 30 */
define _REG_UNIQUE      _REG_UNIQUE     /* 31 */
define _REG_PC          _REG_PC         /* 32 */
define _REG_PS          _REG_PS         /* 33 */

define  SC_ONSTACK      offsetof(struct sigcontext, sc_onstack)
define  SC_SP           offsetof(struct sigcontext, sc_sp)
define  SC_PC           offsetof(struct sigcontext, sc_pc)
define  SC_PS           offsetof(struct sigcontext, sc_ps)
define  SC_REGS         offsetof(struct sigcontext, sc_regs)
define  SC_OWNEDFP      offsetof(struct sigcontext, sc_regs)
define  SC_FPREGS       offsetof(struct sigcontext, sc_fpregs)
define  SC_FPCR         offsetof(struct sigcontext, sc_fpcr)
define  SC_FP_CONTROL   offsetof(struct sigcontext, sc_fp_control)
define  SC_MASK         offsetof(struct sigcontext, sc_mask)
define  SC_RESERVED     offsetof(struct sigcontext, sc_reserved)
define  SC_XXX          offsetof(struct sigcontext, sc_xxx)

define  SIZEOF_SIGINFO  sizeof(siginfo_t)

define  UC_GREGS        offsetof(ucontext_t, uc_mcontext.__gregs)