+/*
+ * Sorting of assignment entries:
+ * Primary on assignment length: smallest assignment first
+ * Secondary on assignment weight: highest weight first
+ * Finally alphabetical order of interface names
+ */
+static int prefix_assignment_cmp(const void *k1, const void *k2, void *ptr)
+{
+ const struct device_prefix_assignment *a1 = k1, *a2 = k2;
+
+ if (a1->length != a2->length)
+ return a1->length - a2->length;
+
+ if (a1->weight != a2->weight)
+ return a2->weight - a1->weight;
+
+ return strcmp(a1->name, a2->name);
+}
+