1# $NetBSD: genassym.cf,v 1.5 2021/11/23 02:49:55 thorpej Exp $
2
3#-
4# Copyright (c) 2014 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 of 3am Software Foundry.
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 <ucontext.h>
34include <setjmp.h>
35
36define _UC_GREGS    offsetof(ucontext_t, uc_mcontext.__gregs[0])
37define _UC_REGS_X0  offsetof(ucontext_t, uc_mcontext.__gregs[_REG_X0])
38define _UC_REGS_SP  offsetof(ucontext_t, uc_mcontext.__gregs[_REG_SP])
39define _UC_REGS_PC  offsetof(ucontext_t, uc_mcontext.__gregs[_REG_PC])
40
41define _REG_X0                _REG_X0
42define _REG_X1                _REG_X1
43define _REG_X2                _REG_X2
44define _REG_X3                _REG_X3
45define _REG_X4                _REG_X4
46define _REG_X5                _REG_X5
47define _REG_X6                _REG_X6
48define _REG_X7                _REG_X7
49define _REG_X8                _REG_X8
50define _REG_X9                _REG_X9
51define _REG_X10               _REG_X10
52define _REG_X11               _REG_X11
53define _REG_X12               _REG_X12
54define _REG_X13               _REG_X13
55define _REG_X14               _REG_X14
56define _REG_X15               _REG_X15
57define _REG_X16               _REG_X16
58define _REG_X17               _REG_X17
59define _REG_X18               _REG_X18
60define _REG_X19               _REG_X19
61define _REG_X20               _REG_X20
62define _REG_X21               _REG_X21
63define _REG_X22               _REG_X22
64define _REG_X23               _REG_X23
65define _REG_X24               _REG_X24
66define _REG_X25               _REG_X25
67define _REG_X26               _REG_X26
68define _REG_X27               _REG_X27
69define _REG_X28               _REG_X28
70define _REG_X29               _REG_X29
71define _REG_X30               _REG_X30
72define _REG_X31               _REG_X31
73define _REG_PC                _REG_PC
74
75define _JB_MAGIC_AARCH64__SETJMP _JB_MAGIC_AARCH64__SETJMP
76define _JB_MAGIC_AARCH64_SETJMP _JB_MAGIC_AARCH64_SETJMP
77define _JB_MAGIC    sizeof(_BSD_JBSLOT_T_ [_JB_MAGIC])
78define _JB_SP                 sizeof(_BSD_JBSLOT_T_ [_JB_SP])
79define _JB_X19                sizeof(_BSD_JBSLOT_T_ [_JB_X19])
80define _JB_X20                sizeof(_BSD_JBSLOT_T_ [_JB_X20])
81define _JB_X21                sizeof(_BSD_JBSLOT_T_ [_JB_X21])
82define _JB_X22                sizeof(_BSD_JBSLOT_T_ [_JB_X22])
83define _JB_X23                sizeof(_BSD_JBSLOT_T_ [_JB_X23])
84define _JB_X24                sizeof(_BSD_JBSLOT_T_ [_JB_X24])
85define _JB_X25                sizeof(_BSD_JBSLOT_T_ [_JB_X25])
86define _JB_X26                sizeof(_BSD_JBSLOT_T_ [_JB_X26])
87define _JB_X27                sizeof(_BSD_JBSLOT_T_ [_JB_X27])
88define _JB_X28                sizeof(_BSD_JBSLOT_T_ [_JB_X29])
89define _JB_X29                sizeof(_BSD_JBSLOT_T_ [_JB_X29])
90define _JB_X30                sizeof(_BSD_JBSLOT_T_ [_JB_X30])
91define _JB_D8                 sizeof(_BSD_JBSLOT_T_ [_JB_D8])
92define _JB_D9                 sizeof(_BSD_JBSLOT_T_ [_JB_D9])
93define _JB_D10                sizeof(_BSD_JBSLOT_T_ [_JB_D10])
94define _JB_D11                sizeof(_BSD_JBSLOT_T_ [_JB_D11])
95define _JB_D12                sizeof(_BSD_JBSLOT_T_ [_JB_D12])
96define _JB_D13                sizeof(_BSD_JBSLOT_T_ [_JB_D13])
97define _JB_D14                sizeof(_BSD_JBSLOT_T_ [_JB_D14])
98define _JB_D15                sizeof(_BSD_JBSLOT_T_ [_JB_D15])
99define _JB_SIGMASK  sizeof(_BSD_JBSLOT_T_ [_JB_SIGMASK])
100