root/arch/riscv/kernel/asm-offsets.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. asm_offsets

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

/* [<][>][^][v][top][bottom][index][help] */