target/arm_dap: clean up dap_configure code
dap_configure() contained first time init related tasks, as the call to dap_init_instance() and the check for configured tap. Move all first time init related stuff to dap_create() to make dap_configure() usable in eventual stand-alone 'dap configure' command. Change-Id: Ia86eadb4e960ce54e8581630d01af75720d2318d Signed-off-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-on: https://review.openocd.org/c/openocd/+/6702 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
This commit is contained in:
parent
81afe6e3fd
commit
bb78fa10c7
|
@ -165,11 +165,10 @@ static const struct jim_nvp nvp_config_opts[] = {
|
|||
|
||||
static int dap_configure(struct jim_getopt_info *goi, struct arm_dap_object *dap)
|
||||
{
|
||||
struct jtag_tap *tap = NULL;
|
||||
struct jim_nvp *n;
|
||||
int e;
|
||||
|
||||
/* parse config or cget options ... */
|
||||
/* parse config ... */
|
||||
while (goi->argc > 0) {
|
||||
Jim_SetEmptyResult(goi->interp);
|
||||
|
||||
|
@ -184,11 +183,14 @@ static int dap_configure(struct jim_getopt_info *goi, struct arm_dap_object *dap
|
|||
e = jim_getopt_obj(goi, &o_t);
|
||||
if (e != JIM_OK)
|
||||
return e;
|
||||
|
||||
struct jtag_tap *tap;
|
||||
tap = jtag_tap_by_jim_obj(goi->interp, o_t);
|
||||
if (!tap) {
|
||||
Jim_SetResultString(goi->interp, "-chain-position is invalid", -1);
|
||||
return JIM_ERR;
|
||||
}
|
||||
dap->dap.tap = tap;
|
||||
/* loop for more */
|
||||
break;
|
||||
}
|
||||
|
@ -200,14 +202,6 @@ static int dap_configure(struct jim_getopt_info *goi, struct arm_dap_object *dap
|
|||
}
|
||||
}
|
||||
|
||||
if (!tap) {
|
||||
Jim_SetResultString(goi->interp, "-chain-position required when creating DAP", -1);
|
||||
return JIM_ERR;
|
||||
}
|
||||
|
||||
dap_instance_init(&dap->dap);
|
||||
dap->dap.tap = tap;
|
||||
|
||||
return JIM_OK;
|
||||
}
|
||||
|
||||
|
@ -242,15 +236,21 @@ static int dap_create(struct jim_getopt_info *goi)
|
|||
if (!dap)
|
||||
return JIM_ERR;
|
||||
|
||||
e = dap_configure(goi, dap);
|
||||
if (e != JIM_OK) {
|
||||
free(dap);
|
||||
return e;
|
||||
}
|
||||
dap_instance_init(&dap->dap);
|
||||
|
||||
cp = Jim_GetString(new_cmd, NULL);
|
||||
dap->name = strdup(cp);
|
||||
|
||||
e = dap_configure(goi, dap);
|
||||
if (e != JIM_OK)
|
||||
goto err;
|
||||
|
||||
if (!dap->dap.tap) {
|
||||
Jim_SetResultString(goi->interp, "-chain-position required when creating DAP", -1);
|
||||
e = JIM_ERR;
|
||||
goto err;
|
||||
}
|
||||
|
||||
struct command_registration dap_commands[] = {
|
||||
{
|
||||
.name = cp,
|
||||
|
@ -268,14 +268,18 @@ static int dap_create(struct jim_getopt_info *goi)
|
|||
|
||||
e = register_commands_with_data(cmd_ctx, NULL, dap_commands, dap);
|
||||
if (e != ERROR_OK) {
|
||||
free(dap->name);
|
||||
free(dap);
|
||||
return JIM_ERR;
|
||||
e = JIM_ERR;
|
||||
goto err;
|
||||
}
|
||||
|
||||
list_add_tail(&dap->lh, &all_dap);
|
||||
|
||||
return JIM_OK;
|
||||
|
||||
err:
|
||||
free(dap->name);
|
||||
free(dap);
|
||||
return e;
|
||||
}
|
||||
|
||||
static int jim_dap_create(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
|
||||
|
|
Loading…
Reference in New Issue