On Wed, 2009-12-02 at 14:32 -0800, Zach Welch wrote: > On Wed, 2009-12-02 at 22:54 +0100, Øyvind Harboe wrote: > > >> + > > >> +/* The minidriver contains inline versions of JTAG fn's */ > > >> +#include "minidriver.h" > > >> + > > > > > > This is bad, as you are creating a new layering violation that will need > > > to be removed. You should move this #include to somewhere other than > > > what should be our public API, probably inside the C files that need it. > > > Presently, this change exposes _more_ internals, not less. > > Let me emphasize my point above: remove the #include from jtag.h. > Do not expose it outside the JTAG layer. If it is a public API too, > then you must rename the inline version and call it from a new wrapper > function in jtag/core.c. You are exposing all of the minidriver to the > entire system, and that's unacceptable. [snip] > Given these hard constraints, I recommend taking another stab at the > patch and finding a way around this. To be honest, this might reflect > fundamental design flaws with the minidriver, such that it can only be > fixed after some rather drastic re-writing of the code. If the code > relies this heavily on these optimizations, it's broken by design.
Here's one possible solution: we could #include minidriver.h -- as long as it is an empty file when installed. This means two versions of minidriver.h, one that includes the proper jtag_minidriver.h and one that is empty. In fact, I think you can rename the later to the former name, then use the -I trick. Then add a mininone/minidriver.h that is the empty file, which is included when the others aren't. Grok? -- Z _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development