From 72ba2bf2fd6394c158bb8e9baa82ac7ab348e856 Mon Sep 17 00:00:00 2001 From: afellmett Date: Mon, 4 Jun 2018 21:30:34 +0200 Subject: [PATCH 1/3] feat(spiffs): Modified esp_spiffs functions to forward the spiffs error code --- components/spiffs/include/spiffs/esp_spiffs.h | 4 +-- components/spiffs/library/esp_spiffs.c | 25 ++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/components/spiffs/include/spiffs/esp_spiffs.h b/components/spiffs/include/spiffs/esp_spiffs.h index 2e3beb2f..d02340c8 100644 --- a/components/spiffs/include/spiffs/esp_spiffs.h +++ b/components/spiffs/include/spiffs/esp_spiffs.h @@ -59,8 +59,8 @@ struct esp_spiffs_config { * * @param struct esp_spiffs_config *config : ESP8266 spiffs configuration * - * @return 0 : succeed - * @return otherwise : fail + * @return 0 : succeed (Equals SPIFFS_OK) + * @return otherwise : fail (-1 or SPIFFS_ERR_*) */ s32_t esp_spiffs_init(struct esp_spiffs_config *config); diff --git a/components/spiffs/library/esp_spiffs.c b/components/spiffs/library/esp_spiffs.c index d7abae76..c4434e6e 100644 --- a/components/spiffs/library/esp_spiffs.c +++ b/components/spiffs/library/esp_spiffs.c @@ -85,7 +85,7 @@ static s32_t esp_spiffs_erase(u32_t addr, u32_t size) s32_t esp_spiffs_init(struct esp_spiffs_config *config) { if (SPIFFS_mounted(&fs)) { - return -1; + return SPIFFS_ERR_MOUNTED; } spiffs_config cfg; @@ -145,6 +145,8 @@ s32_t esp_spiffs_init(struct esp_spiffs_config *config) free(spiffs_cache_buf); } + ret = SPIFFS_errno(&fs); + return ret; } @@ -197,7 +199,9 @@ int _spiffs_open_r(struct _reent *r, const char *filename, int flags, int mode) if (res >= 0) { res += NUM_SYS_FD; } - + else { + ret = SPIFFS_errno(&fs); + } return res; } @@ -210,6 +214,9 @@ _ssize_t _spiffs_read_r(struct _reent *r, int fd, void *buf, size_t len) res = -1; } else { res = SPIFFS_read(&fs, fd - NUM_SYS_FD, buf, len); + if(res < 0) { + res = SPIFFS_errno(&fs); + } } return res; @@ -223,6 +230,9 @@ _ssize_t _spiffs_write_r(struct _reent *r, int fd, void *buf, size_t len) } int res = SPIFFS_write(&fs, fd - NUM_SYS_FD, (char *) buf, len); + if(res < 0){ + return SPIFFS_errno(&fs); + } return res; } @@ -235,6 +245,9 @@ _off_t _spiffs_lseek_r(struct _reent *r, int fd, _off_t where, int whence) res = -1; } else { res = SPIFFS_lseek(&fs, fd - NUM_SYS_FD, where, whence); + if(res < 0) { + res = SPIFFS_errno(&fs); + } } return res; @@ -255,6 +268,9 @@ int _spiffs_rename_r(struct _reent *r, const char *from, const char *to) { int res = SPIFFS_rename(&fs, (char *) from, (char *) to); + if(res < 0) { + res = SPIFFS_errno(&fs); + } return res; } @@ -262,6 +278,9 @@ int _spiffs_unlink_r(struct _reent *r, const char *filename) { int res = SPIFFS_remove(&fs, (char *) filename); + if(res < 0) { + res = SPIFFS_errno(&fs); + } return res; } @@ -282,7 +301,7 @@ int _spiffs_fstat_r(struct _reent *r, int fd, struct stat *s) res = SPIFFS_fstat(&fs, fd - NUM_SYS_FD, &ss); if (res < 0) { - return res; + return SPIFFS_errno(&fs); } s->st_ino = ss.obj_id; From 248700bab88a9d1a56441d80b67f85ec10070d00 Mon Sep 17 00:00:00 2001 From: afellmett Date: Mon, 4 Jun 2018 21:42:30 +0200 Subject: [PATCH 2/3] fix(spiffs): Fixed ret to res in _spiffs_open_r --- components/spiffs/library/esp_spiffs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/spiffs/library/esp_spiffs.c b/components/spiffs/library/esp_spiffs.c index c4434e6e..6a2e86ab 100644 --- a/components/spiffs/library/esp_spiffs.c +++ b/components/spiffs/library/esp_spiffs.c @@ -200,7 +200,7 @@ int _spiffs_open_r(struct _reent *r, const char *filename, int flags, int mode) res += NUM_SYS_FD; } else { - ret = SPIFFS_errno(&fs); + res = SPIFFS_errno(&fs); } return res; } From 2f026acc0df4bd5ecf6f74dde569298f1199e126 Mon Sep 17 00:00:00 2001 From: AFellmett Date: Mon, 4 Jun 2018 22:01:22 +0200 Subject: [PATCH 3/3] feat(spiffs): Modified esp_spiffs_deinit Changed position of formating check to be able to format the fs even if its not loaded. Required if SPIFFS_MAGIC is used Merges https://github.com/espressif/ESP8266_RTOS_SDK/pull/208 --- components/spiffs/library/esp_spiffs.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/components/spiffs/library/esp_spiffs.c b/components/spiffs/library/esp_spiffs.c index 6a2e86ab..b5d77a89 100644 --- a/components/spiffs/library/esp_spiffs.c +++ b/components/spiffs/library/esp_spiffs.c @@ -157,10 +157,9 @@ void esp_spiffs_deinit(u8_t format) free(spiffs_work_buf); free(spiffs_fd_buf); free(spiffs_cache_buf); - - if (format) { - SPIFFS_format(&fs); - } + } + if (format) { + SPIFFS_format(&fs); } }