| /* |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 as |
| * published by the Free Software Foundation, or (at your option) any |
| * later version. See the COPYING file in the top-level directory. |
| */ |
| |
| #ifndef RISCV_TARGET_ELF_H |
| #define RISCV_TARGET_ELF_H |
| |
| #define ELF_MACHINE EM_RISCV |
| |
| #ifdef TARGET_RISCV32 |
| #define ELF_CLASS ELFCLASS32 |
| #define VDSO_HEADER "vdso-32.c.inc" |
| #else |
| #define ELF_CLASS ELFCLASS64 |
| #define VDSO_HEADER "vdso-64.c.inc" |
| #endif |
| |
| #define HAVE_ELF_HWCAP 1 |
| #define HAVE_ELF_CORE_DUMP 1 |
| |
| /* Mirrors struct user_regs_struct: pc followed by x1 (ra) .. x31 (t6). */ |
| typedef struct target_elf_gregset_t { |
| abi_ulong pc; |
| abi_ulong regs[31]; |
| } target_elf_gregset_t; |
| |
| #define HAVE_ELF_CORE_FPREGS 1 |
| |
| /* |
| * Matches struct __riscv_d_ext_state from uapi/asm/ptrace.h: |
| * f0-f31 as 64-bit values followed by fcsr. |
| */ |
| typedef struct target_elf_fpregset_t { |
| uint64_t fpr[32]; |
| uint32_t fcsr; |
| } target_elf_fpregset_t; |
| |
| #endif |