summaryrefslogtreecommitdiff
path: root/extmod/vfs_fat.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-02-28 17:17:24 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-02-28 17:17:24 +0200
commitcd6d189f48ccb02761ee286e1254c764ee732d7f (patch)
tree851f2f65ee10270722ffc4f245c64074e46338c0 /extmod/vfs_fat.c
parent8a180845711d881d31876a43259092eaf03268f7 (diff)
extmod/vfs_fat: Move listdir() method from stmhal for reuse.
Diffstat (limited to 'extmod/vfs_fat.c')
-rw-r--r--extmod/vfs_fat.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/extmod/vfs_fat.c b/extmod/vfs_fat.c
index b408dca0c..77662ba98 100644
--- a/extmod/vfs_fat.c
+++ b/extmod/vfs_fat.c
@@ -58,9 +58,26 @@ STATIC mp_obj_t fat_vfs_open(size_t n_args, const mp_obj_t *args, mp_map_t *kwar
}
MP_DEFINE_CONST_FUN_OBJ_KW(fat_vfs_open_obj, 2, fat_vfs_open);
+STATIC mp_obj_t fat_vfs_listdir_func(size_t n_args, const mp_obj_t *args) {
+ bool is_str_type = true;
+ const char *path;
+ if (n_args == 2) {
+ if (mp_obj_get_type(args[1]) == &mp_type_bytes) {
+ is_str_type = false;
+ }
+ path = mp_obj_str_get_str(args[1]);
+ } else {
+ path = "";
+ }
+
+ return fat_vfs_listdir(path, is_str_type);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(fat_vfs_listdir_obj, 1, 2, fat_vfs_listdir_func);
+
STATIC const mp_rom_map_elem_t fat_vfs_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_mkfs), MP_ROM_PTR(&fat_vfs_mkfs_obj) },
{ MP_ROM_QSTR(MP_QSTR_open), MP_ROM_PTR(&fat_vfs_open_obj) },
+ { MP_ROM_QSTR(MP_QSTR_listdir), MP_ROM_PTR(&fat_vfs_listdir_obj) },
};
STATIC MP_DEFINE_CONST_DICT(fat_vfs_locals_dict, fat_vfs_locals_dict_table);