From: Joe M. <jo...@no...> - 2004-01-26 01:37:02
|
On Sun, Jan 25, 2004 at 04:41:01PM +0100, Michael Steil wrote: > It is my understanding that it is common in Linux to only implement the > first level in the kernel interrupt handling code, i.e. 14 sources, and > that drivers must do the rest manually. This is done because the > generic kernel interrupt code cannot be aware of all different devices > in a system - on a normal computer you can change the configuration > easily and remove or add devices, like PCI cards. On the GameCube, the > number of different interrupts is fixed; there is no way to add a > device that can trigger another interrupt, so the generic interrupt > code would already handle all interrupts at the sources and pretend > that this two-level design didn't exist. > > There are pros for each side. Presenting two levels is more the Linux > way, while linearizing the interrupts is easier for driver developers > and has no real disadvantages. I tend to prefer the Linux way, tmbinc > seems to prefer the GameCube SDK way. > > What are your opinions? If the two-stage behaviour only exists to work around a problem (reconfigurable devices) that we simply don't have here, I see no reason to stick with it. If we decide later that the kernel should support modifying the GC hardware, we can always add an "other" interrupt for each of the 14 sources. Joe |