}
 
 #ifdef CYGPKG_PROFILE_GPROF
-extern void start_profile();
+extern void start_profile(void);
 
 int eCosBoard_handle_eCosBoard_profile_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
 
 #endif
 
-externC void phi_init_all_network_interfaces();
+externC void phi_init_all_network_interfaces(void);
 
 command_context_t *cmd_ctx;
 
 static bool webRunning = false;
 
-void keep_webserver()
+void keep_webserver(void)
 {
        // Target initialisation is only attempted at startup, so we sleep forever and
        // let the http server bail us out(i.e. get config files set up).
                (CYG_ADDRWORD) &filedata[0] );
 #endif
 
-void openocd_sleep_prelude()
+void openocd_sleep_prelude(void)
 {
        cyg_mutex_unlock(&httpstate.jim_lock);
 }
 
-void openocd_sleep_postlude()
+void openocd_sleep_postlude(void)
 {
        cyg_mutex_lock(&httpstate.jim_lock);
 }
 
 extern Jim_Interp *interp;
 
-static void zylinjtag_startNetwork()
+static void zylinjtag_startNetwork(void)
 {
        // Bring TCP/IP up immediately before we're ready to accept commands.
        //
 int boolParam(char *var);
 
 
-command_context_t *setup_command_handler();
+command_context_t *setup_command_handler(void);
 
 extern const char *zylin_config_dir;
 
 
        return ERROR_OK;
 }
 
-static bool readPowerDropout()
+static bool readPowerDropout(void)
 {
        cyg_uint32 state;
        // sample and clear power dropout
 }
 
 
-static bool readSRST()
+static bool readSRST(void)
 {
        cyg_uint32 state;
        // sample and clear SRST sensing
        return -1;
 }
 
-extern bool readSRST();
+extern bool readSRST(void);
 
 void zy1000_reset(int trst, int srst)
 {
 
 
 
-static cyg_uint32 getShiftValue()
+static cyg_uint32 getShiftValue(void)
 {
        cyg_uint32 value;
        waitIdle();
        return value;
 }
 #if 0
-static cyg_uint32 getShiftValueFlip()
+static cyg_uint32 getShiftValueFlip(void)
 {
        cyg_uint32 value;
        waitIdle();
 
 extern int jtag_check_value(u8 *captured, void *priv);
 
-static void gotoEndState()
+static void gotoEndState(void)
 {
        setCurrentState(cmd_queue_end_state);
 }
        return ERROR_OK;
 }
 
-int interface_jtag_add_runtest(int num_cycles, enum tap_state state)
+static int zy1000_jtag_add_clocks(int num_cycles, enum tap_state state, enum tap_state clockstate)
 {
        /* num_cycles can be 0 */
-       setCurrentState(TAP_IDLE);
+       setCurrentState(clockstate);
 
        /* execute num_cycles, 32 at the time. */
        int i;
                {
                        num=num_cycles-i;
                }
-               shiftValueInner(TAP_IDLE, TAP_IDLE, num, 0);
+               shiftValueInner(clockstate, clockstate, num, 0);
        }
 
 #if !TEST_MANUAL()
        return ERROR_OK;
 }
 
+int interface_jtag_add_runtest(int num_cycles, enum tap_state state)
+{
+       return zy1000_jtag_add_clocks(num_cycles, state, TAP_IDLE);
+}
+
+int interface_jtag_add_clocks(int num_cycles)
+{
+       return zy1000_jtag_add_clocks(num_cycles, cmd_queue_cur_state, cmd_queue_end_state);
+}
+
 int interface_jtag_add_sleep(u32 us)
 {
        jtag_sleep(us);
        free(name);
        return result;
 }
+
+