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

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

DEFINITIONS

This source file includes following definitions.
  1. main

   1 // SPDX-License-Identifier: GPL-2.0-only
   2 /*
   3  * linux/arch/unicore32/kernel/asm-offsets.c
   4  *
   5  * Code specific to PKUnity SoC and UniCore ISA
   6  *
   7  * Copyright (C) 2001-2010 GUAN Xue-tao
   8  *
   9  * Generate definitions needed by assembly language modules.
  10  * This code generates raw asm output which is post-processed to extract
  11  * and format the required data.
  12  */
  13 #include <linux/sched.h>
  14 #include <linux/mm.h>
  15 #include <linux/dma-mapping.h>
  16 #include <linux/kbuild.h>
  17 #include <linux/suspend.h>
  18 #include <linux/thread_info.h>
  19 #include <asm/memory.h>
  20 #include <asm/suspend.h>
  21 
  22 /*
  23  * GCC 3.0, 3.1: general bad code generation.
  24  * GCC 3.2.0: incorrect function argument offset calculation.
  25  * GCC 3.2.x: miscompiles NEW_AUX_ENT in fs/binfmt_elf.c
  26  *      (http://gcc.gnu.org/PR8896) and incorrect structure
  27  *              initialisation in fs/jffs2/erase.c
  28  */
  29 #if (__GNUC__ < 4)
  30 #error Your compiler should upgrade to uc4
  31 #error  Known good compilers: 4.2.2
  32 #endif
  33 
  34 int main(void)
  35 {
  36         DEFINE(TSK_ACTIVE_MM,   offsetof(struct task_struct, active_mm));
  37         BLANK();
  38         DEFINE(TI_FLAGS,        offsetof(struct thread_info, flags));
  39         DEFINE(TI_PREEMPT,      offsetof(struct thread_info, preempt_count));
  40         DEFINE(TI_ADDR_LIMIT,   offsetof(struct thread_info, addr_limit));
  41         DEFINE(TI_TASK,         offsetof(struct thread_info, task));
  42         DEFINE(TI_CPU,          offsetof(struct thread_info, cpu));
  43         DEFINE(TI_CPU_SAVE,     offsetof(struct thread_info, cpu_context));
  44         DEFINE(TI_USED_CP,      offsetof(struct thread_info, used_cp));
  45 #ifdef CONFIG_UNICORE_FPU_F64
  46         DEFINE(TI_FPSTATE,      offsetof(struct thread_info, fpstate));
  47 #endif
  48         BLANK();
  49         DEFINE(S_R0,            offsetof(struct pt_regs, UCreg_00));
  50         DEFINE(S_R1,            offsetof(struct pt_regs, UCreg_01));
  51         DEFINE(S_R2,            offsetof(struct pt_regs, UCreg_02));
  52         DEFINE(S_R3,            offsetof(struct pt_regs, UCreg_03));
  53         DEFINE(S_R4,            offsetof(struct pt_regs, UCreg_04));
  54         DEFINE(S_R5,            offsetof(struct pt_regs, UCreg_05));
  55         DEFINE(S_R6,            offsetof(struct pt_regs, UCreg_06));
  56         DEFINE(S_R7,            offsetof(struct pt_regs, UCreg_07));
  57         DEFINE(S_R8,            offsetof(struct pt_regs, UCreg_08));
  58         DEFINE(S_R9,            offsetof(struct pt_regs, UCreg_09));
  59         DEFINE(S_R10,           offsetof(struct pt_regs, UCreg_10));
  60         DEFINE(S_R11,           offsetof(struct pt_regs, UCreg_11));
  61         DEFINE(S_R12,           offsetof(struct pt_regs, UCreg_12));
  62         DEFINE(S_R13,           offsetof(struct pt_regs, UCreg_13));
  63         DEFINE(S_R14,           offsetof(struct pt_regs, UCreg_14));
  64         DEFINE(S_R15,           offsetof(struct pt_regs, UCreg_15));
  65         DEFINE(S_R16,           offsetof(struct pt_regs, UCreg_16));
  66         DEFINE(S_R17,           offsetof(struct pt_regs, UCreg_17));
  67         DEFINE(S_R18,           offsetof(struct pt_regs, UCreg_18));
  68         DEFINE(S_R19,           offsetof(struct pt_regs, UCreg_19));
  69         DEFINE(S_R20,           offsetof(struct pt_regs, UCreg_20));
  70         DEFINE(S_R21,           offsetof(struct pt_regs, UCreg_21));
  71         DEFINE(S_R22,           offsetof(struct pt_regs, UCreg_22));
  72         DEFINE(S_R23,           offsetof(struct pt_regs, UCreg_23));
  73         DEFINE(S_R24,           offsetof(struct pt_regs, UCreg_24));
  74         DEFINE(S_R25,           offsetof(struct pt_regs, UCreg_25));
  75         DEFINE(S_R26,           offsetof(struct pt_regs, UCreg_26));
  76         DEFINE(S_FP,            offsetof(struct pt_regs, UCreg_fp));
  77         DEFINE(S_IP,            offsetof(struct pt_regs, UCreg_ip));
  78         DEFINE(S_SP,            offsetof(struct pt_regs, UCreg_sp));
  79         DEFINE(S_LR,            offsetof(struct pt_regs, UCreg_lr));
  80         DEFINE(S_PC,            offsetof(struct pt_regs, UCreg_pc));
  81         DEFINE(S_PSR,           offsetof(struct pt_regs, UCreg_asr));
  82         DEFINE(S_OLD_R0,        offsetof(struct pt_regs, UCreg_ORIG_00));
  83         DEFINE(S_FRAME_SIZE,    sizeof(struct pt_regs));
  84         BLANK();
  85         DEFINE(VMA_VM_MM,       offsetof(struct vm_area_struct, vm_mm));
  86         DEFINE(VMA_VM_FLAGS,    offsetof(struct vm_area_struct, vm_flags));
  87         BLANK();
  88         DEFINE(VM_EXEC,         VM_EXEC);
  89         BLANK();
  90         DEFINE(PAGE_SZ,         PAGE_SIZE);
  91         BLANK();
  92         DEFINE(SYS_ERROR0,      0x9f0000);
  93         BLANK();
  94         DEFINE(PBE_ADDRESS,             offsetof(struct pbe, address));
  95         DEFINE(PBE_ORIN_ADDRESS,        offsetof(struct pbe, orig_address));
  96         DEFINE(PBE_NEXT,                offsetof(struct pbe, next));
  97         DEFINE(SWSUSP_CPU,              offsetof(struct swsusp_arch_regs, \
  98                                                         cpu_context));
  99 #ifdef  CONFIG_UNICORE_FPU_F64
 100         DEFINE(SWSUSP_FPSTATE,          offsetof(struct swsusp_arch_regs, \
 101                                                         fpstate));
 102 #endif
 103         BLANK();
 104         DEFINE(DMA_BIDIRECTIONAL,       DMA_BIDIRECTIONAL);
 105         DEFINE(DMA_TO_DEVICE,           DMA_TO_DEVICE);
 106         DEFINE(DMA_FROM_DEVICE,         DMA_FROM_DEVICE);
 107         return 0;
 108 }

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