/* Register offsets for HPPA running GNU/Linux.

   Copyright (C) 2007-2021 Free Software Foundation, Inc.

   This file is part of GDB.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

#ifndef HPPA_LINUX_OFFSETS_H
#define HPPA_LINUX_OFFSETS_H

#define PT_PSW offsetof(struct pt_regs, gr[ 0])
#define PT_GR1 offsetof(struct pt_regs, gr[ 1])
#define PT_GR2 offsetof(struct pt_regs, gr[ 2])
#define PT_GR3 offsetof(struct pt_regs, gr[ 3])
#define PT_GR4 offsetof(struct pt_regs, gr[ 4])
#define PT_GR5 offsetof(struct pt_regs, gr[ 5])
#define PT_GR6 offsetof(struct pt_regs, gr[ 6])
#define PT_GR7 offsetof(struct pt_regs, gr[ 7])
#define PT_GR8 offsetof(struct pt_regs, gr[ 8])
#define PT_GR9 offsetof(struct pt_regs, gr[ 9])
#define PT_GR10 offsetof(struct pt_regs, gr[10])
#define PT_GR11 offsetof(struct pt_regs, gr[11])
#define PT_GR12 offsetof(struct pt_regs, gr[12])
#define PT_GR13 offsetof(struct pt_regs, gr[13])
#define PT_GR14 offsetof(struct pt_regs, gr[14])
#define PT_GR15 offsetof(struct pt_regs, gr[15])
#define PT_GR16 offsetof(struct pt_regs, gr[16])
#define PT_GR17 offsetof(struct pt_regs, gr[17])
#define PT_GR18 offsetof(struct pt_regs, gr[18])
#define PT_GR19 offsetof(struct pt_regs, gr[19])
#define PT_GR20 offsetof(struct pt_regs, gr[20])
#define PT_GR21 offsetof(struct pt_regs, gr[21])
#define PT_GR22 offsetof(struct pt_regs, gr[22])
#define PT_GR23 offsetof(struct pt_regs, gr[23])
#define PT_GR24 offsetof(struct pt_regs, gr[24])
#define PT_GR25 offsetof(struct pt_regs, gr[25])
#define PT_GR26 offsetof(struct pt_regs, gr[26])
#define PT_GR27 offsetof(struct pt_regs, gr[27])
#define PT_GR28 offsetof(struct pt_regs, gr[28])
#define PT_GR29 offsetof(struct pt_regs, gr[29])
#define PT_GR30 offsetof(struct pt_regs, gr[30])
#define PT_GR31 offsetof(struct pt_regs, gr[31])
#define PT_FR0 offsetof(struct pt_regs, fr[ 0])
#define PT_FR1 offsetof(struct pt_regs, fr[ 1])
#define PT_FR2 offsetof(struct pt_regs, fr[ 2])
#define PT_FR3 offsetof(struct pt_regs, fr[ 3])
#define PT_FR4 offsetof(struct pt_regs, fr[ 4])
#define PT_FR5 offsetof(struct pt_regs, fr[ 5])
#define PT_FR6 offsetof(struct pt_regs, fr[ 6])
#define PT_FR7 offsetof(struct pt_regs, fr[ 7])
#define PT_FR8 offsetof(struct pt_regs, fr[ 8])
#define PT_FR9 offsetof(struct pt_regs, fr[ 9])
#define PT_FR10 offsetof(struct pt_regs, fr[10])
#define PT_FR11 offsetof(struct pt_regs, fr[11])
#define PT_FR12 offsetof(struct pt_regs, fr[12])
#define PT_FR13 offsetof(struct pt_regs, fr[13])
#define PT_FR14 offsetof(struct pt_regs, fr[14])
#define PT_FR15 offsetof(struct pt_regs, fr[15])
#define PT_FR16 offsetof(struct pt_regs, fr[16])
#define PT_FR17 offsetof(struct pt_regs, fr[17])
#define PT_FR18 offsetof(struct pt_regs, fr[18])
#define PT_FR19 offsetof(struct pt_regs, fr[19])
#define PT_FR20 offsetof(struct pt_regs, fr[20])
#define PT_FR21 offsetof(struct pt_regs, fr[21])
#define PT_FR22 offsetof(struct pt_regs, fr[22])
#define PT_FR23 offsetof(struct pt_regs, fr[23])
#define PT_FR24 offsetof(struct pt_regs, fr[24])
#define PT_FR25 offsetof(struct pt_regs, fr[25])
#define PT_FR26 offsetof(struct pt_regs, fr[26])
#define PT_FR27 offsetof(struct pt_regs, fr[27])
#define PT_FR28 offsetof(struct pt_regs, fr[28])
#define PT_FR29 offsetof(struct pt_regs, fr[29])
#define PT_FR30 offsetof(struct pt_regs, fr[30])
#define PT_FR31 offsetof(struct pt_regs, fr[31])
#define PT_SR0 offsetof(struct pt_regs, sr[ 0])
#define PT_SR1 offsetof(struct pt_regs, sr[ 1])
#define PT_SR2 offsetof(struct pt_regs, sr[ 2])
#define PT_SR3 offsetof(struct pt_regs, sr[ 3])
#define PT_SR4 offsetof(struct pt_regs, sr[ 4])
#define PT_SR5 offsetof(struct pt_regs, sr[ 5])
#define PT_SR6 offsetof(struct pt_regs, sr[ 6])
#define PT_SR7 offsetof(struct pt_regs, sr[ 7])
#define PT_IASQ0 offsetof(struct pt_regs, iasq[0])
#define PT_IASQ1 offsetof(struct pt_regs, iasq[1])
#define PT_IAOQ0 offsetof(struct pt_regs, iaoq[0])
#define PT_IAOQ1 offsetof(struct pt_regs, iaoq[1])
#define PT_CR27 offsetof(struct pt_regs, cr27)
#define PT_ORIG_R28 offsetof(struct pt_regs, orig_r28)
#define PT_KSP offsetof(struct pt_regs, ksp)
#define PT_KPC offsetof(struct pt_regs, kpc)
#define PT_SAR offsetof(struct pt_regs, sar)
#define PT_IIR offsetof(struct pt_regs, iir)
#define PT_ISR offsetof(struct pt_regs, isr)
#define PT_IOR offsetof(struct pt_regs, ior)

#endif /* HPPA_LINUX_OFFSETS_H */
