]> git.sur5r.net Git - openocd/blobdiff - src/jtag/zy1000.c
jtag_get_device() now returns NULL and reports error instead of invoking exit()
[openocd] / src / jtag / zy1000.c
index 4d984f3ab0b8d880f2a788e73b3e5ee6f471083b..5ec1d8adbd197d957eb520f38f2ed897db685bc0 100644 (file)
@@ -28,8 +28,6 @@
 
 
 #include <cyg/hal/hal_io.h>             // low level i/o
-#include <cyg/hal/var_io.h>             // common registers
-#include <cyg/hal/plf_io.h>             // platform registers
 #include <cyg/hal/hal_diag.h>
 
 #include <stdlib.h>
@@ -503,6 +501,11 @@ int interface_jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_st
                int pause=i==(jtag_num_devices-1);
                int found = 0;
                device = jtag_get_device(i);
+               if (device==NULL)
+               {
+                       return ERROR_FAIL;
+               }
+
                scan_size = device->ir_length;
 
                /* search the list */
@@ -523,7 +526,7 @@ int interface_jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_st
 
                                scanFields(1, fields+j, TAP_SI, pause);
                                /* update device information */
-                               buf_cpy(fields[j].out_value, jtag_get_device(i)->cur_instr, scan_size);
+                               buf_cpy(fields[j].out_value, device->cur_instr, scan_size);
 
                                device->bypass = 0;
                                break;
@@ -541,7 +544,7 @@ int interface_jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_st
                        tmp.num_bits = scan_size;
                        scanFields(1, &tmp, TAP_SI, pause);
                        /* update device information */
-                       buf_cpy(tmp.out_value, jtag_get_device(i)->cur_instr, scan_size);
+                       buf_cpy(tmp.out_value, device->cur_instr, scan_size);
                        device->bypass = 1;
                }
        }