Fix some build warning on linux.

This commit is contained in:
armink 2021-01-03 22:27:59 +08:00
parent 9eea31ac18
commit 474fc522e5
5 changed files with 31 additions and 18 deletions

View File

@ -263,7 +263,11 @@ struct fdb_db {
bool init_ok; /**< initialized successfully */ bool init_ok; /**< initialized successfully */
bool file_mode; /**< is file mode, default is false */ bool file_mode; /**< is file mode, default is false */
#ifdef FDB_USING_FILE_MODE #ifdef FDB_USING_FILE_MODE
void *cur_file; /**< current file object */ #if defined(FDB_USING_FILE_POSIX_MODE)
int cur_file; /**< current file object */
#elif defined(FDB_USING_FILE_LIBC_MODE)
FILE *cur_file; /**< current file object */
#endif
uint32_t cur_sec; /**< current operate sector address */ uint32_t cur_sec; /**< current operate sector address */
#endif #endif
void (*lock)(fdb_db_t db); /**< lock the database operate */ void (*lock)(fdb_db_t db); /**< lock the database operate */
@ -325,3 +329,4 @@ typedef struct fdb_blob *fdb_blob_t;
#endif #endif
#endif /* _FDB_DEF_H_ */ #endif /* _FDB_DEF_H_ */

View File

@ -65,7 +65,7 @@ void tsdb_sample(fdb_tsdb_t tsdb)
fdb_tsl_iter_by_time(tsdb, from_time, to_time, query_by_time_cb, tsdb); fdb_tsl_iter_by_time(tsdb, from_time, to_time, query_by_time_cb, tsdb);
/* query all FDB_TSL_WRITE status TSL's count in TSDB by time */ /* query all FDB_TSL_WRITE status TSL's count in TSDB by time */
count = fdb_tsl_query_count(tsdb, from_time, to_time, FDB_TSL_WRITE); count = fdb_tsl_query_count(tsdb, from_time, to_time, FDB_TSL_WRITE);
FDB_INFO("query count is: %u\n", count); FDB_INFO("query count is: %zu\n", count);
} }
{ /* SET the TSL status */ { /* SET the TSL status */

View File

@ -13,6 +13,7 @@
#include <flashdb.h> #include <flashdb.h>
#include <fdb_low_lvl.h> #include <fdb_low_lvl.h>
#include <string.h>
#define FDB_LOG_TAG "" #define FDB_LOG_TAG ""
@ -40,9 +41,9 @@ fdb_err_t _fdb_init_ex(fdb_db_t db, const char *name, const char *part_name, fdb
FDB_ASSERT(db->sec_size != 0); FDB_ASSERT(db->sec_size != 0);
FDB_ASSERT(db->max_size != 0); FDB_ASSERT(db->max_size != 0);
#ifdef FDB_USING_POSIX_MODE #ifdef FDB_USING_POSIX_MODE
db->cur_file = (void *)-1; db->cur_file = -1;
#else #else
db->cur_file = (void *)0; db->cur_file = 0;
#endif #endif
db->storage.dir = part_name; db->storage.dir = part_name;
FDB_ASSERT(strlen(part_name) != 0) FDB_ASSERT(strlen(part_name) != 0)
@ -94,3 +95,4 @@ void _fdb_init_finish(fdb_db_t db, fdb_err_t result)
db->name, (int)result); db->name, (int)result);
} }
} }

View File

