summaryrefslogtreecommitdiffstats
path: root/src/cache.h
blob: 8c61bc3e968d9e0c102754371885a5eb0e79a47e (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
/* SPDX-License-Identifier: LGPL-2.1-only */

/* Copyright (C) 2020 Gediminas Jakutis */

#ifndef ALGOS_CACHE_H_INCLUDED
#define ALGOS_CACHE_H_INCLUDED

#include <stddef.h>
#include "defs.h"

/* INIT|DESTROY */
int cache_create(struct stream * const in);
int cache_populate(struct stream * const in);
int cache_destroy(struct stream * const in);

/* BLOCKMANIP */
int cache_transfer(struct stream * const src, struct stream * const dest);
int cache_block_copy(struct stream * const restrict src, struct stream * const restrict dest);

/* GET */
struct entry_l *cached_get_array(struct stream * const in, struct entry_l * const store);
struct entry_l *cached_get_list(struct stream * const in, struct entry_l * const store);

/* PUT */
int cached_put_array(struct stream * const in, const struct entry_l * const data);
int cached_put_list(struct stream * const restrict in, const struct entry_l * const node);

#endif /* ALGOS_CACHE_H_INCLUDED */