/* Register offsets for HPPA running GNU/Linux.

   Copyright (C) 2007-2012 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/>.  */

#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)
