+#if CONFIG_IS_ENABLED(DFU_SF)
+extern int dfu_fill_entity_sf(struct dfu_entity *dfu, char *devstr, char *s);
+#else
+static inline int dfu_fill_entity_sf(struct dfu_entity *dfu, char *devstr,
+ char *s)
+{
+ puts("SF support not available!\n");
+ return -1;
+}
+#endif
+
+#if CONFIG_IS_ENABLED(DFU_MTD)
+int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr, char *s);
+#else
+static inline int dfu_fill_entity_mtd(struct dfu_entity *dfu, char *devstr,
+ char *s)
+{
+ puts("MTD support not available!\n");
+ return -1;
+}
+#endif
+
+#ifdef CONFIG_DFU_VIRT
+int dfu_fill_entity_virt(struct dfu_entity *dfu, char *devstr, char *s);
+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 *s)
+{
+ puts("VIRT support not available!\n");
+ return -1;
+}
+#endif
+
+/**
+ * dfu_tftp_write() - write TFTP data to DFU medium
+ *
+ * This function is storing data received via TFTP on DFU supported medium.
+ *
+ * @dfu_entity_name: name of DFU entity to write
+ * @addr: address of data buffer to write
+ * @len: number of bytes
+ * @interface: destination DFU medium (e.g. "mmc")
+ * @devstring: instance number of destination DFU medium (e.g. "1")
+ *
+ * Return: 0 on success, otherwise error code
+ */
+#if CONFIG_IS_ENABLED(DFU_TFTP)
+int dfu_tftp_write(char *dfu_entity_name, unsigned int addr, unsigned int len,
+ char *interface, char *devstring);
+#else
+static inline int dfu_tftp_write(char *dfu_entity_name, unsigned int addr,
+ unsigned int len, char *interface,
+ char *devstring)
+{
+ puts("TFTP write support for DFU not available!\n");
+ return -ENOSYS;
+}
+#endif
+