On Thu, Dec 3, 2009 at 10:36 AM, Zach Welch <z...@superlucidity.net> wrote: > On Thu, 2009-12-03 at 10:22 +0100, Øyvind Harboe wrote: >> (Ref. discussion I think we've settled that the minidriver can either >> implement an ABI or use inlining for performance.) >> >> On Thu, Dec 3, 2009 at 10:11 AM, Zach Welch <z...@superlucidity.net> wrote: >> > On Thu, 2009-12-03 at 09:53 +0100, Øyvind Harboe wrote: >> >> So the minidriver (including classic API) must have control over whether >> >> or >> >> not the following fn's gets inlined or not. These fn's really are in the >> >> inner >> >> loops and boil away to *nothing* on a low performance low latency >> >> system. >> > >> > And they should now, after my patches. I want to see yours again, >> > updated against the current master. :) >> >> I have an automake problem / include file problem I don't know how >> to solve in a pretty fashion: >> >> jtag.h needs to include a minidriver_inline.h for the active minidriver. >> How to do that? > > You should not need to add any new files at this point: > > jtag/minidriver.h includes "minidriver_imp.h": > jtag/drivers/minidriver_imp.h -->> the driver's implementation > jtag/minidriver/minidriver_imp.h -->> the minidriver's implementation > > The minidriver's implementaiton includes "jtag_minidriver.h", which is > defined by the implementation: > > jtag/minidummy/jtag_minidriver.h > jtag/zy1000/jtag_minidriver.h > > Put stuff in these files... Do not put new inline functions in > jtag/jtag.h. jtag/minidriver.h, or jtag/drivers/minidriver_imp.h.
To get inlining to work, I need to make a few fn's in core.c inline fn's too. Take jtag_add_dr_out() as an example. jtag_add_dr_out() must be defined after including jtag.h. This means jtag.h must include the inline version of interface_jtag_add_dr_out(). So.... yes... I need to figure out a way for minidrivers to expose, via jtag.h, the inline implementations. The driver minidriver should be able to implement jtag_add_dr_out() as a non-inlined function in order to be able to support an ABI at that level. > Look at my mirror. Go there right now. :) I've mentioned my 'hdr' and > 'tests' branches a few times. You haven't looked at them, or you > wouldn't be asking this question. That work is now on my master branch, > queued to be pushed. Rights... I recall those changes. Yes that's a good cleanup. I protest when you are doing cleanup work that causes problems, but not comment when it looks all good. I think I want to wait with the minidriver work until you have the hdr branch pushed. -- Øyvind Harboe US toll free 1-866-980-3434 / International +47 51 63 25 00 http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development