summaryrefslogtreecommitdiff
path: root/extmod/vfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'extmod/vfs.c')
-rw-r--r--extmod/vfs.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/extmod/vfs.c b/extmod/vfs.c
index 96d5019b3..77531b874 100644
--- a/extmod/vfs.c
+++ b/extmod/vfs.c
@@ -34,9 +34,6 @@
#if MICROPY_VFS
-#if MICROPY_VFS_POSIX
-#include "extmod/vfs_posix.h"
-#endif
#if MICROPY_VFS_FAT
#include "extmod/vfs_fat.h"
#endif
@@ -128,17 +125,11 @@ mp_import_stat_t mp_vfs_import_stat(const char *path) {
return MP_IMPORT_STAT_NO_EXIST;
}
- // Fast paths for known VFS types
- #if MICROPY_VFS_POSIX
- if (mp_obj_get_type(vfs->obj) == &mp_type_vfs_posix) {
- return mp_vfs_posix_import_stat(MP_OBJ_TO_PTR(vfs->obj), path_out);
- }
- #endif
- #if MICROPY_VFS_FAT
- if (mp_obj_get_type(vfs->obj) == &mp_fat_vfs_type) {
- return fat_vfs_import_stat(MP_OBJ_TO_PTR(vfs->obj), path_out);
+ // If the mounted object has the VFS protocol, call its import_stat helper
+ const mp_vfs_proto_t *proto = mp_obj_get_type(vfs->obj)->protocol;
+ if (proto != NULL) {
+ return proto->import_stat(MP_OBJ_TO_PTR(vfs->obj), path_out);
}
- #endif
// delegate to vfs.stat() method
mp_obj_t path_o = mp_obj_new_str(path_out, strlen(path_out));