@ -34,10 +34,15 @@ static void get_db_file_path(fdb_db_t db, uint32_t addr, char *path, size_t size
} }
#if defined(FDB_USING_FILE_POSIX_MODE) #if defined(FDB_USING_FILE_POSIX_MODE)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
static int open_db_file(fdb_db_t db, uint32_t addr, bool clean) static int open_db_file(fdb_db_t db, uint32_t addr, bool clean)
{ {
uint32_t sec_addr = RT_ALIGN_DOWN(addr, db->sec_size); uint32_t sec_addr = FDB_ALIGN_DOWN(addr, db->sec_size);
int fd = (int)db->cur_file; int fd = db->cur_file;
char path[DB_PATH_MAX]; char path[DB_PATH_MAX];
if (sec_addr != db->cur_sec || fd <= 0 || clean) { if (sec_addr != db->cur_sec || fd <= 0 || clean) {
@ -49,7 +54,7 @@ static int open_db_file(fdb_db_t db, uint32_t addr, bool clean)
} }
if (clean) { if (clean) {
/* clean the old file */ /* clean the old file */
fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 0); fd = open(path, O_RDWR | O_CREAT | O_TRUNC, 0777);
if (fd <= 0) { if (fd <= 0) {
FDB_INFO("Error: open (%s) file failed.\n", path); FDB_INFO("Error: open (%s) file failed.\n", path);
} }
@ -59,12 +64,12 @@ static int open_db_file(fdb_db_t db, uint32_t addr, bool clean)
} }
} }
/* open the database file */ /* open the database file */
fd = open(path, O_RDWR, 0); fd = open(path, O_RDWR, 0777);
db->cur_sec = sec_addr; db->cur_sec = sec_addr;
} }
db->cur_file = (void *)fd; db->cur_file = fd;
return (int)db->cur_file; return db->cur_file;
} }
fdb_err_t _fdb_file_read(fdb_db_t db, uint32_t addr, void *buf, size_t size) fdb_err_t _fdb_file_read(fdb_db_t db, uint32_t addr, void *buf, size_t size)
@ -207,3 +212,4 @@ fdb_err_t _fdb_file_erase(fdb_db_t db, uint32_t addr, size_t size)
#endif /* defined(FDB_USING_FILE_LIBC_MODE) */ #endif /* defined(FDB_USING_FILE_LIBC_MODE) */
#endif /* FDB_USING_FILE_MODE */ #endif /* FDB_USING_FILE_MODE */

View File

