master
h 39 lines 1.23 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 ALPHA_TARGET_ELF_H
9 #define ALPHA_TARGET_ELF_H
10
11 #define ELF_CLASS ELFCLASS64
12 #define ELF_MACHINE EM_ALPHA
13
14 #define HAVE_ELF_CORE_DUMP 1
15 #define HAVE_ELF_HWCAP 1
16
17 /*
18 * Matches the kernel's elf_gregset_t (ELF_NGREG = 33):
19 * r0-r30 at indices 0-30, pc at 31, ps at 32.
20 * r31 (hardwired zero) is not stored; pc occupies index 31.
21 */
22 /*
23 * The floating-point note holds $f0 through $f30 and then the control
24 * register in the slot $f31 would occupy; $f31 reads as zero.
25 */
26 #define HAVE_ELF_CORE_FPREGS 1
27
28 typedef struct target_elf_fpregset_t {
29 uint64_t fpr[31]; /* $f0-$f30 */
30 uint64_t fpcr; /* the slot for $f31 */
31 } target_elf_fpregset_t;
32
33 typedef struct target_elf_gregset_t {
34 abi_ulong regs[31]; /* integer registers r0-r30 [0..30] */
35 abi_ulong pc; /* program counter [31] */
36 abi_ulong unique; /* thread's UNIQUE field [32] */
37 } target_elf_gregset_t;
38
39 #endif