master
h 51 lines 2 KB
Raw
1 /*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation, or (at your option) any
5 * later version. See the COPYING file in the top-level directory.
6 */
7
8 #ifndef HPPA_TARGET_ELF_H
9 #define HPPA_TARGET_ELF_H
10
11 #define ELF_CLASS ELFCLASS32
12 #define ELF_MACHINE EM_PARISC
13
14 #define HAVE_ELF_PLATFORM 1
15 #define HAVE_ELF_CORE_DUMP 1
16
17 /*
18 * Matches struct user_regs_struct from arch/parisc/include/uapi/asm/ptrace.h.
19 * ELF_NGREG = 80; register indices match those used by libunwind and gdb.
20 */
21 typedef struct target_elf_gregset_t {
22 abi_ulong gr[32]; /* gr[0..31]; PSW in gr[0] [0..31] */
23 abi_ulong sr[8]; /* space registers [32..39] */
24 abi_ulong iaoq[2]; /* instruction address offset [40..41] */
25 abi_ulong iasq[2]; /* instruction address space [42..43] */
26 abi_ulong sar; /* shift amount register (CR11) [44] */
27 abi_ulong iir; /* interrupt instruction register [45] */
28 abi_ulong isr; /* interrupt space register [46] */
29 abi_ulong ior; /* interrupt offset register [47] */
30 abi_ulong ipsw; /* interrupt PSW (CR22) [48] */
31 abi_ulong cr0; /* recovery counter [49] */
32 abi_ulong cr24_31[8]; /* cr24..cr31 [50..57] */
33 abi_ulong cr8_15[6]; /* cr8, cr9, cr12, cr13, cr10, cr15 [58..63] */
34 abi_ulong pad[16]; /* pad to 80 elements [64..79] */
35 } target_elf_gregset_t;
36
37 #define COMMPAGE 0
38 #define STACK_GROWS_DOWN 0
39 #define STACK_ALIGNMENT 64
40 #define VDSO_HEADER "vdso.c.inc"
41
42 #define HAVE_ELF_CORE_FPREGS 1
43
44 /*
45 * Matches the kernel's elf_fpregset_t (ELF_NFPREG = 32): fr0-fr31.
46 */
47 typedef struct target_elf_fpregset_t {
48 uint64_t fpr[32];
49 } target_elf_fpregset_t;
50
51 #endif