diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-AF2E227B-C5BD-5F05-98D4-7D15530161C8.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-AF2E227B-C5BD-5F05-98D4-7D15530161C8.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,42 @@ + + + + + +Interrupt::Clear()Describes the implementation of the clear function. +

The function Interrupt::Clear() is used by device drivers +to acknowledge that they have serviced the interrupt and cleared the pending +flag in the interrupt controller hardware.

+

This is useful in situations where an interrupt must be cleared explicitly +rather than as a side effect of an I/O register access, especially where the +clearing is done from generic code such as in the PC card and MMC controllers.

+

The implementation of this function is completely dependent on the interrupt +hardware.

+

In the template port, Interrupt::Clear() is implemented +in ...\template_assp\interrupts.cpp.

+EXPORT_C TInt Interrupt::Clear(TInt anId) + { + __KTRACE_OPT(KEXTENSION,Kern::Printf("Interrupt::Clear id=%d",anId)); + TInt r=KErrNone; + // if ID indicates a chained interrupt, call variant... + if (anId<0 && ((((TUint)anId)>>16)&0x7fff)<(TUint)KNumTemplateInts) + r=TemplateAssp::Variant->InterruptClear(anId); + else if ((TUint)anId>=(TUint)KNumTemplateInts) + r=KErrArgument; + else + { + // + // TO DO: (mandatory) + // + // Clear the corresponding Hardware Interrupt source + // + } + return r; + } +
\ No newline at end of file