summaryrefslogtreecommitdiffstatshomepage
path: root/extmod/vfs_fat_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'extmod/vfs_fat_file.c')
-rw-r--r--extmod/vfs_fat_file.c47
1 files changed, 24 insertions, 23 deletions
diff --git a/extmod/vfs_fat_file.c b/extmod/vfs_fat_file.c
index 0cd61e4605..ecc9ed70f9 100644
--- a/extmod/vfs_fat_file.c
+++ b/extmod/vfs_fat_file.c
@@ -35,6 +35,7 @@
#include "py/nlr.h"
#include "py/runtime.h"
#include "py/stream.h"
+#include "py/mperrno.h"
#include "lib/fatfs/ff.h"
#include "extmod/vfs_fat_file.h"
@@ -49,25 +50,25 @@ extern const mp_obj_type_t mp_type_textio;
// this table converts from FRESULT to POSIX errno
const byte fresult_to_errno_table[20] = {
[FR_OK] = 0,
- [FR_DISK_ERR] = EIO,
- [FR_INT_ERR] = EIO,
- [FR_NOT_READY] = EBUSY,
- [FR_NO_FILE] = ENOENT,
- [FR_NO_PATH] = ENOENT,
- [FR_INVALID_NAME] = EINVAL,
- [FR_DENIED] = EACCES,
- [FR_EXIST] = EEXIST,
- [FR_INVALID_OBJECT] = EINVAL,
- [FR_WRITE_PROTECTED] = EROFS,
- [FR_INVALID_DRIVE] = ENODEV,
- [FR_NOT_ENABLED] = ENODEV,
- [FR_NO_FILESYSTEM] = ENODEV,
- [FR_MKFS_ABORTED] = EIO,
- [FR_TIMEOUT] = EIO,
- [FR_LOCKED] = EIO,
- [FR_NOT_ENOUGH_CORE] = ENOMEM,
- [FR_TOO_MANY_OPEN_FILES] = EMFILE,
- [FR_INVALID_PARAMETER] = EINVAL,
+ [FR_DISK_ERR] = MP_EIO,
+ [FR_INT_ERR] = MP_EIO,
+ [FR_NOT_READY] = MP_EBUSY,
+ [FR_NO_FILE] = MP_ENOENT,
+ [FR_NO_PATH] = MP_ENOENT,
+ [FR_INVALID_NAME] = MP_EINVAL,
+ [FR_DENIED] = MP_EACCES,
+ [FR_EXIST] = MP_EEXIST,
+ [FR_INVALID_OBJECT] = MP_EINVAL,
+ [FR_WRITE_PROTECTED] = MP_EROFS,
+ [FR_INVALID_DRIVE] = MP_ENODEV,
+ [FR_NOT_ENABLED] = MP_ENODEV,
+ [FR_NO_FILESYSTEM] = MP_ENODEV,
+ [FR_MKFS_ABORTED] = MP_EIO,
+ [FR_TIMEOUT] = MP_EIO,
+ [FR_LOCKED] = MP_EIO,
+ [FR_NOT_ENOUGH_CORE] = MP_ENOMEM,
+ [FR_TOO_MANY_OPEN_FILES] = MP_EMFILE,
+ [FR_INVALID_PARAMETER] = MP_EINVAL,
};
typedef struct _pyb_file_obj_t {
@@ -101,7 +102,7 @@ STATIC mp_uint_t file_obj_write(mp_obj_t self_in, const void *buf, mp_uint_t siz
}
if (sz_out != size) {
// The FatFS documentation says that this means disk full.
- *errcode = ENOSPC;
+ *errcode = MP_ENOSPC;
return MP_STREAM_ERROR;
}
return sz_out;
@@ -140,7 +141,7 @@ STATIC mp_uint_t file_obj_ioctl(mp_obj_t o_in, mp_uint_t request, uintptr_t arg,
case 1: // SEEK_CUR
if (s->offset != 0) {
- *errcode = ENOTSUP;
+ *errcode = MP_EOPNOTSUPP;
return MP_STREAM_ERROR;
}
// no-operation
@@ -155,7 +156,7 @@ STATIC mp_uint_t file_obj_ioctl(mp_obj_t o_in, mp_uint_t request, uintptr_t arg,
return 0;
} else {
- *errcode = EINVAL;
+ *errcode = MP_EINVAL;
return MP_STREAM_ERROR;
}
}
@@ -208,7 +209,7 @@ STATIC mp_obj_t file_open(const mp_obj_type_t *type, mp_arg_val_t *args) {
FRESULT res = f_open(&o->fp, fname, mode);
if (res != FR_OK) {
m_del_obj(pyb_file_obj_t, o);
- nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(fresult_to_errno_table[res])));
+ mp_raise_OSError(fresult_to_errno_table[res]);
}
// for 'a' mode, we must begin at the end of the file