forked from dmdedup/dmdedup3.19
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdm-dedup-kvstore.h
51 lines (44 loc) · 1.32 KB
/
dm-dedup-kvstore.h
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/*
* Copyright (C) 2012-2014 Vasily Tarasov
* Copyright (C) 2012-2014 Geoff Kuenning
* Copyright (C) 2012-2014 Sonam Mandal
* Copyright (C) 2012-2014 Karthikeyani Palanisami
* Copyright (C) 2012-2014 Philip Shilane
* Copyright (C) 2012-2014 Sagar Trehan
* Copyright (C) 2012-2014 Erez Zadok
*
* This file is released under the GPL.
*/
#ifndef KVSTORE_H
#define KVSTORE_H
#include <linux/module.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/device-mapper.h>
#include <linux/dm-io.h>
#include <linux/dm-kcopyd.h>
#include <linux/list.h>
#include <linux/err.h>
#include <asm/current.h>
#include <linux/string.h>
#include <linux/gfp.h>
#include <linux/scatterlist.h>
#include <asm/page.h>
#include <asm/unaligned.h>
#include <crypto/hash.h>
#include <crypto/md5.h>
#include <crypto/algapi.h>
#include "dm-dedup-target.h"
struct kvstore {
uint32_t vsize;
uint32_t ksize;
int (*kvs_delete)(struct kvstore *kvs, void *key, int32_t ksize);
int (*kvs_lookup)(struct kvstore *kvs, void *key, int32_t ksize,
void *value, int32_t *vsize);
int (*kvs_insert)(struct kvstore *kvs, void *key, int32_t ksize,
void *value, int32_t vsize);
int (*kvs_iterate)(struct kvstore *kvs, int (*itr_action)
(void *key, int32_t ksize, void *value,
int32_t vsize, void *data), void *data);
};
#endif /* KVSTORE_H */