+#if CONFIG_IS_ENABLED(DFU_MTD)
+extern int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr,
+ char **argv, int argc);
+#else
+static inline int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr,
+ char **argv, int argc)
+{
+ puts("MTD support not available!\n");
+ return -1;
+}
+#endif
+
+#if CONFIG_IS_ENABLED(DFU_VIRT)
+int dfu_fill_entity_virt(struct dfu_entity *dfu, char *devstr,
+ char **argv, int argc);
+int dfu_write_medium_virt(struct dfu_entity *dfu, u64 offset,
+ void *buf, long *len);
+int dfu_get_medium_size_virt(struct dfu_entity *dfu, u64 *size);
+int dfu_read_medium_virt(struct dfu_entity *dfu, u64 offset,
+ void *buf, long *len);
+#else
+static inline int dfu_fill_entity_virt(struct dfu_entity *dfu, char *devstr,
+ char **argv, int argc)
+{
+ puts("VIRT support not available!\n");
+ return -1;
+}
+#endif
+
+extern bool dfu_reinit_needed;
+
+#if CONFIG_IS_ENABLED(DFU_WRITE_ALT)