diff -r 89d6a7a84779 -r 25a17d01db0c Symbian3/PDK/Source/GUID-A26A3F76-54C8-5D0C-80AF-63EC9C81C050.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/PDK/Source/GUID-A26A3F76-54C8-5D0C-80AF-63EC9C81C050.dita Fri Jan 22 18:26:19 2010 +0000 @@ -0,0 +1,49 @@ + + + + + +Interrupt +Dispatcher +

This is a list of the major differences between EKA1 and EKA2:

+
    +
  • In EKA1, the generic +kernel provided the code for binding and unbinding interrupts, and for maintaining +a table of ISRs in the generic kernel. This was done through functions in +the TInterrupt class, which no longer exists in EKA2.

    In +EKA2, this is all implemented in the port

  • +
  • In EKA1, is was possible +to bind multiple interrupt service routines to a single interrupt source through +a call to the TInterrupt::Bind() function and specifying +the appropriate value of TBindBehaviour.

    In EKA2, +only one ISR per interrupt source is permitted.

  • +
  • In EKA1, ISRs were implementations +of the TInterrupt::Service() function, defined as pure virtual +in TInterrupt.

    In EKA2, an ISR is a bare function, +not a class member. The functions for enabling, disabling and clearing interrupts +are now defined in a single, static, class called Interrupt. +Symbian platform defines this class, but does not provide a default implementation; +instead, the port must provide an implementation, and this is invariably in +the ASSP layer.

  • +
  • In EKA1, interrupts +were identified by a text string defined in the ASSP layer and had to be translated +by the layer into a vector number that indexed into the interrupt vector table.

    In +EKA2, interrupts are now identified by a simple TInt value +defined by the port.

  • +
  • In EKA1, it was difficult +to implement support for chained, pseudo or external variant interrupts.

    In +EKA2, it is much easier because you can bind an ISR that is itself a dispatcher.

  • +
  • IN EKA1, there was no +clear policy for dealing with spurious interrupts. Any spurious interrupt +would be consumed and an attempt made to disable it in hardware.

    In +EKA2, all interrupt sources are, by default, bound to the spurious interrupts +handler, which is intended to raise a panic so that spurious interrupts are +not overlooked during testing.

  • +
+
\ No newline at end of file