Interrupt vector sharing
gregory.menke at gsfc.nasa.gov
gregory.menke at gsfc.nasa.gov
Fri Mar 14 13:49:54 UTC 2003
Chris Johns writes:
> gregory.menke at gsfc.nasa.gov wrote:
>
> > I've been thinking a bit about how to handle the shared interrupt
> > issue. It seems to me the existing powerpc/shared irq handling code
> > could be augmented to include a new function;
> >
> > int BSP_install_rtems_shared_irq_handler
> > (const rtems_irq_connect_data* irq)
>
> What about "BSP_install_rtems_add_handler" ?
The routine already in place for single handler vectors is
int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq)
>
> This is what Solaris's DDI uses. See:
>
> http://docs.sun.com/db/doc/801-6680-9F/6i11r903r?a=view
>
> If shared ints are not supported, only allow one addition and return an error if more
> are made.
I was creating the function name to be analgous to the one already
there. I wouldn't be opposed to simply converting the existing
function to support shared vectors, however the existing api implies a
single handler per vector and I didn't want to violate that
assumption.
>
> Why is BSP_* used ?
>
> Would CPU_* have been a better prefix to use ?
BSP_* is used so it matches the existing vector API. At some point
we'll have an integrated vectoring api, so the names will change anyhow.
> > Unless there are strong objections, I think I'll give the
> > modifications a try.
>
> I am not objecting, just tring to keep the growth of new functions for specific cases
> when maybe one could be used.
The set of routines this function would be implemented in is
lib/libbsp/powerpc/shared/irq/irq.c
which gives all the shared powerpc bsp's their irq support. If I
understand things correctly, at least some of the i386 bsp's have a
very similar api. This really needs to be integrated at some point...
Gregm
More information about the users
mailing list