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

Reply via email to