Data Structures | Macros | Typedefs | Functions
spiffs_nucleus.h File Reference

Go to the source code of this file.

Data Structures

struct  spiffs_fd
 
struct  spiffs_page_header
 
struct  spiffs_page_object_ix_header
 
struct  spiffs_page_object_ix
 

Macros

#define _SPIFFS_ERR_CHECK_FIRST   (SPIFFS_ERR_INTERNAL - 1)
 
#define SPIFFS_ERR_CHECK_OBJ_ID_MISM   (SPIFFS_ERR_INTERNAL - 1)
 
#define SPIFFS_ERR_CHECK_SPIX_MISM   (SPIFFS_ERR_INTERNAL - 2)
 
#define SPIFFS_ERR_CHECK_FLAGS_BAD   (SPIFFS_ERR_INTERNAL - 3)
 
#define _SPIFFS_ERR_CHECK_LAST   (SPIFFS_ERR_INTERNAL - 4)
 
#define SPIFFS_VIS_COUNTINUE   (SPIFFS_ERR_INTERNAL - 20)
 
#define SPIFFS_VIS_COUNTINUE_RELOAD   (SPIFFS_ERR_INTERNAL - 21)
 
#define SPIFFS_VIS_END   (SPIFFS_ERR_INTERNAL - 22)
 
#define SPIFFS_EV_IX_UPD   (0)
 
#define SPIFFS_EV_IX_NEW   (1)
 
#define SPIFFS_EV_IX_DEL   (2)
 
#define SPIFFS_EV_IX_MOV   (3)
 
#define SPIFFS_EV_IX_UPD_HDR   (4)
 
#define SPIFFS_OBJ_ID_IX_FLAG   ((spiffs_obj_id)(1<<(8*sizeof(spiffs_obj_id)-1)))
 
#define SPIFFS_UNDEFINED_LEN   (u32_t)(-1)
 
#define SPIFFS_OBJ_ID_DELETED   ((spiffs_obj_id)0)
 
#define SPIFFS_OBJ_ID_FREE   ((spiffs_obj_id)-1)
 
#define SPIFFS_PACKED
 
#define SPIFFS_CONFIG_MAGIC   (0x20090315)
 
#define SPIFFS_CFG_LOG_PAGE_SZ(fs)   ((fs)->cfg.log_page_size)
 
#define SPIFFS_CFG_LOG_BLOCK_SZ(fs)   ((fs)->cfg.log_block_size)
 
#define SPIFFS_CFG_PHYS_SZ(fs)   ((fs)->cfg.phys_size)
 
#define SPIFFS_CFG_PHYS_ERASE_SZ(fs)   ((fs)->cfg.phys_erase_block)
 
#define SPIFFS_CFG_PHYS_ADDR(fs)   ((fs)->cfg.phys_addr)
 
#define SPIFFS_MAX_PAGES(fs)   ( SPIFFS_CFG_PHYS_SZ(fs)/SPIFFS_CFG_LOG_PAGE_SZ(fs) )
 
#define SPIFFS_PAGES_PER_BLOCK(fs)   ( SPIFFS_CFG_LOG_BLOCK_SZ(fs)/SPIFFS_CFG_LOG_PAGE_SZ(fs) )
 
#define SPIFFS_OBJ_LOOKUP_PAGES(fs)   (MAX(1, (SPIFFS_PAGES_PER_BLOCK(fs) * sizeof(spiffs_obj_id)) / SPIFFS_CFG_LOG_PAGE_SZ(fs)) )
 
#define SPIFFS_IS_LOOKUP_PAGE(fs, pix)   (((pix) % SPIFFS_PAGES_PER_BLOCK(fs)) < SPIFFS_OBJ_LOOKUP_PAGES(fs))
 
#define SPIFFS_OBJ_LOOKUP_MAX_ENTRIES(fs)   (SPIFFS_PAGES_PER_BLOCK(fs)-SPIFFS_OBJ_LOOKUP_PAGES(fs))
 
#define SPIFFS_BLOCK_TO_PADDR(fs, block)   ( SPIFFS_CFG_PHYS_ADDR(fs) + (block)* SPIFFS_CFG_LOG_BLOCK_SZ(fs) )
 
#define SPIFFS_OBJ_LOOKUP_ENTRY_TO_PIX(fs, block, entry)   ((block)*SPIFFS_PAGES_PER_BLOCK(fs) + (SPIFFS_OBJ_LOOKUP_PAGES(fs) + entry))
 
#define SPIFFS_OBJ_LOOKUP_ENTRY_TO_PADDR(fs, block, entry)   (SPIFFS_BLOCK_TO_PADDR(fs, block) + (SPIFFS_OBJ_LOOKUP_PAGES(fs) + entry) * SPIFFS_CFG_LOG_PAGE_SZ(fs) )
 
#define SPIFFS_PAGE_TO_PADDR(fs, page)   ( SPIFFS_CFG_PHYS_ADDR(fs) + (page) * SPIFFS_CFG_LOG_PAGE_SZ(fs) )
 
#define SPIFFS_PADDR_TO_PAGE(fs, addr)   ( ((addr) - SPIFFS_CFG_PHYS_ADDR(fs)) / SPIFFS_CFG_LOG_PAGE_SZ(fs) )
 
#define SPIFFS_PADDR_TO_PAGE_OFFSET(fs, addr)   ( ((addr) - SPIFFS_CFG_PHYS_ADDR(fs)) % SPIFFS_CFG_LOG_PAGE_SZ(fs) )
 
#define SPIFFS_BLOCK_FOR_PAGE(fs, page)   ( (page) / SPIFFS_PAGES_PER_BLOCK(fs) )
 
#define SPIFFS_PAGE_FOR_BLOCK(fs, block)   ( (block) * SPIFFS_PAGES_PER_BLOCK(fs) )
 
