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.
Note that I'm not keen on the idea of an ABI for OpenOCD, we need more flexibility and less commitment than that, but I think the goal can be a good design influence. static inline void jtag_add_dr_out(struct jtag_tap* tap, int num_fields, const int* num_bits, const uint32_t* value, tap_state_t end_state) { assert(end_state != TAP_RESET); assert(end_state != TAP_INVALID); cmd_queue_cur_state = end_state; interface_jtag_add_dr_out(tap, num_fields, num_bits, value, end_state); } /* The minidriver must be able to inline this fn */ static inline void jtag_add_callback(jtag_callback1_t f, jtag_callback_data_t data0) { interface_jtag_add_callback(f, data0); } /* The minidriver must be able to inline this fn */ static inline void jtag_add_callback4(jtag_callback_t f, jtag_callback_data_t data0, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3) { interface_jtag_add_callback4(f, data0, data1, data2, data3); } -- Ø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