From 6308506276d09cde14be2985c0c5a59adc0addc6 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Sat, 17 Jul 2021 22:24:41 +0200 Subject: [PATCH] jtag: Make jtag_devs argument to jtag_handler. --- src/platforms/hosted/stlinkv2.c | 2 +- src/target/adiv5.h | 2 +- src/target/adiv5_jtagdp.c | 6 +++--- src/target/jtag_devs.h | 2 +- src/target/jtag_scan.c | 6 +++--- src/target/jtag_scan.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/platforms/hosted/stlinkv2.c b/src/platforms/hosted/stlinkv2.c index 211ad10..5dd99dd 100644 --- a/src/platforms/hosted/stlinkv2.c +++ b/src/platforms/hosted/stlinkv2.c @@ -1008,7 +1008,7 @@ int jtag_scan_stlinkv2(bmp_info_t *info, const uint8_t *irlens) if((jtag_devs[i].jd_idcode & dev_descr[j].idmask) == dev_descr[j].idcode) { if(dev_descr[j].handler) - dev_descr[j].handler(i, dev_descr[j].idcode); + dev_descr[j].handler(&jtag_devs[i]); break; } diff --git a/src/target/adiv5.h b/src/target/adiv5.h index 890f824..2c58d02 100644 --- a/src/target/adiv5.h +++ b/src/target/adiv5.h @@ -290,7 +290,7 @@ void adiv5_ap_ref(ADIv5_AP_t *ap); void adiv5_ap_unref(ADIv5_AP_t *ap); void platform_add_jtag_dev(const int dev_index, const jtag_dev_t *jtag_dev); -void adiv5_jtag_dp_handler(uint8_t jd_index, uint32_t j_idcode); +void adiv5_jtag_dp_handler(jtag_dev_t *jd); int platform_jtag_dp_init(ADIv5_DP_t *dp); int swdptap_init(ADIv5_DP_t *dp); diff --git a/src/target/adiv5_jtagdp.c b/src/target/adiv5_jtagdp.c index 2c87dc7..5273746 100644 --- a/src/target/adiv5_jtagdp.c +++ b/src/target/adiv5_jtagdp.c @@ -39,7 +39,7 @@ static uint32_t adiv5_jtagdp_error(ADIv5_DP_t *dp); -void adiv5_jtag_dp_handler(uint8_t jd_index, uint32_t j_idcode) +void adiv5_jtag_dp_handler(jtag_dev_t *jd) { ADIv5_DP_t *dp = (void*)calloc(1, sizeof(*dp)); if (!dp) { /* calloc failed: heap exhaustion */ @@ -47,8 +47,8 @@ void adiv5_jtag_dp_handler(uint8_t jd_index, uint32_t j_idcode) return; } - dp->dp_jd_index = jd_index; - dp->idcode = j_idcode; + dp->dp_jd_index = jd->jd_dev; + dp->idcode = jd->jd_idcode; if ((PC_HOSTED == 0 ) || (!platform_jtag_dp_init(dp))) { dp->dp_read = fw_adiv5_jtagdp_read; dp->error = adiv5_jtagdp_error; diff --git a/src/target/jtag_devs.h b/src/target/jtag_devs.h index 8c2c0b5..8f87798 100644 --- a/src/target/jtag_devs.h +++ b/src/target/jtag_devs.h @@ -22,7 +22,7 @@ typedef const struct jtag_dev_descr_s { const uint32_t idcode; const uint32_t idmask; const char * const descr; - void (*const handler)(uint8_t jd_index, uint32_t j_idcode); + void (*const handler)(jtag_dev_t *jd); } jtag_dev_descr_t; extern jtag_dev_descr_t dev_descr[]; diff --git a/src/target/jtag_scan.c b/src/target/jtag_scan.c index d1c7eca..eb1efc8 100644 --- a/src/target/jtag_scan.c +++ b/src/target/jtag_scan.c @@ -29,7 +29,7 @@ #include "target.h" #include "adiv5.h" -struct jtag_dev_s jtag_devs[JTAG_MAX_DEVS+1]; +jtag_dev_t jtag_devs[JTAG_MAX_DEVS+1]; int jtag_dev_count; /* bucket of ones for don't care TDI */ @@ -64,7 +64,7 @@ void jtag_add_device(const int dev_index, const jtag_dev_t *jtag_dev) int jtag_scan(const uint8_t *irlens) { int i; - void (*jd_handlers[JTAG_MAX_DEVS])(uint8_t jd_index, uint32_t j_idcode); + void (*jd_handlers[JTAG_MAX_DEVS])(jtag_dev_t *jd); target_list_free(); memset(jd_handlers, 0, sizeof(jd_handlers)); @@ -220,7 +220,7 @@ int jtag_scan(const uint8_t *irlens) for(i = 0; i < jtag_dev_count; i++) /* Call handler to initialise/probe device further */ if (jd_handlers[i]) - jd_handlers[i](i, jtag_devs[i].jd_idcode); + jd_handlers[i](&jtag_devs[i]); return jtag_dev_count; } diff --git a/src/target/jtag_scan.h b/src/target/jtag_scan.h index cc6d361..bc76e0b 100644 --- a/src/target/jtag_scan.h +++ b/src/target/jtag_scan.h @@ -40,7 +40,7 @@ typedef struct jtag_dev_s { uint32_t current_ir; } jtag_dev_t; -extern struct jtag_dev_s jtag_devs[JTAG_MAX_DEVS+1]; +extern jtag_dev_t jtag_devs[JTAG_MAX_DEVS+1]; extern int jtag_dev_count; void jtag_dev_write_ir(jtag_proc_t *jp, uint8_t jd_index, uint32_t ir);