#define SPIFFS_OBJ_LOOKUP_ENTRY_FOR_PAGE(fs, page)   ( (page) % SPIFFS_PAGES_PER_BLOCK(fs) - SPIFFS_OBJ_LOOKUP_PAGES(fs) )
 
#define SPIFFS_DATA_PAGE_SIZE(fs)   ( SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_page_header) )
 
#define SPIFFS_ERASE_COUNT_PADDR(fs, bix)   ( SPIFFS_BLOCK_TO_PADDR(fs, bix) + SPIFFS_OBJ_LOOKUP_PAGES(fs) * SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_obj_id) )
 
#define SPIFFS_MAGIC_PADDR(fs, bix)   ( SPIFFS_BLOCK_TO_PADDR(fs, bix) + SPIFFS_OBJ_LOOKUP_PAGES(fs) * SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_obj_id)*2 )
 
#define SPIFFS_CHECK_MAGIC_POSSIBLE(fs)
 
#define SPIFFS_OBJ_HDR_IX_LEN(fs)   ((SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_page_object_ix_header))/sizeof(spiffs_page_ix))
 
#define SPIFFS_OBJ_IX_LEN(fs)   ((SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_page_object_ix))/sizeof(spiffs_page_ix))
 
#define SPIFFS_OBJ_IX_ENTRY(fs, spix)   ((spix) < SPIFFS_OBJ_HDR_IX_LEN(fs) ? (spix) : (((spix)-SPIFFS_OBJ_HDR_IX_LEN(fs))%SPIFFS_OBJ_IX_LEN(fs)))
 
#define SPIFFS_OBJ_IX_ENTRY_SPAN_IX(fs, spix)   ((spix) < SPIFFS_OBJ_HDR_IX_LEN(fs) ? 0 : (1+((spix)-SPIFFS_OBJ_HDR_IX_LEN(fs))/SPIFFS_OBJ_IX_LEN(fs)))
 
#define SPIFFS_DATA_SPAN_IX_FOR_OBJ_IX_SPAN_IX(fs, spix)   ( (spix) == 0 ? 0 : (SPIFFS_OBJ_HDR_IX_LEN(fs) + (((spix)-1) * SPIFFS_OBJ_IX_LEN(fs))) )
 
#define SPIFFS_FH_OFFS(fs, fh)   (fh)
 
#define SPIFFS_FH_UNOFFS(fs, fh)   (fh)
 
#define SPIFFS_OP_T_OBJ_LU   (0<<0)
 
#define SPIFFS_OP_T_OBJ_LU2   (1<<0)
 
#define SPIFFS_OP_T_OBJ_IX   (2<<0)
 
#define SPIFFS_OP_T_OBJ_DA   (3<<0)
 
#define SPIFFS_OP_C_DELE   (0<<2)
 
#define SPIFFS_OP_C_UPDT   (1<<2)
 
#define SPIFFS_OP_C_MOVS   (2<<2)
 
#define SPIFFS_OP_C_MOVD   (3<<2)
 
#define SPIFFS_OP_C_FLSH   (4<<2)
 
#define SPIFFS_OP_C_READ   (5<<2)
 
#define SPIFFS_OP_C_WRTHRU   (6<<2)
 
#define SPIFFS_OP_TYPE_MASK   (3<<0)
 
#define SPIFFS_OP_COM_MASK   (7<<2)
 
#define SPIFFS_PH_FLAG_USED   (1<<0)
 
#define SPIFFS_PH_FLAG_FINAL   (1<<1)
 
#define SPIFFS_PH_FLAG_INDEX   (1<<2)
 
#define SPIFFS_PH_FLAG_DELET   (1<<7)
 
#define SPIFFS_PH_FLAG_IXDELE   (1<<6)
 
#define SPIFFS_CHECK_MOUNT(fs)   ((fs)->mounted != 0)
 
#define SPIFFS_CHECK_CFG(fs)   ((fs)->config_magic == SPIFFS_CONFIG_MAGIC)
 
#define SPIFFS_CHECK_RES(res)
 
#define SPIFFS_API_CHECK_MOUNT(fs)
 
#define SPIFFS_API_CHECK_CFG(fs)
 
#define SPIFFS_API_CHECK_RES(fs, res)
 
#define SPIFFS_API_CHECK_RES_UNLOCK(fs, res)
 
#define SPIFFS_VALIDATE_OBJIX(ph, objid, spix)
 
#define SPIFFS_VALIDATE_DATA(ph, objid, spix)
 
#define SPIFFS_VIS_CHECK_ID   (1<<0)
 
#define SPIFFS_VIS_CHECK_PH   (1<<1)
 
#define SPIFFS_VIS_NO_WRAP   (1<<2)
 
#define SPIFFS_HAL_WRITE(_fs, _paddr, _len, _src)   (_fs)->cfg.hal_write_f((_paddr), (_len), (_src))
 
#define SPIFFS_HAL_READ(_fs, _paddr, _len, _dst)   (_fs)->cfg.hal_read_f((_paddr), (_len), (_dst))
 
#define SPIFFS_HAL_ERASE(_fs, _paddr, _len)   (_fs)->cfg.hal_erase_f((_paddr), (_len))
 
#define _spiffs_rd(fs, op, fh, addr, len, dst)   spiffs_phys_rd((fs), (addr), (len), (dst))
 
#define _spiffs_wr(fs, op, fh, addr, len, src)   spiffs_phys_wr((fs), (addr), (len), (src))
 
#define MIN(a, b)   ((a) < (b) ? (a) : (b))
 
#define MAX(a, b)   ((a) > (b) ? (a) : (b))
 
#define _SPIFFS_MEMCPY(__d, __s, __l)   do{memcpy((__d),(__s),(__l));}while(0)
 

