1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * Copyright (C) 1996 David S. Miller |
4 | * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Ralf Baechle |
5 | * Copyright (C) 1999, 2000 Silicon Graphics, Inc. |
6 | * Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com |
7 | * Copyright (C) 2000 MIPS Technologies, Inc. |
8 | * |
9 | * Copyright (c) 2010-2012, The Linux Foundation. All rights reserved. |
10 | */ |
11 | |
12 | #include <linux/compat.h> |
13 | #include <linux/types.h> |
14 | #include <linux/sched.h> |
15 | #include <linux/interrupt.h> |
16 | #include <linux/kbuild.h> |
17 | #include <asm/ptrace.h> |
18 | #include <asm/processor.h> |
19 | |
20 | /* This file is used to produce asm/linkerscript constants from header |
21 | files typically used in c. Specifically, it generates asm-offsets.h */ |
22 | |
23 | int main(void) |
24 | { |
25 | COMMENT("This is a comment." ); |
26 | /* might get these from somewhere else. */ |
27 | DEFINE(_PAGE_SIZE, PAGE_SIZE); |
28 | DEFINE(_PAGE_SHIFT, PAGE_SHIFT); |
29 | BLANK(); |
30 | |
31 | COMMENT("Hexagon pt_regs definitions" ); |
32 | OFFSET(_PT_SYSCALL_NR, pt_regs, syscall_nr); |
33 | OFFSET(_PT_GPUGP, pt_regs, gpugp); |
34 | OFFSET(_PT_CS1CS0, pt_regs, cs1cs0); |
35 | OFFSET(_PT_R3130, pt_regs, r3130); |
36 | OFFSET(_PT_R2928, pt_regs, r2928); |
37 | OFFSET(_PT_R2726, pt_regs, r2726); |
38 | OFFSET(_PT_R2524, pt_regs, r2524); |
39 | OFFSET(_PT_R2322, pt_regs, r2322); |
40 | OFFSET(_PT_R2120, pt_regs, r2120); |
41 | OFFSET(_PT_R1918, pt_regs, r1918); |
42 | OFFSET(_PT_R1716, pt_regs, r1716); |
43 | OFFSET(_PT_R1514, pt_regs, r1514); |
44 | OFFSET(_PT_R1312, pt_regs, r1312); |
45 | OFFSET(_PT_R1110, pt_regs, r1110); |
46 | OFFSET(_PT_R0908, pt_regs, r0908); |
47 | OFFSET(_PT_R0706, pt_regs, r0706); |
48 | OFFSET(_PT_R0504, pt_regs, r0504); |
49 | OFFSET(_PT_R0302, pt_regs, r0302); |
50 | OFFSET(_PT_R0100, pt_regs, r0100); |
51 | OFFSET(_PT_LC0SA0, pt_regs, lc0sa0); |
52 | OFFSET(_PT_LC1SA1, pt_regs, lc1sa1); |
53 | OFFSET(_PT_M1M0, pt_regs, m1m0); |
54 | OFFSET(_PT_PREDSUSR, pt_regs, predsusr); |
55 | OFFSET(_PT_EVREC, pt_regs, hvmer); |
56 | OFFSET(_PT_ER_VMEL, pt_regs, hvmer.vmel); |
57 | OFFSET(_PT_ER_VMEST, pt_regs, hvmer.vmest); |
58 | OFFSET(_PT_ER_VMPSP, pt_regs, hvmer.vmpsp); |
59 | OFFSET(_PT_ER_VMBADVA, pt_regs, hvmer.vmbadva); |
60 | DEFINE(_PT_REGS_SIZE, sizeof(struct pt_regs)); |
61 | BLANK(); |
62 | |
63 | COMMENT("Hexagon thread_info definitions" ); |
64 | OFFSET(_THREAD_INFO_FLAGS, thread_info, flags); |
65 | OFFSET(_THREAD_INFO_PT_REGS, thread_info, regs); |
66 | OFFSET(_THREAD_INFO_SP, thread_info, sp); |
67 | DEFINE(_THREAD_SIZE, THREAD_SIZE); |
68 | BLANK(); |
69 | |
70 | COMMENT("Hexagon hexagon_switch_stack definitions" ); |
71 | OFFSET(_SWITCH_R1716, hexagon_switch_stack, r1716); |
72 | OFFSET(_SWITCH_R1918, hexagon_switch_stack, r1918); |
73 | OFFSET(_SWITCH_R2120, hexagon_switch_stack, r2120); |
74 | OFFSET(_SWITCH_R2322, hexagon_switch_stack, r2322); |
75 | |
76 | OFFSET(_SWITCH_R2524, hexagon_switch_stack, r2524); |
77 | OFFSET(_SWITCH_R2726, hexagon_switch_stack, r2726); |
78 | OFFSET(_SWITCH_FP, hexagon_switch_stack, fp); |
79 | OFFSET(_SWITCH_LR, hexagon_switch_stack, lr); |
80 | DEFINE(_SWITCH_STACK_SIZE, sizeof(struct hexagon_switch_stack)); |
81 | BLANK(); |
82 | |
83 | COMMENT("Hexagon task_struct definitions" ); |
84 | OFFSET(_TASK_THREAD_INFO, task_struct, stack); |
85 | OFFSET(_TASK_STRUCT_THREAD, task_struct, thread); |
86 | |
87 | COMMENT("Hexagon thread_struct definitions" ); |
88 | OFFSET(_THREAD_STRUCT_SWITCH_SP, thread_struct, switch_sp); |
89 | |
90 | return 0; |
91 | } |
92 | |