entryoffsets.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* linux/arch/cris/entryoffsets.c
  2.  *
  3.  * Copyright (C) 2001 Axis Communications AB
  4.  *
  5.  * Generate structure offsets for use in entry.S.  No extra processing
  6.  * needed more than compiling this file to assembly code.  Horrendous
  7.  * assembly code will be generated, so don't look at that.
  8.  *
  9.  * Authors: Hans-Peter Nilsson (hp@axis.com)
  10.  */
  11. /* There can be string constants fallout from inline functions, so we'd
  12.    better make sure we don't assemble anything emitted from inclusions.  */
  13. __asm__ (".if 0");
  14. #include <linux/sched.h>
  15. #include <linux/ptrace.h>
  16. #include <asm/processor.h>
  17. /* Exclude everything except the assembly by wrapping it in ".if 0".  */
  18. #undef VAL
  19. #define VAL(NAME, VALUE)
  20. void NAME ## _fun (void)
  21.  {
  22.   __asm__ (".endif n"
  23.    #NAME " = %0 n"
  24.    ".if 0n"
  25.    : : "i" (VALUE));
  26.  }
  27. #undef OF
  28. #define OF(NAME, TYPE, MEMBER)
  29.   VAL (NAME, offsetof (TYPE, MEMBER))
  30. /* task_struct offsets.  */
  31. OF (LTASK_SIGPENDING, struct task_struct, sigpending)
  32. OF (LTASK_NEEDRESCHED, struct task_struct, need_resched)
  33. OF (LTASK_PTRACE, struct task_struct, ptrace)
  34. OF (LTASK_PID, struct task_struct, pid)
  35. /* pt_regs offsets.  */
  36. OF (LORIG_R10, struct pt_regs, orig_r10)
  37. OF (LR13, struct pt_regs, r13)
  38. OF (LR12, struct pt_regs, r12)
  39. OF (LR11, struct pt_regs, r11)
  40. OF (LR10, struct pt_regs, r10)
  41. OF (LR9, struct pt_regs, r9)
  42. OF (LMOF, struct pt_regs, mof)
  43. OF (LDCCR, struct pt_regs, dccr)
  44. OF (LSRP, struct pt_regs, srp)
  45. OF (LIRP, struct pt_regs, irp)
  46. /* thread_struct offsets.  */
  47. OF (LTHREAD_KSP, struct thread_struct, ksp)
  48. OF (LTHREAD_USP, struct thread_struct, usp)
  49. OF (LTHREAD_DCCR, struct thread_struct, dccr)
  50. /* linux/sched.h values - doesn't have an #ifdef __ASSEMBLY__ for these.  */
  51. VAL (LCLONE_VM, CLONE_VM)
  52. __asm__ (".endif");