Lines Matching refs:g_kv_mgr
13 static kv_mgr_t g_kv_mgr; variable
57 if (g_kv_mgr.gc_trigger != 0) { in kv_trigger_gc()
61 g_kv_mgr.gc_waiter = 0; in kv_trigger_gc()
62 g_kv_mgr.gc_trigger = 1; in kv_trigger_gc()
102 g_kv_mgr.block_info[blk_idx].state = state; in kv_set_block_state()
146 g_kv_mgr.block_info[blk_idx].state = KV_BLOCK_STATE_CLEAN; in kv_block_format()
147 g_kv_mgr.block_info[blk_idx].space = KV_BLOCK_SIZE - KV_BLOCK_HDR_SIZE; in kv_block_format()
148 g_kv_mgr.clean_blk_nums++; in kv_block_format()
170 blk_idx = (g_kv_mgr.write_pos) >> KV_BLOCK_SIZE_BITS; in kv_calc_position()
171 blk_info = &(g_kv_mgr.block_info[blk_idx]); in kv_calc_position()
175 (g_kv_mgr.clean_blk_nums <= KV_RESERVED_BLOCKS)) { in kv_calc_position()
178 return g_kv_mgr.write_pos; in kv_calc_position()
181 if(g_kv_mgr.clean_blk_nums <= KV_RESERVED_BLOCKS){ in kv_calc_position()
185 blk_idx_tmp = (g_kv_mgr.write_pos) >> KV_BLOCK_SIZE_BITS; in kv_calc_position()
186 blk_info_tmp = &(g_kv_mgr.block_info[blk_idx_tmp]); in kv_calc_position()
189 return g_kv_mgr.write_pos; in kv_calc_position()
199 blk_info = &(g_kv_mgr.block_info[i]); in kv_calc_position()
202 g_kv_mgr.write_pos = blk_start + KV_BLOCK_SIZE - blk_info->space; in kv_calc_position()
208 g_kv_mgr.clean_blk_nums--; in kv_calc_position()
210 return g_kv_mgr.write_pos; in kv_calc_position()
283 if (g_kv_mgr.block_info[i].state == KV_BLOCK_STATE_USED) { in kv_item_del()
389 if (kv_flash_write(g_kv_mgr.write_pos, p, len) != KV_OK) { in __item_gc_cb()
394 g_kv_mgr.write_pos += len; in __item_gc_cb()
395 idx = (g_kv_mgr.write_pos) >> KV_BLOCK_SIZE_BITS; in __item_gc_cb()
396 g_kv_mgr.block_info[idx].space -= len; in __item_gc_cb()
452 if (g_kv_mgr.block_info[i].state != KV_BLOCK_STATE_CLEAN) { in kv_item_search()
511 g_kv_mgr.write_pos = pos + store.len; in kv_item_store()
512 idx = (uint8_t)(g_kv_mgr.write_pos >> KV_BLOCK_SIZE_BITS); in kv_item_store()
513 g_kv_mgr.block_info[idx].space -= store.len; in kv_item_store()
585 g_kv_mgr.block_info[i].state = hdr.state; in kv_init_internal()
588 if (g_kv_mgr.block_info[i].space != (KV_BLOCK_SIZE - KV_BLOCK_HDR_SIZE)) { in kv_init_internal()
592 g_kv_mgr.clean_blk_nums++; in kv_init_internal()
604 if (g_kv_mgr.clean_blk_nums >= KV_RESERVED_BLOCKS) { in kv_init_internal()
617 if (g_kv_mgr.clean_blk_nums == 0) { in kv_init_internal()
623 if (g_kv_mgr.clean_blk_nums == KV_BLOCK_NUMS) { in kv_init_internal()
624 g_kv_mgr.write_pos = KV_BLOCK_HDR_SIZE; in kv_init_internal()
625 i = (uint8_t)(g_kv_mgr.write_pos & KV_BLOCK_OFF_MASK); in kv_init_internal()
631 g_kv_mgr.clean_blk_nums--; in kv_init_internal()
634 if ((g_kv_mgr.block_info[i].state == KV_BLOCK_STATE_USED) || \ in kv_init_internal()
635 (g_kv_mgr.block_info[i].state == KV_BLOCK_STATE_DIRTY)) { in kv_init_internal()
637 if (g_kv_mgr.block_info[next].state == KV_BLOCK_STATE_CLEAN) { in kv_init_internal()
638 g_kv_mgr.write_pos = (i << KV_BLOCK_SIZE_BITS) + \ in kv_init_internal()
640 g_kv_mgr.block_info[i].space; in kv_init_internal()
665 if ((kv_lock(g_kv_mgr.lock)) != KV_OK) { in kv_gc_task()
669 origin_pos = g_kv_mgr.write_pos; in kv_gc_task()
670 if (g_kv_mgr.clean_blk_nums == 0) { in kv_gc_task()
675 if (g_kv_mgr.block_info[gc_idx].state == KV_BLOCK_STATE_CLEAN) { in kv_gc_task()
676 g_kv_mgr.write_pos = (gc_idx << KV_BLOCK_SIZE_BITS) + KV_BLOCK_HDR_SIZE; in kv_gc_task()
691 if (g_kv_mgr.block_info[i].state == KV_BLOCK_STATE_DIRTY) { in kv_gc_task()
701 g_kv_mgr.clean_blk_nums--; in kv_gc_task()
712 g_kv_mgr.write_pos = origin_pos; in kv_gc_task()
716 g_kv_mgr.gc_trigger = 0; in kv_gc_task()
717 kv_unlock(g_kv_mgr.lock); in kv_gc_task()
718 if (g_kv_mgr.gc_waiter > 0) { in kv_gc_task()
719 kv_sem_post_all(g_kv_mgr.gc_sem); in kv_gc_task()
776 if (g_kv_mgr.block_info[blk_idx].state == KV_BLOCK_STATE_USED) { in kv_item_traverse()
796 if (g_kv_mgr.block_info[blk_idx].state == KV_BLOCK_STATE_USED) { in kv_item_traverse()
806 g_kv_mgr.block_info[blk_idx].space = end - pos; in kv_item_traverse()
808 g_kv_mgr.block_info[blk_idx].space = KV_ITEM_HDR_SIZE; in kv_item_traverse()
823 if (g_kv_mgr.inited) { in kv_init()
831 memset(&g_kv_mgr, 0, sizeof(kv_mgr_t)); in kv_init()
833 g_kv_mgr.lock = kv_lock_create(); in kv_init()
834 if (g_kv_mgr.lock == NULL) { in kv_init()
838 g_kv_mgr.gc_sem = kv_sem_create(); in kv_init()
839 if (g_kv_mgr.gc_sem == NULL) { in kv_init()
847 g_kv_mgr.inited = 1; in kv_init()
849 blk_idx = (g_kv_mgr.write_pos >> KV_BLOCK_SIZE_BITS); in kv_init()
850 if (((g_kv_mgr.block_info[blk_idx].space) < KV_ITEM_MAX_LEN) && \ in kv_init()
851 (g_kv_mgr.clean_blk_nums < KV_RESERVED_BLOCKS + 1)) { in kv_init()
864 g_kv_mgr.inited = 0; in kv_deinit()
866 kv_sem_free(g_kv_mgr.gc_sem); in kv_deinit()
868 kv_lock_free(g_kv_mgr.lock); in kv_deinit()
886 if (g_kv_mgr.gc_trigger != 0) { in kv_item_set()
887 g_kv_mgr.gc_waiter++; in kv_item_set()
888 kv_sem_wait(g_kv_mgr.gc_sem); in kv_item_set()
891 if ((res = kv_lock(g_kv_mgr.lock)) != KV_OK) { in kv_item_set()
903 kv_unlock(g_kv_mgr.lock); in kv_item_set()
920 if ((kv_lock(g_kv_mgr.lock)) != KV_OK) { in kv_item_get()
926 kv_unlock(g_kv_mgr.lock); in kv_item_get()
952 if ((res = kv_lock(g_kv_mgr.lock)) != KV_OK) { in kv_item_delete()
958 kv_unlock(g_kv_mgr.lock); in kv_item_delete()
964 kv_unlock(g_kv_mgr.lock); in kv_item_delete()
973 if ((kv_lock(g_kv_mgr.lock)) != KV_OK) { in kv_item_delete_by_prefix()
981 kv_unlock(g_kv_mgr.lock); in kv_item_delete_by_prefix()
1000 if (g_kv_mgr.gc_trigger != 0) { in kv_item_secure_set()
1001 g_kv_mgr.gc_waiter++; in kv_item_secure_set()
1002 kv_sem_wait(g_kv_mgr.gc_sem); in kv_item_secure_set()
1005 if ((res = kv_lock(g_kv_mgr.lock)) != KV_OK) { in kv_item_secure_set()
1033 kv_unlock(g_kv_mgr.lock); in kv_item_secure_set()
1052 if ((res = kv_lock(g_kv_mgr.lock)) != KV_OK) { in kv_item_secure_get()
1058 kv_unlock(g_kv_mgr.lock); in kv_item_secure_get()