^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (C) 2012 Regents of the University of California
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright (C) 2017 SiFive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define GENERATING_ASM_OFFSETS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/kbuild.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/sched.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <asm/thread_info.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <asm/ptrace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) void asm_offsets(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) OFFSET(TASK_THREAD_RA, task_struct, thread.ra);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) OFFSET(TASK_THREAD_SP, task_struct, thread.sp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) OFFSET(TASK_THREAD_S0, task_struct, thread.s[0]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) OFFSET(TASK_THREAD_S1, task_struct, thread.s[1]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) OFFSET(TASK_THREAD_S2, task_struct, thread.s[2]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) OFFSET(TASK_THREAD_S3, task_struct, thread.s[3]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) OFFSET(TASK_THREAD_S4, task_struct, thread.s[4]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) OFFSET(TASK_THREAD_S5, task_struct, thread.s[5]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) OFFSET(TASK_THREAD_S6, task_struct, thread.s[6]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) OFFSET(TASK_THREAD_S7, task_struct, thread.s[7]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) OFFSET(TASK_THREAD_S8, task_struct, thread.s[8]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) OFFSET(TASK_THREAD_S9, task_struct, thread.s[9]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) OFFSET(TASK_THREAD_S10, task_struct, thread.s[10]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) OFFSET(TASK_THREAD_S11, task_struct, thread.s[11]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) OFFSET(TASK_TI_FLAGS, task_struct, thread_info.flags);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) OFFSET(TASK_TI_PREEMPT_COUNT, task_struct, thread_info.preempt_count);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) OFFSET(TASK_TI_KERNEL_SP, task_struct, thread_info.kernel_sp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) OFFSET(TASK_TI_USER_SP, task_struct, thread_info.user_sp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) OFFSET(TASK_TI_CPU, task_struct, thread_info.cpu);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) OFFSET(TASK_THREAD_F0, task_struct, thread.fstate.f[0]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) OFFSET(TASK_THREAD_F1, task_struct, thread.fstate.f[1]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) OFFSET(TASK_THREAD_F2, task_struct, thread.fstate.f[2]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) OFFSET(TASK_THREAD_F3, task_struct, thread.fstate.f[3]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) OFFSET(TASK_THREAD_F4, task_struct, thread.fstate.f[4]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) OFFSET(TASK_THREAD_F5, task_struct, thread.fstate.f[5]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) OFFSET(TASK_THREAD_F6, task_struct, thread.fstate.f[6]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) OFFSET(TASK_THREAD_F7, task_struct, thread.fstate.f[7]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) OFFSET(TASK_THREAD_F8, task_struct, thread.fstate.f[8]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) OFFSET(TASK_THREAD_F9, task_struct, thread.fstate.f[9]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) OFFSET(TASK_THREAD_F10, task_struct, thread.fstate.f[10]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) OFFSET(TASK_THREAD_F11, task_struct, thread.fstate.f[11]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) OFFSET(TASK_THREAD_F12, task_struct, thread.fstate.f[12]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) OFFSET(TASK_THREAD_F13, task_struct, thread.fstate.f[13]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) OFFSET(TASK_THREAD_F14, task_struct, thread.fstate.f[14]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) OFFSET(TASK_THREAD_F15, task_struct, thread.fstate.f[15]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) OFFSET(TASK_THREAD_F16, task_struct, thread.fstate.f[16]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) OFFSET(TASK_THREAD_F17, task_struct, thread.fstate.f[17]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) OFFSET(TASK_THREAD_F18, task_struct, thread.fstate.f[18]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) OFFSET(TASK_THREAD_F19, task_struct, thread.fstate.f[19]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) OFFSET(TASK_THREAD_F20, task_struct, thread.fstate.f[20]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) OFFSET(TASK_THREAD_F21, task_struct, thread.fstate.f[21]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) OFFSET(TASK_THREAD_F22, task_struct, thread.fstate.f[22]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) OFFSET(TASK_THREAD_F23, task_struct, thread.fstate.f[23]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) OFFSET(TASK_THREAD_F24, task_struct, thread.fstate.f[24]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) OFFSET(TASK_THREAD_F25, task_struct, thread.fstate.f[25]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) OFFSET(TASK_THREAD_F26, task_struct, thread.fstate.f[26]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) OFFSET(TASK_THREAD_F27, task_struct, thread.fstate.f[27]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) OFFSET(TASK_THREAD_F28, task_struct, thread.fstate.f[28]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) OFFSET(TASK_THREAD_F29, task_struct, thread.fstate.f[29]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) OFFSET(TASK_THREAD_F30, task_struct, thread.fstate.f[30]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) OFFSET(TASK_THREAD_F31, task_struct, thread.fstate.f[31]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) OFFSET(TASK_THREAD_FCSR, task_struct, thread.fstate.fcsr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) DEFINE(PT_SIZE, sizeof(struct pt_regs));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) OFFSET(PT_EPC, pt_regs, epc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) OFFSET(PT_RA, pt_regs, ra);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) OFFSET(PT_FP, pt_regs, s0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) OFFSET(PT_S0, pt_regs, s0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) OFFSET(PT_S1, pt_regs, s1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) OFFSET(PT_S2, pt_regs, s2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) OFFSET(PT_S3, pt_regs, s3);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) OFFSET(PT_S4, pt_regs, s4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) OFFSET(PT_S5, pt_regs, s5);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) OFFSET(PT_S6, pt_regs, s6);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) OFFSET(PT_S7, pt_regs, s7);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) OFFSET(PT_S8, pt_regs, s8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) OFFSET(PT_S9, pt_regs, s9);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) OFFSET(PT_S10, pt_regs, s10);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) OFFSET(PT_S11, pt_regs, s11);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) OFFSET(PT_SP, pt_regs, sp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) OFFSET(PT_TP, pt_regs, tp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) OFFSET(PT_A0, pt_regs, a0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) OFFSET(PT_A1, pt_regs, a1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) OFFSET(PT_A2, pt_regs, a2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) OFFSET(PT_A3, pt_regs, a3);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) OFFSET(PT_A4, pt_regs, a4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) OFFSET(PT_A5, pt_regs, a5);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) OFFSET(PT_A6, pt_regs, a6);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) OFFSET(PT_A7, pt_regs, a7);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) OFFSET(PT_T0, pt_regs, t0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) OFFSET(PT_T1, pt_regs, t1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) OFFSET(PT_T2, pt_regs, t2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) OFFSET(PT_T3, pt_regs, t3);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) OFFSET(PT_T4, pt_regs, t4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) OFFSET(PT_T5, pt_regs, t5);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) OFFSET(PT_T6, pt_regs, t6);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) OFFSET(PT_GP, pt_regs, gp);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) OFFSET(PT_ORIG_A0, pt_regs, orig_a0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) OFFSET(PT_STATUS, pt_regs, status);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) OFFSET(PT_BADADDR, pt_regs, badaddr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) OFFSET(PT_CAUSE, pt_regs, cause);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) * THREAD_{F,X}* might be larger than a S-type offset can handle, but
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) * these are used in performance-sensitive assembly so we can't resort
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) * to loading the long immediate every time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) DEFINE(TASK_THREAD_RA_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) DEFINE(TASK_THREAD_SP_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) offsetof(struct task_struct, thread.sp)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) DEFINE(TASK_THREAD_S0_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) offsetof(struct task_struct, thread.s[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) DEFINE(TASK_THREAD_S1_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) offsetof(struct task_struct, thread.s[1])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) DEFINE(TASK_THREAD_S2_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) offsetof(struct task_struct, thread.s[2])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) DEFINE(TASK_THREAD_S3_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) offsetof(struct task_struct, thread.s[3])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) DEFINE(TASK_THREAD_S4_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) offsetof(struct task_struct, thread.s[4])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) DEFINE(TASK_THREAD_S5_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) offsetof(struct task_struct, thread.s[5])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) DEFINE(TASK_THREAD_S6_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) offsetof(struct task_struct, thread.s[6])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) DEFINE(TASK_THREAD_S7_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) offsetof(struct task_struct, thread.s[7])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) DEFINE(TASK_THREAD_S8_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) offsetof(struct task_struct, thread.s[8])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) DEFINE(TASK_THREAD_S9_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) offsetof(struct task_struct, thread.s[9])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) DEFINE(TASK_THREAD_S10_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) offsetof(struct task_struct, thread.s[10])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) DEFINE(TASK_THREAD_S11_RA,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) offsetof(struct task_struct, thread.s[11])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) - offsetof(struct task_struct, thread.ra)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) DEFINE(TASK_THREAD_F0_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) DEFINE(TASK_THREAD_F1_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) offsetof(struct task_struct, thread.fstate.f[1])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) DEFINE(TASK_THREAD_F2_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) offsetof(struct task_struct, thread.fstate.f[2])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) DEFINE(TASK_THREAD_F3_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) offsetof(struct task_struct, thread.fstate.f[3])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) DEFINE(TASK_THREAD_F4_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) offsetof(struct task_struct, thread.fstate.f[4])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) DEFINE(TASK_THREAD_F5_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) offsetof(struct task_struct, thread.fstate.f[5])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) DEFINE(TASK_THREAD_F6_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) offsetof(struct task_struct, thread.fstate.f[6])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) DEFINE(TASK_THREAD_F7_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) offsetof(struct task_struct, thread.fstate.f[7])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) DEFINE(TASK_THREAD_F8_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) offsetof(struct task_struct, thread.fstate.f[8])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) DEFINE(TASK_THREAD_F9_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) offsetof(struct task_struct, thread.fstate.f[9])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) DEFINE(TASK_THREAD_F10_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) offsetof(struct task_struct, thread.fstate.f[10])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) DEFINE(TASK_THREAD_F11_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) offsetof(struct task_struct, thread.fstate.f[11])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) DEFINE(TASK_THREAD_F12_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) offsetof(struct task_struct, thread.fstate.f[12])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) DEFINE(TASK_THREAD_F13_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) offsetof(struct task_struct, thread.fstate.f[13])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) DEFINE(TASK_THREAD_F14_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) offsetof(struct task_struct, thread.fstate.f[14])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) DEFINE(TASK_THREAD_F15_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) offsetof(struct task_struct, thread.fstate.f[15])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) DEFINE(TASK_THREAD_F16_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) offsetof(struct task_struct, thread.fstate.f[16])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) DEFINE(TASK_THREAD_F17_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) offsetof(struct task_struct, thread.fstate.f[17])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) DEFINE(TASK_THREAD_F18_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) offsetof(struct task_struct, thread.fstate.f[18])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) DEFINE(TASK_THREAD_F19_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) offsetof(struct task_struct, thread.fstate.f[19])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) DEFINE(TASK_THREAD_F20_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) offsetof(struct task_struct, thread.fstate.f[20])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) DEFINE(TASK_THREAD_F21_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) offsetof(struct task_struct, thread.fstate.f[21])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) DEFINE(TASK_THREAD_F22_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) offsetof(struct task_struct, thread.fstate.f[22])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) DEFINE(TASK_THREAD_F23_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) offsetof(struct task_struct, thread.fstate.f[23])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) DEFINE(TASK_THREAD_F24_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) offsetof(struct task_struct, thread.fstate.f[24])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) DEFINE(TASK_THREAD_F25_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) offsetof(struct task_struct, thread.fstate.f[25])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) DEFINE(TASK_THREAD_F26_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) offsetof(struct task_struct, thread.fstate.f[26])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) DEFINE(TASK_THREAD_F27_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) offsetof(struct task_struct, thread.fstate.f[27])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) DEFINE(TASK_THREAD_F28_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) offsetof(struct task_struct, thread.fstate.f[28])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) DEFINE(TASK_THREAD_F29_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) offsetof(struct task_struct, thread.fstate.f[29])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) DEFINE(TASK_THREAD_F30_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) offsetof(struct task_struct, thread.fstate.f[30])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) DEFINE(TASK_THREAD_F31_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) offsetof(struct task_struct, thread.fstate.f[31])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) DEFINE(TASK_THREAD_FCSR_F0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) offsetof(struct task_struct, thread.fstate.fcsr)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) - offsetof(struct task_struct, thread.fstate.f[0])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) * We allocate a pt_regs on the stack when entering the kernel. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) * ensures the alignment is sane.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) DEFINE(PT_SIZE_ON_STACK, ALIGN(sizeof(struct pt_regs), STACK_ALIGN));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) }