Why can level-triggered interrupts be shared but not edge-triggered interrupts?
Consider the scenario where an interrupt IS shared by two devices with the following scenario:


Device 1 requests service.
The processor starts serving device 1.
        Device 2 requests service.
Device 1 no longer requests service.
The processor finishes serving device 1.
        The processor starts serving device 2.


Here device 1 will assert an interrupt request in step 1. It de-asserts that request in step 5, but the request remains asserted due to step 3.

Now in step 6, if level triggered requests are used, the processor will service the other device since the request level is still asserted. With edge triggered requests, nothing will happen because there will be no new "edge" to be detected. The request remained asserted throughout the scenario. This is a failure of the interrupt system.

This is why only level triggered interrupts, in general. may be shared.