Zach Welch <zw@superlucidity.net> fix warnings in usbprog
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 19 Apr 2009 08:15:32 +0000 (08:15 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 19 Apr 2009 08:15:32 +0000 (08:15 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@1465 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/usbprog.c

index 5d5518da97b2b456596b3c0103e28dc01a6b36dc..816668855dcc84206cd7dd73c97249b8eae9e03d 100644 (file)
@@ -347,18 +347,16 @@ void usbprog_scan(int ir_scan, enum scan_type type, u8 *buffer, int scan_size)
 
        usbprog_jtag_tms_send(usbprog_jtag_handle);
 
-       if (type == SCAN_OUT)
-       {
-               usbprog_jtag_write_tdi(usbprog_jtag_handle,buffer, scan_size);
-       }
-       if (type == SCAN_IN)
-       {
-               usbprog_jtag_read_tdo(usbprog_jtag_handle,buffer, scan_size);
-       }
-       if (type == SCAN_IO)
-       {
-               usbprog_jtag_write_and_read(usbprog_jtag_handle,buffer, scan_size);
+       void (*f)(struct usbprog_jtag *usbprog_jtag, char * buffer, int size);
+       switch (type) {
+       case SCAN_OUT: f = &usbprog_jtag_write_tdi; break;
+       case SCAN_IN: f = &usbprog_jtag_read_tdo; break;
+       case SCAN_IO: f = &usbprog_jtag_write_and_read; break;
+       default:
+               LOG_ERROR("unknown scan type: %i", type);
+               exit(-1);
        }
+       f(usbprog_jtag_handle, (char *)buffer, scan_size);
 
        if (ir_scan)
                tap_set_state(TAP_IRPAUSE);