mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-21 10:26:06 +03:00
Fix minor C++ warnings in host "make test" run (#5747)
This commit is contained in:
parent
7369133681
commit
e51bd0d790
@ -22,12 +22,12 @@ static spiffs_cache_page *spiffs_cache_page_get(spiffs *fs, spiffs_page_ix pix)
|
|||||||
if ((cache->cpage_use_map & (1<<i)) &&
|
if ((cache->cpage_use_map & (1<<i)) &&
|
||||||
(cp->flags & SPIFFS_CACHE_FLAG_TYPE_WR) == 0 &&
|
(cp->flags & SPIFFS_CACHE_FLAG_TYPE_WR) == 0 &&
|
||||||
cp->pix == pix ) {
|
cp->pix == pix ) {
|
||||||
//SPIFFS_CACHE_DBG("CACHE_GET: have cache page "_SPIPRIi" for "_SPIPRIpg"\n", i, pix);
|
//SPIFFS_CACHE_DBG("CACHE_GET: have cache page " _SPIPRIi " for " _SPIPRIpg"\n", i, pix);
|
||||||
cp->last_access = cache->last_access;
|
cp->last_access = cache->last_access;
|
||||||
return cp;
|
return cp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//SPIFFS_CACHE_DBG("CACHE_GET: no cache for "_SPIPRIpg"\n", pix);
|
//SPIFFS_CACHE_DBG("CACHE_GET: no cache for " _SPIPRIpg"\n", pix);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,17 +41,17 @@ static s32_t spiffs_cache_page_free(spiffs *fs, int ix, u8_t write_back) {
|
|||||||
(cp->flags & SPIFFS_CACHE_FLAG_TYPE_WR) == 0 &&
|
(cp->flags & SPIFFS_CACHE_FLAG_TYPE_WR) == 0 &&
|
||||||
(cp->flags & SPIFFS_CACHE_FLAG_DIRTY)) {
|
(cp->flags & SPIFFS_CACHE_FLAG_DIRTY)) {
|
||||||
u8_t *mem = spiffs_get_cache_page(fs, cache, ix);
|
u8_t *mem = spiffs_get_cache_page(fs, cache, ix);
|
||||||
SPIFFS_CACHE_DBG("CACHE_FREE: write cache page "_SPIPRIi" pix "_SPIPRIpg"\n", ix, cp->pix);
|
SPIFFS_CACHE_DBG("CACHE_FREE: write cache page " _SPIPRIi " pix " _SPIPRIpg "\n", ix, cp->pix);
|
||||||
res = SPIFFS_HAL_WRITE(fs, SPIFFS_PAGE_TO_PADDR(fs, cp->pix), SPIFFS_CFG_LOG_PAGE_SZ(fs), mem);
|
res = SPIFFS_HAL_WRITE(fs, SPIFFS_PAGE_TO_PADDR(fs, cp->pix), SPIFFS_CFG_LOG_PAGE_SZ(fs), mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if SPIFFS_CACHE_WR
|
#if SPIFFS_CACHE_WR
|
||||||
if (cp->flags & SPIFFS_CACHE_FLAG_TYPE_WR) {
|
if (cp->flags & SPIFFS_CACHE_FLAG_TYPE_WR) {
|
||||||
SPIFFS_CACHE_DBG("CACHE_FREE: free cache page "_SPIPRIi" objid "_SPIPRIid"\n", ix, cp->obj_id);
|
SPIFFS_CACHE_DBG("CACHE_FREE: free cache page " _SPIPRIi " objid " _SPIPRIid "\n", ix, cp->obj_id);
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
SPIFFS_CACHE_DBG("CACHE_FREE: free cache page "_SPIPRIi" pix "_SPIPRIpg"\n", ix, cp->pix);
|
SPIFFS_CACHE_DBG("CACHE_FREE: free cache page " _SPIPRIi " pix " _SPIPRIpg "\n", ix, cp->pix);
|
||||||
}
|
}
|
||||||
cache->cpage_use_map &= ~(1 << ix);
|
cache->cpage_use_map &= ~(1 << ix);
|
||||||
cp->flags = 0;
|
cp->flags = 0;
|
||||||
@ -103,7 +103,7 @@ static spiffs_cache_page *spiffs_cache_page_allocate(spiffs *fs) {
|
|||||||
spiffs_cache_page *cp = spiffs_get_cache_page_hdr(fs, cache, i);
|
spiffs_cache_page *cp = spiffs_get_cache_page_hdr(fs, cache, i);
|
||||||
cache->cpage_use_map |= (1<<i);
|
cache->cpage_use_map |= (1<<i);
|
||||||
cp->last_access = cache->last_access;
|
cp->last_access = cache->last_access;
|
||||||
//SPIFFS_CACHE_DBG("CACHE_ALLO: allocated cache page "_SPIPRIi"\n", i);
|
//SPIFFS_CACHE_DBG("CACHE_ALLO: allocated cache page " _SPIPRIi"\n", i);
|
||||||
return cp;
|
return cp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -158,7 +158,7 @@ s32_t spiffs_phys_rd(
|
|||||||
if (cp) {
|
if (cp) {
|
||||||
cp->flags = SPIFFS_CACHE_FLAG_WRTHRU;
|
cp->flags = SPIFFS_CACHE_FLAG_WRTHRU;
|
||||||
cp->pix = SPIFFS_PADDR_TO_PAGE(fs, addr);
|
cp->pix = SPIFFS_PADDR_TO_PAGE(fs, addr);
|
||||||
SPIFFS_CACHE_DBG("CACHE_ALLO: allocated cache page "_SPIPRIi" for pix "_SPIPRIpg "\n", cp->ix, cp->pix);
|
SPIFFS_CACHE_DBG("CACHE_ALLO: allocated cache page " _SPIPRIi " for pix " _SPIPRIpg "\n", cp->ix, cp->pix);
|
||||||
|
|
||||||
s32_t res2 = SPIFFS_HAL_READ(fs,
|
s32_t res2 = SPIFFS_HAL_READ(fs,
|
||||||
addr - SPIFFS_PADDR_TO_PAGE_OFFSET(fs, addr),
|
addr - SPIFFS_PADDR_TO_PAGE_OFFSET(fs, addr),
|
||||||
@ -262,7 +262,7 @@ spiffs_cache_page *spiffs_cache_page_allocate_by_fd(spiffs *fs, spiffs_fd *fd) {
|
|||||||
cp->flags = SPIFFS_CACHE_FLAG_TYPE_WR;
|
cp->flags = SPIFFS_CACHE_FLAG_TYPE_WR;
|
||||||
cp->obj_id = fd->obj_id;
|
cp->obj_id = fd->obj_id;
|
||||||
fd->cache_page = cp;
|
fd->cache_page = cp;
|
||||||
SPIFFS_CACHE_DBG("CACHE_ALLO: allocated cache page "_SPIPRIi" for fd "_SPIPRIfd ":"_SPIPRIid "\n", cp->ix, fd->file_nbr, fd->obj_id);
|
SPIFFS_CACHE_DBG("CACHE_ALLO: allocated cache page " _SPIPRIi " for fd " _SPIPRIfd ":" _SPIPRIid "\n", cp->ix, fd->file_nbr, fd->obj_id);
|
||||||
return cp;
|
return cp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
if (((lu_obj_id == SPIFFS_OBJ_ID_DELETED) && (p_hdr->flags & SPIFFS_PH_FLAG_DELET)) ||
|
if (((lu_obj_id == SPIFFS_OBJ_ID_DELETED) && (p_hdr->flags & SPIFFS_PH_FLAG_DELET)) ||
|
||||||
((lu_obj_id == SPIFFS_OBJ_ID_FREE) && (p_hdr->flags & SPIFFS_PH_FLAG_USED) == 0)) {
|
((lu_obj_id == SPIFFS_OBJ_ID_FREE) && (p_hdr->flags & SPIFFS_PH_FLAG_USED) == 0)) {
|
||||||
// look up entry deleted / free but used in page header
|
// look up entry deleted / free but used in page header
|
||||||
SPIFFS_CHECK_DBG("LU: pix "_SPIPRIpg" deleted/free in lu but not on page\n", cur_pix);
|
SPIFFS_CHECK_DBG("LU: pix " _SPIPRIpg " deleted/free in lu but not on page\n", cur_pix);
|
||||||
*reload_lu = 1;
|
*reload_lu = 1;
|
||||||
delete_page = 1;
|
delete_page = 1;
|
||||||
if (p_hdr->flags & SPIFFS_PH_FLAG_INDEX) {
|
if (p_hdr->flags & SPIFFS_PH_FLAG_INDEX) {
|
||||||
@ -201,14 +201,14 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
// copy page to new place and re-write the object index to new place
|
// copy page to new place and re-write the object index to new place
|
||||||
spiffs_page_ix new_pix;
|
spiffs_page_ix new_pix;
|
||||||
res = spiffs_rewrite_page(fs, cur_pix, p_hdr, &new_pix);
|
res = spiffs_rewrite_page(fs, cur_pix, p_hdr, &new_pix);
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: data page not found elsewhere, rewriting "_SPIPRIpg" to new page "_SPIPRIpg"\n", cur_pix, new_pix);
|
SPIFFS_CHECK_DBG("LU: FIXUP: data page not found elsewhere, rewriting " _SPIPRIpg " to new page " _SPIPRIpg "\n", cur_pix, new_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
*reload_lu = 1;
|
*reload_lu = 1;
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: "_SPIPRIpg" rewritten to "_SPIPRIpg", affected objix_pix "_SPIPRIpg"\n", cur_pix, new_pix, objix_pix);
|
SPIFFS_CHECK_DBG("LU: FIXUP: " _SPIPRIpg " rewritten to " _SPIPRIpg ", affected objix_pix " _SPIPRIpg "\n", cur_pix, new_pix, objix_pix);
|
||||||
res = spiffs_rewrite_index(fs, p_hdr->obj_id, p_hdr->span_ix, new_pix, objix_pix);
|
res = spiffs_rewrite_index(fs, p_hdr->obj_id, p_hdr->span_ix, new_pix, objix_pix);
|
||||||
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
||||||
// index bad also, cannot mend this file
|
// index bad also, cannot mend this file
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: index bad "_SPIPRIi", cannot mend!\n", res);
|
SPIFFS_CHECK_DBG("LU: FIXUP: index bad " _SPIPRIi ", cannot mend!\n", res);
|
||||||
res = spiffs_page_delete(fs, new_pix);
|
res = spiffs_page_delete(fs, new_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
res = spiffs_delete_obj_lazy(fs, p_hdr->obj_id);
|
res = spiffs_delete_obj_lazy(fs, p_hdr->obj_id);
|
||||||
@ -231,7 +231,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
// got a data page also, assume lu corruption only, rewrite to new page
|
// got a data page also, assume lu corruption only, rewrite to new page
|
||||||
spiffs_page_ix new_pix;
|
spiffs_page_ix new_pix;
|
||||||
res = spiffs_rewrite_page(fs, cur_pix, p_hdr, &new_pix);
|
res = spiffs_rewrite_page(fs, cur_pix, p_hdr, &new_pix);
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: ix page with data not found elsewhere, rewriting "_SPIPRIpg" to new page "_SPIPRIpg"\n", cur_pix, new_pix);
|
SPIFFS_CHECK_DBG("LU: FIXUP: ix page with data not found elsewhere, rewriting " _SPIPRIpg " to new page " _SPIPRIpg "\n", cur_pix, new_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
*reload_lu = 1;
|
*reload_lu = 1;
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_FIX_LOOKUP, p_hdr->obj_id, p_hdr->span_ix);
|
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_FIX_LOOKUP, p_hdr->obj_id, p_hdr->span_ix);
|
||||||
@ -244,7 +244,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
if (lu_obj_id != SPIFFS_OBJ_ID_FREE && lu_obj_id != SPIFFS_OBJ_ID_DELETED) {
|
if (lu_obj_id != SPIFFS_OBJ_ID_FREE && lu_obj_id != SPIFFS_OBJ_ID_DELETED) {
|
||||||
// look up entry used
|
// look up entry used
|
||||||
if ((p_hdr->obj_id | SPIFFS_OBJ_ID_IX_FLAG) != (lu_obj_id | SPIFFS_OBJ_ID_IX_FLAG)) {
|
if ((p_hdr->obj_id | SPIFFS_OBJ_ID_IX_FLAG) != (lu_obj_id | SPIFFS_OBJ_ID_IX_FLAG)) {
|
||||||
SPIFFS_CHECK_DBG("LU: pix "_SPIPRIpg" differ in obj_id lu:"_SPIPRIid" ph:"_SPIPRIid"\n", cur_pix, lu_obj_id, p_hdr->obj_id);
|
SPIFFS_CHECK_DBG("LU: pix " _SPIPRIpg " differ in obj_id lu:" _SPIPRIid" ph:" _SPIPRIid"\n", cur_pix, lu_obj_id, p_hdr->obj_id);
|
||||||
delete_page = 1;
|
delete_page = 1;
|
||||||
if ((p_hdr->flags & SPIFFS_PH_FLAG_DELET) == 0 ||
|
if ((p_hdr->flags & SPIFFS_PH_FLAG_DELET) == 0 ||
|
||||||
(p_hdr->flags & SPIFFS_PH_FLAG_FINAL) ||
|
(p_hdr->flags & SPIFFS_PH_FLAG_FINAL) ||
|
||||||
@ -267,7 +267,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
res = spiffs_rewrite_index(fs, p_hdr->obj_id, p_hdr->span_ix, new_pix, objix_pix);
|
res = spiffs_rewrite_index(fs, p_hdr->obj_id, p_hdr->span_ix, new_pix, objix_pix);
|
||||||
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
||||||
// index bad also, cannot mend this file
|
// index bad also, cannot mend this file
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: index bad "_SPIPRIi", cannot mend!\n", res);
|
SPIFFS_CHECK_DBG("LU: FIXUP: index bad " _SPIPRIi", cannot mend!\n", res);
|
||||||
res = spiffs_page_delete(fs, new_pix);
|
res = spiffs_page_delete(fs, new_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
res = spiffs_delete_obj_lazy(fs, p_hdr->obj_id);
|
res = spiffs_delete_obj_lazy(fs, p_hdr->obj_id);
|
||||||
@ -323,7 +323,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
// rewrite as obj_id_ph
|
// rewrite as obj_id_ph
|
||||||
new_ph.obj_id = p_hdr->obj_id | SPIFFS_OBJ_ID_IX_FLAG;
|
new_ph.obj_id = p_hdr->obj_id | SPIFFS_OBJ_ID_IX_FLAG;
|
||||||
res = spiffs_rewrite_page(fs, cur_pix, &new_ph, &new_pix);
|
res = spiffs_rewrite_page(fs, cur_pix, &new_ph, &new_pix);
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: rewrite page "_SPIPRIpg" as "_SPIPRIid" to pix "_SPIPRIpg"\n", cur_pix, new_ph.obj_id, new_pix);
|
SPIFFS_CHECK_DBG("LU: FIXUP: rewrite page " _SPIPRIpg " as " _SPIPRIid" to pix " _SPIPRIpg "\n", cur_pix, new_ph.obj_id, new_pix);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_FIX_LOOKUP, p_hdr->obj_id, p_hdr->span_ix);
|
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_FIX_LOOKUP, p_hdr->obj_id, p_hdr->span_ix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
*reload_lu = 1;
|
*reload_lu = 1;
|
||||||
@ -332,7 +332,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
// got a data page for look up obj id
|
// got a data page for look up obj id
|
||||||
// rewrite as obj_id_lu
|
// rewrite as obj_id_lu
|
||||||
new_ph.obj_id = lu_obj_id | SPIFFS_OBJ_ID_IX_FLAG;
|
new_ph.obj_id = lu_obj_id | SPIFFS_OBJ_ID_IX_FLAG;
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: rewrite page "_SPIPRIpg" as "_SPIPRIid"\n", cur_pix, new_ph.obj_id);
|
SPIFFS_CHECK_DBG("LU: FIXUP: rewrite page " _SPIPRIpg " as " _SPIPRIid"\n", cur_pix, new_ph.obj_id);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_FIX_LOOKUP, p_hdr->obj_id, p_hdr->span_ix);
|
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_FIX_LOOKUP, p_hdr->obj_id, p_hdr->span_ix);
|
||||||
res = spiffs_rewrite_page(fs, cur_pix, &new_ph, &new_pix);
|
res = spiffs_rewrite_page(fs, cur_pix, &new_ph, &new_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
@ -346,7 +346,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
}
|
}
|
||||||
} else if (((lu_obj_id & SPIFFS_OBJ_ID_IX_FLAG) && (p_hdr->flags & SPIFFS_PH_FLAG_INDEX)) ||
|
} else if (((lu_obj_id & SPIFFS_OBJ_ID_IX_FLAG) && (p_hdr->flags & SPIFFS_PH_FLAG_INDEX)) ||
|
||||||
((lu_obj_id & SPIFFS_OBJ_ID_IX_FLAG) == 0 && (p_hdr->flags & SPIFFS_PH_FLAG_INDEX) == 0)) {
|
((lu_obj_id & SPIFFS_OBJ_ID_IX_FLAG) == 0 && (p_hdr->flags & SPIFFS_PH_FLAG_INDEX) == 0)) {
|
||||||
SPIFFS_CHECK_DBG("LU: "_SPIPRIpg" lu/page index marking differ\n", cur_pix);
|
SPIFFS_CHECK_DBG("LU: " _SPIPRIpg " lu/page index marking differ\n", cur_pix);
|
||||||
spiffs_page_ix data_pix, objix_pix_d;
|
spiffs_page_ix data_pix, objix_pix_d;
|
||||||
// see if other data page exists for given obj id and span index
|
// see if other data page exists for given obj id and span index
|
||||||
res = spiffs_obj_lu_find_id_and_span(fs, lu_obj_id & ~SPIFFS_OBJ_ID_IX_FLAG, p_hdr->span_ix, cur_pix, &data_pix);
|
res = spiffs_obj_lu_find_id_and_span(fs, lu_obj_id & ~SPIFFS_OBJ_ID_IX_FLAG, p_hdr->span_ix, cur_pix, &data_pix);
|
||||||
@ -404,10 +404,10 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((p_hdr->flags & SPIFFS_PH_FLAG_DELET) == 0) {
|
else if ((p_hdr->flags & SPIFFS_PH_FLAG_DELET) == 0) {
|
||||||
SPIFFS_CHECK_DBG("LU: pix "_SPIPRIpg" busy in lu but deleted on page\n", cur_pix);
|
SPIFFS_CHECK_DBG("LU: pix " _SPIPRIpg " busy in lu but deleted on page\n", cur_pix);
|
||||||
delete_page = 1;
|
delete_page = 1;
|
||||||
} else if ((p_hdr->flags & SPIFFS_PH_FLAG_FINAL)) {
|
} else if ((p_hdr->flags & SPIFFS_PH_FLAG_FINAL)) {
|
||||||
SPIFFS_CHECK_DBG("LU: pix "_SPIPRIpg" busy but not final\n", cur_pix);
|
SPIFFS_CHECK_DBG("LU: pix " _SPIPRIpg " busy but not final\n", cur_pix);
|
||||||
// page can be removed if not referenced by object index
|
// page can be removed if not referenced by object index
|
||||||
*reload_lu = 1;
|
*reload_lu = 1;
|
||||||
res = spiffs_object_get_data_page_index_reference(fs, lu_obj_id, p_hdr->span_ix, &ref_pix, &objix_pix);
|
res = spiffs_object_get_data_page_index_reference(fs, lu_obj_id, p_hdr->span_ix, &ref_pix, &objix_pix);
|
||||||
@ -435,7 +435,7 @@ static s32_t spiffs_lookup_check_validate(spiffs *fs, spiffs_obj_id lu_obj_id, s
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (delete_page) {
|
if (delete_page) {
|
||||||
SPIFFS_CHECK_DBG("LU: FIXUP: deleting page "_SPIPRIpg"\n", cur_pix);
|
SPIFFS_CHECK_DBG("LU: FIXUP: deleting page " _SPIPRIpg "\n", cur_pix);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_DELETE_PAGE, cur_pix, 0);
|
CHECK_CB(fs, SPIFFS_CHECK_LOOKUP, SPIFFS_CHECK_DELETE_PAGE, cur_pix, 0);
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
@ -532,7 +532,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
spiffs_page_ix cur_pix = SPIFFS_OBJ_LOOKUP_PAGES(fs) + SPIFFS_PAGES_PER_BLOCK(fs) * cur_block;
|
spiffs_page_ix cur_pix = SPIFFS_OBJ_LOOKUP_PAGES(fs) + SPIFFS_PAGES_PER_BLOCK(fs) * cur_block;
|
||||||
while (!restart && cur_pix < SPIFFS_PAGES_PER_BLOCK(fs) * (cur_block+1)) {
|
while (!restart && cur_pix < SPIFFS_PAGES_PER_BLOCK(fs) * (cur_block+1)) {
|
||||||
//if ((cur_pix & 0xff) == 0)
|
//if ((cur_pix & 0xff) == 0)
|
||||||
// SPIFFS_CHECK_DBG("PA: processing pix "_SPIPRIpg", block "_SPIPRIbl" of pix "_SPIPRIpg", block "_SPIPRIbl"\n",
|
// SPIFFS_CHECK_DBG("PA: processing pix " _SPIPRIpg ", block " _SPIPRIbl" of pix " _SPIPRIpg ", block " _SPIPRIbl"\n",
|
||||||
// cur_pix, cur_block, SPIFFS_PAGES_PER_BLOCK(fs) * fs->block_count, fs->block_count);
|
// cur_pix, cur_block, SPIFFS_PAGES_PER_BLOCK(fs) * fs->block_count, fs->block_count);
|
||||||
|
|
||||||
// read header
|
// read header
|
||||||
@ -591,7 +591,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
|| (rpix_within_range && SPIFFS_IS_LOOKUP_PAGE(fs, rpix))) {
|
|| (rpix_within_range && SPIFFS_IS_LOOKUP_PAGE(fs, rpix))) {
|
||||||
|
|
||||||
// bad reference
|
// bad reference
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg"x bad pix / LU referenced from page "_SPIPRIpg"\n",
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg"x bad pix / LU referenced from page " _SPIPRIpg "\n",
|
||||||
rpix, cur_pix);
|
rpix, cur_pix);
|
||||||
// check for data page elsewhere
|
// check for data page elsewhere
|
||||||
spiffs_page_ix data_pix;
|
spiffs_page_ix data_pix;
|
||||||
@ -610,15 +610,15 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
new_ph.span_ix = data_spix_offset + i;
|
new_ph.span_ix = data_spix_offset + i;
|
||||||
res = spiffs_page_allocate_data(fs, new_ph.obj_id, &new_ph, 0, 0, 0, 1, &data_pix);
|
res = spiffs_page_allocate_data(fs, new_ph.obj_id, &new_ph, 0, 0, 0, 1, &data_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: found no existing data page, created new @ "_SPIPRIpg"\n", data_pix);
|
SPIFFS_CHECK_DBG("PA: FIXUP: found no existing data page, created new @ " _SPIPRIpg "\n", data_pix);
|
||||||
}
|
}
|
||||||
// remap index
|
// remap index
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: rewriting index pix "_SPIPRIpg"\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: FIXUP: rewriting index pix " _SPIPRIpg "\n", cur_pix);
|
||||||
res = spiffs_rewrite_index(fs, objix_p_hdr->obj_id | SPIFFS_OBJ_ID_IX_FLAG,
|
res = spiffs_rewrite_index(fs, objix_p_hdr->obj_id | SPIFFS_OBJ_ID_IX_FLAG,
|
||||||
data_spix_offset + i, data_pix, cur_pix);
|
data_spix_offset + i, data_pix, cur_pix);
|
||||||
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
||||||
// index bad also, cannot mend this file
|
// index bad also, cannot mend this file
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: index bad "_SPIPRIi", cannot mend - delete object\n", res);
|
SPIFFS_CHECK_DBG("PA: FIXUP: index bad " _SPIPRIi", cannot mend - delete object\n", res);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, objix_p_hdr->obj_id, 0);
|
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, objix_p_hdr->obj_id, 0);
|
||||||
// delete file
|
// delete file
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
@ -642,7 +642,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
rp_hdr.span_ix != data_spix_offset + i ||
|
rp_hdr.span_ix != data_spix_offset + i ||
|
||||||
(rp_hdr.flags & (SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_USED)) !=
|
(rp_hdr.flags & (SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_USED)) !=
|
||||||
(SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_INDEX)) {
|
(SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_INDEX)) {
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg" has inconsistent page header ix id/span:"_SPIPRIid"/"_SPIPRIsp", ref id/span:"_SPIPRIid"/"_SPIPRIsp" flags:"_SPIPRIfl"\n",
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg " has inconsistent page header ix id/span:" _SPIPRIid"/" _SPIPRIsp", ref id/span:" _SPIPRIid"/" _SPIPRIsp" flags:" _SPIPRIfl"\n",
|
||||||
rpix, p_hdr.obj_id & ~SPIFFS_OBJ_ID_IX_FLAG, data_spix_offset + i,
|
rpix, p_hdr.obj_id & ~SPIFFS_OBJ_ID_IX_FLAG, data_spix_offset + i,
|
||||||
rp_hdr.obj_id, rp_hdr.span_ix, rp_hdr.flags);
|
rp_hdr.obj_id, rp_hdr.span_ix, rp_hdr.flags);
|
||||||
// try finding correct page
|
// try finding correct page
|
||||||
@ -656,19 +656,19 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
if (data_pix == 0) {
|
if (data_pix == 0) {
|
||||||
// not found, this index is badly borked
|
// not found, this index is badly borked
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: index bad, delete object id "_SPIPRIid"\n", p_hdr.obj_id);
|
SPIFFS_CHECK_DBG("PA: FIXUP: index bad, delete object id " _SPIPRIid"\n", p_hdr.obj_id);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
||||||
res = spiffs_delete_obj_lazy(fs, p_hdr.obj_id);
|
res = spiffs_delete_obj_lazy(fs, p_hdr.obj_id);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
// found it, so rewrite index
|
// found it, so rewrite index
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: found correct data pix "_SPIPRIpg", rewrite ix pix "_SPIPRIpg" id "_SPIPRIid"\n",
|
SPIFFS_CHECK_DBG("PA: FIXUP: found correct data pix " _SPIPRIpg ", rewrite ix pix " _SPIPRIpg " id " _SPIPRIid"\n",
|
||||||
data_pix, cur_pix, p_hdr.obj_id);
|
data_pix, cur_pix, p_hdr.obj_id);
|
||||||
res = spiffs_rewrite_index(fs, p_hdr.obj_id, data_spix_offset + i, data_pix, cur_pix);
|
res = spiffs_rewrite_index(fs, p_hdr.obj_id, data_spix_offset + i, data_pix, cur_pix);
|
||||||
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
||||||
// index bad also, cannot mend this file
|
// index bad also, cannot mend this file
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: index bad "_SPIPRIi", cannot mend!\n", res);
|
SPIFFS_CHECK_DBG("PA: FIXUP: index bad " _SPIPRIi", cannot mend!\n", res);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
||||||
res = spiffs_delete_obj_lazy(fs, p_hdr.obj_id);
|
res = spiffs_delete_obj_lazy(fs, p_hdr.obj_id);
|
||||||
} else {
|
} else {
|
||||||
@ -683,12 +683,12 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
const u32_t rpix_byte_ix = (rpix - pix_offset) / (8/bits);
|
const u32_t rpix_byte_ix = (rpix - pix_offset) / (8/bits);
|
||||||
const u8_t rpix_bit_ix = (rpix & ((8/bits)-1)) * bits;
|
const u8_t rpix_bit_ix = (rpix & ((8/bits)-1)) * bits;
|
||||||
if (fs->work[rpix_byte_ix] & (1<<(rpix_bit_ix + 1))) {
|
if (fs->work[rpix_byte_ix] & (1<<(rpix_bit_ix + 1))) {
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg" multiple referenced from page "_SPIPRIpg"\n",
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg " multiple referenced from page " _SPIPRIpg "\n",
|
||||||
rpix, cur_pix);
|
rpix, cur_pix);
|
||||||
// Here, we should have fixed all broken references - getting this means there
|
// Here, we should have fixed all broken references - getting this means there
|
||||||
// must be multiple files with same object id. Only solution is to delete
|
// must be multiple files with same object id. Only solution is to delete
|
||||||
// the object which is referring to this page
|
// the object which is referring to this page
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: removing object "_SPIPRIid" and page "_SPIPRIpg"\n",
|
SPIFFS_CHECK_DBG("PA: FIXUP: removing object " _SPIPRIid" and page " _SPIPRIpg "\n",
|
||||||
p_hdr.obj_id, cur_pix);
|
p_hdr.obj_id, cur_pix);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
||||||
res = spiffs_delete_obj_lazy(fs, p_hdr.obj_id);
|
res = spiffs_delete_obj_lazy(fs, p_hdr.obj_id);
|
||||||
@ -727,7 +727,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
if (bitmask == 0x1) {
|
if (bitmask == 0x1) {
|
||||||
|
|
||||||
// 001
|
// 001
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg" USED, UNREFERENCED, not index\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg " USED, UNREFERENCED, not index\n", cur_pix);
|
||||||
|
|
||||||
u8_t rewrite_ix_to_this = 0;
|
u8_t rewrite_ix_to_this = 0;
|
||||||
u8_t delete_page = 0;
|
u8_t delete_page = 0;
|
||||||
@ -743,7 +743,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
if (((rpix == (spiffs_page_ix)-1 || rpix > SPIFFS_MAX_PAGES(fs)) || (SPIFFS_IS_LOOKUP_PAGE(fs, rpix)))) {
|
if (((rpix == (spiffs_page_ix)-1 || rpix > SPIFFS_MAX_PAGES(fs)) || (SPIFFS_IS_LOOKUP_PAGE(fs, rpix)))) {
|
||||||
// pointing to a bad page altogether, rewrite index to this
|
// pointing to a bad page altogether, rewrite index to this
|
||||||
rewrite_ix_to_this = 1;
|
rewrite_ix_to_this = 1;
|
||||||
SPIFFS_CHECK_DBG("PA: corresponding ref is bad: "_SPIPRIpg", rewrite to this "_SPIPRIpg"\n", rpix, cur_pix);
|
SPIFFS_CHECK_DBG("PA: corresponding ref is bad: " _SPIPRIpg ", rewrite to this " _SPIPRIpg "\n", rpix, cur_pix);
|
||||||
} else {
|
} else {
|
||||||
// pointing to something else, check what
|
// pointing to something else, check what
|
||||||
spiffs_page_header rp_hdr;
|
spiffs_page_header rp_hdr;
|
||||||
@ -754,12 +754,12 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
((rp_hdr.flags & (SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_USED | SPIFFS_PH_FLAG_FINAL)) ==
|
((rp_hdr.flags & (SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_USED | SPIFFS_PH_FLAG_FINAL)) ==
|
||||||
(SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_DELET))) {
|
(SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_DELET))) {
|
||||||
// pointing to something else valid, just delete this page then
|
// pointing to something else valid, just delete this page then
|
||||||
SPIFFS_CHECK_DBG("PA: corresponding ref is good but different: "_SPIPRIpg", delete this "_SPIPRIpg"\n", rpix, cur_pix);
|
SPIFFS_CHECK_DBG("PA: corresponding ref is good but different: " _SPIPRIpg ", delete this " _SPIPRIpg "\n", rpix, cur_pix);
|
||||||
delete_page = 1;
|
delete_page = 1;
|
||||||
} else {
|
} else {
|
||||||
// pointing to something weird, update index to point to this page instead
|
// pointing to something weird, update index to point to this page instead
|
||||||
if (rpix != cur_pix) {
|
if (rpix != cur_pix) {
|
||||||
SPIFFS_CHECK_DBG("PA: corresponding ref is weird: "_SPIPRIpg" %s%s%s%s, rewrite this "_SPIPRIpg"\n", rpix,
|
SPIFFS_CHECK_DBG("PA: corresponding ref is weird: " _SPIPRIpg " %s%s%s%s, rewrite this " _SPIPRIpg "\n", rpix,
|
||||||
(rp_hdr.flags & SPIFFS_PH_FLAG_INDEX) ? "" : "INDEX ",
|
(rp_hdr.flags & SPIFFS_PH_FLAG_INDEX) ? "" : "INDEX ",
|
||||||
(rp_hdr.flags & SPIFFS_PH_FLAG_DELET) ? "" : "DELETED ",
|
(rp_hdr.flags & SPIFFS_PH_FLAG_DELET) ? "" : "DELETED ",
|
||||||
(rp_hdr.flags & SPIFFS_PH_FLAG_USED) ? "NOTUSED " : "",
|
(rp_hdr.flags & SPIFFS_PH_FLAG_USED) ? "NOTUSED " : "",
|
||||||
@ -772,19 +772,19 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (res == SPIFFS_ERR_NOT_FOUND) {
|
} else if (res == SPIFFS_ERR_NOT_FOUND) {
|
||||||
SPIFFS_CHECK_DBG("PA: corresponding ref not found, delete "_SPIPRIpg"\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: corresponding ref not found, delete " _SPIPRIpg "\n", cur_pix);
|
||||||
delete_page = 1;
|
delete_page = 1;
|
||||||
res = SPIFFS_OK;
|
res = SPIFFS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rewrite_ix_to_this) {
|
if (rewrite_ix_to_this) {
|
||||||
// if pointing to invalid page, redirect index to this page
|
// if pointing to invalid page, redirect index to this page
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: rewrite index id "_SPIPRIid" data spix "_SPIPRIsp" to point to this pix: "_SPIPRIpg"\n",
|
SPIFFS_CHECK_DBG("PA: FIXUP: rewrite index id " _SPIPRIid" data spix " _SPIPRIsp" to point to this pix: " _SPIPRIpg "\n",
|
||||||
p_hdr.obj_id, p_hdr.span_ix, cur_pix);
|
p_hdr.obj_id, p_hdr.span_ix, cur_pix);
|
||||||
res = spiffs_rewrite_index(fs, p_hdr.obj_id, p_hdr.span_ix, cur_pix, objix_pix);
|
res = spiffs_rewrite_index(fs, p_hdr.obj_id, p_hdr.span_ix, cur_pix, objix_pix);
|
||||||
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
if (res <= _SPIFFS_ERR_CHECK_FIRST && res > _SPIFFS_ERR_CHECK_LAST) {
|
||||||
// index bad also, cannot mend this file
|
// index bad also, cannot mend this file
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: index bad "_SPIPRIi", cannot mend!\n", res);
|
SPIFFS_CHECK_DBG("PA: FIXUP: index bad " _SPIPRIi", cannot mend!\n", res);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_BAD_FILE, p_hdr.obj_id, 0);
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
@ -796,7 +796,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
restart = 1;
|
restart = 1;
|
||||||
continue;
|
continue;
|
||||||
} else if (delete_page) {
|
} else if (delete_page) {
|
||||||
SPIFFS_CHECK_DBG("PA: FIXUP: deleting page "_SPIPRIpg"\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: FIXUP: deleting page " _SPIPRIpg "\n", cur_pix);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_PAGE, cur_pix, 0);
|
CHECK_CB(fs, SPIFFS_CHECK_PAGE, SPIFFS_CHECK_DELETE_PAGE, cur_pix, 0);
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
}
|
}
|
||||||
@ -805,7 +805,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
if (bitmask == 0x2) {
|
if (bitmask == 0x2) {
|
||||||
|
|
||||||
// 010
|
// 010
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg" FREE, REFERENCED, not index\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg " FREE, REFERENCED, not index\n", cur_pix);
|
||||||
|
|
||||||
// no op, this should be taken care of when checking valid references
|
// no op, this should be taken care of when checking valid references
|
||||||
}
|
}
|
||||||
@ -815,7 +815,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
if (bitmask == 0x4) {
|
if (bitmask == 0x4) {
|
||||||
|
|
||||||
// 100
|
// 100
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg" FREE, unreferenced, INDEX\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg " FREE, unreferenced, INDEX\n", cur_pix);
|
||||||
|
|
||||||
// this should never happen, major fubar
|
// this should never happen, major fubar
|
||||||
}
|
}
|
||||||
@ -825,14 +825,14 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
if (bitmask == 0x6) {
|
if (bitmask == 0x6) {
|
||||||
|
|
||||||
// 110
|
// 110
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg" FREE, REFERENCED, INDEX\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg " FREE, REFERENCED, INDEX\n", cur_pix);
|
||||||
|
|
||||||
// no op, this should be taken care of when checking valid references
|
// no op, this should be taken care of when checking valid references
|
||||||
}
|
}
|
||||||
if (bitmask == 0x7) {
|
if (bitmask == 0x7) {
|
||||||
|
|
||||||
// 111
|
// 111
|
||||||
SPIFFS_CHECK_DBG("PA: pix "_SPIPRIpg" USED, REFERENCED, INDEX\n", cur_pix);
|
SPIFFS_CHECK_DBG("PA: pix " _SPIPRIpg " USED, REFERENCED, INDEX\n", cur_pix);
|
||||||
|
|
||||||
// no op, this should be taken care of when checking valid references
|
// no op, this should be taken care of when checking valid references
|
||||||
}
|
}
|
||||||
@ -840,7 +840,7 @@ static s32_t spiffs_page_consistency_check_i(spiffs *fs) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SPIFFS_CHECK_DBG("PA: processed "_SPIPRIpg", restart "_SPIPRIi"\n", pix_offset, restart);
|
SPIFFS_CHECK_DBG("PA: processed " _SPIPRIpg ", restart " _SPIPRIi"\n", pix_offset, restart);
|
||||||
// next page range
|
// next page range
|
||||||
if (!restart) {
|
if (!restart) {
|
||||||
pix_offset += pages_per_scan;
|
pix_offset += pages_per_scan;
|
||||||
@ -900,7 +900,7 @@ static s32_t spiffs_object_index_consistency_check_v(spiffs *fs, spiffs_obj_id o
|
|||||||
if (p_hdr.span_ix == 0 &&
|
if (p_hdr.span_ix == 0 &&
|
||||||
(p_hdr.flags & (SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_FINAL | SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_IXDELE)) ==
|
(p_hdr.flags & (SPIFFS_PH_FLAG_INDEX | SPIFFS_PH_FLAG_FINAL | SPIFFS_PH_FLAG_DELET | SPIFFS_PH_FLAG_IXDELE)) ==
|
||||||
(SPIFFS_PH_FLAG_DELET)) {
|
(SPIFFS_PH_FLAG_DELET)) {
|
||||||
SPIFFS_CHECK_DBG("IX: pix "_SPIPRIpg", obj id:"_SPIPRIid" spix:"_SPIPRIsp" header not fully deleted - deleting\n",
|
SPIFFS_CHECK_DBG("IX: pix " _SPIPRIpg ", obj id:" _SPIPRIid" spix:" _SPIPRIsp" header not fully deleted - deleting\n",
|
||||||
cur_pix, obj_id, p_hdr.span_ix);
|
cur_pix, obj_id, p_hdr.span_ix);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_INDEX, SPIFFS_CHECK_DELETE_PAGE, cur_pix, obj_id);
|
CHECK_CB(fs, SPIFFS_CHECK_INDEX, SPIFFS_CHECK_DELETE_PAGE, cur_pix, obj_id);
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
@ -956,7 +956,7 @@ static s32_t spiffs_object_index_consistency_check_v(spiffs *fs, spiffs_obj_id o
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_delete) {
|
if (_delete) {
|
||||||
SPIFFS_CHECK_DBG("IX: FIXUP: pix "_SPIPRIpg", obj id:"_SPIPRIid" spix:"_SPIPRIsp" is orphan index - deleting\n",
|
SPIFFS_CHECK_DBG("IX: FIXUP: pix " _SPIPRIpg ", obj id:" _SPIPRIid" spix:" _SPIPRIsp" is orphan index - deleting\n",
|
||||||
cur_pix, obj_id, p_hdr.span_ix);
|
cur_pix, obj_id, p_hdr.span_ix);
|
||||||
CHECK_CB(fs, SPIFFS_CHECK_INDEX, SPIFFS_CHECK_DELETE_ORPHANED_INDEX, cur_pix, obj_id);
|
CHECK_CB(fs, SPIFFS_CHECK_INDEX, SPIFFS_CHECK_DELETE_ORPHANED_INDEX, cur_pix, obj_id);
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
|
@ -13,7 +13,7 @@ static s32_t spiffs_gc_erase_block(
|
|||||||
spiffs_block_ix bix) {
|
spiffs_block_ix bix) {
|
||||||
s32_t res;
|
s32_t res;
|
||||||
|
|
||||||
SPIFFS_GC_DBG("gc: erase block "_SPIPRIbl"\n", bix);
|
SPIFFS_GC_DBG("gc: erase block " _SPIPRIbl "\n", bix);
|
||||||
res = spiffs_erase_block(fs, bix);
|
res = spiffs_erase_block(fs, bix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
|
|
||||||
@ -124,16 +124,16 @@ s32_t spiffs_gc_check(
|
|||||||
|
|
||||||
u32_t needed_pages = (len + SPIFFS_DATA_PAGE_SIZE(fs) - 1) / SPIFFS_DATA_PAGE_SIZE(fs);
|
u32_t needed_pages = (len + SPIFFS_DATA_PAGE_SIZE(fs) - 1) / SPIFFS_DATA_PAGE_SIZE(fs);
|
||||||
// if (fs->free_blocks <= 2 && (s32_t)needed_pages > free_pages) {
|
// if (fs->free_blocks <= 2 && (s32_t)needed_pages > free_pages) {
|
||||||
// SPIFFS_GC_DBG("gc: full freeblk:"_SPIPRIi" needed:"_SPIPRIi" free:"_SPIPRIi" dele:"_SPIPRIi"\n", fs->free_blocks, needed_pages, free_pages, fs->stats_p_deleted);
|
// SPIFFS_GC_DBG("gc: full freeblk:" _SPIPRIi " needed:" _SPIPRIi " free:" _SPIPRIi " dele:" _SPIPRIi "\n", fs->free_blocks, needed_pages, free_pages, fs->stats_p_deleted);
|
||||||
// return SPIFFS_ERR_FULL;
|
// return SPIFFS_ERR_FULL;
|
||||||
// }
|
// }
|
||||||
if ((s32_t)needed_pages > (s32_t)(free_pages + fs->stats_p_deleted)) {
|
if ((s32_t)needed_pages > (s32_t)(free_pages + fs->stats_p_deleted)) {
|
||||||
SPIFFS_GC_DBG("gc_check: full freeblk:"_SPIPRIi" needed:"_SPIPRIi" free:"_SPIPRIi" dele:"_SPIPRIi"\n", fs->free_blocks, needed_pages, free_pages, fs->stats_p_deleted);
|
SPIFFS_GC_DBG("gc_check: full freeblk:" _SPIPRIi " needed:" _SPIPRIi " free:" _SPIPRIi " dele:" _SPIPRIi "\n", fs->free_blocks, needed_pages, free_pages, fs->stats_p_deleted);
|
||||||
return SPIFFS_ERR_FULL;
|
return SPIFFS_ERR_FULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
SPIFFS_GC_DBG("\ngc_check #"_SPIPRIi": run gc free_blocks:"_SPIPRIi" pfree:"_SPIPRIi" pallo:"_SPIPRIi" pdele:"_SPIPRIi" ["_SPIPRIi"] len:"_SPIPRIi" of "_SPIPRIi"\n",
|
SPIFFS_GC_DBG("\ngc_check #" _SPIPRIi": run gc free_blocks:" _SPIPRIi " pfree:" _SPIPRIi " pallo:" _SPIPRIi " pdele:" _SPIPRIi " [" _SPIPRIi"] len:" _SPIPRIi " of " _SPIPRIi "\n",
|
||||||
tries,
|
tries,
|
||||||
fs->free_blocks, free_pages, fs->stats_p_allocated, fs->stats_p_deleted, (free_pages+fs->stats_p_allocated+fs->stats_p_deleted),
|
fs->free_blocks, free_pages, fs->stats_p_allocated, fs->stats_p_deleted, (free_pages+fs->stats_p_allocated+fs->stats_p_deleted),
|
||||||
len, (u32_t)(free_pages*SPIFFS_DATA_PAGE_SIZE(fs)));
|
len, (u32_t)(free_pages*SPIFFS_DATA_PAGE_SIZE(fs)));
|
||||||
@ -154,13 +154,13 @@ s32_t spiffs_gc_check(
|
|||||||
#endif
|
#endif
|
||||||
cand = cands[0];
|
cand = cands[0];
|
||||||
fs->cleaning = 1;
|
fs->cleaning = 1;
|
||||||
//SPIFFS_GC_DBG("gcing: cleaning block "_SPIPRIi"\n", cand);
|
//SPIFFS_GC_DBG("gcing: cleaning block " _SPIPRIi "\n", cand);
|
||||||
res = spiffs_gc_clean(fs, cand);
|
res = spiffs_gc_clean(fs, cand);
|
||||||
fs->cleaning = 0;
|
fs->cleaning = 0;
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
SPIFFS_GC_DBG("gc_check: cleaning block "_SPIPRIi", result "_SPIPRIi"\n", cand, res);
|
SPIFFS_GC_DBG("gc_check: cleaning block " _SPIPRIi ", result " _SPIPRIi "\n", cand, res);
|
||||||
} else {
|
} else {
|
||||||
SPIFFS_GC_DBG("gc_check: cleaning block "_SPIPRIi", result "_SPIPRIi"\n", cand, res);
|
SPIFFS_GC_DBG("gc_check: cleaning block " _SPIPRIi ", result " _SPIPRIi "\n", cand, res);
|
||||||
}
|
}
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ s32_t spiffs_gc_check(
|
|||||||
res = SPIFFS_ERR_FULL;
|
res = SPIFFS_ERR_FULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
SPIFFS_GC_DBG("gc_check: finished, "_SPIPRIi" dirty, blocks "_SPIPRIi" free, "_SPIPRIi" pages free, "_SPIPRIi" tries, res "_SPIPRIi"\n",
|
SPIFFS_GC_DBG("gc_check: finished, " _SPIPRIi " dirty, blocks " _SPIPRIi " free, " _SPIPRIi " pages free, " _SPIPRIi " tries, res " _SPIPRIi "\n",
|
||||||
fs->stats_p_allocated + fs->stats_p_deleted,
|
fs->stats_p_allocated + fs->stats_p_deleted,
|
||||||
fs->free_blocks, free_pages, tries, res);
|
fs->free_blocks, free_pages, tries, res);
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ s32_t spiffs_gc_erase_page_stats(
|
|||||||
} // per entry
|
} // per entry
|
||||||
obj_lookup_page++;
|
obj_lookup_page++;
|
||||||
} // per object lookup page
|
} // per object lookup page
|
||||||
SPIFFS_GC_DBG("gc_check: wipe pallo:"_SPIPRIi" pdele:"_SPIPRIi"\n", allo, dele);
|
SPIFFS_GC_DBG("gc_check: wipe pallo:" _SPIPRIi " pdele:" _SPIPRIi "\n", allo, dele);
|
||||||
fs->stats_p_allocated -= allo;
|
fs->stats_p_allocated -= allo;
|
||||||
fs->stats_p_deleted -= dele;
|
fs->stats_p_deleted -= dele;
|
||||||
return res;
|
return res;
|
||||||
@ -316,7 +316,7 @@ s32_t spiffs_gc_find_candidate(
|
|||||||
used_pages_in_block * SPIFFS_GC_HEUR_W_USED +
|
used_pages_in_block * SPIFFS_GC_HEUR_W_USED +
|
||||||
erase_age * (fs_crammed ? 0 : SPIFFS_GC_HEUR_W_ERASE_AGE);
|
erase_age * (fs_crammed ? 0 : SPIFFS_GC_HEUR_W_ERASE_AGE);
|
||||||
int cand_ix = 0;
|
int cand_ix = 0;
|
||||||
SPIFFS_GC_DBG("gc_check: bix:"_SPIPRIbl" del:"_SPIPRIi" use:"_SPIPRIi" score:"_SPIPRIi"\n", cur_block, deleted_pages_in_block, used_pages_in_block, score);
|
SPIFFS_GC_DBG("gc_check: bix:" _SPIPRIbl" del:" _SPIPRIi " use:" _SPIPRIi " score:" _SPIPRIi "\n", cur_block, deleted_pages_in_block, used_pages_in_block, score);
|
||||||
while (cand_ix < max_candidates) {
|
while (cand_ix < max_candidates) {
|
||||||
if (cand_blocks[cand_ix] == (spiffs_block_ix)-1) {
|
if (cand_blocks[cand_ix] == (spiffs_block_ix)-1) {
|
||||||
cand_blocks[cand_ix] = cur_block;
|
cand_blocks[cand_ix] = cur_block;
|
||||||
@ -387,7 +387,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
spiffs_page_object_ix_header *objix_hdr = (spiffs_page_object_ix_header *)fs->work;
|
spiffs_page_object_ix_header *objix_hdr = (spiffs_page_object_ix_header *)fs->work;
|
||||||
spiffs_page_object_ix *objix = (spiffs_page_object_ix *)fs->work;
|
spiffs_page_object_ix *objix = (spiffs_page_object_ix *)fs->work;
|
||||||
|
|
||||||
SPIFFS_GC_DBG("gc_clean: cleaning block "_SPIPRIbl"\n", bix);
|
SPIFFS_GC_DBG("gc_clean: cleaning block " _SPIPRIbl "\n", bix);
|
||||||
|
|
||||||
memset(&gc, 0, sizeof(spiffs_gc));
|
memset(&gc, 0, sizeof(spiffs_gc));
|
||||||
gc.state = FIND_OBJ_DATA;
|
gc.state = FIND_OBJ_DATA;
|
||||||
@ -396,11 +396,11 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
// move free cursor to next block, cannot use free pages from the block we want to clean
|
// move free cursor to next block, cannot use free pages from the block we want to clean
|
||||||
fs->free_cursor_block_ix = (bix+1)%fs->block_count;
|
fs->free_cursor_block_ix = (bix+1)%fs->block_count;
|
||||||
fs->free_cursor_obj_lu_entry = 0;
|
fs->free_cursor_obj_lu_entry = 0;
|
||||||
SPIFFS_GC_DBG("gc_clean: move free cursor to block "_SPIPRIbl"\n", fs->free_cursor_block_ix);
|
SPIFFS_GC_DBG("gc_clean: move free cursor to block " _SPIPRIbl "\n", fs->free_cursor_block_ix);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (res == SPIFFS_OK && gc.state != FINISHED) {
|
while (res == SPIFFS_OK && gc.state != FINISHED) {
|
||||||
SPIFFS_GC_DBG("gc_clean: state = "_SPIPRIi" entry:"_SPIPRIi"\n", gc.state, cur_entry);
|
SPIFFS_GC_DBG("gc_clean: state = " _SPIPRIi " entry:" _SPIPRIi "\n", gc.state, cur_entry);
|
||||||
gc.obj_id_found = 0; // reset (to no found data page)
|
gc.obj_id_found = 0; // reset (to no found data page)
|
||||||
|
|
||||||
// scan through lookup pages
|
// scan through lookup pages
|
||||||
@ -425,7 +425,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
if (obj_id != SPIFFS_OBJ_ID_DELETED && obj_id != SPIFFS_OBJ_ID_FREE &&
|
if (obj_id != SPIFFS_OBJ_ID_DELETED && obj_id != SPIFFS_OBJ_ID_FREE &&
|
||||||
((obj_id & SPIFFS_OBJ_ID_IX_FLAG) == 0)) {
|
((obj_id & SPIFFS_OBJ_ID_IX_FLAG) == 0)) {
|
||||||
// found a data page, stop scanning and handle in switch case below
|
// found a data page, stop scanning and handle in switch case below
|
||||||
SPIFFS_GC_DBG("gc_clean: FIND_DATA state:"_SPIPRIi" - found obj id "_SPIPRIid"\n", gc.state, obj_id);
|
SPIFFS_GC_DBG("gc_clean: FIND_DATA state:" _SPIPRIi " - found obj id " _SPIPRIid"\n", gc.state, obj_id);
|
||||||
gc.obj_id_found = 1;
|
gc.obj_id_found = 1;
|
||||||
gc.cur_obj_id = obj_id;
|
gc.cur_obj_id = obj_id;
|
||||||
gc.cur_data_pix = cur_pix;
|
gc.cur_data_pix = cur_pix;
|
||||||
@ -440,7 +440,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
res = _spiffs_rd(fs, SPIFFS_OP_T_OBJ_LU2 | SPIFFS_OP_C_READ,
|
res = _spiffs_rd(fs, SPIFFS_OP_T_OBJ_LU2 | SPIFFS_OP_C_READ,
|
||||||
0, SPIFFS_PAGE_TO_PADDR(fs, cur_pix), sizeof(spiffs_page_header), (u8_t*)&p_hdr);
|
0, SPIFFS_PAGE_TO_PADDR(fs, cur_pix), sizeof(spiffs_page_header), (u8_t*)&p_hdr);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA found data page "_SPIPRIid":"_SPIPRIsp" @ "_SPIPRIpg"\n", gc.cur_obj_id, p_hdr.span_ix, cur_pix);
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA found data page " _SPIPRIid":" _SPIPRIsp" @ " _SPIPRIpg"\n", gc.cur_obj_id, p_hdr.span_ix, cur_pix);
|
||||||
if (SPIFFS_OBJ_IX_ENTRY_SPAN_IX(fs, p_hdr.span_ix) != gc.cur_objix_spix) {
|
if (SPIFFS_OBJ_IX_ENTRY_SPAN_IX(fs, p_hdr.span_ix) != gc.cur_objix_spix) {
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA no objix spix match, take in another run\n");
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA no objix spix match, take in another run\n");
|
||||||
} else {
|
} else {
|
||||||
@ -448,7 +448,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
if (p_hdr.flags & SPIFFS_PH_FLAG_DELET) {
|
if (p_hdr.flags & SPIFFS_PH_FLAG_DELET) {
|
||||||
// move page
|
// move page
|
||||||
res = spiffs_page_move(fs, 0, 0, obj_id, &p_hdr, cur_pix, &new_data_pix);
|
res = spiffs_page_move(fs, 0, 0, obj_id, &p_hdr, cur_pix, &new_data_pix);
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA move objix "_SPIPRIid":"_SPIPRIsp" page "_SPIPRIpg" to "_SPIPRIpg"\n", gc.cur_obj_id, p_hdr.span_ix, cur_pix, new_data_pix);
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA move objix " _SPIPRIid":" _SPIPRIsp" page " _SPIPRIpg" to " _SPIPRIpg"\n", gc.cur_obj_id, p_hdr.span_ix, cur_pix, new_data_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
// move wipes obj_lu, reload it
|
// move wipes obj_lu, reload it
|
||||||
res = _spiffs_rd(fs, SPIFFS_OP_T_OBJ_LU | SPIFFS_OP_C_READ,
|
res = _spiffs_rd(fs, SPIFFS_OP_T_OBJ_LU | SPIFFS_OP_C_READ,
|
||||||
@ -459,7 +459,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
// page is deleted but not deleted in lookup, scrap it -
|
// page is deleted but not deleted in lookup, scrap it -
|
||||||
// might seem unnecessary as we will erase this block, but
|
// might seem unnecessary as we will erase this block, but
|
||||||
// we might get aborted
|
// we might get aborted
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA wipe objix "_SPIPRIid":"_SPIPRIsp" page "_SPIPRIpg"\n", obj_id, p_hdr.span_ix, cur_pix);
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA wipe objix " _SPIPRIid":" _SPIPRIsp" page " _SPIPRIpg"\n", obj_id, p_hdr.span_ix, cur_pix);
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
new_data_pix = SPIFFS_OBJ_ID_FREE;
|
new_data_pix = SPIFFS_OBJ_ID_FREE;
|
||||||
@ -468,11 +468,11 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
if (gc.cur_objix_spix == 0) {
|
if (gc.cur_objix_spix == 0) {
|
||||||
// update object index header page
|
// update object index header page
|
||||||
((spiffs_page_ix*)((u8_t *)objix_hdr + sizeof(spiffs_page_object_ix_header)))[p_hdr.span_ix] = new_data_pix;
|
((spiffs_page_ix*)((u8_t *)objix_hdr + sizeof(spiffs_page_object_ix_header)))[p_hdr.span_ix] = new_data_pix;
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA wrote page "_SPIPRIpg" to objix_hdr entry "_SPIPRIsp" in mem\n", new_data_pix, (spiffs_span_ix)SPIFFS_OBJ_IX_ENTRY(fs, p_hdr.span_ix));
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA wrote page " _SPIPRIpg" to objix_hdr entry " _SPIPRIsp" in mem\n", new_data_pix, (spiffs_span_ix)SPIFFS_OBJ_IX_ENTRY(fs, p_hdr.span_ix));
|
||||||
} else {
|
} else {
|
||||||
// update object index page
|
// update object index page
|
||||||
((spiffs_page_ix*)((u8_t *)objix + sizeof(spiffs_page_object_ix)))[SPIFFS_OBJ_IX_ENTRY(fs, p_hdr.span_ix)] = new_data_pix;
|
((spiffs_page_ix*)((u8_t *)objix + sizeof(spiffs_page_object_ix)))[SPIFFS_OBJ_IX_ENTRY(fs, p_hdr.span_ix)] = new_data_pix;
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA wrote page "_SPIPRIpg" to objix entry "_SPIPRIsp" in mem\n", new_data_pix, (spiffs_span_ix)SPIFFS_OBJ_IX_ENTRY(fs, p_hdr.span_ix));
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA wrote page " _SPIPRIpg" to objix entry " _SPIPRIsp" in mem\n", new_data_pix, (spiffs_span_ix)SPIFFS_OBJ_IX_ENTRY(fs, p_hdr.span_ix));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -491,7 +491,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
if (p_hdr.flags & SPIFFS_PH_FLAG_DELET) {
|
if (p_hdr.flags & SPIFFS_PH_FLAG_DELET) {
|
||||||
// move page
|
// move page
|
||||||
res = spiffs_page_move(fs, 0, 0, obj_id, &p_hdr, cur_pix, &new_pix);
|
res = spiffs_page_move(fs, 0, 0, obj_id, &p_hdr, cur_pix, &new_pix);
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_OBJIX move objix "_SPIPRIid":"_SPIPRIsp" page "_SPIPRIpg" to "_SPIPRIpg"\n", obj_id, p_hdr.span_ix, cur_pix, new_pix);
|
SPIFFS_GC_DBG("gc_clean: MOVE_OBJIX move objix " _SPIPRIid":" _SPIPRIsp" page " _SPIPRIpg" to " _SPIPRIpg"\n", obj_id, p_hdr.span_ix, cur_pix, new_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
spiffs_cb_object_event(fs, (spiffs_page_object_ix *)&p_hdr,
|
spiffs_cb_object_event(fs, (spiffs_page_object_ix *)&p_hdr,
|
||||||
SPIFFS_EV_IX_MOV, obj_id, p_hdr.span_ix, new_pix, 0);
|
SPIFFS_EV_IX_MOV, obj_id, p_hdr.span_ix, new_pix, 0);
|
||||||
@ -504,7 +504,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
// page is deleted but not deleted in lookup, scrap it -
|
// page is deleted but not deleted in lookup, scrap it -
|
||||||
// might seem unnecessary as we will erase this block, but
|
// might seem unnecessary as we will erase this block, but
|
||||||
// we might get aborted
|
// we might get aborted
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_OBJIX wipe objix "_SPIPRIid":"_SPIPRIsp" page "_SPIPRIpg"\n", obj_id, p_hdr.span_ix, cur_pix);
|
SPIFFS_GC_DBG("gc_clean: MOVE_OBJIX wipe objix " _SPIPRIid":" _SPIPRIsp" page " _SPIPRIpg"\n", obj_id, p_hdr.span_ix, cur_pix);
|
||||||
res = spiffs_page_delete(fs, cur_pix);
|
res = spiffs_page_delete(fs, cur_pix);
|
||||||
if (res == SPIFFS_OK) {
|
if (res == SPIFFS_OK) {
|
||||||
spiffs_cb_object_event(fs, (spiffs_page_object_ix *)0,
|
spiffs_cb_object_event(fs, (spiffs_page_object_ix *)0,
|
||||||
@ -539,13 +539,13 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
0, SPIFFS_PAGE_TO_PADDR(fs, cur_pix), sizeof(spiffs_page_header), (u8_t*)&p_hdr);
|
0, SPIFFS_PAGE_TO_PADDR(fs, cur_pix), sizeof(spiffs_page_header), (u8_t*)&p_hdr);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
gc.cur_objix_spix = SPIFFS_OBJ_IX_ENTRY_SPAN_IX(fs, p_hdr.span_ix);
|
gc.cur_objix_spix = SPIFFS_OBJ_IX_ENTRY_SPAN_IX(fs, p_hdr.span_ix);
|
||||||
SPIFFS_GC_DBG("gc_clean: FIND_DATA find objix span_ix:"_SPIPRIsp"\n", gc.cur_objix_spix);
|
SPIFFS_GC_DBG("gc_clean: FIND_DATA find objix span_ix:" _SPIPRIsp"\n", gc.cur_objix_spix);
|
||||||
res = spiffs_obj_lu_find_id_and_span(fs, gc.cur_obj_id | SPIFFS_OBJ_ID_IX_FLAG, gc.cur_objix_spix, 0, &objix_pix);
|
res = spiffs_obj_lu_find_id_and_span(fs, gc.cur_obj_id | SPIFFS_OBJ_ID_IX_FLAG, gc.cur_objix_spix, 0, &objix_pix);
|
||||||
if (res == SPIFFS_ERR_NOT_FOUND) {
|
if (res == SPIFFS_ERR_NOT_FOUND) {
|
||||||
// on borked systems we might get an ERR_NOT_FOUND here -
|
// on borked systems we might get an ERR_NOT_FOUND here -
|
||||||
// this is handled by simply deleting the page as it is not referenced
|
// this is handled by simply deleting the page as it is not referenced
|
||||||
// from anywhere
|
// from anywhere
|
||||||
SPIFFS_GC_DBG("gc_clean: FIND_OBJ_DATA objix not found! Wipe page "_SPIPRIpg"\n", gc.cur_data_pix);
|
SPIFFS_GC_DBG("gc_clean: FIND_OBJ_DATA objix not found! Wipe page " _SPIPRIpg"\n", gc.cur_data_pix);
|
||||||
res = spiffs_page_delete(fs, gc.cur_data_pix);
|
res = spiffs_page_delete(fs, gc.cur_data_pix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
// then we restore states and continue scanning for data pages
|
// then we restore states and continue scanning for data pages
|
||||||
@ -554,7 +554,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
break; // done
|
break; // done
|
||||||
}
|
}
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
SPIFFS_GC_DBG("gc_clean: FIND_DATA found object index at page "_SPIPRIpg"\n", objix_pix);
|
SPIFFS_GC_DBG("gc_clean: FIND_DATA found object index at page " _SPIPRIpg"\n", objix_pix);
|
||||||
res = _spiffs_rd(fs, SPIFFS_OP_T_OBJ_LU2 | SPIFFS_OP_C_READ,
|
res = _spiffs_rd(fs, SPIFFS_OP_T_OBJ_LU2 | SPIFFS_OP_C_READ,
|
||||||
0, SPIFFS_PAGE_TO_PADDR(fs, objix_pix), SPIFFS_CFG_LOG_PAGE_SZ(fs), fs->work);
|
0, SPIFFS_PAGE_TO_PADDR(fs, objix_pix), SPIFFS_CFG_LOG_PAGE_SZ(fs), fs->work);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
@ -578,12 +578,12 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
if (gc.cur_objix_spix == 0) {
|
if (gc.cur_objix_spix == 0) {
|
||||||
// store object index header page
|
// store object index header page
|
||||||
res = spiffs_object_update_index_hdr(fs, 0, gc.cur_obj_id | SPIFFS_OBJ_ID_IX_FLAG, gc.cur_objix_pix, fs->work, 0, 0, 0, &new_objix_pix);
|
res = spiffs_object_update_index_hdr(fs, 0, gc.cur_obj_id | SPIFFS_OBJ_ID_IX_FLAG, gc.cur_objix_pix, fs->work, 0, 0, 0, &new_objix_pix);
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA store modified objix_hdr page, "_SPIPRIpg":"_SPIPRIsp"\n", new_objix_pix, 0);
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA store modified objix_hdr page, " _SPIPRIpg":" _SPIPRIsp"\n", new_objix_pix, 0);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
} else {
|
} else {
|
||||||
// store object index page
|
// store object index page
|
||||||
res = spiffs_page_move(fs, 0, fs->work, gc.cur_obj_id | SPIFFS_OBJ_ID_IX_FLAG, 0, gc.cur_objix_pix, &new_objix_pix);
|
res = spiffs_page_move(fs, 0, fs->work, gc.cur_obj_id | SPIFFS_OBJ_ID_IX_FLAG, 0, gc.cur_objix_pix, &new_objix_pix);
|
||||||
SPIFFS_GC_DBG("gc_clean: MOVE_DATA store modified objix page, "_SPIPRIpg":"_SPIPRIsp"\n", new_objix_pix, objix->p_hdr.span_ix);
|
SPIFFS_GC_DBG("gc_clean: MOVE_DATA store modified objix page, " _SPIPRIpg":" _SPIPRIsp"\n", new_objix_pix, objix->p_hdr.span_ix);
|
||||||
SPIFFS_CHECK_RES(res);
|
SPIFFS_CHECK_RES(res);
|
||||||
spiffs_cb_object_event(fs, (spiffs_page_object_ix *)fs->work,
|
spiffs_cb_object_event(fs, (spiffs_page_object_ix *)fs->work,
|
||||||
SPIFFS_EV_IX_UPD, gc.cur_obj_id, objix->p_hdr.span_ix, new_objix_pix, 0);
|
SPIFFS_EV_IX_UPD, gc.cur_obj_id, objix->p_hdr.span_ix, new_objix_pix, 0);
|
||||||
@ -598,7 +598,7 @@ s32_t spiffs_gc_clean(spiffs *fs, spiffs_block_ix bix) {
|
|||||||
cur_entry = 0;
|
cur_entry = 0;
|
||||||
break;
|
break;
|
||||||
} // switch gc.state
|
} // switch gc.state
|
||||||
SPIFFS_GC_DBG("gc_clean: state-> "_SPIPRIi"\n", gc.state);
|
SPIFFS_GC_DBG("gc_clean: state-> " _SPIPRIi "\n", gc.state);
|
||||||
} // while state != FINISHED
|
} // while state != FINISHED
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,9 +76,9 @@ s32_t SPIFFS_mount(spiffs *fs, spiffs_config *config, u8_t *work,
|
|||||||
void *cache, u32_t cache_size,
|
void *cache, u32_t cache_size,
|
||||||
spiffs_check_callback check_cb_f) {
|
spiffs_check_callback check_cb_f) {
|
||||||
SPIFFS_API_DBG("%s "
|
SPIFFS_API_DBG("%s "
|
||||||
" sz:"_SPIPRIi " logpgsz:"_SPIPRIi " logblksz:"_SPIPRIi " perasz:"_SPIPRIi
|
" sz:" _SPIPRIi " logpgsz:" _SPIPRIi " logblksz:" _SPIPRIi " perasz:" _SPIPRIi
|
||||||
" addr:"_SPIPRIad
|
" addr:" _SPIPRIad
|
||||||
" fdsz:"_SPIPRIi " cachesz:"_SPIPRIi
|
" fdsz:" _SPIPRIi " cachesz:" _SPIPRIi
|
||||||
"\n",
|
"\n",
|
||||||
__func__,
|
__func__,
|
||||||
SPIFFS_CFG_PHYS_SZ(fs),
|
SPIFFS_CFG_PHYS_SZ(fs),
|
||||||
@ -137,14 +137,14 @@ s32_t SPIFFS_mount(spiffs *fs, spiffs_config *config, u8_t *work,
|
|||||||
res = spiffs_obj_lu_scan(fs);
|
res = spiffs_obj_lu_scan(fs);
|
||||||
SPIFFS_API_CHECK_RES_UNLOCK(fs, res);
|
SPIFFS_API_CHECK_RES_UNLOCK(fs, res);
|
||||||
|
|
||||||
SPIFFS_DBG("page index byte len: "_SPIPRIi"\n", (u32_t)SPIFFS_CFG_LOG_PAGE_SZ(fs));
|
SPIFFS_DBG("page index byte len: " _SPIPRIi "\n", (u32_t)SPIFFS_CFG_LOG_PAGE_SZ(fs));
|
||||||
SPIFFS_DBG("object lookup pages: "_SPIPRIi"\n", (u32_t)SPIFFS_OBJ_LOOKUP_PAGES(fs));
|
SPIFFS_DBG("object lookup pages: " _SPIPRIi "\n", (u32_t)SPIFFS_OBJ_LOOKUP_PAGES(fs));
|
||||||
SPIFFS_DBG("page pages per block: "_SPIPRIi"\n", (u32_t)SPIFFS_PAGES_PER_BLOCK(fs));
|
SPIFFS_DBG("page pages per block: " _SPIPRIi "\n", (u32_t)SPIFFS_PAGES_PER_BLOCK(fs));
|
||||||
SPIFFS_DBG("page header length: "_SPIPRIi"\n", (u32_t)sizeof(spiffs_page_header));
|
SPIFFS_DBG("page header length: " _SPIPRIi "\n", (u32_t)sizeof(spiffs_page_header));
|
||||||
SPIFFS_DBG("object header index entries: "_SPIPRIi"\n", (u32_t)SPIFFS_OBJ_HDR_IX_LEN(fs));
|
SPIFFS_DBG("object header index entries: " _SPIPRIi "\n", (u32_t)SPIFFS_OBJ_HDR_IX_LEN(fs));
|
||||||
SPIFFS_DBG("object index entries: "_SPIPRIi"\n", (u32_t)SPIFFS_OBJ_IX_LEN(fs));
|
SPIFFS_DBG("object index entries: " _SPIPRIi "\n", (u32_t)SPIFFS_OBJ_IX_LEN(fs));
|
||||||
SPIFFS_DBG("available file descriptors: "_SPIPRIi"\n", (u32_t)fs->fd_count);
|
SPIFFS_DBG("available file descriptors: " _SPIPRIi "\n", (u32_t)fs->fd_count);
|
||||||
SPIFFS_DBG("free blocks: "_SPIPRIi"\n", (u32_t)fs->free_blocks);
|
SPIFFS_DBG("free blocks: " _SPIPRIi "\n", (u32_t)fs->free_blocks);
|
||||||
|
|
||||||
fs->check_cb_f = check_cb_f;
|
fs->check_cb_f = check_cb_f;
|
||||||
|
|
||||||
@ -210,7 +210,7 @@ s32_t SPIFFS_creat(spiffs *fs, const char *path, spiffs_mode mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
spiffs_file SPIFFS_open(spiffs *fs, const char *path, spiffs_flags flags, spiffs_mode mode) {
|
spiffs_file SPIFFS_open(spiffs *fs, const char *path, spiffs_flags flags, spiffs_mode mode) {
|
||||||
SPIFFS_API_DBG("%s '%s' "_SPIPRIfl "\n", __func__, path, flags);
|
SPIFFS_API_DBG("%s '%s' " _SPIPRIfl "\n", __func__, path, flags);
|
||||||
(void)mode;
|
(void)mode;
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
@ -291,7 +291,7 @@ spiffs_file SPIFFS_open(spiffs *fs, const char *path, spiffs_flags flags, spiffs
|
|||||||
}
|
}
|
||||||
|
|
||||||
spiffs_file SPIFFS_open_by_dirent(spiffs *fs, struct spiffs_dirent *e, spiffs_flags flags, spiffs_mode mode) {
|
spiffs_file SPIFFS_open_by_dirent(spiffs *fs, struct spiffs_dirent *e, spiffs_flags flags, spiffs_mode mode) {
|
||||||
SPIFFS_API_DBG("%s '%s':"_SPIPRIid " "_SPIPRIfl "\n", __func__, e->name, e->obj_id, flags);
|
SPIFFS_API_DBG("%s '%s':" _SPIPRIid " " _SPIPRIfl "\n", __func__, e->name, e->obj_id, flags);
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
SPIFFS_LOCK(fs);
|
SPIFFS_LOCK(fs);
|
||||||
@ -324,7 +324,7 @@ spiffs_file SPIFFS_open_by_dirent(spiffs *fs, struct spiffs_dirent *e, spiffs_fl
|
|||||||
}
|
}
|
||||||
|
|
||||||
spiffs_file SPIFFS_open_by_page(spiffs *fs, spiffs_page_ix page_ix, spiffs_flags flags, spiffs_mode mode) {
|
spiffs_file SPIFFS_open_by_page(spiffs *fs, spiffs_page_ix page_ix, spiffs_flags flags, spiffs_mode mode) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIpg " "_SPIPRIfl "\n", __func__, page_ix, flags);
|
SPIFFS_API_DBG("%s " _SPIPRIpg " " _SPIPRIfl "\n", __func__, page_ix, flags);
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
SPIFFS_LOCK(fs);
|
SPIFFS_LOCK(fs);
|
||||||
@ -425,7 +425,7 @@ static s32_t spiffs_hydro_read(spiffs *fs, spiffs_file fh, void *buf, s32_t len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_read(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
s32_t SPIFFS_read(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd " "_SPIPRIi "\n", __func__, fh, len);
|
SPIFFS_API_DBG("%s " _SPIPRIfd " " _SPIPRIi "\n", __func__, fh, len);
|
||||||
s32_t res = spiffs_hydro_read(fs, fh, buf, len);
|
s32_t res = spiffs_hydro_read(fs, fh, buf, len);
|
||||||
if (res == SPIFFS_ERR_END_OF_OBJECT) {
|
if (res == SPIFFS_ERR_END_OF_OBJECT) {
|
||||||
res = 0;
|
res = 0;
|
||||||
@ -459,7 +459,7 @@ static s32_t spiffs_hydro_write(spiffs *fs, spiffs_fd *fd, void *buf, u32_t offs
|
|||||||
#endif // !SPIFFS_READ_ONLY
|
#endif // !SPIFFS_READ_ONLY
|
||||||
|
|
||||||
s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd " "_SPIPRIi "\n", __func__, fh, len);
|
SPIFFS_API_DBG("%s " _SPIPRIfd " " _SPIPRIi "\n", __func__, fh, len);
|
||||||
#if SPIFFS_READ_ONLY
|
#if SPIFFS_READ_ONLY
|
||||||
(void)fs; (void)fh; (void)buf; (void)len;
|
(void)fs; (void)fh; (void)buf; (void)len;
|
||||||
return SPIFFS_ERR_RO_NOT_IMPL;
|
return SPIFFS_ERR_RO_NOT_IMPL;
|
||||||
@ -517,7 +517,7 @@ s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
|||||||
offset + len > fd->cache_page->offset + SPIFFS_CFG_LOG_PAGE_SZ(fs)) // writing beyond cache page
|
offset + len > fd->cache_page->offset + SPIFFS_CFG_LOG_PAGE_SZ(fs)) // writing beyond cache page
|
||||||
{
|
{
|
||||||
// boundary violation, write back cache first and allocate new
|
// boundary violation, write back cache first and allocate new
|
||||||
SPIFFS_CACHE_DBG("CACHE_WR_DUMP: dumping cache page "_SPIPRIi" for fd "_SPIPRIfd":"_SPIPRIid", boundary viol, offs:"_SPIPRIi" size:"_SPIPRIi"\n",
|
SPIFFS_CACHE_DBG("CACHE_WR_DUMP: dumping cache page " _SPIPRIi " for fd " _SPIPRIfd ":" _SPIPRIid ", boundary viol, offs:" _SPIPRIi " size:" _SPIPRIi "\n",
|
||||||
fd->cache_page->ix, fd->file_nbr, fd->obj_id, fd->cache_page->offset, fd->cache_page->size);
|
fd->cache_page->ix, fd->file_nbr, fd->obj_id, fd->cache_page->offset, fd->cache_page->size);
|
||||||
res = spiffs_hydro_write(fs, fd,
|
res = spiffs_hydro_write(fs, fd,
|
||||||
spiffs_get_cache_page(fs, spiffs_get_cache(fs), fd->cache_page->ix),
|
spiffs_get_cache_page(fs, spiffs_get_cache(fs), fd->cache_page->ix),
|
||||||
@ -535,14 +535,14 @@ s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
|||||||
if (fd->cache_page) {
|
if (fd->cache_page) {
|
||||||
fd->cache_page->offset = offset;
|
fd->cache_page->offset = offset;
|
||||||
fd->cache_page->size = 0;
|
fd->cache_page->size = 0;
|
||||||
SPIFFS_CACHE_DBG("CACHE_WR_ALLO: allocating cache page "_SPIPRIi" for fd "_SPIPRIfd":"_SPIPRIid"\n",
|
SPIFFS_CACHE_DBG("CACHE_WR_ALLO: allocating cache page " _SPIPRIi " for fd " _SPIPRIfd ":" _SPIPRIid "\n",
|
||||||
fd->cache_page->ix, fd->file_nbr, fd->obj_id);
|
fd->cache_page->ix, fd->file_nbr, fd->obj_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fd->cache_page) {
|
if (fd->cache_page) {
|
||||||
u32_t offset_in_cpage = offset - fd->cache_page->offset;
|
u32_t offset_in_cpage = offset - fd->cache_page->offset;
|
||||||
SPIFFS_CACHE_DBG("CACHE_WR_WRITE: storing to cache page "_SPIPRIi" for fd "_SPIPRIfd":"_SPIPRIid", offs "_SPIPRIi":"_SPIPRIi" len "_SPIPRIi"\n",
|
SPIFFS_CACHE_DBG("CACHE_WR_WRITE: storing to cache page " _SPIPRIi " for fd " _SPIPRIfd ":" _SPIPRIid ", offs " _SPIPRIi ":" _SPIPRIi " len " _SPIPRIi "\n",
|
||||||
fd->cache_page->ix, fd->file_nbr, fd->obj_id,
|
fd->cache_page->ix, fd->file_nbr, fd->obj_id,
|
||||||
offset, offset_in_cpage, len);
|
offset, offset_in_cpage, len);
|
||||||
spiffs_cache *cache = spiffs_get_cache(fs);
|
spiffs_cache *cache = spiffs_get_cache(fs);
|
||||||
@ -574,7 +574,7 @@ s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
|||||||
// big write, no need to cache it - but first check if there is a cached write already
|
// big write, no need to cache it - but first check if there is a cached write already
|
||||||
if (fd->cache_page) {
|
if (fd->cache_page) {
|
||||||
// write back cache first
|
// write back cache first
|
||||||
SPIFFS_CACHE_DBG("CACHE_WR_DUMP: dumping cache page "_SPIPRIi" for fd "_SPIPRIfd":"_SPIPRIid", big write, offs:"_SPIPRIi" size:"_SPIPRIi"\n",
|
SPIFFS_CACHE_DBG("CACHE_WR_DUMP: dumping cache page " _SPIPRIi " for fd " _SPIPRIfd ":" _SPIPRIid ", big write, offs:" _SPIPRIi " size:" _SPIPRIi "\n",
|
||||||
fd->cache_page->ix, fd->file_nbr, fd->obj_id, fd->cache_page->offset, fd->cache_page->size);
|
fd->cache_page->ix, fd->file_nbr, fd->obj_id, fd->cache_page->offset, fd->cache_page->size);
|
||||||
res = spiffs_hydro_write(fs, fd,
|
res = spiffs_hydro_write(fs, fd,
|
||||||
spiffs_get_cache_page(fs, spiffs_get_cache(fs), fd->cache_page->ix),
|
spiffs_get_cache_page(fs, spiffs_get_cache(fs), fd->cache_page->ix),
|
||||||
@ -598,7 +598,7 @@ s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_lseek(spiffs *fs, spiffs_file fh, s32_t offs, int whence) {
|
s32_t SPIFFS_lseek(spiffs *fs, spiffs_file fh, s32_t offs, int whence) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd " "_SPIPRIi " %s\n", __func__, fh, offs, (const char* []){"SET","CUR","END","???"}[MIN(whence,3)]);
|
SPIFFS_API_DBG("%s " _SPIPRIfd " " _SPIPRIi " %s\n", __func__, fh, offs, (const char* []){"SET","CUR","END","???"}[MIN(whence,3)]);
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
SPIFFS_LOCK(fs);
|
SPIFFS_LOCK(fs);
|
||||||
@ -693,7 +693,7 @@ s32_t SPIFFS_remove(spiffs *fs, const char *path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_fremove(spiffs *fs, spiffs_file fh) {
|
s32_t SPIFFS_fremove(spiffs *fs, spiffs_file fh) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd "\n", __func__, fh);
|
SPIFFS_API_DBG("%s " _SPIPRIfd "\n", __func__, fh);
|
||||||
#if SPIFFS_READ_ONLY
|
#if SPIFFS_READ_ONLY
|
||||||
(void)fs; (void)fh;
|
(void)fs; (void)fh;
|
||||||
return SPIFFS_ERR_RO_NOT_IMPL;
|
return SPIFFS_ERR_RO_NOT_IMPL;
|
||||||
@ -776,7 +776,7 @@ s32_t SPIFFS_stat(spiffs *fs, const char *path, spiffs_stat *s) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_fstat(spiffs *fs, spiffs_file fh, spiffs_stat *s) {
|
s32_t SPIFFS_fstat(spiffs *fs, spiffs_file fh, spiffs_stat *s) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd "\n", __func__, fh);
|
SPIFFS_API_DBG("%s " _SPIPRIfd "\n", __func__, fh);
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
SPIFFS_LOCK(fs);
|
SPIFFS_LOCK(fs);
|
||||||
@ -818,7 +818,7 @@ static s32_t spiffs_fflush_cache(spiffs *fs, spiffs_file fh) {
|
|||||||
fd->cache_page = spiffs_cache_page_get_by_fd(fs, fd);
|
fd->cache_page = spiffs_cache_page_get_by_fd(fs, fd);
|
||||||
}
|
}
|
||||||
if (fd->cache_page) {
|
if (fd->cache_page) {
|
||||||
SPIFFS_CACHE_DBG("CACHE_WR_DUMP: dumping cache page "_SPIPRIi" for fd "_SPIPRIfd":"_SPIPRIid", flush, offs:"_SPIPRIi" size:"_SPIPRIi"\n",
|
SPIFFS_CACHE_DBG("CACHE_WR_DUMP: dumping cache page " _SPIPRIi " for fd " _SPIPRIfd ":" _SPIPRIid ", flush, offs:" _SPIPRIi " size:" _SPIPRIi "\n",
|
||||||
fd->cache_page->ix, fd->file_nbr, fd->obj_id, fd->cache_page->offset, fd->cache_page->size);
|
fd->cache_page->ix, fd->file_nbr, fd->obj_id, fd->cache_page->offset, fd->cache_page->size);
|
||||||
res = spiffs_hydro_write(fs, fd,
|
res = spiffs_hydro_write(fs, fd,
|
||||||
spiffs_get_cache_page(fs, spiffs_get_cache(fs), fd->cache_page->ix),
|
spiffs_get_cache_page(fs, spiffs_get_cache(fs), fd->cache_page->ix),
|
||||||
@ -836,7 +836,7 @@ static s32_t spiffs_fflush_cache(spiffs *fs, spiffs_file fh) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
s32_t SPIFFS_fflush(spiffs *fs, spiffs_file fh) {
|
s32_t SPIFFS_fflush(spiffs *fs, spiffs_file fh) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd "\n", __func__, fh);
|
SPIFFS_API_DBG("%s " _SPIPRIfd "\n", __func__, fh);
|
||||||
(void)fh;
|
(void)fh;
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
@ -853,7 +853,7 @@ s32_t SPIFFS_fflush(spiffs *fs, spiffs_file fh) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_close(spiffs *fs, spiffs_file fh) {
|
s32_t SPIFFS_close(spiffs *fs, spiffs_file fh) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd "\n", __func__, fh);
|
SPIFFS_API_DBG("%s " _SPIPRIfd "\n", __func__, fh);
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
|
|
||||||
@ -1149,7 +1149,7 @@ s32_t SPIFFS_info(spiffs *fs, u32_t *total, u32_t *used) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_gc_quick(spiffs *fs, u16_t max_free_pages) {
|
s32_t SPIFFS_gc_quick(spiffs *fs, u16_t max_free_pages) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIi "\n", __func__, max_free_pages);
|
SPIFFS_API_DBG("%s " _SPIPRIi "\n", __func__, max_free_pages);
|
||||||
#if SPIFFS_READ_ONLY
|
#if SPIFFS_READ_ONLY
|
||||||
(void)fs; (void)max_free_pages;
|
(void)fs; (void)max_free_pages;
|
||||||
return SPIFFS_ERR_RO_NOT_IMPL;
|
return SPIFFS_ERR_RO_NOT_IMPL;
|
||||||
@ -1169,7 +1169,7 @@ s32_t SPIFFS_gc_quick(spiffs *fs, u16_t max_free_pages) {
|
|||||||
|
|
||||||
|
|
||||||
s32_t SPIFFS_gc(spiffs *fs, u32_t size) {
|
s32_t SPIFFS_gc(spiffs *fs, u32_t size) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIi "\n", __func__, size);
|
SPIFFS_API_DBG("%s " _SPIPRIi "\n", __func__, size);
|
||||||
#if SPIFFS_READ_ONLY
|
#if SPIFFS_READ_ONLY
|
||||||
(void)fs; (void)size;
|
(void)fs; (void)size;
|
||||||
return SPIFFS_ERR_RO_NOT_IMPL;
|
return SPIFFS_ERR_RO_NOT_IMPL;
|
||||||
@ -1188,7 +1188,7 @@ s32_t SPIFFS_gc(spiffs *fs, u32_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_eof(spiffs *fs, spiffs_file fh) {
|
s32_t SPIFFS_eof(spiffs *fs, spiffs_file fh) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd "\n", __func__, fh);
|
SPIFFS_API_DBG("%s " _SPIPRIfd "\n", __func__, fh);
|
||||||
s32_t res;
|
s32_t res;
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
@ -1212,7 +1212,7 @@ s32_t SPIFFS_eof(spiffs *fs, spiffs_file fh) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_tell(spiffs *fs, spiffs_file fh) {
|
s32_t SPIFFS_tell(spiffs *fs, spiffs_file fh) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd "\n", __func__, fh);
|
SPIFFS_API_DBG("%s " _SPIPRIfd "\n", __func__, fh);
|
||||||
s32_t res;
|
s32_t res;
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
@ -1247,7 +1247,7 @@ s32_t SPIFFS_set_file_callback_func(spiffs *fs, spiffs_file_callback cb_func) {
|
|||||||
|
|
||||||
s32_t SPIFFS_ix_map(spiffs *fs, spiffs_file fh, spiffs_ix_map *map,
|
s32_t SPIFFS_ix_map(spiffs *fs, spiffs_file fh, spiffs_ix_map *map,
|
||||||
u32_t offset, u32_t len, spiffs_page_ix *map_buf) {
|
u32_t offset, u32_t len, spiffs_page_ix *map_buf) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd " "_SPIPRIi " "_SPIPRIi "\n", __func__, fh, offset, len);
|
SPIFFS_API_DBG("%s " _SPIPRIfd " " _SPIPRIi " " _SPIPRIi "\n", __func__, fh, offset, len);
|
||||||
s32_t res;
|
s32_t res;
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
@ -1280,7 +1280,7 @@ s32_t SPIFFS_ix_map(spiffs *fs, spiffs_file fh, spiffs_ix_map *map,
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_ix_unmap(spiffs *fs, spiffs_file fh) {
|
s32_t SPIFFS_ix_unmap(spiffs *fs, spiffs_file fh) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd "\n", __func__, fh);
|
SPIFFS_API_DBG("%s " _SPIPRIfd "\n", __func__, fh);
|
||||||
s32_t res;
|
s32_t res;
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
@ -1303,7 +1303,7 @@ s32_t SPIFFS_ix_unmap(spiffs *fs, spiffs_file fh) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
s32_t SPIFFS_ix_remap(spiffs *fs, spiffs_file fh, u32_t offset) {
|
s32_t SPIFFS_ix_remap(spiffs *fs, spiffs_file fh, u32_t offset) {
|
||||||
SPIFFS_API_DBG("%s "_SPIPRIfd " "_SPIPRIi "\n", __func__, fh, offset);
|
SPIFFS_API_DBG("%s " _SPIPRIfd " " _SPIPRIi "\n", __func__, fh, offset);
|
||||||
s32_t res = SPIFFS_OK;
|
s32_t res = SPIFFS_OK;
|
||||||
SPIFFS_API_CHECK_CFG(fs);
|
SPIFFS_API_CHECK_CFG(fs);
|
||||||
SPIFFS_API_CHECK_MOUNT(fs);
|
SPIFFS_API_CHECK_MOUNT(fs);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user