File: entryoffsets.c

package info (click to toggle)
kernel-image-2.4.18-hppa 62.3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 156,012 kB
  • ctags: 448,723
  • sloc: ansic: 2,586,445; asm: 145,047; makefile: 8,574; sh: 3,097; perl: 2,578; yacc: 1,177; tcl: 577; lex: 352; awk: 251; lisp: 218; sed: 72
file content (61 lines) | stat: -rw-r--r-- 1,783 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/* linux/arch/cris/entryoffsets.c
 *
 * Copyright (C) 2001 Axis Communications AB
 *
 * Generate structure offsets for use in entry.S.  No extra processing
 * needed more than compiling this file to assembly code.  Horrendous
 * assembly code will be generated, so don't look at that.
 *
 * Authors:	Hans-Peter Nilsson (hp@axis.com)
 */

/* There can be string constants fallout from inline functions, so we'd
   better make sure we don't assemble anything emitted from inclusions.  */
__asm__ (".if 0");

#include <linux/sched.h>
#include <linux/ptrace.h>
#include <asm/processor.h>

/* Exclude everything except the assembly by wrapping it in ".if 0".  */
#undef VAL
#define VAL(NAME, VALUE)			\
void NAME ## _fun (void)			\
 {						\
  __asm__ (".endif \n"				\
	   #NAME " = %0 \n"			\
	   ".if 0\n"				\
	   : : "i" (VALUE));			\
 }

#undef OF
#define OF(NAME, TYPE, MEMBER)			\
  VAL (NAME, offsetof (TYPE, MEMBER))

/* task_struct offsets.  */
OF (LTASK_SIGPENDING, struct task_struct, sigpending)
OF (LTASK_NEEDRESCHED, struct task_struct, need_resched)
OF (LTASK_PTRACE, struct task_struct, ptrace)
OF (LTASK_PID, struct task_struct, pid)

/* pt_regs offsets.  */
OF (LORIG_R10, struct pt_regs, orig_r10)
OF (LR13, struct pt_regs, r13)
OF (LR12, struct pt_regs, r12)
OF (LR11, struct pt_regs, r11)
OF (LR10, struct pt_regs, r10)
OF (LR9, struct pt_regs, r9)
OF (LMOF, struct pt_regs, mof)
OF (LDCCR, struct pt_regs, dccr)
OF (LSRP, struct pt_regs, srp)
OF (LIRP, struct pt_regs, irp)

/* thread_struct offsets.  */
OF (LTHREAD_KSP, struct thread_struct, ksp)
OF (LTHREAD_USP, struct thread_struct, usp)
OF (LTHREAD_DCCR, struct thread_struct, dccr)

/* linux/sched.h values - doesn't have an #ifdef __ASSEMBLY__ for these.  */
VAL (LCLONE_VM, CLONE_VM)

__asm__ (".endif");