linux/arch/openrisc/kernel/asm-offsets.c
<<
>>
Prefs
   1/*
   2 * OpenRISC asm-offsets.c
   3 *
   4 * Linux architectural port borrowing liberally from similar works of
   5 * others.  All original copyrights apply as per the original source
   6 * declaration.
   7 *
   8 * Modifications for the OpenRISC architecture:
   9 * Copyright (C) 2003 Matjaz Breskvar <phoenix@bsemi.com>
  10 * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se>
  11 *
  12 *      This program is free software; you can redistribute it and/or
  13 *      modify it under the terms of the GNU General Public License
  14 *      as published by the Free Software Foundation; either version
  15 *      2 of the License, or (at your option) any later version.
  16 *
  17 * This program is used to generate definitions needed by
  18 * assembly language modules.
  19 *
  20 * We use the technique used in the OSF Mach kernel code:
  21 * generate asm statements containing #defines,
  22 * compile this file to assembler, and then extract the
  23 * #defines from the assembly-language output.
  24 */
  25
  26#include <linux/signal.h>
  27#include <linux/sched.h>
  28#include <linux/kernel.h>
  29#include <linux/errno.h>
  30#include <linux/string.h>
  31#include <linux/types.h>
  32#include <linux/ptrace.h>
  33#include <linux/mman.h>
  34#include <linux/mm.h>
  35#include <linux/io.h>
  36#include <linux/thread_info.h>
  37#include <linux/kbuild.h>
  38#include <asm/page.h>
  39#include <asm/pgtable.h>
  40#include <asm/processor.h>
  41
  42int main(void)
  43{
  44        /* offsets into the task_struct */
  45        DEFINE(TASK_STATE, offsetof(struct task_struct, state));
  46        DEFINE(TASK_FLAGS, offsetof(struct task_struct, flags));
  47        DEFINE(TASK_PTRACE, offsetof(struct task_struct, ptrace));
  48        DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
  49        DEFINE(TASK_MM, offsetof(struct task_struct, mm));
  50        DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
  51
  52        /* offsets into thread_info */
  53        DEFINE(TI_TASK, offsetof(struct thread_info, task));
  54        DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
  55        DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
  56        DEFINE(TI_KSP, offsetof(struct thread_info, ksp));
  57
  58        DEFINE(PT_SIZE, sizeof(struct pt_regs));
  59
  60        /* Interrupt register frame */
  61        DEFINE(STACK_FRAME_OVERHEAD, STACK_FRAME_OVERHEAD);
  62        DEFINE(INT_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs));
  63
  64        DEFINE(NUM_USER_SEGMENTS, TASK_SIZE >> 28);
  65        return 0;
  66}
  67