aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/entry-header.S
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2005-04-26 10:18:59 -0400
committerRussell King <rmk@dyn-67.arm.linux.org.uk>2005-04-26 10:18:59 -0400
commit925c8a1a8cb9d7a33a8e39516d7fb679030553fc (patch)
tree47cefc6d9eb3d8d81613e3fbd790a22d1edb23b1 /arch/arm/kernel/entry-header.S
parent1ec42c0c97186fadc48810ccaf2dc573cd957ea1 (diff)
[PATCH] ARM: pt_regs offsets
Generate pt_regs S_xx offsets from the structure itself instead of #defining them. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-header.S')
-rw-r--r--arch/arm/kernel/entry-header.S31
1 files changed, 10 insertions, 21 deletions
diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index 109f4f10d314..9d4d286d3808 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -39,30 +39,19 @@
39#define ARMSWI_OFFSET 0x000f0000 39#define ARMSWI_OFFSET 0x000f0000
40 40
41@ 41@
42@ Stack format (ensured by USER_* and SVC_*) 42@ Most of the stack format comes from struct pt_regs, but with
43@ the addition of 8 bytes for storing syscall args 5 and 6.
43@ 44@
44#define S_FRAME_SIZE 72
45#define S_OLD_R0 68
46#define S_PSR 64
47
48#define S_PC 60
49#define S_LR 56
50#define S_SP 52
51#define S_IP 48
52#define S_FP 44
53#define S_R10 40
54#define S_R9 36
55#define S_R8 32
56#define S_R7 28
57#define S_R6 24
58#define S_R5 20
59#define S_R4 16
60#define S_R3 12
61#define S_R2 8
62#define S_R1 4
63#define S_R0 0
64#define S_OFF 8 45#define S_OFF 8
65 46
47/*
48 * The SWI code relies on the fact that R0 is at the bottom of the stack
49 * (due to slow/fast restore user regs).
50 */
51#if S_R0 != 0
52#error "Please fix"
53#endif
54
66#if __LINUX_ARM_ARCH__ >= 6 55#if __LINUX_ARM_ARCH__ >= 6
67 .macro disable_irq 56 .macro disable_irq
68 cpsid i 57 cpsid i