int dfu_flush_medium_mmc(struct dfu_entity *dfu) { int ret = 0; if (dfu->layout != DFU_RAW_ADDR) { /* Do stuff here. */ ret = mmc_file_op(DFU_OP_WRITE, dfu, &dfu_file_buf, &dfu_file_buf_len); /* Now that we're done */ dfu_file_buf_len = 0; } return ret; }
int dfu_read_medium_mmc(struct dfu_entity *dfu, u64 offset, void *buf, long *len) { int ret = -1; switch (dfu->layout) { case DFU_RAW_ADDR: ret = mmc_block_op(DFU_OP_READ, dfu, offset, buf, len); break; case DFU_FS_FAT: case DFU_FS_EXT4: ret = mmc_file_op(DFU_OP_READ, dfu, buf, len); break; default: printf("%s: Layout (%s) not (yet) supported!\n", __func__, dfu_get_layout(dfu->layout)); } return ret; }
static inline int mmc_file_read(struct dfu_entity *dfu, void *buf, long *len) { return mmc_file_op(DFU_OP_READ, dfu, buf, len); }
static inline int mmc_file_write(struct dfu_entity *dfu, void *buf, long *len) { return mmc_file_op(DFU_OP_WRITE, dfu, buf, len); }