Typedefs

typedef s32_t(* spiffs_visitor_f) (spiffs *fs, spiffs_obj_id id, spiffs_block_ix bix, int ix_entry, const void *user_const_p, void *user_var_p)
 

Functions

s32_t spiffs_phys_rd (spiffs *fs, u32_t addr, u32_t len, u8_t *dst)
 
s32_t spiffs_phys_wr (spiffs *fs, u32_t addr, u32_t len, u8_t *src)
 
s32_t spiffs_phys_cpy (spiffs *fs, spiffs_file fh, u32_t dst, u32_t src, u32_t len)
 
s32_t spiffs_phys_count_free_blocks (spiffs *fs)
 
s32_t spiffs_obj_lu_find_entry_visitor (spiffs *fs, spiffs_block_ix starting_block, int starting_lu_entry, u8_t flags, spiffs_obj_id obj_id, spiffs_visitor_f v, const void *user_const_p, void *user_var_p, spiffs_block_ix *block_ix, int *lu_entry)
 
s32_t spiffs_erase_block (spiffs *fs, spiffs_block_ix bix)
 
s32_t spiffs_obj_lu_scan (spiffs *fs)
 
s32_t spiffs_obj_lu_find_free_obj_id (spiffs *fs, spiffs_obj_id *obj_id, const u8_t *conflicting_name)
 
s32_t spiffs_obj_lu_find_free (spiffs *fs, spiffs_block_ix starting_block, int starting_lu_entry, spiffs_block_ix *block_ix, int *lu_entry)
 
s32_t spiffs_obj_lu_find_id (spiffs *fs, spiffs_block_ix starting_block, int starting_lu_entry, spiffs_obj_id obj_id, spiffs_block_ix *block_ix, int *lu_entry)
 
s32_t spiffs_obj_lu_find_id_and_span (spiffs *fs, spiffs_obj_id obj_id, spiffs_span_ix spix, spiffs_page_ix exclusion_pix, spiffs_page_ix *pix)
 
s32_t spiffs_obj_lu_find_id_and_span_by_phdr (spiffs *fs, spiffs_obj_id obj_id, spiffs_span_ix spix, spiffs_page_ix exclusion_pix, spiffs_page_ix *pix)
 
s32_t spiffs_page_allocate_data (spiffs *fs, spiffs_obj_id obj_id, spiffs_page_header *ph, u8_t *data, u32_t len, u32_t page_offs, u8_t finalize, spiffs_page_ix *pix)
 
s32_t spiffs_page_move (spiffs *fs, spiffs_file fh, u8_t *page_data, spiffs_obj_id obj_id, spiffs_page_header *page_hdr, spiffs_page_ix src_pix, spiffs_page_ix *dst_pix)
 
s32_t spiffs_page_delete (spiffs *fs, spiffs_page_ix pix)
 
s32_t spiffs_object_create (spiffs *fs, spiffs_obj_id obj_id, const u8_t name[], const u8_t meta[], spiffs_obj_type type, spiffs_page_ix *objix_hdr_pix)
 
s32_t spiffs_object_update_index_hdr (spiffs *fs, spiffs_fd *fd, spiffs_obj_id obj_id, spiffs_page_ix objix_hdr_pix, u8_t *new_objix_hdr_data, const u8_t name[], const u8_t meta[], u32_t size, spiffs_page_ix *new_pix)
 
void spiffs_cb_object_event (spiffs *fs, spiffs_page_object_ix *objix, int ev, spiffs_obj_id obj_id, spiffs_span_ix spix, spiffs_page_ix new_pix, u32_t new_size)
 
s32_t spiffs_object_open_by_id (spiffs *fs, spiffs_obj_id obj_id, spiffs_fd *f, spiffs_flags flags, spiffs_mode mode)
 
s32_t spiffs_object_open_by_page (spiffs *fs, spiffs_page_ix pix, spiffs_fd *f, spiffs_flags flags, spiffs_mode mode)
 
s32_t spiffs_object_append (spiffs_fd *fd, u32_t offset, u8_t *data, u32_t len)
 
s32_t spiffs_object_modify (spiffs_fd *fd, u32_t offset, u8_t *data, u32_t len)
 
s32_t spiffs_object_read (spiffs_fd *fd, u32_t offset, u32_t len, u8_t *dst)
 
s32_t spiffs_object_truncate (spiffs_fd *fd, u32_t new_len, u8_t remove_object)
 
s32_t spiffs_object_find_object_index_header_by_name (spiffs *fs, const u8_t name[SPIFFS_OBJ_NAME_LEN], spiffs_page_ix *pix)
 
s32_t spiffs_gc_check (spiffs *fs, u32_t len)
 
s32_t spiffs_gc_erase_page_stats (spiffs *fs, spiffs_block_ix bix)
 
s32_t spiffs_gc_find_candidate (spiffs *fs, spiffs_block_ix **block_candidate, int *candidate_count, char fs_crammed)
 
s32_t spiffs_gc_clean (spiffs *fs, spiffs_block_ix bix)
 
s32_t spiffs_gc_quick (spiffs *fs, u16_t max_free_pages)
 
s32_t spiffs_fd_find_new (spiffs *fs, spiffs_fd **fd, const char *name)
 
s32_t spiffs_fd_return (spiffs *fs, spiffs_file f)
 
s32_t spiffs_fd_get (spiffs *fs, spiffs_file f, spiffs_fd **fd)
 
s32_t spiffs_lookup_consistency_check (spiffs *fs, u8_t check_all_objects)
 
s32_t spiffs_page_consistency_check (spiffs *fs)
 
s32_t spiffs_object_index_consistency_check (spiffs *fs)
 

Macro Definition Documentation

§ _SPIFFS_ERR_CHECK_FIRST

