1/**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19#ifndef _ASM_RISCV_ELF_H 20#define _ASM_RISCV_ELF_H 21#include <asm/ptrace.h> 22typedef unsigned long elf_greg_t; 23typedef struct user_regs_struct elf_gregset_t; 24#define ELF_NGREG (sizeof(elf_gregset_t) / sizeof(elf_greg_t)) 25typedef __u64 elf_fpreg_t; 26typedef union __riscv_fp_state elf_fpregset_t; 27#define ELF_NFPREG (sizeof(struct __riscv_d_ext_state) / sizeof(elf_fpreg_t)) 28#if __riscv_xlen == 64 29#define ELF_RISCV_R_SYM(r_info) ELF64_R_SYM(r_info) 30#define ELF_RISCV_R_TYPE(r_info) ELF64_R_TYPE(r_info) 31#else 32#define ELF_RISCV_R_SYM(r_info) ELF32_R_SYM(r_info) 33#define ELF_RISCV_R_TYPE(r_info) ELF32_R_TYPE(r_info) 34#endif 35#define R_RISCV_NONE 0 36#define R_RISCV_32 1 37#define R_RISCV_64 2 38#define R_RISCV_RELATIVE 3 39#define R_RISCV_COPY 4 40#define R_RISCV_JUMP_SLOT 5 41#define R_RISCV_TLS_DTPMOD32 6 42#define R_RISCV_TLS_DTPMOD64 7 43#define R_RISCV_TLS_DTPREL32 8 44#define R_RISCV_TLS_DTPREL64 9 45#define R_RISCV_TLS_TPREL32 10 46#define R_RISCV_TLS_TPREL64 11 47#define R_RISCV_BRANCH 16 48#define R_RISCV_JAL 17 49#define R_RISCV_CALL 18 50#define R_RISCV_CALL_PLT 19 51#define R_RISCV_GOT_HI20 20 52#define R_RISCV_TLS_GOT_HI20 21 53#define R_RISCV_TLS_GD_HI20 22 54#define R_RISCV_PCREL_HI20 23 55#define R_RISCV_PCREL_LO12_I 24 56#define R_RISCV_PCREL_LO12_S 25 57#define R_RISCV_HI20 26 58#define R_RISCV_LO12_I 27 59#define R_RISCV_LO12_S 28 60#define R_RISCV_TPREL_HI20 29 61#define R_RISCV_TPREL_LO12_I 30 62#define R_RISCV_TPREL_LO12_S 31 63#define R_RISCV_TPREL_ADD 32 64#define R_RISCV_ADD8 33 65#define R_RISCV_ADD16 34 66#define R_RISCV_ADD32 35 67#define R_RISCV_ADD64 36 68#define R_RISCV_SUB8 37 69#define R_RISCV_SUB16 38 70#define R_RISCV_SUB32 39 71#define R_RISCV_SUB64 40 72#define R_RISCV_GNU_VTINHERIT 41 73#define R_RISCV_GNU_VTENTRY 42 74#define R_RISCV_ALIGN 43 75#define R_RISCV_RVC_BRANCH 44 76#define R_RISCV_RVC_JUMP 45 77#define R_RISCV_LUI 46 78#define R_RISCV_GPREL_I 47 79#define R_RISCV_GPREL_S 48 80#define R_RISCV_TPREL_I 49 81#define R_RISCV_TPREL_S 50 82#define R_RISCV_RELAX 51 83#define R_RISCV_SUB6 52 84#define R_RISCV_SET6 53 85#define R_RISCV_SET8 54 86#define R_RISCV_SET16 55 87#define R_RISCV_SET32 56 88#define R_RISCV_32_PCREL 57 89#endif 90