1bd744d46SAndrew Jones // SPDX-License-Identifier: GPL-2.0-only
23b10c7e2SAndrew Jones #include <kbuild.h>
33b10c7e2SAndrew Jones #include <elf.h>
475c732f6SAndrew Jones #include <asm/processor.h>
5386561f8SAndrew Jones #include <asm/ptrace.h>
6*98ea1f96SClément Léger #include <asm/sbi.h>
79c92b28eSAndrew Jones #include <asm/smp.h>
8bd744d46SAndrew Jones
main(void)9bd744d46SAndrew Jones int main(void)
10bd744d46SAndrew Jones {
113b10c7e2SAndrew Jones #if __riscv_xlen == 32
123b10c7e2SAndrew Jones OFFSET(ELF_RELA_OFFSET, elf32_rela, r_offset);
133b10c7e2SAndrew Jones OFFSET(ELF_RELA_ADDEND, elf32_rela, r_addend);
143b10c7e2SAndrew Jones DEFINE(ELF_RELA_SIZE, sizeof(struct elf32_rela));
153b10c7e2SAndrew Jones #elif __riscv_xlen == 64
163b10c7e2SAndrew Jones OFFSET(ELF_RELA_OFFSET, elf64_rela, r_offset);
173b10c7e2SAndrew Jones OFFSET(ELF_RELA_ADDEND, elf64_rela, r_addend);
183b10c7e2SAndrew Jones DEFINE(ELF_RELA_SIZE, sizeof(struct elf64_rela));
193b10c7e2SAndrew Jones #endif
20386561f8SAndrew Jones OFFSET(PT_EPC, pt_regs, epc);
21386561f8SAndrew Jones OFFSET(PT_RA, pt_regs, ra);
22386561f8SAndrew Jones OFFSET(PT_SP, pt_regs, sp);
23386561f8SAndrew Jones OFFSET(PT_GP, pt_regs, gp);
24386561f8SAndrew Jones OFFSET(PT_TP, pt_regs, tp);
25386561f8SAndrew Jones OFFSET(PT_T0, pt_regs, t0);
26386561f8SAndrew Jones OFFSET(PT_T1, pt_regs, t1);
27386561f8SAndrew Jones OFFSET(PT_T2, pt_regs, t2);
28386561f8SAndrew Jones OFFSET(PT_S0, pt_regs, s0);
29386561f8SAndrew Jones OFFSET(PT_S1, pt_regs, s1);
30386561f8SAndrew Jones OFFSET(PT_A0, pt_regs, a0);
31386561f8SAndrew Jones OFFSET(PT_A1, pt_regs, a1);
32386561f8SAndrew Jones OFFSET(PT_A2, pt_regs, a2);
33386561f8SAndrew Jones OFFSET(PT_A3, pt_regs, a3);
34386561f8SAndrew Jones OFFSET(PT_A4, pt_regs, a4);
35386561f8SAndrew Jones OFFSET(PT_A5, pt_regs, a5);
36386561f8SAndrew Jones OFFSET(PT_A6, pt_regs, a6);
37386561f8SAndrew Jones OFFSET(PT_A7, pt_regs, a7);
38386561f8SAndrew Jones OFFSET(PT_S2, pt_regs, s2);
39386561f8SAndrew Jones OFFSET(PT_S3, pt_regs, s3);
40386561f8SAndrew Jones OFFSET(PT_S4, pt_regs, s4);
41386561f8SAndrew Jones OFFSET(PT_S5, pt_regs, s5);
42386561f8SAndrew Jones OFFSET(PT_S6, pt_regs, s6);
43386561f8SAndrew Jones OFFSET(PT_S7, pt_regs, s7);
44386561f8SAndrew Jones OFFSET(PT_S8, pt_regs, s8);
45386561f8SAndrew Jones OFFSET(PT_S9, pt_regs, s9);
46386561f8SAndrew Jones OFFSET(PT_S10, pt_regs, s10);
47386561f8SAndrew Jones OFFSET(PT_S11, pt_regs, s11);
48386561f8SAndrew Jones OFFSET(PT_T3, pt_regs, t3);
49386561f8SAndrew Jones OFFSET(PT_T4, pt_regs, t4);
50386561f8SAndrew Jones OFFSET(PT_T5, pt_regs, t5);
51386561f8SAndrew Jones OFFSET(PT_T6, pt_regs, t6);
52386561f8SAndrew Jones OFFSET(PT_STATUS, pt_regs, status);
53386561f8SAndrew Jones OFFSET(PT_BADADDR, pt_regs, badaddr);
54386561f8SAndrew Jones OFFSET(PT_CAUSE, pt_regs, cause);
55386561f8SAndrew Jones OFFSET(PT_ORIG_A0, pt_regs, orig_a0);
56386561f8SAndrew Jones DEFINE(PT_SIZE, sizeof(struct pt_regs));
579c92b28eSAndrew Jones
580c39d9eaSAndrew Jones OFFSET(SECONDARY_SATP, secondary_data, satp);
599c92b28eSAndrew Jones OFFSET(SECONDARY_STVEC, secondary_data, stvec);
609c92b28eSAndrew Jones OFFSET(SECONDARY_FUNC, secondary_data, func);
619c92b28eSAndrew Jones DEFINE(SECONDARY_DATA_SIZE, sizeof(struct secondary_data));
629c92b28eSAndrew Jones
6375c732f6SAndrew Jones OFFSET(THREAD_INFO_CPU, thread_info, cpu);
6475c732f6SAndrew Jones OFFSET(THREAD_INFO_HARTID, thread_info, hartid);
6575c732f6SAndrew Jones DEFINE(THREAD_INFO_SIZE, sizeof(struct thread_info));
6675c732f6SAndrew Jones
67*98ea1f96SClément Léger DEFINE(ASM_SBI_EXT_SSE, SBI_EXT_SSE);
68*98ea1f96SClément Léger DEFINE(ASM_SBI_EXT_SSE_COMPLETE, SBI_EXT_SSE_COMPLETE);
69*98ea1f96SClément Léger
70*98ea1f96SClément Léger OFFSET(SBI_SSE_REG_TMP, sbi_sse_handler_arg, reg_tmp);
71*98ea1f96SClément Léger OFFSET(SBI_SSE_HANDLER, sbi_sse_handler_arg, handler);
72*98ea1f96SClément Léger OFFSET(SBI_SSE_HANDLER_DATA, sbi_sse_handler_arg, handler_data);
73*98ea1f96SClément Léger OFFSET(SBI_SSE_HANDLER_STACK, sbi_sse_handler_arg, stack);
74*98ea1f96SClément Léger
75bd744d46SAndrew Jones return 0;
76bd744d46SAndrew Jones }
77