kernel/eka/include/nkernsmp/arm/entry.h
branchRCL_3
changeset 257 3e88ff8f41d5
parent 256 c1f20ce4abcf
--- a/kernel/eka/include/nkernsmp/arm/entry.h	Tue Aug 31 16:34:26 2010 +0300
+++ b/kernel/eka/include/nkernsmp/arm/entry.h	Wed Sep 01 12:34:56 2010 +0100
@@ -40,7 +40,6 @@
 #endif
 
 extern void handle_crash_ipi();
-extern void handle_indirect_powerdown_ipi();
 
 #ifdef _DEBUG
 extern void __DebugMsgIrq(TUint aIrqNumber);
@@ -125,22 +124,22 @@
 	asm("mov	r5, sp ");
 	asm("str	r1, [sp, #%a0]" : : "i" _FOFF(SThreadExcStack,iExcCode));	// word describing exception type
 	__ASM_STI2_MODE(MODE_SYS);			// mode_sys, IRQs off, FIQs on
-	asm("ldr	sp, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iIrqStackTop));
+	asm("ldr	sp, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, i_IrqStackTop));
 	USER_MEMORY_GUARD_ON(,r8,r0);		// r8 = original DACR if user memory guards in use
 
 	asm("nested_irq_rejoin: ");
-	asm("ldr	r0, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iIrqCount));
-	asm("ldr	r7, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iIrqNestCount));
+	asm("ldr	r0, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, i_IrqCount));
+	asm("ldr	r7, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, i_IrqNestCount));
 	asm("ldr	r12, __ArmInterrupt ");
 	asm("ldr	r10, _ArmVectorIrq ");
 	asm("add	r0, r0, #1 ");
 	asm("add	r7, r7, #1 ");
 	__DATA_MEMORY_BARRIER_Z__(r2);		// ensure memory accesses in interrupted code are observed before
 										// the writes to i_IrqCount, i_IrqNestCount
-	asm("str	r0, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iIrqCount));		// increment i_IrqCount
-	asm("ldr	r11, [r12,#%a0]" : : "i" _FOFF(SArmInterruptInfo,iIrqHandler));		// address if IRQ handler
-	asm("ldr	r6, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iGicCpuIfcAddr));
-	asm("str	r7, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iIrqNestCount));	// increment i_IrqNestCount
+	asm("str	r0, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, i_IrqCount));		// increment i_IrqCount
+	asm("ldr	r11, [r12,#%a0]" : : "i" _FOFF(SArmInterruptInfo,iIrqHandler));	// address of IRQ handler
+	asm("ldr	r6, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, i_GicCpuIfcAddr));
+	asm("str	r7, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, i_IrqNestCount));	// increment i_IrqNestCount
 
 	asm("1: ");
 #ifdef BTRACE_CPU_USAGE
@@ -188,8 +187,6 @@
 	asm("beq	do_generic_ipi ");
 	asm("cmp	r2, #%a0" : : "i" ((TInt)TRANSFERRED_IRQ_VECTOR));
 	asm("beq	do_transferred_ipi ");
-	asm("cmp	r2, #%a0" : : "i" ((TInt)INDIRECT_POWERDOWN_IPI_VECTOR));
-	asm("beq	do_indirect_powerdown_ipi ");
 	asm("cmp	r2, #15 ");
 	__JUMP(hi,	r11);					// if >15 but not TIMESLICE_VECTOR, call dispatcher
 
@@ -201,7 +198,7 @@
 
 	// TIMESLICE, RESCHED or TRANSFERRED
 	asm("do_timeslice_irq: ");
-	asm("ldr	r2, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iLocalTimerAddr));
+	asm("ldr	r2, [r4, #%a0]" : : "i" _FOFF(TSubScheduler, i_LocalTimerAddr));
 	asm("mov	r1, #1 ");
 	asm("str	r1, [r2, #%a0]" : : "i" _FOFF(ArmLocalTimer, iTimerIntStatus));	// clear timer event flag
 	asm("do_resched_ipi: ");
@@ -214,16 +211,6 @@
 	ARM_SEV;							// kick any CPUs waiting for us to enter the ISR
 	asm("b		1b ");
 
-	asm("do_indirect_powerdown_ipi: ");
-	asm("str	r0, [r6, #%a0]" : : "i" _FOFF(GicCpuIfc, iEoi));		// acknowledge interrupt
-	__DATA_SYNC_BARRIER_Z__(r1);		// ensure writes to i_IrqCount, i_IrqNestCount, iRescheduleNeededFlag complete before SEV
-										// also ensure EOI is written before we return from the interrupt
-	ARM_SEV;							// kick any CPUs waiting for us to enter the ISR
-	asm("stmfd	sp!, {r0-r3,r12,lr} ");
-	asm("bl		call_ipd_handler ");
-	asm("ldmfd	sp!, {r0-r3,r12,lr} ");
-	asm("b		1b ");
-
 	// GENERIC_IPI
 	asm("do_generic_ipi: ");
 	asm("ldr	r2, _GenericIPIIsr ");
@@ -235,9 +222,6 @@
 	asm("__DebugMsg_longjump_Irq: ");
 	asm("ldr	pc, _dmIrq ");
 
-	asm("call_ipd_handler: ");
-	asm("ldr	pc, __handle_ipd_ipi ");
-
 	asm("__reset_vector:");
 	asm(".word	__ArmVectorReset "); 
 	asm("__undef_vector:");
@@ -271,8 +255,6 @@
 #endif
 	asm("_dmIrq: ");
 	asm(".word __DebugMsgIrq ");
-	asm("__handle_ipd_ipi: ");
-	asm(".word handle_indirect_powerdown_ipi ");
 	}
 }