patch-2.4.20 linux-2.4.20/arch/parisc/kernel/real2.S
Next file: linux-2.4.20/arch/parisc/kernel/sba_iommu.c
Previous file: linux-2.4.20/arch/parisc/kernel/real1.c
Back to the patch index
Back to the overall index
- Lines: 119
- Date:
Thu Nov 28 15:53:10 2002
- Orig file:
linux-2.4.19/arch/parisc/kernel/real2.S
- Orig date:
Tue Dec 5 12:29:39 2000
diff -urN linux-2.4.19/arch/parisc/kernel/real2.S linux-2.4.20/arch/parisc/kernel/real2.S
@@ -7,7 +7,6 @@
* Copyright (C) 2000 Hewlett Packard (Paul Bame bame@puffin.external.hp.com)
*
*/
-#define __ASSEMBLY__
#include <asm/assembly.h>
#include <asm/psw.h>
@@ -31,8 +30,11 @@
/************************ 32-bit real-mode calls ***********************/
/* This can be called in both narrow and wide kernels */
+
.text
+
.export real32_call_asm
+
/* unsigned long real32_call_asm(unsigned int *sp,
* unsigned int *arg0p,
* unsigned int iodc_fn)
@@ -40,6 +42,7 @@
* arg0p points to where saved arg values may be found
* iodc_fn is the IODC function to call
*/
+
real32_call_asm:
STREG %rp, -RP_OFFSET(%sp) /* save RP */
#ifdef __LP64__
@@ -61,7 +64,7 @@
ldw -12(%arg1), %arg3
ldw -4(%arg1), %arg1 /* obviously must do this one last! */
- tophys %sp
+ tophys_r1 %sp
b,l rfi_virt2real,%r2
nop
@@ -88,7 +91,7 @@
b,l rfi_real2virt,%r2
nop
- tovirt %sp
+ tovirt_r1 %sp
LDREG -REG_SZ(%sp), %sp /* restore SP */
#ifdef __LP64__
LDREG -1*REG_SZ(%sp), %r27
@@ -150,14 +153,14 @@
nop
nop
- mtsm 0 /* disable interruptions */
+ rsm (PSW_SM_Q|PSW_SM_I),%r0 /* disable Q & I bits to load iia queue */
mtctl 0, %cr17 /* space 0 */
mtctl 0, %cr17
load32 PA(rfi_v2r_1), %r1
mtctl %r1, %cr18
ldo 4(%r1), %r1
mtctl %r1, %cr18
- load32 PDC_PSW, %r1
+ load32 REAL_MODE_PSW, %r1
mtctl %r1, %cr22
rfi
@@ -170,7 +173,7 @@
nop
nop
rfi_v2r_1:
- tophys %r2
+ tophys_r1 %r2
bv 0(%r2)
nop
@@ -187,7 +190,7 @@
nop
nop
- mtsm 0 /* disable interruptions */
+ rsm PSW_SM_Q,%r0 /* disable Q bit to load iia queue */
mtctl 0, %cr17 /* space 0 */
mtctl 0, %cr17
load32 (rfi_r2v_1), %r1
@@ -207,7 +210,7 @@
nop
nop
rfi_r2v_1:
- tovirt %r2
+ tovirt_r1 %r2
bv 0(%r2)
nop
@@ -246,7 +249,7 @@
ldd 7*REG_SZ(%arg1), %r19
ldd 1*REG_SZ(%arg1), %arg1 /* do this one last! */
- tophys %sp
+ tophys_r1 %sp
b,l rfi_virt2real,%r2
nop
@@ -265,10 +268,18 @@
b,l rfi_real2virt,%r2
nop
- tovirt %sp
+ tovirt_r1 %sp
ldd -8(%sp), %sp /* restore SP */
ldd -0x10(%sp), %rp /* restore RP */
bv 0(%rp)
nop
#endif
+ .export pc_in_user_space
+ .text
+ /* Doesn't belong here but I couldn't find a nicer spot. */
+ /* Should never get called, only used by profile stuff in time.c */
+pc_in_user_space:
+ bv,n 0(%rp)
+ nop
+
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)