#define _SPIFFS_ERR_CHECK_FIRST   (SPIFFS_ERR_INTERNAL - 1)

§ SPIFFS_ERR_CHECK_OBJ_ID_MISM

#define SPIFFS_ERR_CHECK_OBJ_ID_MISM   (SPIFFS_ERR_INTERNAL - 1)

§ SPIFFS_ERR_CHECK_SPIX_MISM

#define SPIFFS_ERR_CHECK_SPIX_MISM   (SPIFFS_ERR_INTERNAL - 2)

§ SPIFFS_ERR_CHECK_FLAGS_BAD

#define SPIFFS_ERR_CHECK_FLAGS_BAD   (SPIFFS_ERR_INTERNAL - 3)

§ _SPIFFS_ERR_CHECK_LAST

#define _SPIFFS_ERR_CHECK_LAST   (SPIFFS_ERR_INTERNAL - 4)

§ SPIFFS_VIS_COUNTINUE

#define SPIFFS_VIS_COUNTINUE   (SPIFFS_ERR_INTERNAL - 20)

§ SPIFFS_VIS_COUNTINUE_RELOAD

#define SPIFFS_VIS_COUNTINUE_RELOAD   (SPIFFS_ERR_INTERNAL - 21)

§ SPIFFS_VIS_END

#define SPIFFS_VIS_END   (SPIFFS_ERR_INTERNAL - 22)

§ SPIFFS_EV_IX_UPD

#define SPIFFS_EV_IX_UPD   (0)

§ SPIFFS_EV_IX_NEW

#define SPIFFS_EV_IX_NEW   (1)

§ SPIFFS_EV_IX_DEL

#define SPIFFS_EV_IX_DEL   (2)

§ SPIFFS_EV_IX_MOV

#define SPIFFS_EV_IX_MOV   (3)

§ SPIFFS_EV_IX_UPD_HDR

#define SPIFFS_EV_IX_UPD_HDR   (4)

§ SPIFFS_OBJ_ID_IX_FLAG

#define SPIFFS_OBJ_ID_IX_FLAG   ((spiffs_obj_id)(1<<(8*sizeof(spiffs_obj_id)-1)))

§ SPIFFS_UNDEFINED_LEN

#define SPIFFS_UNDEFINED_LEN   (u32_t)(-1)

§ SPIFFS_OBJ_ID_DELETED

#define SPIFFS_OBJ_ID_DELETED   ((spiffs_obj_id)0)

§ SPIFFS_OBJ_ID_FREE

#define SPIFFS_OBJ_ID_FREE   ((spiffs_obj_id)-1)

§ SPIFFS_PACKED

#define SPIFFS_PACKED

§ SPIFFS_CONFIG_MAGIC

#define SPIFFS_CONFIG_MAGIC   (0x20090315)

§ SPIFFS_CFG_LOG_PAGE_SZ

#define SPIFFS_CFG_LOG_PAGE_SZ (   fs)    ((fs)->cfg.log_page_size)

§ SPIFFS_CFG_LOG_BLOCK_SZ

#define SPIFFS_CFG_LOG_BLOCK_SZ (   fs)    ((fs)->cfg.log_block_size)

§ SPIFFS_CFG_PHYS_SZ

#define SPIFFS_CFG_PHYS_SZ (   fs)    ((fs)->cfg.phys_size)

§ SPIFFS_CFG_PHYS_ERASE_SZ

#define SPIFFS_CFG_PHYS_ERASE_SZ (   fs)    ((fs)->cfg.phys_erase_block)

§ SPIFFS_CFG_PHYS_ADDR

#define SPIFFS_CFG_PHYS_ADDR (   fs)    ((fs)->cfg.phys_addr)

§ SPIFFS_MAX_PAGES

#define SPIFFS_MAX_PAGES (   fs)    ( SPIFFS_CFG_PHYS_SZ(fs)/SPIFFS_CFG_LOG_PAGE_SZ(fs) )

§ SPIFFS_PAGES_PER_BLOCK

#define SPIFFS_PAGES_PER_BLOCK (   fs)    ( SPIFFS_CFG_LOG_BLOCK_SZ(fs)/SPIFFS_CFG_LOG_PAGE_SZ(fs) )

§ SPIFFS_OBJ_LOOKUP_PAGES

#define SPIFFS_OBJ_LOOKUP_PAGES (   fs)    (MAX(1, (SPIFFS_PAGES_PER_BLOCK(fs) * sizeof(spiffs_obj_id)) / SPIFFS_CFG_LOG_PAGE_SZ(fs)) )

§ SPIFFS_IS_LOOKUP_PAGE

#define SPIFFS_IS_LOOKUP_PAGE (   fs,
  pix 
)    (((pix) % SPIFFS_PAGES_PER_BLOCK(fs)) < SPIFFS_OBJ_LOOKUP_PAGES(fs))

§ SPIFFS_OBJ_LOOKUP_MAX_ENTRIES

#define SPIFFS_OBJ_LOOKUP_MAX_ENTRIES (   fs)    (SPIFFS_PAGES_PER_BLOCK(fs)-SPIFFS_OBJ_LOOKUP_PAGES(fs))

§ SPIFFS_BLOCK_TO_PADDR

#define SPIFFS_BLOCK_TO_PADDR (   fs,
  block 
)    ( SPIFFS_CFG_PHYS_ADDR(fs) + (block)* SPIFFS_CFG_LOG_BLOCK_SZ(fs) )

§ SPIFFS_OBJ_LOOKUP_ENTRY_TO_PIX

#define SPIFFS_OBJ_LOOKUP_ENTRY_TO_PIX (   fs,
  block,
  entry 
)    ((block)*SPIFFS_PAGES_PER_BLOCK(fs) + (SPIFFS_OBJ_LOOKUP_PAGES(fs) + entry))

