aboutsummaryrefslogtreecommitdiff
path: root/extmod/vfs_fat.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2019-09-07 14:03:41 +1000
committerDamien George <damien.p.george@gmail.com>2019-10-29 12:12:37 +1100
commit9aabb6c01ba4166bb389e28b55f21614fca5aa7f (patch)
tree86f6fa790f32bdcd612d5f3024eae267cb1c4321 /extmod/vfs_fat.c
parentece4e21a55609163466d96875c60bb7f1556c468 (diff)
extmod: Factor out block-device struct to make independent of fatfs.
Diffstat (limited to 'extmod/vfs_fat.c')
-rw-r--r--extmod/vfs_fat.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/extmod/vfs_fat.c b/extmod/vfs_fat.c
index ec7aaed38..dcfb677b1 100644
--- a/extmod/vfs_fat.c
+++ b/extmod/vfs_fat.c
@@ -68,27 +68,27 @@ STATIC mp_obj_t fat_vfs_make_new(const mp_obj_type_t *type, size_t n_args, size_
// create new object
fs_user_mount_t *vfs = m_new_obj(fs_user_mount_t);
vfs->base.type = type;
- vfs->flags = FSUSER_FREE_OBJ;
+ vfs->blockdev.flags = MP_BLOCKDEV_FLAG_FREE_OBJ;
vfs->fatfs.drv = vfs;
// load block protocol methods
- mp_load_method(args[0], MP_QSTR_readblocks, vfs->readblocks);
- mp_load_method_maybe(args[0], MP_QSTR_writeblocks, vfs->writeblocks);
- mp_load_method_maybe(args[0], MP_QSTR_ioctl, vfs->u.ioctl);
- if (vfs->u.ioctl[0] != MP_OBJ_NULL) {
+ mp_load_method(args[0], MP_QSTR_readblocks, vfs->blockdev.readblocks);
+ mp_load_method_maybe(args[0], MP_QSTR_writeblocks, vfs->blockdev.writeblocks);
+ mp_load_method_maybe(args[0], MP_QSTR_ioctl, vfs->blockdev.u.ioctl);
+ if (vfs->blockdev.u.ioctl[0] != MP_OBJ_NULL) {
// device supports new block protocol, so indicate it
- vfs->flags |= FSUSER_HAVE_IOCTL;
+ vfs->blockdev.flags |= MP_BLOCKDEV_FLAG_HAVE_IOCTL;
} else {
// no ioctl method, so assume the device uses the old block protocol
- mp_load_method_maybe(args[0], MP_QSTR_sync, vfs->u.old.sync);
- mp_load_method(args[0], MP_QSTR_count, vfs->u.old.count);
+ mp_load_method_maybe(args[0], MP_QSTR_sync, vfs->blockdev.u.old.sync);
+ mp_load_method(args[0], MP_QSTR_count, vfs->blockdev.u.old.count);
}
// mount the block device so the VFS methods can be used
FRESULT res = f_mount(&vfs->fatfs);
if (res == FR_NO_FILESYSTEM) {
// don't error out if no filesystem, to let mkfs()/mount() create one if wanted
- vfs->flags |= FSUSER_NO_FILESYSTEM;
+ vfs->blockdev.flags |= MP_BLOCKDEV_FLAG_NO_FILESYSTEM;
} else if (res != FR_OK) {
mp_raise_OSError(fresult_to_errno_table[res]);
}
@@ -380,11 +380,11 @@ STATIC mp_obj_t vfs_fat_mount(mp_obj_t self_in, mp_obj_t readonly, mp_obj_t mkfs
// 1. readonly=True keyword argument
// 2. nonexistent writeblocks method (then writeblocks[0] == MP_OBJ_NULL already)
if (mp_obj_is_true(readonly)) {
- self->writeblocks[0] = MP_OBJ_NULL;
+ self->blockdev.writeblocks[0] = MP_OBJ_NULL;
}
// check if we need to make the filesystem
- FRESULT res = (self->flags & FSUSER_NO_FILESYSTEM) ? FR_NO_FILESYSTEM : FR_OK;
+ FRESULT res = (self->blockdev.flags & MP_BLOCKDEV_FLAG_NO_FILESYSTEM) ? FR_NO_FILESYSTEM : FR_OK;
if (res == FR_NO_FILESYSTEM && mp_obj_is_true(mkfs)) {
uint8_t working_buf[FF_MAX_SS];
res = f_mkfs(&self->fatfs, FM_FAT | FM_SFD, 0, working_buf, sizeof(working_buf));
@@ -392,7 +392,7 @@ STATIC mp_obj_t vfs_fat_mount(mp_obj_t self_in, mp_obj_t readonly, mp_obj_t mkfs
if (res != FR_OK) {
mp_raise_OSError(fresult_to_errno_table[res]);
}
- self->flags &= ~FSUSER_NO_FILESYSTEM;
+ self->blockdev.flags &= ~MP_BLOCKDEV_FLAG_NO_FILESYSTEM;
return mp_const_none;
}