Jelajahi Sumber

update moduos_file.c moduos_file.h

SummerGift 8 tahun lalu
induk
melakukan
a1c19e1b80
2 mengubah file dengan 48 tambahan dan 63 penghapusan
  1. 21 21
      port/moduos_file.c
  2. 27 42
      port/moduos_file.h

+ 21 - 21
port/moduos_file.c

@@ -34,35 +34,35 @@
 
 
 #if MICROPY_MODUOS_FILE
 #if MICROPY_MODUOS_FILE
 
 
-mp_obj_t mp_vfs_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
+mp_obj_t mp_posix_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
 
 
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_KW(mp_vfs_mount_obj, 2, mp_vfs_mount);
+MP_DEFINE_CONST_FUN_OBJ_KW(mp_posix_mount_obj, 2, mp_posix_mount);
 
 
-mp_obj_t mp_vfs_umount(mp_obj_t mnt_in) {
+mp_obj_t mp_posix_umount(mp_obj_t mnt_in) {
 
 
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_1(mp_vfs_umount_obj, mp_vfs_umount);
+MP_DEFINE_CONST_FUN_OBJ_1(mp_posix_umount_obj, mp_posix_umount);
 
 
-mp_obj_t mp_vfs_chdir(mp_obj_t path_in) {
+mp_obj_t mp_posix_chdir(mp_obj_t path_in) {
     char *changepath = mp_obj_str_get_str(path_in);
     char *changepath = mp_obj_str_get_str(path_in);
     if (chdir(changepath) != 0) {
     if (chdir(changepath) != 0) {
         rt_kprintf("No such directory: %s\n", changepath);
         rt_kprintf("No such directory: %s\n", changepath);
     }
     }
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_1(mp_vfs_chdir_obj, mp_vfs_chdir);
+MP_DEFINE_CONST_FUN_OBJ_1(mp_posix_chdir_obj, mp_posix_chdir);
 
 
-mp_obj_t mp_vfs_getcwd(void) {
+mp_obj_t mp_posix_getcwd(void) {
     char buf[MICROPY_ALLOC_PATH_MAX + 1];
     char buf[MICROPY_ALLOC_PATH_MAX + 1];
     getcwd(buf, sizeof(buf));
     getcwd(buf, sizeof(buf));
     return mp_obj_new_str(buf, strlen(buf), false);
     return mp_obj_new_str(buf, strlen(buf), false);
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_0(mp_vfs_getcwd_obj, mp_vfs_getcwd);
+MP_DEFINE_CONST_FUN_OBJ_0(mp_posix_getcwd_obj, mp_posix_getcwd);
 
 
-mp_obj_t mp_vfs_listdir(size_t n_args, const mp_obj_t *args) {
+mp_obj_t mp_posix_listdir(size_t n_args, const mp_obj_t *args) {
     extern void ls(const char *pathname);
     extern void ls(const char *pathname);
     if (n_args == 0) {
     if (n_args == 0) {
 #ifdef DFS_USING_WORKDIR
 #ifdef DFS_USING_WORKDIR
@@ -76,9 +76,9 @@ mp_obj_t mp_vfs_listdir(size_t n_args, const mp_obj_t *args) {
     }
     }
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_vfs_listdir_obj, 0, 1, mp_vfs_listdir);
+MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_posix_listdir_obj, 0, 1, mp_posix_listdir);
 
 
-mp_obj_t mp_vfs_mkdir(mp_obj_t path_in) {
+mp_obj_t mp_posix_mkdir(mp_obj_t path_in) {
     char *createpath = mp_obj_str_get_str(path_in);
     char *createpath = mp_obj_str_get_str(path_in);
     int res = mkdir(createpath, 0);
     int res = mkdir(createpath, 0);
     if (res != 0) {
     if (res != 0) {
@@ -86,9 +86,9 @@ mp_obj_t mp_vfs_mkdir(mp_obj_t path_in) {
     }
     }
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_1(mp_vfs_mkdir_obj, mp_vfs_mkdir);
+MP_DEFINE_CONST_FUN_OBJ_1(mp_posix_mkdir_obj, mp_posix_mkdir);
 
 
-mp_obj_t mp_vfs_remove(uint n_args, const mp_obj_t *arg) {
+mp_obj_t mp_posix_remove(uint n_args, const mp_obj_t *arg) {
     int index;
     int index;
     if (n_args == 0) {
     if (n_args == 0) {
         rt_kprintf("Usage: rm FILE...\n");
         rt_kprintf("Usage: rm FILE...\n");
@@ -102,14 +102,14 @@ mp_obj_t mp_vfs_remove(uint n_args, const mp_obj_t *arg) {
     // TODO
     // TODO
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_VAR(mp_vfs_remove_obj, 0, mp_vfs_remove);
+MP_DEFINE_CONST_FUN_OBJ_VAR(mp_posix_remove_obj, 0, mp_posix_remove);
 
 
-mp_obj_t mp_vfs_rename(mp_obj_t old_path_in, mp_obj_t new_path_in) {
+mp_obj_t mp_posix_rename(mp_obj_t old_path_in, mp_obj_t new_path_in) {
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_2(mp_vfs_rename_obj, mp_vfs_rename);
+MP_DEFINE_CONST_FUN_OBJ_2(mp_posix_rename_obj, mp_posix_rename);
 
 
-mp_obj_t mp_vfs_rmdir(uint n_args, const mp_obj_t *arg) {
+mp_obj_t mp_posix_rmdir(uint n_args, const mp_obj_t *arg) {
     int index;
     int index;
     if (n_args == 0) {
     if (n_args == 0) {
         rt_kprintf("Usage: rm FILE...\n");
         rt_kprintf("Usage: rm FILE...\n");
@@ -123,9 +123,9 @@ mp_obj_t mp_vfs_rmdir(uint n_args, const mp_obj_t *arg) {
     // TODO
     // TODO
     return mp_const_none;
     return mp_const_none;
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_VAR(mp_vfs_rmdir_obj, 0, mp_vfs_rmdir);
+MP_DEFINE_CONST_FUN_OBJ_VAR(mp_posix_rmdir_obj, 0, mp_posix_rmdir);
 
 
-mp_obj_t mp_vfs_stat(mp_obj_t path_in) {
+mp_obj_t mp_posix_stat(mp_obj_t path_in) {
     struct stat buf;
     struct stat buf;
     char *createpath = mp_obj_str_get_str(path_in);
     char *createpath = mp_obj_str_get_str(path_in);
     int res = stat(createpath, &buf);
     int res = stat(createpath, &buf);
@@ -145,7 +145,7 @@ mp_obj_t mp_vfs_stat(mp_obj_t path_in) {
     t->items[9] = MP_OBJ_NEW_SMALL_INT(buf.st_ctime); // st_ctime
     t->items[9] = MP_OBJ_NEW_SMALL_INT(buf.st_ctime); // st_ctime
     return MP_OBJ_FROM_PTR(t);
     return MP_OBJ_FROM_PTR(t);
 }
 }
-MP_DEFINE_CONST_FUN_OBJ_1(mp_vfs_stat_obj, mp_vfs_stat);
+MP_DEFINE_CONST_FUN_OBJ_1(mp_posix_stat_obj, mp_posix_stat);
 
 
 
 
-#endif // MICROPY_VFS
+#endif //MICROPY_MODUOS_FILE

+ 27 - 42
port/moduos_file.h

@@ -23,17 +23,12 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  * THE SOFTWARE.
  */
  */
-#ifndef MICROPY_INCLUDED_MODUOS_FILE_H
-#define MICROPY_INCLUDED_MODUOS_FILE_H
+#ifndef MICROPY_INCLUDED_PY_MODUOS_FILE_H
+#define MICROPY_INCLUDED_PY_MODUOS_FILE_H
 
 
 #include "py/lexer.h"
 #include "py/lexer.h"
 #include "py/obj.h"
 #include "py/obj.h"
 
 
-// return values of mp_vfs_lookup_path
-// ROOT is 0 so that the default current directory is the root directory
-#define MP_VFS_NONE ((mp_vfs_mount_t*)1)
-#define MP_VFS_ROOT ((mp_vfs_mount_t*)0)
-
 // MicroPython's port-standardized versions of stat constants
 // MicroPython's port-standardized versions of stat constants
 #define MP_S_IFDIR (0x4000)
 #define MP_S_IFDIR (0x4000)
 #define MP_S_IFREG (0x8000)
 #define MP_S_IFREG (0x8000)
@@ -45,41 +40,31 @@
 #define BP_IOCTL_SEC_COUNT      (4)
 #define BP_IOCTL_SEC_COUNT      (4)
 #define BP_IOCTL_SEC_SIZE       (5)
 #define BP_IOCTL_SEC_SIZE       (5)
 
 
-typedef struct _mp_vfs_mount_t {
-    const char *str; // mount point with leading /
-    size_t len;
-    mp_obj_t obj;
-    struct _mp_vfs_mount_t *next;
-} mp_vfs_mount_t;
+mp_obj_t mp_posix_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
+mp_obj_t mp_posix_umount(mp_obj_t mnt_in);
+mp_obj_t mp_posix_open(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
+mp_obj_t mp_posix_chdir(mp_obj_t path_in);
+mp_obj_t mp_posix_getcwd(void);
 
 
-mp_vfs_mount_t *mp_vfs_lookup_path(const char *path, const char **path_out);
-mp_import_stat_t mp_vfs_import_stat(const char *path);
-mp_obj_t mp_vfs_mount(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
-mp_obj_t mp_vfs_umount(mp_obj_t mnt_in);
-mp_obj_t mp_vfs_open(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
-mp_obj_t mp_vfs_chdir(mp_obj_t path_in);
-mp_obj_t mp_vfs_getcwd(void);
-mp_obj_t mp_vfs_ilistdir(size_t n_args, const mp_obj_t *args);
-mp_obj_t mp_vfs_listdir(size_t n_args, const mp_obj_t *args);
-mp_obj_t mp_vfs_mkdir(mp_obj_t path_in);
-mp_obj_t mp_vfs_remove(uint n_args, const mp_obj_t *arg);
-mp_obj_t mp_vfs_rename(mp_obj_t old_path_in, mp_obj_t new_path_in);
-mp_obj_t mp_vfs_rmdir(uint n_args, const mp_obj_t *arg);
-mp_obj_t mp_vfs_stat(mp_obj_t path_in);
-mp_obj_t mp_vfs_statvfs(mp_obj_t path_in);
+mp_obj_t mp_posix_listdir(size_t n_args, const mp_obj_t *args);
+mp_obj_t mp_posix_mkdir(mp_obj_t path_in);
+mp_obj_t mp_posix_remove(uint n_args, const mp_obj_t *arg);
+mp_obj_t mp_posix_rename(mp_obj_t old_path_in, mp_obj_t new_path_in);
+mp_obj_t mp_posix_rmdir(uint n_args, const mp_obj_t *arg);
+mp_obj_t mp_posix_stat(mp_obj_t path_in);
+mp_obj_t mp_posix_statvfs(mp_obj_t path_in);
 
 
-MP_DECLARE_CONST_FUN_OBJ_KW(mp_vfs_mount_obj);
-MP_DECLARE_CONST_FUN_OBJ_1(mp_vfs_umount_obj);
-MP_DECLARE_CONST_FUN_OBJ_KW(mp_vfs_open_obj);
-MP_DECLARE_CONST_FUN_OBJ_1(mp_vfs_chdir_obj);
-MP_DECLARE_CONST_FUN_OBJ_0(mp_vfs_getcwd_obj);
-MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_vfs_ilistdir_obj);
-MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_vfs_listdir_obj);
-MP_DECLARE_CONST_FUN_OBJ_1(mp_vfs_mkdir_obj);
-MP_DECLARE_CONST_FUN_OBJ_VAR(mp_vfs_remove_obj);
-MP_DECLARE_CONST_FUN_OBJ_2(mp_vfs_rename_obj);
-MP_DECLARE_CONST_FUN_OBJ_VAR(mp_vfs_rmdir_obj);
-MP_DECLARE_CONST_FUN_OBJ_1(mp_vfs_stat_obj);
-MP_DECLARE_CONST_FUN_OBJ_1(mp_vfs_statvfs_obj);
+MP_DECLARE_CONST_FUN_OBJ_KW(mp_posix_mount_obj);
+MP_DECLARE_CONST_FUN_OBJ_1(mp_posix_umount_obj);
+MP_DECLARE_CONST_FUN_OBJ_KW(mp_posix_open_obj);
+MP_DECLARE_CONST_FUN_OBJ_1(mp_posix_chdir_obj);
+MP_DECLARE_CONST_FUN_OBJ_0(mp_posix_getcwd_obj);
+MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_posix_listdir_obj);
+MP_DECLARE_CONST_FUN_OBJ_1(mp_posix_mkdir_obj);
+MP_DECLARE_CONST_FUN_OBJ_VAR(mp_posix_remove_obj);
+MP_DECLARE_CONST_FUN_OBJ_2(mp_posix_rename_obj);
+MP_DECLARE_CONST_FUN_OBJ_VAR(mp_posix_rmdir_obj);
+MP_DECLARE_CONST_FUN_OBJ_1(mp_posix_stat_obj);
+MP_DECLARE_CONST_FUN_OBJ_1(mp_posix_statvfs_obj);
 
 
-#endif // MICROPY_INCLUDED_MODUOS_FILE_H
+#endif // MICROPY_INCLUDED_PY_MODUOS_FILE_H