@@ -24,7 +24,7 @@ using namespace mbed;
24
24
25
25
extern " C" void lfs_crc (uint32_t *crc, const void *buffer, size_t size)
26
26
{
27
- uint32_t initial_xor = *crc;
27
+ uint32_t initial_xor = *crc;
28
28
MbedCRC<POLY_32BIT_REV_ANSI, 32 > ct (initial_xor, 0x0 , true , false );
29
29
ct.compute ((void *)buffer, size, (uint32_t *) crc);
30
30
}
@@ -33,79 +33,102 @@ extern "C" void lfs_crc(uint32_t *crc, const void *buffer, size_t size)
33
33
static int lfs_toerror (int err)
34
34
{
35
35
switch (err) {
36
- case LFS_ERR_OK: return 0 ;
37
- case LFS_ERR_IO: return -EIO;
38
- case LFS_ERR_NOENT: return -ENOENT;
39
- case LFS_ERR_EXIST: return -EEXIST;
40
- case LFS_ERR_NOTDIR: return -ENOTDIR;
41
- case LFS_ERR_ISDIR: return -EISDIR;
42
- case LFS_ERR_INVAL: return -EINVAL;
43
- case LFS_ERR_NOSPC: return -ENOSPC;
44
- case LFS_ERR_NOMEM: return -ENOMEM;
45
- case LFS_ERR_CORRUPT: return -EILSEQ;
46
- default : return err;
36
+ case LFS_ERR_OK:
37
+ return 0 ;
38
+ case LFS_ERR_IO:
39
+ return -EIO;
40
+ case LFS_ERR_NOENT:
41
+ return -ENOENT;
42
+ case LFS_ERR_EXIST:
43
+ return -EEXIST;
44
+ case LFS_ERR_NOTDIR:
45
+ return -ENOTDIR;
46
+ case LFS_ERR_ISDIR:
47
+ return -EISDIR;
48
+ case LFS_ERR_INVAL:
49
+ return -EINVAL;
50
+ case LFS_ERR_NOSPC:
51
+ return -ENOSPC;
52
+ case LFS_ERR_NOMEM:
53
+ return -ENOMEM;
54
+ case LFS_ERR_CORRUPT:
55
+ return -EILSEQ;
56
+ default :
57
+ return err;
47
58
}
48
59
}
49
60
50
61
static int lfs_fromflags (int flags)
51
62
{
52
63
return (
53
- (((flags & 3 ) == O_RDONLY) ? LFS_O_RDONLY : 0 ) |
54
- (((flags & 3 ) == O_WRONLY) ? LFS_O_WRONLY : 0 ) |
55
- (((flags & 3 ) == O_RDWR) ? LFS_O_RDWR : 0 ) |
56
- ((flags & O_CREAT) ? LFS_O_CREAT : 0 ) |
57
- ((flags & O_EXCL) ? LFS_O_EXCL : 0 ) |
58
- ((flags & O_TRUNC) ? LFS_O_TRUNC : 0 ) |
59
- ((flags & O_APPEND) ? LFS_O_APPEND : 0 ));
64
+ (((flags & 3 ) == O_RDONLY) ? LFS_O_RDONLY : 0 ) |
65
+ (((flags & 3 ) == O_WRONLY) ? LFS_O_WRONLY : 0 ) |
66
+ (((flags & 3 ) == O_RDWR) ? LFS_O_RDWR : 0 ) |
67
+ ((flags & O_CREAT) ? LFS_O_CREAT : 0 ) |
68
+ ((flags & O_EXCL) ? LFS_O_EXCL : 0 ) |
69
+ ((flags & O_TRUNC) ? LFS_O_TRUNC : 0 ) |
70
+ ((flags & O_APPEND) ? LFS_O_APPEND : 0 ));
60
71
}
61
72
62
73
static int lfs_fromwhence (int whence)
63
74
{
64
75
switch (whence) {
65
- case SEEK_SET: return LFS_SEEK_SET;
66
- case SEEK_CUR: return LFS_SEEK_CUR;
67
- case SEEK_END: return LFS_SEEK_END;
68
- default : return whence;
76
+ case SEEK_SET:
77
+ return LFS_SEEK_SET;
78
+ case SEEK_CUR:
79
+ return LFS_SEEK_CUR;
80
+ case SEEK_END:
81
+ return LFS_SEEK_END;
82
+ default :
83
+ return whence;
69
84
}
70
85
}
71
86
72
87
static int lfs_tomode (int type)
73
88
{
74
89
int mode = S_IRWXU | S_IRWXG | S_IRWXO;
75
90
switch (type) {
76
- case LFS_TYPE_DIR: return mode | S_IFDIR;
77
- case LFS_TYPE_REG: return mode | S_IFREG;
78
- default : return 0 ;
91
+ case LFS_TYPE_DIR:
92
+ return mode | S_IFDIR;
93
+ case LFS_TYPE_REG:
94
+ return mode | S_IFREG;
95
+ default :
96
+ return 0 ;
79
97
}
80
98
}
81
99
82
100
static int lfs_totype (int type)
83
101
{
84
102
switch (type) {
85
- case LFS_TYPE_DIR: return DT_DIR;
86
- case LFS_TYPE_REG: return DT_REG;
87
- default : return DT_UNKNOWN;
103
+ case LFS_TYPE_DIR:
104
+ return DT_DIR;
105
+ case LFS_TYPE_REG:
106
+ return DT_REG;
107
+ default :
108
+ return DT_UNKNOWN;
88
109
}
89
110
}
90
111
91
112
92
113
// //// Block device operations //////
93
114
static int lfs_bd_read (const struct lfs_config *c, lfs_block_t block,
94
- lfs_off_t off, void *buffer, lfs_size_t size) {
115
+ lfs_off_t off, void *buffer, lfs_size_t size)
116
+ {
95
117
BlockDevice *bd = (BlockDevice *)c->context ;
96
- return bd->read (buffer, (bd_addr_t )block* c->block_size + off, size);
118
+ return bd->read (buffer, (bd_addr_t )block * c->block_size + off, size);
97
119
}
98
120
99
121
static int lfs_bd_prog (const struct lfs_config *c, lfs_block_t block,
100
- lfs_off_t off, const void *buffer, lfs_size_t size) {
122
+ lfs_off_t off, const void *buffer, lfs_size_t size)
123
+ {
101
124
BlockDevice *bd = (BlockDevice *)c->context ;
102
- return bd->program (buffer, (bd_addr_t )block* c->block_size + off, size);
125
+ return bd->program (buffer, (bd_addr_t )block * c->block_size + off, size);
103
126
}
104
127
105
128
static int lfs_bd_erase (const struct lfs_config *c, lfs_block_t block)
106
129
{
107
130
BlockDevice *bd = (BlockDevice *)c->context ;
108
- return bd->erase ((bd_addr_t )block* c->block_size , c->block_size );
131
+ return bd->erase ((bd_addr_t )block * c->block_size , c->block_size );
109
132
}
110
133
111
134
static int lfs_bd_sync (const struct lfs_config *c)
@@ -119,19 +142,21 @@ static int lfs_bd_sync(const struct lfs_config *c)
119
142
120
143
// Filesystem implementation (See LittleFileSystem.h)
121
144
LittleFileSystem::LittleFileSystem (const char *name, BlockDevice *bd,
122
- lfs_size_t read_size, lfs_size_t prog_size,
123
- lfs_size_t block_size, lfs_size_t lookahead)
124
- : FileSystem(name)
125
- , _read_size(read_size)
126
- , _prog_size(prog_size)
127
- , _block_size(block_size)
128
- , _lookahead(lookahead) {
145
+ lfs_size_t read_size, lfs_size_t prog_size,
146
+ lfs_size_t block_size, lfs_size_t lookahead)
147
+ : FileSystem(name)
148
+ , _read_size(read_size)
149
+ , _prog_size(prog_size)
150
+ , _block_size(block_size)
151
+ , _lookahead(lookahead)
152
+ {
129
153
if (bd) {
130
154
mount (bd);
131
155
}
132
156
}
133
157
134
- LittleFileSystem::~LittleFileSystem () {
158
+ LittleFileSystem::~LittleFileSystem ()
159
+ {
135
160
// nop if unmounted
136
161
unmount ();
137
162
}
@@ -168,7 +193,7 @@ int LittleFileSystem::mount(BlockDevice *bd)
168
193
_config.block_size = _block_size;
169
194
}
170
195
_config.block_count = bd->size () / _config.block_size ;
171
- _config.lookahead = 32 * ((_config.block_count + 31 )/ 32 );
196
+ _config.lookahead = 32 * ((_config.block_count + 31 ) / 32 );
172
197
if (_config.lookahead > _lookahead) {
173
198
_config.lookahead = _lookahead;
174
199
}
@@ -204,17 +229,18 @@ int LittleFileSystem::unmount()
204
229
205
230
_bd = NULL ;
206
231
}
207
-
232
+
208
233
LFS_INFO (" unmount -> %d" , res);
209
234
_mutex.unlock ();
210
235
return res;
211
236
}
212
237
213
238
int LittleFileSystem::format (BlockDevice *bd,
214
- lfs_size_t read_size, lfs_size_t prog_size,
215
- lfs_size_t block_size, lfs_size_t lookahead) {
239
+ lfs_size_t read_size, lfs_size_t prog_size,
240
+ lfs_size_t block_size, lfs_size_t lookahead)
241
+ {
216
242
LFS_INFO (" format(%p, %ld, %ld, %ld, %ld)" ,
217
- bd, read_size, prog_size, block_size, lookahead);
243
+ bd, read_size, prog_size, block_size, lookahead);
218
244
int err = bd->init ();
219
245
if (err) {
220
246
LFS_INFO (" format -> %d" , err);
@@ -223,7 +249,7 @@ int LittleFileSystem::format(BlockDevice *bd,
223
249
224
250
lfs_t _lfs;
225
251
struct lfs_config _config;
226
-
252
+
227
253
memset (&_config, 0 , sizeof (_config));
228
254
_config.context = bd;
229
255
_config.read = lfs_bd_read;
@@ -243,7 +269,7 @@ int LittleFileSystem::format(BlockDevice *bd,
243
269
_config.block_size = block_size;
244
270
}
245
271
_config.block_count = bd->size () / _config.block_size ;
246
- _config.lookahead = 32 * ((_config.block_count + 31 )/ 32 );
272
+ _config.lookahead = 32 * ((_config.block_count + 31 ) / 32 );
247
273
if (_config.lookahead > lookahead) {
248
274
_config.lookahead = lookahead;
249
275
}
@@ -288,7 +314,7 @@ int LittleFileSystem::reformat(BlockDevice *bd)
288
314
}
289
315
290
316
int err = LittleFileSystem::format (bd,
291
- _read_size, _prog_size, _block_size, _lookahead);
317
+ _read_size, _prog_size, _block_size, _lookahead);
292
318
if (err) {
293
319
LFS_INFO (" reformat -> %d" , err);
294
320
_mutex.unlock ();
0 commit comments