@ -62,7 +62,6 @@
#define KV_STATUS_TABLE_SIZE FDB_STATUS_TABLE_SIZE(FDB_KV_STATUS_NUM) #define KV_STATUS_TABLE_SIZE FDB_STATUS_TABLE_SIZE(FDB_KV_STATUS_NUM)
//TODO 文件模式如何支持
#define SECTOR_NUM (db_max_size(db) / db_sec_size(db)) #define SECTOR_NUM (db_max_size(db) / db_sec_size(db))
#define SECTOR_HDR_DATA_SIZE (FDB_WG_ALIGN(sizeof(struct sector_hdr_data))) #define SECTOR_HDR_DATA_SIZE (FDB_WG_ALIGN(sizeof(struct sector_hdr_data)))
@ -687,7 +686,7 @@ char *fdb_kv_get(fdb_kvdb_t db, const char *key)
value[get_size] = '\0'; value[get_size] = '\0';
return value; return value;
} else if (blob.saved.len > FDB_STR_KV_VALUE_MAX_SIZE) { } else if (blob.saved.len > FDB_STR_KV_VALUE_MAX_SIZE) {
FDB_INFO("Warning: The default string KV value buffer length (%d) is too less (%u).\n", FDB_STR_KV_VALUE_MAX_SIZE, FDB_INFO("Warning: The default string KV value buffer length (%d) is too less (%zu).\n", FDB_STR_KV_VALUE_MAX_SIZE,
blob.saved.len); blob.saved.len);
} else { } else {
FDB_INFO("Warning: The KV value isn't string. Could not be returned\n"); FDB_INFO("Warning: The KV value isn't string. Could not be returned\n");
@ -976,7 +975,7 @@ static uint32_t new_kv(fdb_kvdb_t db, kv_sec_info_t sector, size_t kv_size)
__retry: __retry:
if ((empty_kv = alloc_kv(db, sector, kv_size)) == FAILED_ADDR && db->gc_request && !already_gc) { if ((empty_kv = alloc_kv(db, sector, kv_size)) == FAILED_ADDR && db->gc_request && !already_gc) {
FDB_DEBUG("Warning: Alloc an KV (size %u) failed when new KV. Now will GC then retry.\n", kv_size); FDB_DEBUG("Warning: Alloc an KV (size %zu) failed when new KV. Now will GC then retry.\n", kv_size);
gc_collect(db); gc_collect(db);
already_gc = true; already_gc = true;
goto __retry; goto __retry;
@ -1045,7 +1044,7 @@ static void gc_collect(fdb_kvdb_t db)
sector_iterator(db, &sector, FDB_SECTOR_STORE_EMPTY, &empty_sec, NULL, gc_check_cb, false); sector_iterator(db, &sector, FDB_SECTOR_STORE_EMPTY, &empty_sec, NULL, gc_check_cb, false);
/* do GC collect */ /* do GC collect */
FDB_DEBUG("The remain empty sector is %u, GC threshold is %d.\n", empty_sec, FDB_GC_EMPTY_SEC_THRESHOLD); FDB_DEBUG("The remain empty sector is %zu, GC threshold is %d.\n", empty_sec, FDB_GC_EMPTY_SEC_THRESHOLD);
if (empty_sec <= FDB_GC_EMPTY_SEC_THRESHOLD) { if (empty_sec <= FDB_GC_EMPTY_SEC_THRESHOLD) {
sector_iterator(db, &sector, FDB_SECTOR_STORE_UNUSED, db, NULL, do_gc, false); sector_iterator(db, &sector, FDB_SECTOR_STORE_UNUSED, db, NULL, do_gc, false);
} }
@ -1340,7 +1339,7 @@ __reload:
} }
_fdb_flash_read((fdb_db_t)db, kv->addr.value + len, (uint32_t *) buf, FDB_WG_ALIGN(size)); _fdb_flash_read((fdb_db_t)db, kv->addr.value + len, (uint32_t *) buf, FDB_WG_ALIGN(size));
if (print_value) { if (print_value) {
FDB_PRINT("%.*s", size, buf); FDB_PRINT("%.*s", (int)size, buf);
} else if (!fdb_is_str(buf, size)) { } else if (!fdb_is_str(buf, size)) {
value_is_str = false; value_is_str = false;
break; break;
@ -1384,7 +1383,7 @@ void fdb_kv_print(fdb_kvdb_t db)
kv_iterator(db, &kv, &using_size, db, print_kv_cb); kv_iterator(db, &kv, &using_size, db, print_kv_cb);
FDB_PRINT("\nmode: next generation\n"); FDB_PRINT("\nmode: next generation\n");
FDB_PRINT("size: %u/%u bytes.\n", using_size + (size_t)((SECTOR_NUM - FDB_GC_EMPTY_SEC_THRESHOLD) * SECTOR_HDR_DATA_SIZE), FDB_PRINT("size: %zu/%zu bytes.\n", using_size + (size_t)((SECTOR_NUM - FDB_GC_EMPTY_SEC_THRESHOLD) * SECTOR_HDR_DATA_SIZE),
(size_t)(db_max_size(db) - db_sec_size(db) * FDB_GC_EMPTY_SEC_THRESHOLD)); (size_t)(db_max_size(db) - db_sec_size(db) * FDB_GC_EMPTY_SEC_THRESHOLD));
/* unlock the KV cache */ /* unlock the KV cache */
@ -1405,7 +1404,7 @@ static void kv_auto_update(fdb_kvdb_t db)
struct fdb_kv kv; struct fdb_kv kv;
size_t i, value_len; size_t i, value_len;
struct kvdb_sec_info sector; struct kvdb_sec_info sector;
FDB_DEBUG("Update the KV from version %u to %u.\n", saved_ver_num, setting_ver_num); FDB_DEBUG("Update the KV from version %zu to %zu.\n", saved_ver_num, setting_ver_num);
for (i = 0; i < db->default_kvs.num; i++) { for (i = 0; i < db->default_kvs.num; i++) {
/* add a new KV when it's not found */ /* add a new KV when it's not found */
if (!find_kv(db, db->default_kvs.kvs[i].key, &kv)) { if (!find_kv(db, db->default_kvs.kvs[i].key, &kv)) {
@ -1614,7 +1613,7 @@ fdb_err_t fdb_kvdb_init(fdb_kvdb_t db, const char *name, const char *part_name,
} }
#endif /* FDB_KV_USING_CACHE */ #endif /* FDB_KV_USING_CACHE */
FDB_DEBUG("KVDB size is %u bytes.\n", db_max_size(db)); FDB_DEBUG("KVDB size is %zu bytes.\n", (size_t)db_max_size(db));
result = _fdb_kv_load(db); result = _fdb_kv_load(db);
@ -1696,3 +1695,4 @@ bool fdb_kv_iterate(fdb_kvdb_t db, fdb_kv_iterator_t itr)
} }
#endif /* defined(FDB_USING_KVDB) */ #endif /* defined(FDB_USING_KVDB) */