diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-30 21:37:27 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-30 21:37:27 -0500 |
commit | 8af03e782cae1e0a0f530ddd22301cdd12cf9dc0 (patch) | |
tree | c4af13a38bd3cc1a811a37f2358491f171052070 /arch/powerpc/kernel/misc.S | |
parent | 6232665040f9a23fafd9d94d4ae8d5a2dc850f65 (diff) | |
parent | 99e139126ab2e84be67969650f92eb37c12ab5cd (diff) |
Merge branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (454 commits)
[POWERPC] Cell IOMMU fixed mapping support
[POWERPC] Split out the ioid fetching/checking logic
[POWERPC] Add support to cell_iommu_setup_page_tables() for multiple windows
[POWERPC] Split out the IOMMU logic from cell_dma_dev_setup()
[POWERPC] Split cell_iommu_setup_hardware() into two parts
[POWERPC] Split out the logic that allocates struct iommus
[POWERPC] Allocate the hash table under 1G on cell
[POWERPC] Add set_dma_ops() to match get_dma_ops()
[POWERPC] 83xx: Clean up / convert mpc83xx board DTS files to v1 format.
[POWERPC] 85xx: Only invalidate TLB0 and TLB1
[POWERPC] 83xx: Fix typo in mpc837x compatible entries
[POWERPC] 85xx: convert sbc85* boards to use machine_device_initcall
[POWERPC] 83xx: rework platform Kconfig
[POWERPC] 85xx: rework platform Kconfig
[POWERPC] 86xx: Remove unused IRQ defines
[POWERPC] QE: Explicitly set address-cells and size cells for muram
[POWERPC] Convert StorCenter DTS file to /dts-v1/ format.
[POWERPC] 86xx: Convert all 86xx DTS files to /dts-v1/ format.
[PPC] Remove 85xx from arch/ppc
[PPC] Remove 83xx from arch/ppc
...
Diffstat (limited to 'arch/powerpc/kernel/misc.S')
-rw-r--r-- | arch/powerpc/kernel/misc.S | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/misc.S b/arch/powerpc/kernel/misc.S index 330c9dc7db86..7b9160220698 100644 --- a/arch/powerpc/kernel/misc.S +++ b/arch/powerpc/kernel/misc.S | |||
@@ -8,12 +8,17 @@ | |||
8 | * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com) | 8 | * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com) |
9 | * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) | 9 | * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com) |
10 | * | 10 | * |
11 | * setjmp/longjmp code by Paul Mackerras. | ||
12 | * | ||
11 | * This program is free software; you can redistribute it and/or | 13 | * This program is free software; you can redistribute it and/or |
12 | * modify it under the terms of the GNU General Public License | 14 | * modify it under the terms of the GNU General Public License |
13 | * as published by the Free Software Foundation; either version | 15 | * as published by the Free Software Foundation; either version |
14 | * 2 of the License, or (at your option) any later version. | 16 | * 2 of the License, or (at your option) any later version. |
15 | */ | 17 | */ |
16 | #include <asm/ppc_asm.h> | 18 | #include <asm/ppc_asm.h> |
19 | #include <asm/unistd.h> | ||
20 | #include <asm/asm-compat.h> | ||
21 | #include <asm/asm-offsets.h> | ||
17 | 22 | ||
18 | .text | 23 | .text |
19 | 24 | ||
@@ -43,3 +48,71 @@ _GLOBAL(add_reloc_offset) | |||
43 | add r3,r3,r5 | 48 | add r3,r3,r5 |
44 | mtlr r0 | 49 | mtlr r0 |
45 | blr | 50 | blr |
51 | |||
52 | _GLOBAL(kernel_execve) | ||
53 | li r0,__NR_execve | ||
54 | sc | ||
55 | bnslr | ||
56 | neg r3,r3 | ||
57 | blr | ||
58 | |||
59 | _GLOBAL(setjmp) | ||
60 | mflr r0 | ||
61 | PPC_STL r0,0(r3) | ||
62 | PPC_STL r1,SZL(r3) | ||
63 | PPC_STL r2,2*SZL(r3) | ||
64 | mfcr r0 | ||
65 | PPC_STL r0,3*SZL(r3) | ||
66 | PPC_STL r13,4*SZL(r3) | ||
67 | PPC_STL r14,5*SZL(r3) | ||
68 | PPC_STL r15,6*SZL(r3) | ||
69 | PPC_STL r16,7*SZL(r3) | ||
70 | PPC_STL r17,8*SZL(r3) | ||
71 | PPC_STL r18,9*SZL(r3) | ||
72 | PPC_STL r19,10*SZL(r3) | ||
73 | PPC_STL r20,11*SZL(r3) | ||
74 | PPC_STL r21,12*SZL(r3) | ||
75 | PPC_STL r22,13*SZL(r3) | ||
76 | PPC_STL r23,14*SZL(r3) | ||
77 | PPC_STL r24,15*SZL(r3) | ||
78 | PPC_STL r25,16*SZL(r3) | ||
79 | PPC_STL r26,17*SZL(r3) | ||
80 | PPC_STL r27,18*SZL(r3) | ||
81 | PPC_STL r28,19*SZL(r3) | ||
82 | PPC_STL r29,20*SZL(r3) | ||
83 | PPC_STL r30,21*SZL(r3) | ||
84 | PPC_STL r31,22*SZL(r3) | ||
85 | li r3,0 | ||
86 | blr | ||
87 | |||
88 | _GLOBAL(longjmp) | ||
89 | PPC_LCMPI r4,0 | ||
90 | bne 1f | ||
91 | li r4,1 | ||
92 | 1: PPC_LL r13,4*SZL(r3) | ||
93 | PPC_LL r14,5*SZL(r3) | ||
94 | PPC_LL r15,6*SZL(r3) | ||
95 | PPC_LL r16,7*SZL(r3) | ||
96 | PPC_LL r17,8*SZL(r3) | ||
97 | PPC_LL r18,9*SZL(r3) | ||
98 | PPC_LL r19,10*SZL(r3) | ||
99 | PPC_LL r20,11*SZL(r3) | ||
100 | PPC_LL r21,12*SZL(r3) | ||
101 | PPC_LL r22,13*SZL(r3) | ||
102 | PPC_LL r23,14*SZL(r3) | ||
103 | PPC_LL r24,15*SZL(r3) | ||
104 | PPC_LL r25,16*SZL(r3) | ||
105 | PPC_LL r26,17*SZL(r3) | ||
106 | PPC_LL r27,18*SZL(r3) | ||
107 | PPC_LL r28,19*SZL(r3) | ||
108 | PPC_LL r29,20*SZL(r3) | ||
109 | PPC_LL r30,21*SZL(r3) | ||
110 | PPC_LL r31,22*SZL(r3) | ||
111 | PPC_LL r0,3*SZL(r3) | ||
112 | mtcrf 0x38,r0 | ||
113 | PPC_LL r0,0(r3) | ||
114 | PPC_LL r1,SZL(r3) | ||
115 | PPC_LL r2,2*SZL(r3) | ||
116 | mtlr r0 | ||
117 | mr r3,r4 | ||
118 | blr | ||