18
18
#include "lfs.h"
19
19
#include "lfs_util.h"
20
20
21
- #include <string.h>
22
- #include <stdlib.h>
23
- #include <assert.h>
24
-
25
21
26
22
/// Caching block device operations ///
27
23
static int lfs_cache_read (lfs_t * lfs , lfs_cache_t * rcache ,
28
24
const lfs_cache_t * pcache , lfs_block_t block ,
29
25
lfs_off_t off , void * buffer , lfs_size_t size ) {
30
26
uint8_t * data = buffer ;
31
- assert (block < lfs -> cfg -> block_count );
27
+ LFS_ASSERT (block < lfs -> cfg -> block_count );
32
28
33
29
while (size > 0 ) {
34
30
if (pcache && block == pcache -> block && off >= pcache -> off &&
@@ -153,7 +149,7 @@ static int lfs_cache_prog(lfs_t *lfs, lfs_cache_t *pcache,
153
149
lfs_cache_t * rcache , lfs_block_t block ,
154
150
lfs_off_t off , const void * buffer , lfs_size_t size ) {
155
151
const uint8_t * data = buffer ;
156
- assert (block < lfs -> cfg -> block_count );
152
+ LFS_ASSERT (block < lfs -> cfg -> block_count );
157
153
158
154
while (size > 0 ) {
159
155
if (block == pcache -> block && off >= pcache -> off &&
@@ -180,7 +176,7 @@ static int lfs_cache_prog(lfs_t *lfs, lfs_cache_t *pcache,
180
176
181
177
// pcache must have been flushed, either by programming and
182
178
// entire block or manually flushing the pcache
183
- assert (pcache -> block == 0xffffffff );
179
+ LFS_ASSERT (pcache -> block == 0xffffffff );
184
180
185
181
if (off % lfs -> cfg -> prog_size == 0 &&
186
182
size >= lfs -> cfg -> prog_size ) {
@@ -1130,7 +1126,7 @@ static int lfs_ctz_find(lfs_t *lfs,
1130
1126
return err ;
1131
1127
}
1132
1128
1133
- assert (head >= 2 && head <= lfs -> cfg -> block_count );
1129
+ LFS_ASSERT (head >= 2 && head <= lfs -> cfg -> block_count );
1134
1130
current -= 1 << skip ;
1135
1131
}
1136
1132
@@ -1150,7 +1146,7 @@ static int lfs_ctz_extend(lfs_t *lfs,
1150
1146
if (err ) {
1151
1147
return err ;
1152
1148
}
1153
- assert (nblock >= 2 && nblock <= lfs -> cfg -> block_count );
1149
+ LFS_ASSERT (nblock >= 2 && nblock <= lfs -> cfg -> block_count );
1154
1150
1155
1151
if (true) {
1156
1152
err = lfs_bd_erase (lfs , nblock );
@@ -1221,7 +1217,7 @@ static int lfs_ctz_extend(lfs_t *lfs,
1221
1217
}
1222
1218
}
1223
1219
1224
- assert (head >= 2 && head <= lfs -> cfg -> block_count );
1220
+ LFS_ASSERT (head >= 2 && head <= lfs -> cfg -> block_count );
1225
1221
}
1226
1222
1227
1223
* block = nblock ;
@@ -1347,12 +1343,12 @@ int lfs_file_open(lfs_t *lfs, lfs_file_t *file,
1347
1343
if (lfs -> cfg -> file_buffer ) {
1348
1344
file -> cache .buffer = lfs -> cfg -> file_buffer ;
1349
1345
} else if ((file -> flags & 3 ) == LFS_O_RDONLY ) {
1350
- file -> cache .buffer = malloc (lfs -> cfg -> read_size );
1346
+ file -> cache .buffer = lfs_malloc (lfs -> cfg -> read_size );
1351
1347
if (!file -> cache .buffer ) {
1352
1348
return LFS_ERR_NOMEM ;
1353
1349
}
1354
1350
} else {
1355
- file -> cache .buffer = malloc (lfs -> cfg -> prog_size );
1351
+ file -> cache .buffer = lfs_malloc (lfs -> cfg -> prog_size );
1356
1352
if (!file -> cache .buffer ) {
1357
1353
return LFS_ERR_NOMEM ;
1358
1354
}
@@ -1378,7 +1374,7 @@ int lfs_file_close(lfs_t *lfs, lfs_file_t *file) {
1378
1374
1379
1375
// clean up memory
1380
1376
if (!lfs -> cfg -> file_buffer ) {
1381
- free (file -> cache .buffer );
1377
+ lfs_free (file -> cache .buffer );
1382
1378
}
1383
1379
1384
1380
return err ;
@@ -1527,7 +1523,7 @@ int lfs_file_sync(lfs_t *lfs, lfs_file_t *file) {
1527
1523
return err ;
1528
1524
}
1529
1525
1530
- assert (entry .d .type == LFS_TYPE_REG );
1526
+ LFS_ASSERT (entry .d .type == LFS_TYPE_REG );
1531
1527
entry .d .u .file .head = file -> head ;
1532
1528
entry .d .u .file .size = file -> size ;
1533
1529
@@ -1753,7 +1749,7 @@ int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) {
1753
1749
1754
1750
// flush+seek if not already at end
1755
1751
if (file -> pos != oldsize ) {
1756
- int err = lfs_file_seek (lfs , file , 0 , SEEK_END );
1752
+ int err = lfs_file_seek (lfs , file , 0 , LFS_SEEK_END );
1757
1753
if (err < 0 ) {
1758
1754
return err ;
1759
1755
}
@@ -1886,7 +1882,7 @@ int lfs_remove(lfs_t *lfs, const char *path) {
1886
1882
return res ;
1887
1883
}
1888
1884
1889
- assert (res ); // must have pred
1885
+ LFS_ASSERT (res ); // must have pred
1890
1886
cwd .d .tail [0 ] = dir .d .tail [0 ];
1891
1887
cwd .d .tail [1 ] = dir .d .tail [1 ];
1892
1888
@@ -2003,7 +1999,7 @@ int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath) {
2003
1999
return res ;
2004
2000
}
2005
2001
2006
- assert (res ); // must have pred
2002
+ LFS_ASSERT (res ); // must have pred
2007
2003
newcwd .d .tail [0 ] = dir .d .tail [0 ];
2008
2004
newcwd .d .tail [1 ] = dir .d .tail [1 ];
2009
2005
@@ -2026,7 +2022,7 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
2026
2022
if (lfs -> cfg -> read_buffer ) {
2027
2023
lfs -> rcache .buffer = lfs -> cfg -> read_buffer ;
2028
2024
} else {
2029
- lfs -> rcache .buffer = malloc (lfs -> cfg -> read_size );
2025
+ lfs -> rcache .buffer = lfs_malloc (lfs -> cfg -> read_size );
2030
2026
if (!lfs -> rcache .buffer ) {
2031
2027
return LFS_ERR_NOMEM ;
2032
2028
}
@@ -2037,30 +2033,30 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
2037
2033
if (lfs -> cfg -> prog_buffer ) {
2038
2034
lfs -> pcache .buffer = lfs -> cfg -> prog_buffer ;
2039
2035
} else {
2040
- lfs -> pcache .buffer = malloc (lfs -> cfg -> prog_size );
2036
+ lfs -> pcache .buffer = lfs_malloc (lfs -> cfg -> prog_size );
2041
2037
if (!lfs -> pcache .buffer ) {
2042
2038
return LFS_ERR_NOMEM ;
2043
2039
}
2044
2040
}
2045
2041
2046
2042
// setup lookahead, round down to nearest 32-bits
2047
- assert (lfs -> cfg -> lookahead % 32 == 0 );
2048
- assert (lfs -> cfg -> lookahead > 0 );
2043
+ LFS_ASSERT (lfs -> cfg -> lookahead % 32 == 0 );
2044
+ LFS_ASSERT (lfs -> cfg -> lookahead > 0 );
2049
2045
if (lfs -> cfg -> lookahead_buffer ) {
2050
2046
lfs -> free .buffer = lfs -> cfg -> lookahead_buffer ;
2051
2047
} else {
2052
- lfs -> free .buffer = malloc (lfs -> cfg -> lookahead /8 );
2048
+ lfs -> free .buffer = lfs_malloc (lfs -> cfg -> lookahead /8 );
2053
2049
if (!lfs -> free .buffer ) {
2054
2050
return LFS_ERR_NOMEM ;
2055
2051
}
2056
2052
}
2057
2053
2058
2054
// check that program and read sizes are multiples of the block size
2059
- assert (lfs -> cfg -> prog_size % lfs -> cfg -> read_size == 0 );
2060
- assert (lfs -> cfg -> block_size % lfs -> cfg -> prog_size == 0 );
2055
+ LFS_ASSERT (lfs -> cfg -> prog_size % lfs -> cfg -> read_size == 0 );
2056
+ LFS_ASSERT (lfs -> cfg -> block_size % lfs -> cfg -> prog_size == 0 );
2061
2057
2062
2058
// check that the block size is large enough to fit ctz pointers
2063
- assert (4 * lfs_npw2 (0xffffffff / (lfs -> cfg -> block_size - 2 * 4 ))
2059
+ LFS_ASSERT (4 * lfs_npw2 (0xffffffff / (lfs -> cfg -> block_size - 2 * 4 ))
2064
2060
<= lfs -> cfg -> block_size );
2065
2061
2066
2062
// setup default state
@@ -2076,15 +2072,15 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
2076
2072
static int lfs_deinit (lfs_t * lfs ) {
2077
2073
// free allocated memory
2078
2074
if (!lfs -> cfg -> read_buffer ) {
2079
- free (lfs -> rcache .buffer );
2075
+ lfs_free (lfs -> rcache .buffer );
2080
2076
}
2081
2077
2082
2078
if (!lfs -> cfg -> prog_buffer ) {
2083
- free (lfs -> pcache .buffer );
2079
+ lfs_free (lfs -> pcache .buffer );
2084
2080
}
2085
2081
2086
2082
if (!lfs -> cfg -> lookahead_buffer ) {
2087
- free (lfs -> free .buffer );
2083
+ lfs_free (lfs -> free .buffer );
2088
2084
}
2089
2085
2090
2086
return 0 ;
0 commit comments