transport: store the transports sorted by alphabetic name order

While this operation has no real interest so far, it will be used
later to avoid listing twice protocols with the same name.

Change-Id: I59f3634830f94dc992d28863cf29d5d869726918
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8685
Tested-by: jenkins
Reviewed-by: zapb <dev@zapb.de>
This commit is contained in:
Antonio Borneo
2024-12-31 17:01:41 +01:00
parent 9643379d30
commit 98c09dc257
+9 -3
View File
@@ -59,7 +59,7 @@ static const struct {
{ TRANSPORT_SWIM, "swim", },
};
/** List of transports registered in OpenOCD. */
/** List of transports registered in OpenOCD, alphabetically sorted per name. */
static OOCD_LIST_HEAD(transport_list);
/**
@@ -207,8 +207,14 @@ int transport_register(struct transport *new_transport)
LOG_ERROR("invalid transport %s",
transport_name(new_transport->id));
/* splice this into the list */
list_add(&new_transport->lh, &transport_list);
/* splice this into the list, sorted in alphabetic order */
list_for_each_entry(t, &transport_list, lh) {
if (strcmp(transport_name(t->id),
transport_name(new_transport->id)) >= 0)
break;
}
list_add_tail(&new_transport->lh, &t->lh);
LOG_DEBUG("register '%s' (ID %d)",
transport_name(new_transport->id), new_transport->id);