§ SPIFFS_OBJ_LOOKUP_ENTRY_TO_PADDR

#define SPIFFS_OBJ_LOOKUP_ENTRY_TO_PADDR (   fs,
  block,
  entry 
)    (SPIFFS_BLOCK_TO_PADDR(fs, block) + (SPIFFS_OBJ_LOOKUP_PAGES(fs) + entry) * SPIFFS_CFG_LOG_PAGE_SZ(fs) )

§ SPIFFS_PAGE_TO_PADDR

#define SPIFFS_PAGE_TO_PADDR (   fs,
  page 
)    ( SPIFFS_CFG_PHYS_ADDR(fs) + (page) * SPIFFS_CFG_LOG_PAGE_SZ(fs) )

§ SPIFFS_PADDR_TO_PAGE

#define SPIFFS_PADDR_TO_PAGE (   fs,
  addr 
)    ( ((addr) - SPIFFS_CFG_PHYS_ADDR(fs)) / SPIFFS_CFG_LOG_PAGE_SZ(fs) )

§ SPIFFS_PADDR_TO_PAGE_OFFSET

#define SPIFFS_PADDR_TO_PAGE_OFFSET (   fs,
  addr 
)    ( ((addr) - SPIFFS_CFG_PHYS_ADDR(fs)) % SPIFFS_CFG_LOG_PAGE_SZ(fs) )

§ SPIFFS_BLOCK_FOR_PAGE

#define SPIFFS_BLOCK_FOR_PAGE (   fs,
  page 
)    ( (page) / SPIFFS_PAGES_PER_BLOCK(fs) )

§ SPIFFS_PAGE_FOR_BLOCK

#define SPIFFS_PAGE_FOR_BLOCK (   fs,
  block 
)    ( (block) * SPIFFS_PAGES_PER_BLOCK(fs) )

§ SPIFFS_OBJ_LOOKUP_ENTRY_FOR_PAGE

#define SPIFFS_OBJ_LOOKUP_ENTRY_FOR_PAGE (   fs,
  page 
)    ( (page) % SPIFFS_PAGES_PER_BLOCK(fs) - SPIFFS_OBJ_LOOKUP_PAGES(fs) )

§ SPIFFS_DATA_PAGE_SIZE

#define SPIFFS_DATA_PAGE_SIZE (   fs)    ( SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_page_header) )

§ SPIFFS_ERASE_COUNT_PADDR

#define SPIFFS_ERASE_COUNT_PADDR (   fs,
  bix 
)    ( SPIFFS_BLOCK_TO_PADDR(fs, bix) + SPIFFS_OBJ_LOOKUP_PAGES(fs) * SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_obj_id) )

§ SPIFFS_MAGIC_PADDR

#define SPIFFS_MAGIC_PADDR (   fs,
  bix 
)    ( SPIFFS_BLOCK_TO_PADDR(fs, bix) + SPIFFS_OBJ_LOOKUP_PAGES(fs) * SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_obj_id)*2 )

§ SPIFFS_CHECK_MAGIC_POSSIBLE

#define SPIFFS_CHECK_MAGIC_POSSIBLE (   fs)
Value:
#define SPIFFS_CFG_LOG_PAGE_SZ(fs)
Definition: spiffs_nucleus.h:173
u16_t spiffs_obj_id
Definition: default/spiffs_config.h:367
#define SPIFFS_OBJ_LOOKUP_MAX_ENTRIES(fs)
Definition: spiffs_nucleus.h:198

§ SPIFFS_OBJ_HDR_IX_LEN

#define SPIFFS_OBJ_HDR_IX_LEN (   fs)    ((SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_page_object_ix_header))/sizeof(spiffs_page_ix))

§ SPIFFS_OBJ_IX_LEN

#define SPIFFS_OBJ_IX_LEN (   fs)    ((SPIFFS_CFG_LOG_PAGE_SZ(fs) - sizeof(spiffs_page_object_ix))/sizeof(spiffs_page_ix))

§ SPIFFS_OBJ_IX_ENTRY

#define SPIFFS_OBJ_IX_ENTRY (   fs,
  spix 
)    ((spix) < SPIFFS_OBJ_HDR_IX_LEN(fs) ? (spix) : (((spix)-SPIFFS_OBJ_HDR_IX_LEN(fs))%SPIFFS_OBJ_IX_LEN(fs)))

§ SPIFFS_OBJ_IX_ENTRY_SPAN_IX

#define SPIFFS_OBJ_IX_ENTRY_SPAN_IX (   fs,
  spix 
)    ((spix) < SPIFFS_OBJ_HDR_IX_LEN(fs) ? 0 : (1+((spix)-SPIFFS_OBJ_HDR_IX_LEN(fs))/SPIFFS_OBJ_IX_LEN(fs)))

§ SPIFFS_DATA_SPAN_IX_FOR_OBJ_IX_SPAN_IX

#define SPIFFS_DATA_SPAN_IX_FOR_OBJ_IX_SPAN_IX (   fs,
  spix 
)    ( (spix) == 0 ? 0 : (SPIFFS_OBJ_HDR_IX_LEN(fs) + (((spix)-1) * SPIFFS_OBJ_IX_LEN(fs))) )

§ SPIFFS_FH_OFFS

#define SPIFFS_FH_OFFS (   fs,
  fh 
)    (fh)

§ SPIFFS_FH_UNOFFS

#define SPIFFS_FH_UNOFFS (   fs,
  fh 
)    (fh)

§ SPIFFS_OP_T_OBJ_LU

#define SPIFFS_OP_T_OBJ_LU   (0<<0)

§ SPIFFS_OP_T_OBJ_LU2

#define SPIFFS_OP_T_OBJ_LU2   (1<<0)

