fota lib for mdot
mdot/spiffs.h@3:63d10f2375ea, 2018-09-14 (annotated)
- Committer:
- Jenkins@KEILDM1.dc.multitech.prv
- Date:
- Fri Sep 14 15:39:09 2018 -0500
- Revision:
- 3:63d10f2375ea
fota lib updates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 1 | /* |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 2 | * spiffs.h |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 3 | * |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 4 | * Created on: May 26, 2013 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 5 | * Author: petera |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 6 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 7 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 8 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 9 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 10 | #ifndef SPIFFS_H_ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 11 | #define SPIFFS_H_ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 12 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 13 | #include "spiffs_config.h" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 14 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 15 | #ifdef __cplusplus |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 16 | extern "C" |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 17 | { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 18 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 19 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 20 | #define SPIFFS_OK 0 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 21 | #define SPIFFS_ERR_NOT_MOUNTED -10000 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 22 | #define SPIFFS_ERR_FULL -10001 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 23 | #define SPIFFS_ERR_NOT_FOUND -10002 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 24 | #define SPIFFS_ERR_END_OF_OBJECT -10003 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 25 | #define SPIFFS_ERR_DELETED -10004 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 26 | #define SPIFFS_ERR_NOT_FINALIZED -10005 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 27 | #define SPIFFS_ERR_NOT_INDEX -10006 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 28 | #define SPIFFS_ERR_OUT_OF_FILE_DESCS -10007 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 29 | #define SPIFFS_ERR_FILE_CLOSED -10008 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 30 | #define SPIFFS_ERR_FILE_DELETED -10009 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 31 | #define SPIFFS_ERR_BAD_DESCRIPTOR -10010 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 32 | #define SPIFFS_ERR_IS_INDEX -10011 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 33 | #define SPIFFS_ERR_IS_FREE -10012 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 34 | #define SPIFFS_ERR_INDEX_SPAN_MISMATCH -10013 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 35 | #define SPIFFS_ERR_DATA_SPAN_MISMATCH -10014 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 36 | #define SPIFFS_ERR_INDEX_REF_FREE -10015 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 37 | #define SPIFFS_ERR_INDEX_REF_LU -10016 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 38 | #define SPIFFS_ERR_INDEX_REF_INVALID -10017 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 39 | #define SPIFFS_ERR_INDEX_FREE -10018 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 40 | #define SPIFFS_ERR_INDEX_LU -10019 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 41 | #define SPIFFS_ERR_INDEX_INVALID -10020 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 42 | #define SPIFFS_ERR_NOT_WRITABLE -10021 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 43 | #define SPIFFS_ERR_NOT_READABLE -10022 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 44 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 45 | #define SPIFFS_ERR_INTERNAL -10050 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 46 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 47 | #define SPIFFS_ERR_TEST -10100 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 48 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 49 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 50 | // spiffs file descriptor index type. must be signed |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 51 | typedef s16_t spiffs_file; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 52 | // spiffs file descriptor flags |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 53 | typedef u16_t spiffs_flags; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 54 | // spiffs file mode |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 55 | typedef u16_t spiffs_mode; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 56 | // object type |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 57 | typedef u8_t spiffs_obj_type; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 58 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 59 | /* spi read call function type */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 60 | typedef s32_t (*spiffs_read)(u32_t addr, u32_t size, u8_t *dst); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 61 | /* spi write call function type */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 62 | typedef s32_t (*spiffs_write)(u32_t addr, u32_t size, u8_t *src); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 63 | /* spi erase call function type */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 64 | typedef s32_t (*spiffs_erase)(u32_t addr, u32_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 65 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 66 | /* file system check callback report operation */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 67 | typedef enum { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 68 | SPIFFS_CHECK_LOOKUP = 0, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 69 | SPIFFS_CHECK_INDEX, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 70 | SPIFFS_CHECK_PAGE |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 71 | } spiffs_check_type; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 72 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 73 | /* file system check callback report type */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 74 | typedef enum { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 75 | SPIFFS_CHECK_PROGRESS = 0, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 76 | SPIFFS_CHECK_ERROR, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 77 | SPIFFS_CHECK_FIX_INDEX, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 78 | SPIFFS_CHECK_FIX_LOOKUP, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 79 | SPIFFS_CHECK_DELETE_ORPHANED_INDEX, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 80 | SPIFFS_CHECK_DELETE_PAGE, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 81 | SPIFFS_CHECK_DELETE_BAD_FILE, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 82 | } spiffs_check_report; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 83 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 84 | /* file system check callback function */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 85 | typedef void (*spiffs_check_callback)(spiffs_check_type type, spiffs_check_report report, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 86 | u32_t arg1, u32_t arg2); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 87 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 88 | #ifndef SPIFFS_DBG |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 89 | #define SPIFFS_DBG(...) \ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 90 | print(__VA_ARGS__) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 91 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 92 | #ifndef SPIFFS_GC_DBG |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 93 | #define SPIFFS_GC_DBG(...) printf(__VA_ARGS__) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 94 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 95 | #ifndef SPIFFS_CACHE_DBG |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 96 | #define SPIFFS_CACHE_DBG(...) printf(__VA_ARGS__) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 97 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 98 | #ifndef SPIFFS_CHECK_DBG |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 99 | #define SPIFFS_CHECK_DBG(...) printf(__VA_ARGS__) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 100 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 101 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 102 | /* Any write to the filehandle is appended to end of the file */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 103 | #define SPIFFS_APPEND (1<<0) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 104 | /* If the opened file exists, it will be truncated to zero length before opened */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 105 | #define SPIFFS_TRUNC (1<<1) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 106 | /* If the opened file does not exist, it will be created before opened */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 107 | #define SPIFFS_CREAT (1<<2) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 108 | /* The opened file may only be read */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 109 | #define SPIFFS_RDONLY (1<<3) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 110 | /* The opened file may only be writted */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 111 | #define SPIFFS_WRONLY (1<<4) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 112 | /* The opened file may be both read and writted */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 113 | #define SPIFFS_RDWR (SPIFFS_RDONLY | SPIFFS_WRONLY) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 114 | /* Any writes to the filehandle will never be cached */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 115 | #define SPIFFS_DIRECT (1<<5) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 116 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 117 | #define SPIFFS_SEEK_SET (0) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 118 | #define SPIFFS_SEEK_CUR (1) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 119 | #define SPIFFS_SEEK_END (2) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 120 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 121 | #define SPIFFS_TYPE_FILE (1) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 122 | #define SPIFFS_TYPE_DIR (2) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 123 | #define SPIFFS_TYPE_HARD_LINK (3) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 124 | #define SPIFFS_TYPE_SOFT_LINK (4) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 125 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 126 | #ifndef SPIFFS_LOCK |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 127 | #define SPIFFS_LOCK(fs) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 128 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 129 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 130 | #ifndef SPIFFS_UNLOCK |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 131 | #define SPIFFS_UNLOCK(fs) |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 132 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 133 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 134 | // phys structs |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 135 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 136 | // spiffs spi configuration struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 137 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 138 | // physical read function |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 139 | spiffs_read hal_read_f; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 140 | // physical write function |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 141 | spiffs_write hal_write_f; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 142 | // physical erase function |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 143 | spiffs_erase hal_erase_f; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 144 | #if SPIFFS_SINGLETON == 0 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 145 | // physical size of the spi flash |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 146 | u32_t phys_size; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 147 | // physical offset in spi flash used for spiffs, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 148 | // must be on block boundary |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 149 | u32_t phys_addr; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 150 | // physical size when erasing a block |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 151 | u32_t phys_erase_block; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 152 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 153 | // logical size of a block, must be on physical |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 154 | // block size boundary and must never be less than |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 155 | // a physical block |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 156 | u32_t log_block_size; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 157 | // logical size of a page, must be at least |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 158 | // log_block_size / 8 |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 159 | u32_t log_page_size; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 160 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 161 | } spiffs_config; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 162 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 163 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 164 | // file system configuration |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 165 | spiffs_config cfg; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 166 | // number of logical blocks |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 167 | u32_t block_count; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 168 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 169 | // cursor for free blocks, block index |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 170 | spiffs_block_ix free_cursor_block_ix; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 171 | // cursor for free blocks, entry index |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 172 | int free_cursor_obj_lu_entry; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 173 | // cursor when searching, block index |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 174 | spiffs_block_ix cursor_block_ix; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 175 | // cursor when searching, entry index |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 176 | int cursor_obj_lu_entry; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 177 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 178 | // primary work buffer, size of a logical page |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 179 | u8_t *lu_work; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 180 | // secondary work buffer, size of a logical page |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 181 | u8_t *work; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 182 | // file descriptor memory area |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 183 | u8_t *fd_space; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 184 | // available file descriptors |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 185 | u32_t fd_count; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 186 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 187 | // last error |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 188 | s32_t err_code; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 189 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 190 | // current number of free blocks |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 191 | u32_t free_blocks; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 192 | // current number of busy pages |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 193 | u32_t stats_p_allocated; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 194 | // current number of deleted pages |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 195 | u32_t stats_p_deleted; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 196 | // flag indicating that garbage collector is cleaning |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 197 | u8_t cleaning; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 198 | // max erase count amongst all blocks |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 199 | spiffs_obj_id max_erase_count; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 200 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 201 | #if SPIFFS_GC_STATS |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 202 | u32_t stats_gc_runs; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 203 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 204 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 205 | #if SPIFFS_CACHE |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 206 | // cache memory |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 207 | u8_t *cache; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 208 | // cache size |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 209 | u32_t cache_size; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 210 | #if SPIFFS_CACHE_STATS |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 211 | u32_t cache_hits; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 212 | u32_t cache_misses; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 213 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 214 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 215 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 216 | // check callback function |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 217 | spiffs_check_callback check_cb_f; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 218 | } spiffs; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 219 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 220 | /* spiffs file status struct */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 221 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 222 | spiffs_obj_id obj_id; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 223 | u32_t size; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 224 | spiffs_obj_type type; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 225 | u8_t name[SPIFFS_OBJ_NAME_LEN]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 226 | } spiffs_stat; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 227 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 228 | struct spiffs_dirent { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 229 | spiffs_obj_id obj_id; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 230 | u8_t name[SPIFFS_OBJ_NAME_LEN]; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 231 | spiffs_obj_type type; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 232 | u32_t size; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 233 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 234 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 235 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 236 | spiffs *fs; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 237 | spiffs_block_ix block; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 238 | int entry; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 239 | } spiffs_DIR; |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 240 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 241 | // functions |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 242 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 243 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 244 | * Initializes the file system dynamic parameters and mounts the filesystem |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 245 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 246 | * @param config the physical and logical configuration of the file system |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 247 | * @param work a memory work buffer comprising 2*config->log_page_size |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 248 | * bytes used throughout all file system operations |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 249 | * @param fd_space memory for file descriptors |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 250 | * @param fd_space_size memory size of file descriptors |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 251 | * @param cache memory for cache, may be null |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 252 | * @param cache_size memory size of cache |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 253 | * @param check_cb_f callback function for reporting during consistency checks |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 254 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 255 | s32_t SPIFFS_mount(spiffs *fs, spiffs_config *config, u8_t *work, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 256 | u8_t *fd_space, u32_t fd_space_size, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 257 | u8_t *cache, u32_t cache_size, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 258 | spiffs_check_callback check_cb_f); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 259 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 260 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 261 | * Unmounts the file system. All file handles will be flushed of any |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 262 | * cached writes and closed. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 263 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 264 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 265 | void SPIFFS_unmount(spiffs *fs); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 266 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 267 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 268 | * Creates a new file. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 269 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 270 | * @param path the path of the new file |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 271 | * @param mode ignored, for posix compliance |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 272 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 273 | s32_t SPIFFS_creat(spiffs *fs, const char *path, spiffs_mode mode); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 274 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 275 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 276 | * Opens/creates a file. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 277 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 278 | * @param path the path of the new file |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 279 | * @param flags the flags for the open command, can be combinations of |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 280 | * SPIFFS_APPEND, SPIFFS_TRUNC, SPIFFS_CREAT, SPIFFS_RD_ONLY, |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 281 | * SPIFFS_WR_ONLY, SPIFFS_RDWR, SPIFFS_DIRECT |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 282 | * @param mode ignored, for posix compliance |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 283 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 284 | spiffs_file SPIFFS_open(spiffs *fs, const char *path, spiffs_flags flags, spiffs_mode mode); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 285 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 286 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 287 | * Reads from given filehandle. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 288 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 289 | * @param fh the filehandle |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 290 | * @param buf where to put read data |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 291 | * @param len how much to read |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 292 | * @returns number of bytes read, or -1 if error |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 293 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 294 | s32_t SPIFFS_read(spiffs *fs, spiffs_file fh, void *buf, s32_t len); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 295 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 296 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 297 | * Writes to given filehandle. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 298 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 299 | * @param fh the filehandle |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 300 | * @param buf the data to write |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 301 | * @param len how much to write |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 302 | * @returns number of bytes written, or -1 if error |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 303 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 304 | s32_t SPIFFS_write(spiffs *fs, spiffs_file fh, void *buf, s32_t len); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 305 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 306 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 307 | * Moves the read/write file offset |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 308 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 309 | * @param fh the filehandle |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 310 | * @param offs how much/where to move the offset |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 311 | * @param whence if SPIFFS_SEEK_SET, the file offset shall be set to offset bytes |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 312 | * if SPIFFS_SEEK_CUR, the file offset shall be set to its current location plus offset |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 313 | * if SPIFFS_SEEK_END, the file offset shall be set to the size of the file plus offset |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 314 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 315 | s32_t SPIFFS_lseek(spiffs *fs, spiffs_file fh, s32_t offs, int whence); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 316 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 317 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 318 | * Removes a file by path |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 319 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 320 | * @param path the path of the file to remove |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 321 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 322 | s32_t SPIFFS_remove(spiffs *fs, const char *path); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 323 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 324 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 325 | * Removes a file by path |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 326 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 327 | * @param path the path of the file to move |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 328 | * @param new_path the path of the file to move |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 329 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 330 | s32_t SPIFFS_move(spiffs *fs, const char *path, const char *new_path); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 331 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 332 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 333 | * Removes a file by filehandle |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 334 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 335 | * @param fh the filehandle of the file to remove |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 336 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 337 | s32_t SPIFFS_fremove(spiffs *fs, spiffs_file fh); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 338 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 339 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 340 | * Gets file status by path |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 341 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 342 | * @param path the path of the file to stat |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 343 | * @param s the stat struct to populate |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 344 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 345 | s32_t SPIFFS_stat(spiffs *fs, const char *path, spiffs_stat *s); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 346 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 347 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 348 | * Gets file status by filehandle |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 349 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 350 | * @param fh the filehandle of the file to stat |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 351 | * @param s the stat struct to populate |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 352 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 353 | s32_t SPIFFS_fstat(spiffs *fs, spiffs_file fh, spiffs_stat *s); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 354 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 355 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 356 | * Flushes all pending write operations from cache for given file |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 357 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 358 | * @param fh the filehandle of the file to flush |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 359 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 360 | s32_t SPIFFS_fflush(spiffs *fs, spiffs_file fh); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 361 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 362 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 363 | * Closes a filehandle. If there are pending write operations, these are finalized before closing. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 364 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 365 | * @param fh the filehandle of the file to close |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 366 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 367 | void SPIFFS_close(spiffs *fs, spiffs_file fh); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 368 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 369 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 370 | * Returns last error of last file operation. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 371 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 372 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 373 | s32_t SPIFFS_errno(spiffs *fs); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 374 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 375 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 376 | * Opens a directory stream corresponding to the given name. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 377 | * The stream is positioned at the first entry in the directory. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 378 | * On hydrogen builds the name argument is ignored as hydrogen builds always correspond |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 379 | * to a flat file structure - no directories. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 380 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 381 | * @param name the name of the directory |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 382 | * @param d pointer the directory stream to be populated |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 383 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 384 | spiffs_DIR *SPIFFS_opendir(spiffs *fs, const char *name, spiffs_DIR *d); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 385 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 386 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 387 | * Closes a directory stream |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 388 | * @param d the directory stream to close |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 389 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 390 | s32_t SPIFFS_closedir(spiffs_DIR *d); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 391 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 392 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 393 | * Reads a directory into given spifs_dirent struct. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 394 | * @param d pointer to the directory stream |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 395 | * @param e the dirent struct to be populated |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 396 | * @returns null if error or end of stream, else given dirent is returned |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 397 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 398 | struct spiffs_dirent *SPIFFS_readdir(spiffs_DIR *d, struct spiffs_dirent *e); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 399 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 400 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 401 | * Runs a consistency check on given filesystem. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 402 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 403 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 404 | s32_t SPIFFS_check(spiffs *fs); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 405 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 406 | #if SPIFFS_TEST_VISUALISATION |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 407 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 408 | * Prints out a visualization of the filesystem. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 409 | * @param fs the file system struct |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 410 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 411 | s32_t SPIFFS_vis(spiffs *fs); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 412 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 413 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 414 | #if SPIFFS_BUFFER_HELP |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 415 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 416 | * Returns number of bytes needed for the filedescriptor buffer given |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 417 | * amount of file descriptors. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 418 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 419 | u32_t SPIFFS_buffer_bytes_for_filedescs(spiffs *fs, u32_t num_descs); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 420 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 421 | #if SPIFFS_CACHE |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 422 | /** |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 423 | * Returns number of bytes needed for the cache buffer given |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 424 | * amount of cache pages. |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 425 | */ |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 426 | u32_t SPIFFS_buffer_bytes_for_cache(spiffs *fs, u32_t num_pages); |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 427 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 428 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 429 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 430 | #if SPIFFS_CHACHE |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 431 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 432 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 433 | #ifdef __cplusplus |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 434 | } |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 435 | #endif |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 436 | |
Jenkins@KEILDM1.dc.multitech.prv | 3:63d10f2375ea | 437 | #endif /* SPIFFS_H_ */ |