On Sat, Jan 23, 2016 at 02:54:58PM +0100, Patrick Wildt wrote:
> On Sun, Jan 24, 2016 at 12:33:42AM +1100, Jonathan Gray wrote:
> > On Fri, Jan 22, 2016 at 09:36:49PM +0100, Patrick Wildt wrote:
> > > Hi,
> > >
> > > the hypervisor mode, which virtualization-enabled boards might boot in,
> > > is basically a privilege level above the usual SVC mode the kernel is
> > > running in. It does not support the full instruction set and we, as
> > > a "guest" OS, need to step down and run in SVC. Otherwise we crash
> > > really early on.
> > >
> > > This diff makes sure the machine jumps from HYP to SVC mode, if it's
> > > booted in HYP mode. This should enable us to run on a few more
> > > current machines.
> > >
> > > If we're ever going to run virtualization on ARM, we will need to
> > > establish a hyp mode vector table. For now this is not needed.
> > >
> > > This diff includes the previously sent in processor mode define diff.
> >
> > This seems to be based on the code in FreeBSD?
>
> Yes, this diff is based on the FreeBSD code.
>
> >
> > I'd prefer A32_bit for consistency with the other mask bit defines
> > but otherwise I think this should go in.
>
> I originally had it as A32_bit. I'm not happy that we have two
> different naming schemes for bits in the same "register". But for
> consistency with the mask bits, calling it A32_bit works for me.
Thanks, committed with the name changed. We could change the names
to match FreeBSD. The diff below does that and is a reminder of
places that could be using cpsie/cpsid for v7 paths.
Index: arm/arm/arm32_machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/arm32_machdep.c,v
retrieving revision 1.47
diff -u -p -r1.47 arm32_machdep.c
--- arm/arm/arm32_machdep.c 12 Jan 2015 16:33:31 -0000 1.47
+++ arm/arm/arm32_machdep.c 23 Jan 2016 15:54:23 -0000
@@ -204,7 +204,7 @@ bootsync(int howto)
bootsyncdone = 1;
/* Make sure we can still manage to do things */
- if (__get_cpsr() & I32_bit) {
+ if (__get_cpsr() & PSR_I) {
/*
* If we get here then boot has been called without RB_NOSYNC
* and interrupts were disabled. This means the boot() call
Index: arm/arm/cpufunc_asm_sa1.S
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/cpufunc_asm_sa1.S,v
retrieving revision 1.5
diff -u -p -r1.5 cpufunc_asm_sa1.S
--- arm/arm/cpufunc_asm_sa1.S 18 Jan 2015 14:55:02 -0000 1.5
+++ arm/arm/cpufunc_asm_sa1.S 23 Jan 2016 15:54:25 -0000
@@ -47,7 +47,7 @@
*/
ENTRY(sa1_setttb)
mrs r3, cpsr
- orr r1, r3, #(I32_bit | F32_bit)
+ orr r1, r3, #(PSR_I | PSR_F)
msr cpsr_c, r1
stmfd sp!, {r0-r3, lr}
@@ -132,7 +132,7 @@ _C_LABEL(sa1_cache_clean_size):
#define SA1_CACHE_CLEAN_BLOCK
\
mrs r3, cpsr ; \
- orr r0, r3, #(I32_bit | F32_bit) ; \
+ orr r0, r3, #(PSR_I | PSR_F) ; \
msr cpsr_c, r0
#define SA1_CACHE_CLEAN_UNBLOCK
\
Index: arm/arm/cpufunc_asm_xscale.S
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/cpufunc_asm_xscale.S,v
retrieving revision 1.6
diff -u -p -r1.6 cpufunc_asm_xscale.S
--- arm/arm/cpufunc_asm_xscale.S 18 Jan 2015 14:55:02 -0000 1.6
+++ arm/arm/cpufunc_asm_xscale.S 23 Jan 2016 15:54:25 -0000
@@ -129,7 +129,7 @@ ENTRY(xscale_control)
*/
ENTRY(xscale_setttb)
mrs r3, cpsr
- orr r1, r3, #(I32_bit | F32_bit)
+ orr r1, r3, #(PSR_I | PSR_F)
msr cpsr_c, r1
stmfd sp!, {r0-r3, lr}
@@ -245,7 +245,7 @@ _C_LABEL(xscale_cache_clean_size):
#define XSCALE_CACHE_CLEAN_BLOCK
\
mrs r3, cpsr ; \
- orr r0, r3, #(I32_bit | F32_bit) ; \
+ orr r0, r3, #(PSR_I | PSR_F) ; \
msr cpsr_c, r0
#define XSCALE_CACHE_CLEAN_UNBLOCK
\
Index: arm/arm/cpuswitch.S
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/cpuswitch.S,v
retrieving revision 1.14
diff -u -p -r1.14 cpuswitch.S
--- arm/arm/cpuswitch.S 12 Sep 2013 11:43:51 -0000 1.14
+++ arm/arm/cpuswitch.S 23 Jan 2016 15:54:25 -0000
@@ -95,12 +95,12 @@
*/
#define IRQdisableALL \
mrs r14, cpsr ; \
- orr r14, r14, #(I32_bit | F32_bit) ; \
+ orr r14, r14, #(PSR_I | PSR_F) ; \
msr cpsr_c, r14
#define IRQenableALL \
mrs r14, cpsr ; \
- bic r14, r14, #(I32_bit | F32_bit) ; \
+ bic r14, r14, #(PSR_I | PSR_F) ; \
msr cpsr_c, r14
.text
@@ -236,7 +236,7 @@ ENTRY(cpu_switchto)
*/
mrs r3, cpsr
bic r2, r3, #(PSR_MODE)
- orr r2, r2, #(PSR_UND32_MODE | I32_bit)
+ orr r2, r2, #(PSR_UND32_MODE | PSR_I)
msr cpsr_c, r2
#ifdef notworthit
@@ -489,7 +489,7 @@ ENTRY(proc_trampoline)
/* Kill irq's */
mrs r0, cpsr
- orr r0, r0, #(I32_bit)
+ orr r0, r0, #(PSR_I)
msr cpsr_c, r0
PULLFRAME
Index: arm/arm/cpuswitch7.S
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/cpuswitch7.S,v
retrieving revision 1.3
diff -u -p -r1.3 cpuswitch7.S
--- arm/arm/cpuswitch7.S 12 Sep 2013 11:43:51 -0000 1.3
+++ arm/arm/cpuswitch7.S 23 Jan 2016 15:54:25 -0000
@@ -95,12 +95,12 @@
*/
#define IRQdisableALL \
mrs r14, cpsr ; \
- orr r14, r14, #(I32_bit | F32_bit) ; \
+ orr r14, r14, #(PSR_I | PSR_F) ; \
msr cpsr_c, r14
#define IRQenableALL \
mrs r14, cpsr ; \
- bic r14, r14, #(I32_bit | F32_bit) ; \
+ bic r14, r14, #(PSR_I | PSR_F) ; \
msr cpsr_c, r14
.text
@@ -230,7 +230,7 @@ ENTRY(cpu_switchto)
*/
mrs r3, cpsr
bic r2, r3, #(PSR_MODE)
- orr r2, r2, #(PSR_UND32_MODE | I32_bit)
+ orr r2, r2, #(PSR_UND32_MODE | PSR_I)
msr cpsr_c, r2
#ifdef notworthit
@@ -434,7 +434,7 @@ ENTRY(proc_trampoline)
/* Kill irq's */
mrs r0, cpsr
- orr r0, r0, #(I32_bit)
+ orr r0, r0, #(PSR_I)
msr cpsr_c, r0
PULLFRAME
Index: arm/arm/fault.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/fault.c,v
retrieving revision 1.18
diff -u -p -r1.18 fault.c
--- arm/arm/fault.c 16 Nov 2014 12:30:56 -0000 1.18
+++ arm/arm/fault.c 23 Jan 2016 15:54:25 -0000
@@ -221,8 +221,8 @@ data_abort_handler(trapframe_t *tf)
uvmexp.traps++;
/* Re-enable interrupts if they were enabled previously */
- if (__predict_true((tf->tf_spsr & I32_bit) == 0))
- enable_interrupts(I32_bit);
+ if (__predict_true((tf->tf_spsr & PSR_I) == 0))
+ enable_interrupts(PSR_I);
/* Get the current proc structure or proc0 if there is none */
p = (curproc != NULL) ? curproc : &proc0;
@@ -665,8 +665,8 @@ prefetch_abort_handler(trapframe_t *tf)
* from user mode so we know interrupts were not disabled.
* But we check anyway.
*/
- if (__predict_true((tf->tf_spsr & I32_bit) == 0))
- enable_interrupts(I32_bit);
+ if (__predict_true((tf->tf_spsr & PSR_I) == 0))
+ enable_interrupts(PSR_I);
/* Get fault address */
p = curproc;
Index: arm/arm/fiq.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/fiq.c,v
retrieving revision 1.6
diff -u -p -r1.6 fiq.c
--- arm/arm/fiq.c 16 Nov 2014 12:30:56 -0000 1.6
+++ arm/arm/fiq.c 23 Jan 2016 15:54:25 -0000
@@ -48,8 +48,8 @@ TAILQ_HEAD(, fiqhandler) fiqhandler_stac
extern char fiqvector[];
extern char fiq_nullhandler[], fiq_nullhandler_end[];
-#define IRQ_BIT I32_bit
-#define FIQ_BIT F32_bit
+#define IRQ_BIT PSR_I
+#define FIQ_BIT PSR_F
/*
* fiq_installhandler:
Index: arm/arm/locore.S
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/locore.S,v
retrieving revision 1.7
diff -u -p -r1.7 locore.S
--- arm/arm/locore.S 5 Jun 2015 05:39:54 -0000 1.7
+++ arm/arm/locore.S 23 Jan 2016 15:54:26 -0000
@@ -110,7 +110,7 @@ ENTRY_NP(cpu_reset)
mrs r2, cpsr
bic r2, r2, #(PSR_MODE)
orr r2, r2, #(PSR_SVC32_MODE)
- orr r2, r2, #(I32_bit | F32_bit)
+ orr r2, r2, #(PSR_I | PSR_F)
msr cpsr_c, r2
ldr r4, .Lcpu_reset_address
Index: arm/arm/pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/pmap.c,v
retrieving revision 1.56
diff -u -p -r1.56 pmap.c
--- arm/arm/pmap.c 8 Sep 2015 21:28:36 -0000 1.56
+++ arm/arm/pmap.c 23 Jan 2016 15:54:27 -0000
@@ -2858,7 +2858,7 @@ pmap_activate(struct proc *p)
}
s = splhigh();
- disable_interrupts(I32_bit | F32_bit);
+ disable_interrupts(PSR_I | PSR_F);
/*
* We MUST, I repeat, MUST fix up the L1 entry corresponding
@@ -2878,7 +2878,7 @@ pmap_activate(struct proc *p)
cpu_domains(pcb->pcb_dacr);
cpu_setttb(pcb->pcb_pagedir);
- enable_interrupts(I32_bit | F32_bit);
+ enable_interrupts(PSR_I | PSR_F);
/*
* Flag any previous userland pmap as being NOT
@@ -2989,11 +2989,11 @@ pmap_destroy(pmap_t pm)
* number. This will ensure pmap_remove() does not
* pull the current vector page out from under us.
*/
- disable_interrupts(I32_bit | F32_bit);
+ disable_interrupts(PSR_I | PSR_F);
*pcb->pcb_pl1vec = pcb->pcb_l1vec;
cpu_domains(pcb->pcb_dacr);
cpu_setttb(pcb->pcb_pagedir);
- enable_interrupts(I32_bit | F32_bit);
+ enable_interrupts(PSR_I | PSR_F);
}
/* Remove the vector page mapping */
Index: arm/arm/pmap7.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/pmap7.c,v
retrieving revision 1.21
diff -u -p -r1.21 pmap7.c
--- arm/arm/pmap7.c 8 Sep 2015 21:28:36 -0000 1.21
+++ arm/arm/pmap7.c 23 Jan 2016 15:54:28 -0000
@@ -2177,7 +2177,7 @@ pmap_activate(struct proc *p)
}
s = splhigh();
- disable_interrupts(I32_bit | F32_bit);
+ disable_interrupts(PSR_I | PSR_F);
/*
* We MUST, I repeat, MUST fix up the L1 entry corresponding
@@ -2197,7 +2197,7 @@ pmap_activate(struct proc *p)
cpu_domains(pcb->pcb_dacr);
cpu_setttb(pcb->pcb_pagedir);
- enable_interrupts(I32_bit | F32_bit);
+ enable_interrupts(PSR_I | PSR_F);
splx(s);
}
Index: arm/arm/process_machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/process_machdep.c,v
retrieving revision 1.4
diff -u -p -r1.4 process_machdep.c
--- arm/arm/process_machdep.c 20 Sep 2011 22:02:11 -0000 1.4
+++ arm/arm/process_machdep.c 23 Jan 2016 15:54:28 -0000
@@ -135,7 +135,7 @@ process_read_regs(struct proc *p, struct
#ifdef DIAGNOSTIC
if ((tf->tf_spsr & PSR_MODE) == PSR_USR32_MODE
- && tf->tf_spsr & I32_bit)
+ && tf->tf_spsr & PSR_I)
panic("process_read_regs: Interrupts blocked in user process");
#endif
@@ -166,7 +166,7 @@ process_write_regs(struct proc *p, struc
tf->tf_spsr |= regs->r_cpsr & PSR_FLAGS;
#ifdef DIAGNOSTIC
if ((tf->tf_spsr & PSR_MODE) == PSR_USR32_MODE
- && tf->tf_spsr & I32_bit)
+ && tf->tf_spsr & PSR_I)
panic("process_write_regs: Interrupts blocked in user process");
#endif
Index: arm/arm/sig_machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/sig_machdep.c,v
retrieving revision 1.11
diff -u -p -r1.11 sig_machdep.c
--- arm/arm/sig_machdep.c 26 Mar 2014 05:23:42 -0000 1.11
+++ arm/arm/sig_machdep.c 23 Jan 2016 15:54:28 -0000
@@ -205,7 +205,7 @@ sys_sigreturn(struct proc *p, void *v, r
* interrupts have not been disabled.
*/
if ((context.sc_spsr & PSR_MODE) != PSR_USR32_MODE ||
- (context.sc_spsr & (I32_bit | F32_bit)) != 0)
+ (context.sc_spsr & (PSR_I | PSR_F)) != 0)
return (EINVAL);
/* Restore register context. */
Index: arm/arm/syscall.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/syscall.c,v
retrieving revision 1.17
diff -u -p -r1.17 syscall.c
--- arm/arm/syscall.c 11 May 2014 00:05:38 -0000 1.17
+++ arm/arm/syscall.c 23 Jan 2016 15:54:28 -0000
@@ -104,8 +104,8 @@ swi_handler(trapframe_t *frame)
uvmexp.syscalls++;
/* Re-enable interrupts if they were enabled previously */
- if (__predict_true((frame->tf_spsr & I32_bit) == 0))
- enable_interrupts(I32_bit);
+ if (__predict_true((frame->tf_spsr & PSR_I) == 0))
+ enable_interrupts(PSR_I);
p->p_addr->u_pcb.pcb_tf = frame;
@@ -153,7 +153,7 @@ swi_handler(trapframe_t *frame)
frame->tf_r0 = rval[0];
frame->tf_r1 = rval[1];
- frame->tf_spsr &= ~PSR_C_bit; /* carry bit */
+ frame->tf_spsr &= ~PSR_C; /* carry bit */
break;
case ERESTART:
@@ -170,7 +170,7 @@ swi_handler(trapframe_t *frame)
default:
bad:
frame->tf_r0 = error;
- frame->tf_spsr |= PSR_C_bit; /* carry bit */
+ frame->tf_spsr |= PSR_C; /* carry bit */
break;
}
@@ -185,7 +185,7 @@ child_return(arg)
struct trapframe *frame = p->p_addr->u_pcb.pcb_tf;
frame->tf_r0 = 0;
- frame->tf_spsr &= ~PSR_C_bit; /* carry bit */
+ frame->tf_spsr &= ~PSR_C; /* carry bit */
mi_child_return(p);
}
Index: arm/arm/undefined.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/undefined.c,v
retrieving revision 1.6
diff -u -p -r1.6 undefined.c
--- arm/arm/undefined.c 12 Jul 2014 18:44:41 -0000 1.6
+++ arm/arm/undefined.c 23 Jan 2016 15:54:28 -0000
@@ -154,8 +154,8 @@ undefinedinstruction(trapframe_t *frame)
union sigval sv;
/* Enable interrupts if they were enabled before the exception. */
- if (!(frame->tf_spsr & I32_bit))
- enable_interrupts(I32_bit);
+ if (!(frame->tf_spsr & PSR_I))
+ enable_interrupts(PSR_I);
frame->tf_pc -= INSN_SIZE;
fault_pc = frame->tf_pc;
Index: arm/cortex/ampintc.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/cortex/ampintc.c,v
retrieving revision 1.8
diff -u -p -r1.8 ampintc.c
--- arm/cortex/ampintc.c 5 Nov 2015 19:54:17 -0000 1.8
+++ arm/cortex/ampintc.c 23 Jan 2016 15:54:28 -0000
@@ -298,7 +298,7 @@ ampintc_attach(struct device *parent, st
/* enable interrupts */
bus_space_write_4(iot, d_ioh, ICD_DCR, 3);
bus_space_write_4(iot, p_ioh, ICPICR, 1);
- enable_interrupts(I32_bit);
+ enable_interrupts(PSR_I);
}
void
@@ -325,7 +325,7 @@ ampintc_setipl(int new)
int psw;
/* disable here is only to keep hardware in sync with ci->ci_cpl */
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
ci->ci_cpl = new;
/* low values are higher priority thus IPL_HIGH - pri */
@@ -555,7 +555,7 @@ ampintc_intr_establish(int irqno, int le
ih->ih_irq = irqno;
ih->ih_name = name;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
TAILQ_INSERT_TAIL(&sc->sc_ampintc_handler[irqno].iq_list, ih, ih_list);
@@ -579,7 +579,7 @@ ampintc_intr_disestablish(void *cookie)
int psw;
struct intrhand *ih = cookie;
int irqno = ih->ih_irq;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
TAILQ_REMOVE(&sc->sc_ampintc_handler[irqno].iq_list, ih, ih_list);
if (ih->ih_name != NULL)
evcount_detach(&ih->ih_count);
Index: arm/include/armreg.h
===================================================================
RCS file: /cvs/src/sys/arch/arm/include/armreg.h,v
retrieving revision 1.17
diff -u -p -r1.17 armreg.h
--- arm/include/armreg.h 23 Jan 2016 15:38:48 -0000 1.17
+++ arm/include/armreg.h 23 Jan 2016 15:54:29 -0000
@@ -63,19 +63,19 @@
*/
#define PSR_FLAGS 0xf0000000 /* flags */
-#define PSR_N_bit (1U << 31) /* negative */
-#define PSR_Z_bit (1 << 30) /* zero */
-#define PSR_C_bit (1 << 29) /* carry */
-#define PSR_V_bit (1 << 28) /* overflow */
+#define PSR_N (1U << 31) /* negative */
+#define PSR_Z (1 << 30) /* zero */
+#define PSR_C (1 << 29) /* carry */
+#define PSR_V (1 << 28) /* overflow */
-#define PSR_Q_bit (1 << 27) /* saturation */
+#define PSR_Q (1 << 27) /* saturation */
-#define A32_bit (1 << 8) /* Asynchronous abort disable */
-#define I32_bit (1 << 7) /* IRQ disable */
-#define F32_bit (1 << 6) /* FIQ disable */
+#define PSR_A (1 << 8) /* Asynchronous abort disable */
+#define PSR_I (1 << 7) /* IRQ disable */
+#define PSR_F (1 << 6) /* FIQ disable */
-#define PSR_T_bit (1 << 5) /* Thumb state */
-#define PSR_J_bit (1 << 24) /* Java mode */
+#define PSR_T (1 << 5) /* Thumb state */
+#define PSR_J (1 << 24) /* Java mode */
#define PSR_MODE 0x0000001f /* mode mask */
#define PSR_USR26_MODE 0x00000000
Index: arm/include/atomic.h
===================================================================
RCS file: /cvs/src/sys/arch/arm/include/atomic.h,v
retrieving revision 1.12
diff -u -p -r1.12 atomic.h
--- arm/include/atomic.h 12 Sep 2015 16:12:50 -0000 1.12
+++ arm/include/atomic.h 23 Jan 2016 15:54:29 -0000
@@ -25,7 +25,7 @@ _atomic_cas_uint(volatile unsigned int *
unsigned int cpsr;
unsigned int rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip;
if (rv == o)
*uip = n;
@@ -41,7 +41,7 @@ _atomic_cas_ulong(volatile unsigned long
unsigned int cpsr;
unsigned long rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip;
if (rv == o)
*uip = n;
@@ -58,7 +58,7 @@ _atomic_cas_ptr(volatile void *uip, void
void * volatile *uipp = (void * volatile *)uip;
void *rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uipp;
if (rv == o)
*uipp = n;
@@ -74,7 +74,7 @@ _atomic_swap_uint(volatile unsigned int
unsigned int cpsr;
unsigned int rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip;
*uip = n;
restore_interrupts(cpsr);
@@ -89,7 +89,7 @@ _atomic_swap_ulong(volatile unsigned lon
unsigned int cpsr;
unsigned long rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip;
*uip = n;
restore_interrupts(cpsr);
@@ -105,7 +105,7 @@ _atomic_swap_ptr(volatile void *uip, voi
void * volatile *uipp = (void * volatile *)uip;
void *rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uipp;
*uipp = n;
restore_interrupts(cpsr);
@@ -120,7 +120,7 @@ _atomic_add_int_nv(volatile unsigned int
unsigned int cpsr;
unsigned int rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip + v;
*uip = rv;
restore_interrupts(cpsr);
@@ -135,7 +135,7 @@ _atomic_add_long_nv(volatile unsigned lo
unsigned int cpsr;
unsigned long rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip + v;
*uip = rv;
restore_interrupts(cpsr);
@@ -150,7 +150,7 @@ _atomic_sub_int_nv(volatile unsigned int
unsigned int cpsr;
unsigned int rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip - v;
*uip = rv;
restore_interrupts(cpsr);
@@ -165,7 +165,7 @@ _atomic_sub_long_nv(volatile unsigned lo
unsigned int cpsr;
unsigned long rv;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
rv = *uip - v;
*uip = rv;
restore_interrupts(cpsr);
@@ -179,7 +179,7 @@ atomic_setbits_int(volatile unsigned int
{
unsigned int cpsr;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
*uip |= v;
restore_interrupts(cpsr);
}
@@ -189,7 +189,7 @@ atomic_clearbits_int(volatile unsigned i
{
unsigned int cpsr;
- cpsr = disable_interrupts(I32_bit|F32_bit);
+ cpsr = disable_interrupts(PSR_I|PSR_F);
*uip &= ~v;
restore_interrupts(cpsr);
}
Index: arm/include/cpu.h
===================================================================
RCS file: /cvs/src/sys/arch/arm/include/cpu.h,v
retrieving revision 1.39
diff -u -p -r1.39 cpu.h
--- arm/include/cpu.h 11 Jul 2014 10:53:07 -0000 1.39
+++ arm/include/cpu.h 23 Jan 2016 15:54:29 -0000
@@ -112,20 +112,20 @@ extern int cpu_do_powersave;
#define IRQdisable \
stmfd sp!, {r0} ; \
mrs r0, cpsr ; \
- orr r0, r0, #(I32_bit) ; \
+ orr r0, r0, #(PSR_I) ; \
msr cpsr_c, r0 ; \
ldmfd sp!, {r0}
#define IRQenable \
stmfd sp!, {r0} ; \
mrs r0, cpsr ; \
- bic r0, r0, #(I32_bit) ; \
+ bic r0, r0, #(PSR_I) ; \
msr cpsr_c, r0 ; \
ldmfd sp!, {r0}
#else
-#define IRQdisable __set_cpsr_c(I32_bit, I32_bit);
-#define IRQenable __set_cpsr_c(I32_bit, 0);
+#define IRQdisable __set_cpsr_c(PSR_I, PSR_I);
+#define IRQenable __set_cpsr_c(PSR_I, 0);
#endif /* _LOCORE */
#ifndef _LOCORE
Index: arm/include/cpufunc.h
===================================================================
RCS file: /cvs/src/sys/arch/arm/include/cpufunc.h,v
retrieving revision 1.15
diff -u -p -r1.15 cpufunc.h
--- arm/include/cpufunc.h 29 Mar 2014 18:09:28 -0000 1.15
+++ arm/include/cpufunc.h 23 Jan 2016 15:54:29 -0000
@@ -501,14 +501,14 @@ __get_cpsr()
}
#define disable_interrupts(mask) \
- (__set_cpsr_c((mask) & (I32_bit | F32_bit), \
- (mask) & (I32_bit | F32_bit)))
+ (__set_cpsr_c((mask) & (PSR_I | PSR_F), \
+ (mask) & (PSR_I | PSR_F)))
#define enable_interrupts(mask)
\
- (__set_cpsr_c((mask) & (I32_bit | F32_bit), 0))
+ (__set_cpsr_c((mask) & (PSR_I | PSR_F), 0))
#define restore_interrupts(old_cpsr) \
- (__set_cpsr_c((I32_bit | F32_bit), (old_cpsr) & (I32_bit | F32_bit)))
+ (__set_cpsr_c((PSR_I | PSR_F), (old_cpsr) & (PSR_I | PSR_F)))
/*
* Functions to manipulate cpu r13
Index: arm/include/frame.h
===================================================================
RCS file: /cvs/src/sys/arch/arm/include/frame.h,v
retrieving revision 1.6
diff -u -p -r1.6 frame.h
--- arm/include/frame.h 18 Jan 2015 16:26:39 -0000 1.6
+++ arm/include/frame.h 23 Jan 2016 15:54:29 -0000
@@ -176,8 +176,8 @@ struct frame {
teq r0, #(PSR_USR32_MODE) ;\
ldreq r5, .Laflt_astpending ;\
bne 2f /* Nope, get out now */ ;\
- bic r4, r4, #(I32_bit) ;\
-1: orr r0, r4, #(I32_bit) /* Disable IRQs */ ;\
+ bic r4, r4, #(PSR_I) ;\
+1: orr r0, r4, #(PSR_I) /* Disable IRQs */ ;\
msr cpsr_c, r0 ;\
ldr r1, [r5] /* Pending AST? */ ;\
teq r1, #0x00000000 ;\
Index: arm/sa11x0/sa11x0_ost.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/sa11x0/sa11x0_ost.c,v
retrieving revision 1.8
diff -u -p -r1.8 sa11x0_ost.c
--- arm/sa11x0/sa11x0_ost.c 15 May 2008 22:17:08 -0000 1.8
+++ arm/sa11x0/sa11x0_ost.c 23 Jan 2016 15:54:29 -0000
@@ -271,7 +271,7 @@ gettick()
{
int counter;
u_int savedints;
- savedints = disable_interrupts(I32_bit);
+ savedints = disable_interrupts(PSR_I);
counter = bus_space_read_4(saost_sc->sc_iot, saost_sc->sc_ioh,
SAOST_CR);
Index: arm/xscale/i80321_clock.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/i80321_clock.c,v
retrieving revision 1.10
diff -u -p -r1.10 i80321_clock.c
--- arm/xscale/i80321_clock.c 13 Jun 2015 07:16:36 -0000 1.10
+++ arm/xscale/i80321_clock.c 23 Jan 2016 15:54:29 -0000
@@ -285,7 +285,7 @@ cpu_initclocks()
int new_tps;
int tps_diff;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
first_sec = rtctime.tv_sec;
do {
Index: arm/xscale/i80321_intr.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/i80321_intr.c,v
retrieving revision 1.16
diff -u -p -r1.16 i80321_intr.c
--- arm/xscale/i80321_intr.c 3 Apr 2014 10:17:34 -0000 1.16
+++ arm/xscale/i80321_intr.c 23 Jan 2016 15:54:30 -0000
@@ -104,7 +104,7 @@ i80321intc_setipl(int new)
{
int psw;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
current_ipl_level = new;
i80321intc_write_intctl(i80321intc_imask[new]);
restore_interrupts(psw);
@@ -177,7 +177,7 @@ i80321intc_do_pending(void)
static int processing = 0;
int oldirqstate, spl_save;
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
spl_save = current_ipl_level;
@@ -194,7 +194,7 @@ i80321intc_do_pending(void)
i80321intc_setipl(ipl); \
restore_interrupts(oldirqstate); \
softintr_dispatch(si); \
- oldirqstate = disable_interrupts(I32_bit); \
+ oldirqstate = disable_interrupts(PSR_I); \
i80321intc_setipl(spl_save); \
}
@@ -253,7 +253,7 @@ _setsoftintr(int si)
{
int oldirqstate;
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
softint_pending |= SI_TO_IRQBIT(si);
restore_interrupts(oldirqstate);
@@ -296,7 +296,7 @@ i80321intc_init(void)
i80321intc_calc_mask();
/* Enable IRQs (don't yet use FIQs). */
- enable_interrupts(I32_bit);
+ enable_interrupts(PSR_I);
}
void *
@@ -328,7 +328,7 @@ i80321_intr_establish(int irq, int ipl,
/* All IOP321 interrupts are level-triggered. */
iq->iq_ist = IST_LEVEL;
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
TAILQ_INSERT_TAIL(&iq->iq_list, ih, ih_list);
@@ -347,7 +347,7 @@ i80321_intr_disestablish(void *cookie)
struct intrq *iq = &i80321_handler[ih->ih_irq];
int oldirqstate;
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
TAILQ_REMOVE(&iq->iq_list, ih, ih_list);
if (ih->ih_name != NULL)
@@ -380,14 +380,14 @@ i80321_irq_handler(void *arg)
i80321intc_setipl(i80321_handler[irq].iq_irq);
/* Enable interrupt */
- enable_interrupts(I32_bit);
+ enable_interrupts(PSR_I);
TAILQ_FOREACH(ih, &i80321_handler[irq].iq_list, ih_list) {
if ((ih->ih_func)( ih->ih_arg == 0
? frame : ih->ih_arg))
ih->ih_count.ec_count++;
}
/* Disable interrupt */
- disable_interrupts(I32_bit);
+ disable_interrupts(PSR_I);
hwpend &= ~(1<<irq);
}
uvmexp.intrs++;
Index: arm/xscale/i80321_pci.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/i80321_pci.c,v
retrieving revision 1.4
diff -u -p -r1.4 i80321_pci.c
--- arm/xscale/i80321_pci.c 4 Dec 2010 17:06:31 -0000 1.4
+++ arm/xscale/i80321_pci.c 23 Jan 2016 15:54:30 -0000
@@ -67,7 +67,7 @@ int i80321_pci_conf_size(void *, pcitag
pcireg_t i80321_pci_conf_read(void *, pcitag_t, int);
void i80321_pci_conf_write(void *, pcitag_t, int, pcireg_t);
-#define PCI_CONF_LOCK(s) (s) = disable_interrupts(I32_bit)
+#define PCI_CONF_LOCK(s) (s) = disable_interrupts(PSR_I)
#define PCI_CONF_UNLOCK(s) restore_interrupts((s))
void
Index: arm/xscale/pxa2x0.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/pxa2x0.c,v
retrieving revision 1.19
diff -u -p -r1.19 pxa2x0.c
--- arm/xscale/pxa2x0.c 18 Oct 2014 12:21:56 -0000 1.19
+++ arm/xscale/pxa2x0.c 23 Jan 2016 15:54:30 -0000
@@ -285,7 +285,7 @@ pxaip_measure_cpuclock(struct pxaip_soft
int irq;
ioh = sc->sc_bush_rtc;
- irq = disable_interrupts(I32_bit|F32_bit);
+ irq = disable_interrupts(PSR_I|PSR_F);
__asm volatile( "mrc p14, 0, %0, c0, c1, 0" : "=r" (pmcr_save));
/* Enable clock counter */
Index: arm/xscale/pxa2x0_apm.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/pxa2x0_apm.c,v
retrieving revision 1.43
diff -u -p -r1.43 pxa2x0_apm.c
--- arm/xscale/pxa2x0_apm.c 20 Sep 2014 09:28:24 -0000 1.43
+++ arm/xscale/pxa2x0_apm.c 23 Jan 2016 15:54:31 -0000
@@ -900,7 +900,7 @@ pxa2x0_apm_sleep(struct pxa2x0_apm_softc
goto out;
}
- save = disable_interrupts(I32_bit|F32_bit);
+ save = disable_interrupts(PSR_I|PSR_F);
sd.sd_oscr0 = bus_space_read_4(sc->sc_iot, ost_ioh, OST_OSCR0);
sd.sd_oscr4 = bus_space_read_4(sc->sc_iot, ost_ioh, OST_OSCR4);
@@ -1483,7 +1483,7 @@ pxa2x0_setperf(int speed)
DPRINTF(("setperf speed %d newfreq %d, maxfreq %d\n",
speed, newfreq, xscale_maxspeed));
- s = disable_interrupts(I32_bit|F32_bit);
+ s = disable_interrupts(PSR_I|PSR_F);
if (newfreq == 91) {
if (freq > 91) {
Index: arm/xscale/pxa2x0_apm_asm.S
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/pxa2x0_apm_asm.S,v
retrieving revision 1.4
diff -u -p -r1.4 pxa2x0_apm_asm.S
--- arm/xscale/pxa2x0_apm_asm.S 2 Nov 2007 05:18:25 -0000 1.4
+++ arm/xscale/pxa2x0_apm_asm.S 23 Jan 2016 15:54:31 -0000
@@ -166,31 +166,31 @@ ENTRY(pxa2x0_cpu_suspend)
str r2, [r3], #4 /* Save SVC saved CPSR. */
str sp, [r3], #4 /* Save SVC stack pointer. */
- mov r1, #(PSR_FIQ32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_FIQ32_MODE | PSR_I | PSR_F)
msr cpsr, r1 /* Enter FIQ mode. */
mrs r2, spsr /* Load FIQ mode saved CPSR. */
stmia r3!, {r2, r8-r12, sp, lr} /* Save FIQ mode registers. */
- mov r1, #(PSR_IRQ32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_IRQ32_MODE | PSR_I | PSR_F)
msr cpsr, r1 /* Enter IRQ mode. */
mrs r0, spsr /* Load IRQ mode saved CPSR. */
stmia r3!, {r0, sp, lr} /* Save IRQ mode registers. */
- mov r1, #(PSR_ABT32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_ABT32_MODE | PSR_I | PSR_F)
msr cpsr, r1 /* Enter ABT mode. */
mrs r0, spsr /* Load ABT mode saved CPSR. */
stmia r3!, {r0, sp, lr} /* Save ABT mode registers. */
- mov r1, #(PSR_UND32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_UND32_MODE | PSR_I | PSR_F)
msr cpsr, r1 /* Enter UND mode. */
mrs r0, spsr /* Load UND mode saved CPSR. */
stmia r3!, {r0, sp, lr} /* Save UND mode registers. */
- mov r1, #(PSR_SYS32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_SYS32_MODE | PSR_I | PSR_F)
msr cpsr, r1 /* Enter SYS mode. */
stmia r3!, {sp, lr} /* Save SYS mode registers. */
- mov r1, #(PSR_SVC32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_SVC32_MODE | PSR_I | PSR_F)
msr cpsr, r1 /* Return to SVC mode. */
/* At this point all critical registers have been saved. */
@@ -211,14 +211,14 @@ ENTRY(pxa2x0_cpu_suspend)
cache_flush_loop:
mrs r2, cpsr
- orr r2, r2, #(I32_bit|F32_bit)
+ orr r2, r2, #(PSR_I|PSR_F)
msr cpsr_c, r2 /* disable IRQ/FIQ */
mcr p15, 0, r0, c7, c2, 5 /* allocate cache line */
mcr p15, 0, r0, c7, c6, 1 /* flush D cache single entry */
mrs r2, cpsr
- and r2, r2, #~(I32_bit|F32_bit)
+ and r2, r2, #~(PSR_I|PSR_F)
msr cpsr_c, r2 /* enable IRQ/FIQ */
add r0, r0, #CACHELINESIZE
@@ -329,7 +329,7 @@ pxa2x0_cpu_resume_virt:
ldr sp, [r2], #4
/* Restore FIQ mode registers. */
- mov r1, #(PSR_FIQ32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_FIQ32_MODE | PSR_I | PSR_F)
msr cpsr, r1
ldr r0, [r2], #4
msr spsr, r0
@@ -342,7 +342,7 @@ pxa2x0_cpu_resume_virt:
ldr lr, [r2], #4
/* Restore IRQ mode registers. */
- mov r1, #(PSR_IRQ32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_IRQ32_MODE | PSR_I | PSR_F)
msr cpsr, r1
ldr r0, [r2], #4
msr spsr, r0
@@ -350,7 +350,7 @@ pxa2x0_cpu_resume_virt:
ldr lr, [r2], #4
/* Restore ABT mode registers. */
- mov r1, #(PSR_ABT32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_ABT32_MODE | PSR_I | PSR_F)
msr cpsr, r1
ldr r0, [r2], #4
msr spsr, r0
@@ -358,7 +358,7 @@ pxa2x0_cpu_resume_virt:
ldr lr, [r2], #4
/* Restore UND mode registers. */
- mov r1, #(PSR_UND32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_UND32_MODE | PSR_I | PSR_F)
msr cpsr, r1
ldr r0, [r2], #4
msr spsr, r0
@@ -366,13 +366,13 @@ pxa2x0_cpu_resume_virt:
ldr lr, [r2], #4
/* Restore SYS mode registers. */
- mov r1, #(PSR_SYS32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_SYS32_MODE | PSR_I | PSR_F)
msr cpsr, r1
ldr sp, [r2], #4
ldr lr, [r2], #4
/* Return to SVC mode. */
- mov r1, #(PSR_SVC32_MODE | I32_bit | F32_bit)
+ mov r1, #(PSR_SVC32_MODE | PSR_I | PSR_F)
msr cpsr, r1
ldmia sp!, {r0-r12, pc}
Index: arm/xscale/pxa2x0_gpio.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/pxa2x0_gpio.c,v
retrieving revision 1.24
diff -u -p -r1.24 pxa2x0_gpio.c
--- arm/xscale/pxa2x0_gpio.c 12 Jul 2014 18:44:41 -0000 1.24
+++ arm/xscale/pxa2x0_gpio.c 23 Jan 2016 15:54:31 -0000
@@ -338,7 +338,7 @@ void
pxa2x0_gpio_intr_fixup(int minipl, int maxipl)
{
struct pxagpio_softc *sc = pxagpio_softc;
- int save = disable_interrupts(I32_bit);
+ int save = disable_interrupts(PSR_I);
if (maxipl == IPL_NONE && minipl == IPL_HIGH) {
/* no remaining interrupts */
Index: arm/xscale/pxa2x0_intr.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/pxa2x0_intr.c,v
retrieving revision 1.26
diff -u -p -r1.26 pxa2x0_intr.c
--- arm/xscale/pxa2x0_intr.c 12 Jul 2014 18:44:41 -0000 1.26
+++ arm/xscale/pxa2x0_intr.c 23 Jan 2016 15:54:32 -0000
@@ -158,7 +158,7 @@ pxaintc_attach(struct device *parent, st
pxa2x0_init_interrupt_masks();
_splraise(IPL_HIGH);
- enable_interrupts(I32_bit);
+ enable_interrupts(PSR_I);
}
/*
@@ -219,7 +219,7 @@ pxa2x0_irq_handler(void *arg)
pxa2x0_setipl(extirq_level[irqno]);
/* Enable interrupt */
- enable_interrupts(I32_bit);
+ enable_interrupts(PSR_I);
#ifndef MULTIPLE_HANDLERS_ON_ONE_IRQ
(* handler[irqno].func)(
@@ -235,7 +235,7 @@ pxa2x0_irq_handler(void *arg)
#endif
/* Disable interrupt */
- disable_interrupts(I32_bit);
+ disable_interrupts(PSR_I);
irqbits &= ~(1<<irqno);
}
@@ -254,7 +254,7 @@ pxa2x0_stray_interrupt(void *cookie)
printf("stray interrupt %d\n", irqno);
if (PXA2X0_IRQ_MIN <= irqno && irqno < ICU_LEN){
- int save = disable_interrupts(I32_bit);
+ int save = disable_interrupts(PSR_I);
write_icu(SAIPIC_MR,
read_icu(SAIPIC_MR) & ~(1U<<irqno));
restore_interrupts(save);
@@ -289,7 +289,7 @@ pxa2x0_update_intr_masks(int irqno, int
int level;
#endif
struct intrhand *ih;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
/* First figure out which levels each IRQ uses. */
for (irq = 0; irq < ICU_LEN; irq++) {
@@ -339,7 +339,7 @@ pxa2x0_update_intr_masks(int irqno, int
int level; /* debug */
int mask = 1U<<irqno;
int i;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
for(i = 0; i < irqlevel; ++i)
pxa2x0_imask[i] |= mask; /* Enable interrupt at lower level */
@@ -456,7 +456,7 @@ pxa2x0_do_pending(void)
spl_save = current_spl_level;
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
#if 1
#define DO_SOFTINT(si,ipl)
\
@@ -467,7 +467,7 @@ pxa2x0_do_pending(void)
pxa2x0_setipl(ipl); \
restore_interrupts(oldirqstate); \
softintr_dispatch(si); \
- oldirqstate = disable_interrupts(I32_bit); \
+ oldirqstate = disable_interrupts(PSR_I); \
pxa2x0_setipl(spl_save); \
}
@@ -484,7 +484,7 @@ pxa2x0_do_pending(void)
pxa2x0_setipl(ipl);
restore_interrupts(oldirqstate);
softintr_dispatch(si);
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
pxa2x0_setipl(spl_save);
}
#endif
@@ -541,7 +541,7 @@ pxa2x0_intr_establish(int irqno, int lev
if (irqno < PXA2X0_IRQ_MIN || irqno >= ICU_LEN)
panic("intr_establish: bogus irq number %d", irqno);
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
#ifdef MULTIPLE_HANDLERS_ON_ONE_IRQ
/* no point in sleeping unless someone can free memory. */
@@ -587,7 +587,7 @@ pxa2x0_intr_disestablish(void *cookie)
struct intrhand *ih = cookie;
int irqno = ih->ih_irq;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
TAILQ_REMOVE(&handler[irqno].list, ih, ih_list);
free(ih, M_DEVBUF, 0);
@@ -605,7 +605,7 @@ pxa2x0_intr_disestablish(void *cookie)
if (irqno < PXA2X0_IRQ_MIN || irqno >= ICU_LEN)
panic("intr_disestablish: bogus irq number %d", irqno);
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
ih = &handler[irqno];
if (ih->name != NULL)
@@ -648,7 +648,7 @@ pxa2x0_splx(int new)
{
int psw;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
pxa2x0_setipl(new);
restore_interrupts(psw);
@@ -665,7 +665,7 @@ pxa2x0_splraise(int ipl)
old = current_spl_level;
if( ipl > current_spl_level ){
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
pxa2x0_setipl(ipl);
restore_interrupts(psw);
}
@@ -677,7 +677,7 @@ int
pxa2x0_spllower(int ipl)
{
int old = current_spl_level;
- int psw = disable_interrupts(I32_bit);
+ int psw = disable_interrupts(PSR_I);
pxa2x0_splx(ipl);
restore_interrupts(psw);
return(old);
@@ -723,7 +723,7 @@ pxa2x0_splassert_check(int wantipl, cons
* If the splassert_ctl is set to not panic, raise the ipl
* in a feeble attempt to reduce damage.
*/
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
pxa2x0_setipl(wantipl);
restore_interrupts(psw);
}
Index: arm/xscale/pxa2x0_lcd.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/xscale/pxa2x0_lcd.c,v
retrieving revision 1.26
diff -u -p -r1.26 pxa2x0_lcd.c
--- arm/xscale/pxa2x0_lcd.c 12 Jul 2014 18:44:41 -0000 1.26
+++ arm/xscale/pxa2x0_lcd.c 23 Jan 2016 15:54:32 -0000
@@ -292,7 +292,7 @@ pxa2x0_lcd_start_dma(bus_space_tag_t iot
uint32_t tmp;
int val, save;
- save = disable_interrupts(I32_bit);
+ save = disable_interrupts(PSR_I);
switch (scr->depth) {
case 1: val = 0; break;
Index: armv7/armv7/armv7_start.S
===================================================================
RCS file: /cvs/src/sys/arch/armv7/armv7/armv7_start.S,v
retrieving revision 1.4
diff -u -p -r1.4 armv7_start.S
--- armv7/armv7/armv7_start.S 23 Jan 2016 15:38:48 -0000 1.4
+++ armv7/armv7/armv7_start.S 23 Jan 2016 15:54:33 -0000
@@ -102,7 +102,7 @@ _C_LABEL(bootstrap_start):
mrs r0, cpsr
bic r0, r0, #(PSR_MODE)
orr r0, r0, #(PSR_SVC32_MODE)
- orr r0, r0, #(I32_bit | F32_bit | A32_bit)
+ orr r0, r0, #(PSR_I | PSR_F | PSR_A)
msr spsr_fsxc, r0
adr lr, 1f
ELR
Index: armv7/armv7/intr.c
===================================================================
RCS file: /cvs/src/sys/arch/armv7/armv7/intr.c,v
retrieving revision 1.3
diff -u -p -r1.3 intr.c
--- armv7/armv7/intr.c 13 Jun 2015 07:16:37 -0000 1.3
+++ armv7/armv7/intr.c 23 Jan 2016 15:54:33 -0000
@@ -151,7 +151,7 @@ arm_setsoftintr(int si)
int oldirqstate;
/* XXX atomic? */
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
ci->ci_ipending |= SI_TO_IRQBIT(si);
restore_interrupts(oldirqstate);
@@ -168,7 +168,7 @@ arm_do_pending_intr(int pcpl)
static int processing = 0;
int oldirqstate;
- oldirqstate = disable_interrupts(I32_bit);
+ oldirqstate = disable_interrupts(PSR_I);
if (processing == 1) {
/* Don't use splx... we are here already! */
@@ -184,7 +184,7 @@ arm_do_pending_intr(int pcpl)
arm_intr_func.setipl(ipl); \
restore_interrupts(oldirqstate); \
softintr_dispatch(si); \
- oldirqstate = disable_interrupts(I32_bit); \
+ oldirqstate = disable_interrupts(PSR_I); \
}
do {
Index: armv7/omap/intc.c
===================================================================
RCS file: /cvs/src/sys/arch/armv7/omap/intc.c,v
retrieving revision 1.3
diff -u -p -r1.3 intc.c
--- armv7/omap/intc.c 12 Jul 2014 18:44:41 -0000 1.3
+++ armv7/omap/intc.c 23 Jan 2016 15:54:34 -0000
@@ -170,7 +170,7 @@ intc_attach(struct device *parent, struc
intc_irq_handler);
intc_setipl(IPL_HIGH); /* XXX ??? */
- enable_interrupts(I32_bit);
+ enable_interrupts(PSR_I);
}
void
@@ -269,7 +269,7 @@ intc_setipl(int new)
if (intc_attached == 0)
return;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
#if 0
{
volatile static int recursed = 0;
@@ -342,7 +342,7 @@ intc_intr_establish(int irqno, int level
if (irqno < 0 || irqno >= INTC_NUM_IRQ)
panic("intc_intr_establish: bogus irqnumber %d: %s",
irqno, name);
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
/* no point in sleeping unless someone can free memory. */
ih = (struct intrhand *)malloc (sizeof *ih, M_DEVBUF,
@@ -376,7 +376,7 @@ intc_intr_disestablish(void *cookie)
int psw;
struct intrhand *ih = cookie;
int irqno = ih->ih_irq;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
TAILQ_REMOVE(&intc_handler[irqno].iq_list, ih, ih_list);
if (ih->ih_name != NULL)
evcount_detach(&ih->ih_count);
Index: armv7/omap/omgpio.c
===================================================================
RCS file: /cvs/src/sys/arch/armv7/omap/omgpio.c,v
retrieving revision 1.5
diff -u -p -r1.5 omgpio.c
--- armv7/omap/omgpio.c 14 Jul 2014 08:55:07 -0000 1.5
+++ armv7/omap/omgpio.c 23 Jan 2016 15:54:36 -0000
@@ -621,7 +621,7 @@ omgpio_intr_establish(struct omgpio_soft
gpio, sc->sc_handlers[GPIO_PIN_TO_OFFSET(gpio)]->ih_name,
name);
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
/* no point in sleeping unless someone can free memory. */
ih = (struct intrhand *)malloc( sizeof *ih, M_DEVBUF,
@@ -656,7 +656,7 @@ omgpio_intr_disestablish(struct omgpio_s
struct intrhand *ih = cookie;
struct omgpio_softc *sc =
omgpio_cd.cd_devs[GPIO_PIN_TO_INST(ih->ih_gpio)];
int gpio = ih->ih_gpio;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
ih = sc->sc_handlers[GPIO_PIN_TO_OFFSET(gpio)];
sc->sc_handlers[GPIO_PIN_TO_OFFSET(gpio)] = NULL;
Index: armv7/sunxi/a1xintc.c
===================================================================
RCS file: /cvs/src/sys/arch/armv7/sunxi/a1xintc.c,v
retrieving revision 1.6
diff -u -p -r1.6 a1xintc.c
--- armv7/sunxi/a1xintc.c 20 May 2015 03:49:23 -0000 1.6
+++ armv7/sunxi/a1xintc.c 23 Jan 2016 15:54:36 -0000
@@ -194,7 +194,7 @@ a1xintc_attach(struct device *parent, st
a1xintc_intr_establish, a1xintc_intr_disestablish,
a1xintc_intr_string,
a1xintc_irq_handler);
a1xintc_setipl(IPL_HIGH); /* XXX ??? */
- enable_interrupts(I32_bit);
+ enable_interrupts(PSR_I);
printf("\n");
}
@@ -297,7 +297,7 @@ a1xintc_setipl(int new)
return;
}
#endif
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
ci->ci_cpl = new;
for (i = 0; i < NBANKS; i++)
bus_space_write_4(a1xintc_iot, a1xintc_ioh,
@@ -365,7 +365,7 @@ a1xintc_intr_establish(int irq, int lvl,
DPRINTF(("intr_establish: irq %d level %d [%s]\n", irq, lvl,
name != NULL ? name : "NULL"));
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
/* no point in sleeping unless someone can free memory. */
ih = (struct intrhand *)malloc (sizeof *ih, M_DEVBUF,
@@ -403,7 +403,7 @@ a1xintc_intr_disestablish(void *cookie)
int psw;
uint32_t er;
- psw = disable_interrupts(I32_bit);
+ psw = disable_interrupts(PSR_I);
TAILQ_REMOVE(&a1xintc_handler[irq].iq_list, ih, ih_list);