§ SPIFFS_OP_T_OBJ_IX

#define SPIFFS_OP_T_OBJ_IX   (2<<0)

§ SPIFFS_OP_T_OBJ_DA

#define SPIFFS_OP_T_OBJ_DA   (3<<0)

§ SPIFFS_OP_C_DELE

#define SPIFFS_OP_C_DELE   (0<<2)

§ SPIFFS_OP_C_UPDT

#define SPIFFS_OP_C_UPDT   (1<<2)

§ SPIFFS_OP_C_MOVS

#define SPIFFS_OP_C_MOVS   (2<<2)

§ SPIFFS_OP_C_MOVD

#define SPIFFS_OP_C_MOVD   (3<<2)

§ SPIFFS_OP_C_FLSH

#define SPIFFS_OP_C_FLSH   (4<<2)

§ SPIFFS_OP_C_READ

#define SPIFFS_OP_C_READ   (5<<2)

§ SPIFFS_OP_C_WRTHRU

#define SPIFFS_OP_C_WRTHRU   (6<<2)

§ SPIFFS_OP_TYPE_MASK

#define SPIFFS_OP_TYPE_MASK   (3<<0)

§ SPIFFS_OP_COM_MASK

#define SPIFFS_OP_COM_MASK   (7<<2)

§ SPIFFS_PH_FLAG_USED

#define SPIFFS_PH_FLAG_USED   (1<<0)

§ SPIFFS_PH_FLAG_FINAL

#define SPIFFS_PH_FLAG_FINAL   (1<<1)

§ SPIFFS_PH_FLAG_INDEX

#define SPIFFS_PH_FLAG_INDEX   (1<<2)

§ SPIFFS_PH_FLAG_DELET

#define SPIFFS_PH_FLAG_DELET   (1<<7)

§ SPIFFS_PH_FLAG_IXDELE

#define SPIFFS_PH_FLAG_IXDELE   (1<<6)

§ SPIFFS_CHECK_MOUNT

#define SPIFFS_CHECK_MOUNT (   fs)    ((fs)->mounted != 0)

§ SPIFFS_CHECK_CFG

#define SPIFFS_CHECK_CFG (   fs)    ((fs)->config_magic == SPIFFS_CONFIG_MAGIC)

§ SPIFFS_CHECK_RES

#define SPIFFS_CHECK_RES (   res)
Value:
do { \
if ((res) < SPIFFS_OK) return (res); \
} while (0);
#define SPIFFS_OK
Definition: spiffs.h:16

§ SPIFFS_API_CHECK_MOUNT

#define SPIFFS_API_CHECK_MOUNT (   fs)
Value:
if (!SPIFFS_CHECK_MOUNT((fs))) { \
(fs)->err_code = SPIFFS_ERR_NOT_MOUNTED; \
}
#define SPIFFS_CHECK_MOUNT(fs)
Definition: spiffs_nucleus.h:298
#define SPIFFS_ERR_NOT_MOUNTED
Definition: spiffs.h:17

§ SPIFFS_API_CHECK_CFG

#define SPIFFS_API_CHECK_CFG (   fs)
Value:
if (!SPIFFS_CHECK_CFG((fs))) { \
(fs)->err_code = SPIFFS_ERR_NOT_CONFIGURED; \
}
#define SPIFFS_CHECK_CFG(fs)
Definition: spiffs_nucleus.h:301
#define SPIFFS_ERR_NOT_CONFIGURED
Definition: spiffs.h:41

§ SPIFFS_API_CHECK_RES

#define SPIFFS_API_CHECK_RES (   fs,
  res 
)
Value:
if ((res) < SPIFFS_OK) { \
(fs)->err_code = (res); \
return (res); \
}
#define SPIFFS_OK
Definition: spiffs.h:16

§ SPIFFS_API_CHECK_RES_UNLOCK

#define SPIFFS_API_CHECK_RES_UNLOCK (   fs,
  res 
)
Value:
if ((res) < SPIFFS_OK) { \
(fs)->err_code = (res); \
SPIFFS_UNLOCK(fs); \
return (res); \
}
#define SPIFFS_OK
Definition: spiffs.h:16

§ SPIFFS_VALIDATE_OBJIX

#define SPIFFS_VALIDATE_OBJIX (   ph,
  objid,
  spix 
)
Value:
if (((ph).flags & SPIFFS_PH_FLAG_USED) != 0) return SPIFFS_ERR_IS_FREE; \
if (((ph).flags & SPIFFS_PH_FLAG_DELET) == 0) return SPIFFS_ERR_DELETED; \
if (((ph).flags & SPIFFS_PH_FLAG_FINAL) != 0) return SPIFFS_ERR_NOT_FINALIZED; \
if (((ph).flags & SPIFFS_PH_FLAG_INDEX) != 0) return SPIFFS_ERR_NOT_INDEX; \
if (((objid) & SPIFFS_OBJ_ID_IX_FLAG) == 0) return SPIFFS_ERR_NOT_INDEX; \
if ((ph).span_ix != (spix)) return SPIFFS_ERR_INDEX_SPAN_MISMATCH;
#define SPIFFS_PH_FLAG_DELET
Definition: spiffs_nucleus.h:293
#define SPIFFS_ERR_DELETED
Definition: spiffs.h:21
#define SPIFFS_PH_FLAG_INDEX
Definition: spiffs_nucleus.h:291
#define SPIFFS_PH_FLAG_USED
Definition: spiffs_nucleus.h:287
#define SPIFFS_ERR_NOT_INDEX
Definition: spiffs.h:23
#define SPIFFS_PH_FLAG_FINAL
Definition: spiffs_nucleus.h:289
#define SPIFFS_ERR_INDEX_SPAN_MISMATCH
Definition: spiffs.h:30
#define SPIFFS_ERR_NOT_FINALIZED
Definition: spiffs.h:22
#define SPIFFS_OBJ_ID_IX_FLAG
Definition: spiffs_nucleus.h:137
#define SPIFFS_ERR_IS_FREE
Definition: spiffs.h:29

