Development Plan Proposal for Unifying Interrupt and PCI APIs
Joel Sherrill <joel@OARcorp.com>
joel.sherrill at OARcorp.com
Fri Oct 22 19:50:41 UTC 2004
Hi,
Over the past few months, I have been trying to come up with a
plan for how to neatly, cleanly and efficiently merge the various
PCI and Interrupt APIs. This is s thorn in all our sides and
difficult to explain at best.
There are a handful of problems to getting to the goal.
+ Defining a single API
+ Fixing everywhere the old API is used
+ Lack of universal knowledge on all CPUs and BSPs
+ It's intimidating :>
In short, no one is completely comfortable doing all the
work and it doesn't seem easy to subdivide or implement
incrementally.
This is what I think I have solved. THese are the
steps I have defined so far.
+ Define name/location of universal PCI and interrupt
.h files.
+ At first structure the unified PCI and IRQ file so they are
like this:
... common stuff TBD ...
#if defined(x86)
... All of do it x86 way ...
#else another CPU
... All of do it CPU way...
#endif
Remove the old files and convert to using the single .h file.
Initiate Transition chapter in BSP Guide.
+ Next address one issue that is different in the existing
APIs. Fix that and make it shared. The file now looks
like this:
... common stuff defined so far...
#if defined(x86)
... Remaining part of do it x86 way ...
#else another CPU
... Remaining part of do it CPU way...
#endif
Fix all BSPs and drivers that this SINGLE action impacted
+ Rinse and repeat previous step until complete.
I believe that the PCI API should follow that in BSD as closely
as possible.
We can argue about individual issues one at a time along the way.
Comments?
--
Joel Sherrill, Ph.D. Director of Research & Development
joel at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the users
mailing list