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

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

DEFINITIONS

This source file includes following definitions.
  1. sparc32_foo
  2. sparc64_foo
  3. foo

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * This program is used to generate definitions needed by
   4  * assembly language modules.
   5  *
   6  * We use the technique used in the OSF Mach kernel code:
   7  * generate asm statements containing #defines,
   8  * compile this file to assembler, and then extract the
   9  * #defines from the assembly-language output.
  10  *
  11  * On sparc, thread_info data is static and TI_XXX offsets are computed by hand.
  12  */
  13 
  14 #include <linux/sched.h>
  15 #include <linux/mm_types.h>
  16 // #include <linux/mm.h>
  17 #include <linux/kbuild.h>
  18 
  19 #include <asm/hibernate.h>
  20 
  21 #ifdef CONFIG_SPARC32
  22 int sparc32_foo(void)
  23 {
  24         DEFINE(AOFF_thread_fork_kpsr,
  25                         offsetof(struct thread_struct, fork_kpsr));
  26         return 0;
  27 }
  28 #else
  29 int sparc64_foo(void)
  30 {
  31 #ifdef CONFIG_HIBERNATION
  32         BLANK();
  33         OFFSET(SC_REG_FP, saved_context, fp);
  34         OFFSET(SC_REG_CWP, saved_context, cwp);
  35         OFFSET(SC_REG_WSTATE, saved_context, wstate);
  36 
  37         OFFSET(SC_REG_TICK, saved_context, tick);
  38         OFFSET(SC_REG_PSTATE, saved_context, pstate);
  39 
  40         OFFSET(SC_REG_G4, saved_context, g4);
  41         OFFSET(SC_REG_G5, saved_context, g5);
  42         OFFSET(SC_REG_G6, saved_context, g6);
  43 #endif
  44         return 0;
  45 }
  46 #endif
  47 
  48 int foo(void)
  49 {
  50         BLANK();
  51         DEFINE(AOFF_task_thread, offsetof(struct task_struct, thread));
  52         BLANK();
  53         DEFINE(AOFF_mm_context, offsetof(struct mm_struct, context));
  54         BLANK();
  55         DEFINE(VMA_VM_MM,    offsetof(struct vm_area_struct, vm_mm));
  56 
  57         /* DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); */
  58         return 0;
  59 }
  60 

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