extmod/vfs: Add fast path for stating VfsPosix filesystem.
This commit is contained in:
parent
a93144cb65
commit
d4ce57e4e3
11
extmod/vfs.c
11
extmod/vfs.c
@ -34,6 +34,9 @@
|
|||||||
|
|
||||||
#if MICROPY_VFS
|
#if MICROPY_VFS
|
||||||
|
|
||||||
|
#if MICROPY_VFS_POSIX
|
||||||
|
#include "extmod/vfs_posix.h"
|
||||||
|
#endif
|
||||||
#if MICROPY_VFS_FAT
|
#if MICROPY_VFS_FAT
|
||||||
#include "extmod/vfs_fat.h"
|
#include "extmod/vfs_fat.h"
|
||||||
#endif
|
#endif
|
||||||
@ -124,8 +127,14 @@ mp_import_stat_t mp_vfs_import_stat(const char *path) {
|
|||||||
if (vfs == MP_VFS_NONE || vfs == MP_VFS_ROOT) {
|
if (vfs == MP_VFS_NONE || vfs == MP_VFS_ROOT) {
|
||||||
return MP_IMPORT_STAT_NO_EXIST;
|
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 MICROPY_VFS_FAT
|
||||||
// fast paths for known VFS types
|
|
||||||
if (mp_obj_get_type(vfs->obj) == &mp_fat_vfs_type) {
|
if (mp_obj_get_type(vfs->obj) == &mp_fat_vfs_type) {
|
||||||
return fat_vfs_import_stat(MP_OBJ_TO_PTR(vfs->obj), path_out);
|
return fat_vfs_import_stat(MP_OBJ_TO_PTR(vfs->obj), path_out);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user