§ SPIFFS_VALIDATE_DATA

#define SPIFFS_VALIDATE_DATA (   ph,
  objid,
  spix 
)
Value:
if (((ph).flags & SPIFFS_PH_FLAG_USED) != 0) return SPIFFS_ERR_IS_FREE; \
if (((ph).flags & SPIFFS_PH_FLAG_DELET) == 0) return SPIFFS_ERR_DELETED; \
if (((ph).flags & SPIFFS_PH_FLAG_FINAL) != 0) return SPIFFS_ERR_NOT_FINALIZED; \
if (((ph).flags & SPIFFS_PH_FLAG_INDEX) == 0) return SPIFFS_ERR_IS_INDEX; \
if ((objid) & SPIFFS_OBJ_ID_IX_FLAG) return SPIFFS_ERR_IS_INDEX; \
if ((ph).span_ix != (spix)) return SPIFFS_ERR_DATA_SPAN_MISMATCH;
#define SPIFFS_PH_FLAG_DELET
Definition: spiffs_nucleus.h:293
#define SPIFFS_ERR_DELETED
Definition: spiffs.h:21
#define SPIFFS_ERR_IS_INDEX
Definition: spiffs.h:28
#define SPIFFS_PH_FLAG_INDEX
Definition: spiffs_nucleus.h:291
#define SPIFFS_PH_FLAG_USED
Definition: spiffs_nucleus.h:287
#define SPIFFS_PH_FLAG_FINAL
Definition: spiffs_nucleus.h:289
#define SPIFFS_ERR_NOT_FINALIZED
Definition: spiffs.h:22
#define SPIFFS_OBJ_ID_IX_FLAG
Definition: spiffs_nucleus.h:137
#define SPIFFS_ERR_IS_FREE
Definition: spiffs.h:29
#define SPIFFS_ERR_DATA_SPAN_MISMATCH
Definition: spiffs.h:31

§ SPIFFS_VIS_CHECK_ID

#define SPIFFS_VIS_CHECK_ID   (1<<0)

§ SPIFFS_VIS_CHECK_PH

#define SPIFFS_VIS_CHECK_PH   (1<<1)

§ SPIFFS_VIS_NO_WRAP

#define SPIFFS_VIS_NO_WRAP   (1<<2)

§ SPIFFS_HAL_WRITE

#define SPIFFS_HAL_WRITE (   _fs,
  _paddr,
  _len,
  _src 
)    (_fs)->cfg.hal_write_f((_paddr), (_len), (_src))

§ SPIFFS_HAL_READ

#define SPIFFS_HAL_READ (   _fs,
  _paddr,
  _len,
  _dst 
)    (_fs)->cfg.hal_read_f((_paddr), (_len), (_dst))

§ SPIFFS_HAL_ERASE

#define SPIFFS_HAL_ERASE (   _fs,
  _paddr,
  _len 
)    (_fs)->cfg.hal_erase_f((_paddr), (_len))

§ _spiffs_rd

#define _spiffs_rd (   fs,
  op,
  fh,
  addr,
  len,
  dst 
)    spiffs_phys_rd((fs), (addr), (len), (dst))

§ _spiffs_wr

#define _spiffs_wr (   fs,
  op,
  fh,
  addr,
  len,
  src 
)    spiffs_phys_wr((fs), (addr), (len), (src))

§ MIN

#define MIN (   a,
 
)    ((a) < (b) ? (a) : (b))

§ MAX

#define MAX (   a,
 
)    ((a) > (b) ? (a) : (b))

§ _SPIFFS_MEMCPY

#define _SPIFFS_MEMCPY (   __d,
  __s,
  __l 
)    do{memcpy((__d),(__s),(__l));}while(0)

Typedef Documentation

§ spiffs_visitor_f

typedef s32_t(* spiffs_visitor_f) (spiffs *fs, spiffs_obj_id id, spiffs_block_ix bix, int ix_entry, const void *user_const_p, void *user_var_p)

Function Documentation

§ spiffs_phys_rd()

s32_t spiffs_phys_rd ( spiffs fs,
u32_t  addr,
u32_t  len,
u8_t dst 
)

§ spiffs_phys_wr()

s32_t spiffs_phys_wr ( spiffs fs,
u32_t  addr,
u32_t  len,
u8_t src 
)

§ spiffs_phys_cpy()

s32_t spiffs_phys_cpy ( spiffs fs,
spiffs_file  fh,
u32_t  dst,
u32_t  src,
u32_t  len 
)

§ spiffs_phys_count_free_blocks()

s32_t spiffs_phys_count_free_blocks ( spiffs fs)

§ spiffs_obj_lu_find_entry_visitor()

s32_t spiffs_obj_lu_find_entry_visitor ( spiffs fs,
spiffs_block_ix  starting_block,
int  starting_lu_entry,
u8_t  flags,
spiffs_obj_id  obj_id,
spiffs_visitor_f  v,
const void *  user_const_p,
void *  user_var_p,
spiffs_block_ix block_ix,
int *  lu_entry 
)

§ spiffs_erase_block()

s32_t spiffs_erase_block ( spiffs fs,
spiffs_block_ix  bix 
)

§ spiffs_obj_lu_scan()

s32_t spiffs_obj_lu_scan ( spiffs fs)

§ spiffs_obj_lu_find_free_obj_id()

s32_t spiffs_obj_lu_find_free_obj_id ( spiffs fs,
spiffs_obj_id obj_id,
const u8_t conflicting_name 
)

§ spiffs_obj_lu_find_free()

