blob: 7865471b552e482bafbe702f28a24ab214fc6133 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/* SPDX-License-Identifier: GPL-3.0-or-later */
#pragma once
#include <lib/cache/api.h>
#include <libknot/libknot.h>
#include "kr_cache_gc.h"
int kr_gc_cache_open(const char *cache_path, struct kr_cache *kres_db,
knot_db_t ** libknot_db);
/** A wrapper around kr_cdb_api::check_health that keeps libknot_db up to date.
* \return zero or negative error code. */
int kr_gc_cache_check_health(struct kr_cache *kres_db, knot_db_t ** libknot_db);
void kr_gc_cache_close(struct kr_cache *kres_db, knot_db_t * knot_db);
typedef int (*kr_gc_iter_callback)(const knot_db_val_t * key,
gc_record_info_t * info, void *ctx);
int kr_gc_cache_iter(knot_db_t * knot_db, const kr_cache_gc_cfg_t *cfg,
kr_gc_iter_callback callback, void *ctx);
/** Return RR type corresponding to the key or negative error code.
*
* Error is returned on unexpected values (those also trigger assertion)
* and on other kinds of data in cache (e.g. struct rtt_state).
*/
int kr_gc_key_consistent(knot_db_val_t key);
/** Printf a *binary* string in a human-readable way. */
void debug_printbin(const char *str, unsigned int len);
/** Block run in --verbose mode; optimized when not run. */
#define VERBOSE_STATUS __builtin_expect(KR_LOG_LEVEL_IS(LOG_DEBUG), false)
/* TODO: replace when solving GC logging properly */
|