kernel/eka/nkern/arm/ncutils.cpp
branchRCL_3
changeset 43 c1f20ce4abcf
parent 0 a41df078684a
child 44 3e88ff8f41d5
--- a/kernel/eka/nkern/arm/ncutils.cpp	Thu Aug 19 11:14:22 2010 +0300
+++ b/kernel/eka/nkern/arm/ncutils.cpp	Tue Aug 31 16:34:26 2010 +0300
@@ -84,6 +84,21 @@
 	ArmInterruptInfo.iFiqHandler=aHandler;
 	}
 
+/** Register the global Idle handler
+	Called by the base port at boot time to register a handler containing a pointer to
+	a function that is called by the Kernel when each core reaches idle.
+	Should not be called at any other time.
+
+	@param	aHandler Pointer to idle handler function
+	@param	aPtr Idle handler function argument
+*/
+EXPORT_C void Arm::SetIdleHandler(TCpuIdleHandlerFn aHandler, TAny* aPtr)
+	{
+	ArmInterruptInfo.iCpuIdleHandler.iHandler = aHandler;
+	ArmInterruptInfo.iCpuIdleHandler.iPtr = aPtr;
+	ArmInterruptInfo.iCpuIdleHandler.iPostambleRequired = EFalse;
+	}
+
 extern void initialiseState();
 void Arm::Init1Interrupts()
 //