s32_t spiffs_obj_lu_find_free ( spiffs fs,
spiffs_block_ix  starting_block,
int  starting_lu_entry,
spiffs_block_ix block_ix,
int *  lu_entry 
)

§ spiffs_obj_lu_find_id()

s32_t spiffs_obj_lu_find_id ( spiffs fs,
spiffs_block_ix  starting_block,
int  starting_lu_entry,
spiffs_obj_id  obj_id,
spiffs_block_ix block_ix,
int *  lu_entry 
)

§ spiffs_obj_lu_find_id_and_span()

s32_t spiffs_obj_lu_find_id_and_span ( spiffs fs,
spiffs_obj_id  obj_id,
spiffs_span_ix  spix,
spiffs_page_ix  exclusion_pix,
spiffs_page_ix pix 
)

§ spiffs_obj_lu_find_id_and_span_by_phdr()

s32_t spiffs_obj_lu_find_id_and_span_by_phdr ( spiffs fs,
spiffs_obj_id  obj_id,
spiffs_span_ix  spix,
spiffs_page_ix  exclusion_pix,
spiffs_page_ix pix 
)

§ spiffs_page_allocate_data()

s32_t spiffs_page_allocate_data ( spiffs fs,
spiffs_obj_id  obj_id,
spiffs_page_header ph,
u8_t data,
u32_t  len,
u32_t  page_offs,
u8_t  finalize,
spiffs_page_ix pix 
)

§ spiffs_page_move()

s32_t spiffs_page_move ( spiffs fs,
spiffs_file  fh,
u8_t page_data,
spiffs_obj_id  obj_id,
spiffs_page_header page_hdr,
spiffs_page_ix  src_pix,
spiffs_page_ix dst_pix 
)

§ spiffs_page_delete()

s32_t spiffs_page_delete ( spiffs fs,
spiffs_page_ix  pix 
)

§ spiffs_object_create()

s32_t spiffs_object_create ( spiffs fs,
spiffs_obj_id  obj_id,
const u8_t  name[],
const u8_t  meta[],
spiffs_obj_type  type,
spiffs_page_ix objix_hdr_pix 
)

§ spiffs_object_update_index_hdr()

s32_t spiffs_object_update_index_hdr ( spiffs fs,
spiffs_fd fd,
spiffs_obj_id  obj_id,
spiffs_page_ix  objix_hdr_pix,
u8_t new_objix_hdr_data,
const u8_t  name[],
const u8_t  meta[],
u32_t  size,
spiffs_page_ix new_pix 
)

§ spiffs_cb_object_event()

void spiffs_cb_object_event ( spiffs fs,
spiffs_page_object_ix objix,
int  ev,
spiffs_obj_id  obj_id,
spiffs_span_ix  spix,
spiffs_page_ix  new_pix,
u32_t  new_size 
)

§ spiffs_object_open_by_id()

s32_t spiffs_object_open_by_id ( spiffs fs,
spiffs_obj_id  obj_id,
spiffs_fd f,
spiffs_flags  flags,
spiffs_mode  mode 
)

§ spiffs_object_open_by_page()

s32_t spiffs_object_open_by_page ( spiffs fs,
spiffs_page_ix  pix,
spiffs_fd f,
spiffs_flags  flags,
spiffs_mode  mode 
)

§ spiffs_object_append()

s32_t spiffs_object_append ( spiffs_fd fd,
u32_t  offset,
u8_t data,
u32_t  len 
)

§ spiffs_object_modify()

s32_t spiffs_object_modify ( spiffs_fd fd,
u32_t  offset,
u8_t data,
u32_t  len 
)

§ spiffs_object_read()

s32_t spiffs_object_read ( spiffs_fd fd,
u32_t  offset,
u32_t  len,
u8_t dst 
)

§ spiffs_object_truncate()

s32_t spiffs_object_truncate ( spiffs_fd fd,
u32_t  new_len,
u8_t  remove_object 
)

§ spiffs_object_find_object_index_header_by_name()

s32_t spiffs_object_find_object_index_header_by_name ( spiffs fs,
const u8_t  name[SPIFFS_OBJ_NAME_LEN],
spiffs_page_ix pix 
)

§ spiffs_gc_check()

s32_t spiffs_gc_check ( spiffs fs,
u32_t  len 
)

§ spiffs_gc_erase_page_stats()

s32_t spiffs_gc_erase_page_stats ( spiffs fs,
spiffs_block_ix  bix 
)

§ spiffs_gc_find_candidate()

s32_t spiffs_gc_find_candidate ( spiffs fs,
spiffs_block_ix **  block_candidate,
int *  candidate_count,
char  fs_crammed 
)

§ spiffs_gc_clean()

s32_t spiffs_gc_clean ( spiffs fs,
spiffs_block_ix  bix 
)

§ spiffs_gc_quick()

s32_t spiffs_gc_quick ( spiffs fs,
u16_t  max_free_pages 
)

§ spiffs_fd_find_new()

s32_t spiffs_fd_find_new ( spiffs fs,
spiffs_fd **  fd,
const char *  name 
)

§ spiffs_fd_return()

s32_t spiffs_fd_return ( spiffs fs,
spiffs_file  f 
)

§ spiffs_fd_get()

s32_t spiffs_fd_get ( spiffs fs,
spiffs_file  f,
spiffs_fd **  fd 
)

§ spiffs_lookup_consistency_check()

s32_t spiffs_lookup_consistency_check ( spiffs fs,
u8_t  check_all_objects 
)

§ spiffs_page_consistency_check()

s32_t spiffs_page_consistency_check ( spiffs fs)

§ spiffs_object_index_consistency_check()

s32_t spiffs_object_index_consistency_check ( spiffs fs)
Copyright 2018, Texas Instruments Incorporated