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 file_mode; /**< is file mode, default is false */
#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 */
#endif
void (*lock)(fdb_db_t db); /**< lock the database operate */
@ -325,3 +329,4 @@ typedef struct fdb_blob *fdb_blob_t;
#endif
#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);
/* 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);
FDB_INFO("query count is: %u\n", count);
FDB_INFO("query count is: %zu\n", count);
}
{ /* SET the TSL status */

View File

@ -13,6 +13,7 @@
#include <flashdb.h>
#include <fdb_low_lvl.h>
#include <string.h>
#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->max_size != 0);
#ifdef FDB_USING_POSIX_MODE
db->cur_file = (void *)-1;
db->cur_file = -1;
#else
db->cur_file = (void *)0;
db->cur_file = 0;
#endif
db->storage.dir = part_name;
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);
}
}

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)
#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)
{
uint32_t sec_addr = RT_ALIGN_DOWN(addr, db->sec_size);
int fd = (int)db->cur_file;
uint32_t sec_addr = FDB_ALIGN_DOWN(addr, db->sec_size);
int fd = db->cur_file;
char path[DB_PATH_MAX];
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) {
/* 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) {
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 */
fd = open(path, O_RDWR, 0);
fd = open(path, O_RDWR, 0777);
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)
@ -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 /* FDB_USING_FILE_MODE */

View File

@ -62,7 +62,6 @@
#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_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';
return value;
} 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);
} else {
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:
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);
already_gc = true;
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);
/* 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) {
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));
if (print_value) {
FDB_PRINT("%.*s", size, buf);
FDB_PRINT("%.*s", (int)size, buf);
} else if (!fdb_is_str(buf, size)) {
value_is_str = false;
break;
@ -1384,7 +1383,7 @@ void fdb_kv_print(fdb_kvdb_t db)
kv_iterator(db, &kv, &using_size, db, print_kv_cb);
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));
/* unlock the KV cache */
@ -1405,7 +1404,7 @@ static void kv_auto_update(fdb_kvdb_t db)
struct fdb_kv kv;
size_t i, value_len;
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++) {
/* add a new KV when it's not found */
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 */
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);
@ -1696,3 +1695,4 @@ bool fdb_kv_iterate(fdb_kvdb_t db, fdb_kv_iterator_t itr)
}
#endif /* defined(FDB_USING_KVDB) */