22
22
#include " mbed.h"
23
23
#include " LittleFileSystem.h"
24
24
#include " errno.h"
25
+ extern " C" {
26
+ #include " lfs.h"
27
+ #include " lfs_util.h"
28
+ }
25
29
26
30
27
31
// //// Conversion functions //////
@@ -124,9 +128,11 @@ LittleFileSystem::~LittleFileSystem() {
124
128
125
129
int LittleFileSystem::mount (BlockDevice *bd) {
126
130
_mutex.lock ();
131
+ LFS_INFO (" mount(%p)" , bd);
127
132
_bd = bd;
128
133
int err = _bd->init ();
129
134
if (err) {
135
+ LFS_INFO (" mount -> %d" , err);
130
136
_mutex.unlock ();
131
137
return err;
132
138
}
@@ -156,37 +162,45 @@ int LittleFileSystem::mount(BlockDevice *bd) {
156
162
}
157
163
158
164
err = lfs_mount (&_lfs, &_config);
165
+ LFS_INFO (" mount -> %d" , lfs_toerror (err));
159
166
_mutex.unlock ();
160
167
return lfs_toerror (err);
161
168
}
162
169
163
170
int LittleFileSystem::unmount () {
164
171
_mutex.lock ();
172
+ LFS_INFO (" unmount()" , " " );
165
173
if (_bd) {
166
174
int err = lfs_unmount (&_lfs);
167
175
if (err) {
176
+ LFS_INFO (" unmount -> %d" , lfs_toerror (err));
168
177
_mutex.unlock ();
169
178
return lfs_toerror (err);
170
179
}
171
180
172
181
err = _bd->deinit ();
173
182
if (err) {
183
+ LFS_INFO (" unmount -> %d" , err);
174
184
_mutex.unlock ();
175
185
return err;
176
186
}
177
187
178
188
_bd = NULL ;
179
189
}
180
190
191
+ LFS_INFO (" unmount -> %d" , 0 );
181
192
_mutex.unlock ();
182
193
return 0 ;
183
194
}
184
195
185
196
int LittleFileSystem::format (BlockDevice *bd,
186
197
lfs_size_t read_size, lfs_size_t prog_size,
187
198
lfs_size_t block_size, lfs_size_t lookahead) {
199
+ LFS_INFO (" format(%p, %d, %d, %d, %d)" ,
200
+ bd, read_size, prog_size, block_size, lookahead);
188
201
int err = bd->init ();
189
202
if (err) {
203
+ LFS_INFO (" format -> %d" , err);
190
204
return err;
191
205
}
192
206
@@ -219,78 +233,95 @@ int LittleFileSystem::format(BlockDevice *bd,
219
233
220
234
err = lfs_format (&_lfs, &_config);
221
235
if (err) {
236
+ LFS_INFO (" format -> %d" , lfs_toerror (err));
222
237
return lfs_toerror (err);
223
238
}
224
239
225
240
err = bd->deinit ();
226
241
if (err) {
242
+ LFS_INFO (" format -> %d" , err);
227
243
return err;
228
244
}
229
245
246
+ LFS_INFO (" format -> %d" , 0 );
230
247
return 0 ;
231
248
}
232
249
233
250
int LittleFileSystem::reformat (BlockDevice *bd) {
234
251
_mutex.lock ();
252
+ LFS_INFO (" reformat(%p)" , bd);
235
253
if (_bd) {
236
254
if (!bd) {
237
255
bd = _bd;
238
256
}
239
257
240
258
int err = unmount ();
241
259
if (err) {
260
+ LFS_INFO (" reformat -> %d" , err);
242
261
_mutex.unlock ();
243
262
return err;
244
263
}
245
264
}
246
265
247
266
if (!bd) {
267
+ LFS_INFO (" reformat -> %d" , -ENODEV);
248
268
_mutex.unlock ();
249
269
return -ENODEV;
250
270
}
251
271
252
272
int err = LittleFileSystem::format (bd,
253
273
_read_size, _prog_size, _block_size, _lookahead);
254
274
if (err) {
275
+ LFS_INFO (" reformat -> %d" , err);
255
276
_mutex.unlock ();
256
277
return err;
257
278
}
258
279
259
280
err = mount (bd);
260
281
if (err) {
282
+ LFS_INFO (" reformat -> %d" , err);
261
283
_mutex.unlock ();
262
284
return err;
263
285
}
264
286
287
+ LFS_INFO (" reformat -> %d" , 0 );
265
288
_mutex.unlock ();
266
289
return 0 ;
267
290
}
268
291
269
292
int LittleFileSystem::remove (const char *filename) {
270
293
_mutex.lock ();
294
+ LFS_INFO (" remove(\" %s\" )" , filename);
271
295
int err = lfs_remove (&_lfs, filename);
296
+ LFS_INFO (" remove -> %d" , lfs_toerror (err));
272
297
_mutex.unlock ();
273
298
return lfs_toerror (err);
274
299
}
275
300
276
301
int LittleFileSystem::rename (const char *oldname, const char *newname) {
277
302
_mutex.lock ();
303
+ LFS_INFO (" rename(\" %s\" , \" %s\" )" , oldname, newname);
278
304
int err = lfs_rename (&_lfs, oldname, newname);
305
+ LFS_INFO (" rename -> %d" , lfs_toerror (err));
279
306
_mutex.unlock ();
280
307
return lfs_toerror (err);
281
308
}
282
309
283
310
int LittleFileSystem::mkdir (const char *name, mode_t mode) {
284
311
_mutex.lock ();
312
+ LFS_INFO (" mkdir(\" %s\" , 0x%x)" , name, mode);
285
313
int err = lfs_mkdir (&_lfs, name);
314
+ LFS_INFO (" mkdir -> %d" , lfs_toerror (err));
286
315
_mutex.unlock ();
287
316
return lfs_toerror (err);
288
317
}
289
318
290
319
int LittleFileSystem::stat (const char *name, struct stat *st) {
291
320
struct lfs_info info;
292
321
_mutex.lock ();
322
+ LFS_INFO (" stat(\" %s\" , %p)" , name, st);
293
323
int err = lfs_stat (&_lfs, name, &info);
324
+ LFS_INFO (" stat -> %d" , lfs_toerror (err));
294
325
_mutex.unlock ();
295
326
st->st_size = info.size ;
296
327
st->st_mode = lfs_tomode (info.type );
@@ -303,15 +334,19 @@ int LittleFileSystem::file_open(fs_file_t *file, const char *path, int flags) {
303
334
lfs_file_t *f = new lfs_file_t ;
304
335
*file = f;
305
336
_mutex.lock ();
337
+ LFS_INFO (" file_open(%p, \" %s\" , 0x%x)" , *file, path, flags);
306
338
int err = lfs_file_open (&_lfs, f, path, lfs_fromflags (flags));
339
+ LFS_INFO (" file_open -> %d" , lfs_toerror (err));
307
340
_mutex.unlock ();
308
341
return lfs_toerror (err);
309
342
}
310
343
311
344
int LittleFileSystem::file_close (fs_file_t file) {
312
345
lfs_file_t *f = (lfs_file_t *)file;
313
346
_mutex.lock ();
347
+ LFS_INFO (" file_close(%p)" , file);
314
348
int err = lfs_file_close (&_lfs, f);
349
+ LFS_INFO (" file_close -> %d" , lfs_toerror (err));
315
350
_mutex.unlock ();
316
351
delete f;
317
352
return lfs_toerror (err);
@@ -320,47 +355,59 @@ int LittleFileSystem::file_close(fs_file_t file) {
320
355
ssize_t LittleFileSystem::file_read (fs_file_t file, void *buffer, size_t len) {
321
356
lfs_file_t *f = (lfs_file_t *)file;
322
357
_mutex.lock ();
358
+ LFS_INFO (" file_read(%p, %p, %d)" , file, buffer, len);
323
359
lfs_ssize_t res = lfs_file_read (&_lfs, f, buffer, len);
360
+ LFS_INFO (" file_read -> %d" , lfs_toerror (res));
324
361
_mutex.unlock ();
325
362
return lfs_toerror (res);
326
363
}
327
364
328
365
ssize_t LittleFileSystem::file_write (fs_file_t file, const void *buffer, size_t len) {
329
366
lfs_file_t *f = (lfs_file_t *)file;
330
367
_mutex.lock ();
368
+ LFS_INFO (" file_write(%p, %p, %d)" , file, buffer, len);
331
369
lfs_ssize_t res = lfs_file_write (&_lfs, f, buffer, len);
370
+ LFS_INFO (" file_write -> %d" , lfs_toerror (res));
332
371
_mutex.unlock ();
333
372
return lfs_toerror (res);
334
373
}
335
374
336
375
int LittleFileSystem::file_sync (fs_file_t file) {
337
376
lfs_file_t *f = (lfs_file_t *)file;
338
377
_mutex.lock ();
378
+ LFS_INFO (" file_sync(%p)" , file);
339
379
int err = lfs_file_sync (&_lfs, f);
380
+ LFS_INFO (" file_sync -> %d" , lfs_toerror (err));
340
381
_mutex.unlock ();
341
382
return lfs_toerror (err);
342
383
}
343
384
344
385
off_t LittleFileSystem::file_seek (fs_file_t file, off_t offset, int whence) {
345
386
lfs_file_t *f = (lfs_file_t *)file;
346
387
_mutex.lock ();
388
+ LFS_INFO (" file_seek(%p, %d, %d)" , file, offset, whence);
347
389
off_t res = lfs_file_seek (&_lfs, f, offset, lfs_fromwhence (whence));
390
+ LFS_INFO (" file_seek -> %d" , lfs_toerror (res));
348
391
_mutex.unlock ();
349
392
return lfs_toerror (res);
350
393
}
351
394
352
395
off_t LittleFileSystem::file_tell (fs_file_t file) {
353
396
lfs_file_t *f = (lfs_file_t *)file;
354
397
_mutex.lock ();
398
+ LFS_INFO (" file_tell(%p)" , file);
355
399
off_t res = lfs_file_tell (&_lfs, f);
400
+ LFS_INFO (" file_tell -> %d" , lfs_toerror (res));
356
401
_mutex.unlock ();
357
402
return lfs_toerror (res);
358
403
}
359
404
360
405
off_t LittleFileSystem::file_size (fs_file_t file) {
361
406
lfs_file_t *f = (lfs_file_t *)file;
362
407
_mutex.lock ();
408
+ LFS_INFO (" file_size(%p)" , file);
363
409
off_t res = lfs_file_size (&_lfs, f);
410
+ LFS_INFO (" file_size -> %d" , lfs_toerror (res));
364
411
_mutex.unlock ();
365
412
return lfs_toerror (res);
366
413
}
@@ -371,15 +418,19 @@ int LittleFileSystem::dir_open(fs_dir_t *dir, const char *path) {
371
418
lfs_dir_t *d = new lfs_dir_t ;
372
419
*dir = d;
373
420
_mutex.lock ();
421
+ LFS_INFO (" dir_open(%p, \" %s\" )" , *dir, path);
374
422
int err = lfs_dir_open (&_lfs, d, path);
423
+ LFS_INFO (" dir_open -> %d" , lfs_toerror (err));
375
424
_mutex.unlock ();
376
425
return lfs_toerror (err);
377
426
}
378
427
379
428
int LittleFileSystem::dir_close (fs_dir_t dir) {
380
429
lfs_dir_t *d = (lfs_dir_t *)dir;
381
430
_mutex.lock ();
431
+ LFS_INFO (" dir_close(%p)" , dir);
382
432
int err = lfs_dir_close (&_lfs, d);
433
+ LFS_INFO (" dir_close -> %d" , lfs_toerror (err));
383
434
_mutex.unlock ();
384
435
delete d;
385
436
return lfs_toerror (err);
@@ -389,7 +440,9 @@ ssize_t LittleFileSystem::dir_read(fs_dir_t dir, struct dirent *ent) {
389
440
lfs_dir_t *d = (lfs_dir_t *)dir;
390
441
struct lfs_info info;
391
442
_mutex.lock ();
443
+ LFS_INFO (" dir_read(%p, %p)" , dir, ent);
392
444
int res = lfs_dir_read (&_lfs, d, &info);
445
+ LFS_INFO (" dir_read -> %d" , lfs_toerror (res));
393
446
_mutex.unlock ();
394
447
if (res == 1 ) {
395
448
ent->d_type = lfs_totype (info.type );
@@ -401,22 +454,28 @@ ssize_t LittleFileSystem::dir_read(fs_dir_t dir, struct dirent *ent) {
401
454
void LittleFileSystem::dir_seek (fs_dir_t dir, off_t offset) {
402
455
lfs_dir_t *d = (lfs_dir_t *)dir;
403
456
_mutex.lock ();
457
+ LFS_INFO (" dir_seek(%p, %d)" , dir, offset);
404
458
lfs_dir_seek (&_lfs, d, offset);
459
+ LFS_INFO (" dir_seek -> void" , " " );
405
460
_mutex.unlock ();
406
461
}
407
462
408
463
off_t LittleFileSystem::dir_tell (fs_dir_t dir) {
409
464
lfs_dir_t *d = (lfs_dir_t *)dir;
410
465
_mutex.lock ();
466
+ LFS_INFO (" dir_tell(%p)" , dir);
411
467
lfs_soff_t res = lfs_dir_tell (&_lfs, d);
468
+ LFS_INFO (" dir_tell -> %d" , lfs_toerror (res));
412
469
_mutex.unlock ();
413
470
return lfs_toerror (res);
414
471
}
415
472
416
473
void LittleFileSystem::dir_rewind (fs_dir_t dir) {
417
474
lfs_dir_t *d = (lfs_dir_t *)dir;
418
475
_mutex.lock ();
476
+ LFS_INFO (" dir_rewind(%p)" , dir);
419
477
lfs_dir_rewind (&_lfs, d);
478
+ LFS_INFO (" dir_rewind -> void" , " " );
420
479
_mutex.unlock ();
421
480
}
422
481
0 commit comments