+struct pmenu_item *pmenu_find_device(struct pmenu *menu, struct device *dev,
+ struct boot_option *opt)
+{
+ struct pmenu_item *item, *dev_hdr = NULL;
+ struct cui *cui = cui_from_pmenu(menu);
+ bool newdev = true, matched = false;
+ struct interface_info *intf;
+ struct blockdev_info *bd;
+ struct cui_opt_data *cod;
+ struct system_info *sys;
+ char hwaddr[32];
+ unsigned int i;
+ char buf[256];
+
+ for (i = 0; i < menu->item_count; i++) {
+ item = item_userptr(menu->items[i]);
+ cod = item->data;
+ /* boot entries will have opt defined */
+ if (!cod || cod->opt)
+ continue;
+ if (cod->dev == dev) {
+ pb_debug("%s: opt %s fits under %s\n",__func__,
+ opt->name, opt->device_id);
+ newdev = false;
+ break;
+ }
+ }
+
+ if (!newdev) {
+ pb_debug("%s: No new device\n",__func__);
+ return NULL;