Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
dcf14c1b
Commit
dcf14c1b
authored
Sep 12, 2016
by
Alex March
Committed by
Damien George
Sep 27, 2016
Browse files
extmod/vfs_fat: Add fat_vfs_statvfs(), reused from stmhal.
parent
791b65f4
Changes
1
Hide whitespace changes
Inline
Side-by-side
extmod/vfs_fat.c
View file @
dcf14c1b
...
...
@@ -250,6 +250,36 @@ STATIC mp_obj_t fat_vfs_stat(mp_obj_t vfs_in, mp_obj_t path_in) {
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
fat_vfs_stat_obj
,
fat_vfs_stat
);
// Get the status of a VFS.
STATIC
mp_obj_t
fat_vfs_statvfs
(
mp_obj_t
vfs_in
,
mp_obj_t
path_in
)
{
(
void
)
vfs_in
;
const
char
*
path
=
mp_obj_str_get_str
(
path_in
);
FATFS
*
fatfs
;
DWORD
nclst
;
FRESULT
res
=
f_getfree
(
path
,
&
nclst
,
&
fatfs
);
if
(
FR_OK
!=
res
)
{
nlr_raise
(
mp_obj_new_exception_arg1
(
&
mp_type_OSError
,
MP_OBJ_NEW_SMALL_INT
(
fresult_to_errno_table
[
res
])));
}
mp_obj_tuple_t
*
t
=
MP_OBJ_TO_PTR
(
mp_obj_new_tuple
(
10
,
NULL
));
t
->
items
[
0
]
=
MP_OBJ_NEW_SMALL_INT
(
fatfs
->
csize
*
fatfs
->
ssize
);
// f_bsize
t
->
items
[
1
]
=
t
->
items
[
0
];
// f_frsize
t
->
items
[
2
]
=
MP_OBJ_NEW_SMALL_INT
((
fatfs
->
n_fatent
-
2
)
*
fatfs
->
csize
);
// f_blocks
t
->
items
[
3
]
=
MP_OBJ_NEW_SMALL_INT
(
nclst
);
// f_bfree
t
->
items
[
4
]
=
t
->
items
[
3
];
// f_bavail
t
->
items
[
5
]
=
MP_OBJ_NEW_SMALL_INT
(
0
);
// f_files
t
->
items
[
6
]
=
MP_OBJ_NEW_SMALL_INT
(
0
);
// f_ffree
t
->
items
[
7
]
=
MP_OBJ_NEW_SMALL_INT
(
0
);
// f_favail
t
->
items
[
8
]
=
MP_OBJ_NEW_SMALL_INT
(
0
);
// f_flags
t
->
items
[
9
]
=
MP_OBJ_NEW_SMALL_INT
(
_MAX_LFN
);
// f_namemax
return
MP_OBJ_FROM_PTR
(
t
);
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_2
(
fat_vfs_statvfs_obj
,
fat_vfs_statvfs
);
// Unmount the filesystem
STATIC
mp_obj_t
fat_vfs_umount
(
mp_obj_t
vfs_in
)
{
fatfs_umount
(((
fs_user_mount_t
*
)
vfs_in
)
->
readblocks
[
1
]);
...
...
@@ -268,6 +298,7 @@ STATIC const mp_rom_map_elem_t fat_vfs_locals_dict_table[] = {
{
MP_ROM_QSTR
(
MP_QSTR_remove
),
MP_ROM_PTR
(
&
fat_vfs_remove_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_rename
),
MP_ROM_PTR
(
&
fat_vfs_rename_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_stat
),
MP_ROM_PTR
(
&
fat_vfs_stat_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_statvfs
),
MP_ROM_PTR
(
&
fat_vfs_statvfs_obj
)
},
{
MP_ROM_QSTR
(
MP_QSTR_umount
),
MP_ROM_PTR
(
&
fat_vfs_umount_obj
)
},
};
STATIC
MP_DEFINE_CONST_DICT
(
fat_vfs_locals_dict
,
fat_vfs_locals_dict_table
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment