Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / md / dm-cache-block-types.h
1 /*
2  * Copyright (C) 2012 Red Hat, Inc.
3  *
4  * This file is released under the GPL.
5  */
6
7 #ifndef DM_CACHE_BLOCK_TYPES_H
8 #define DM_CACHE_BLOCK_TYPES_H
9
10 #include "persistent-data/dm-block-manager.h"
11
12 /*----------------------------------------------------------------*/
13
14 /*
15  * It's helpful to get sparse to differentiate between indexes into the
16  * origin device, indexes into the cache device, and indexes into the
17  * discard bitset.
18  */
19
20 typedef dm_block_t __bitwise__ dm_oblock_t;
21 typedef uint32_t __bitwise__ dm_cblock_t;
22 typedef dm_block_t __bitwise__ dm_dblock_t;
23
24 static inline dm_oblock_t to_oblock(dm_block_t b)
25 {
26         return (__force dm_oblock_t) b;
27 }
28
29 static inline dm_block_t from_oblock(dm_oblock_t b)
30 {
31         return (__force dm_block_t) b;
32 }
33
34 static inline dm_cblock_t to_cblock(uint32_t b)
35 {
36         return (__force dm_cblock_t) b;
37 }
38
39 static inline uint32_t from_cblock(dm_cblock_t b)
40 {
41         return (__force uint32_t) b;
42 }
43
44 static inline dm_dblock_t to_dblock(dm_block_t b)
45 {
46         return (__force dm_dblock_t) b;
47 }
48
49 static inline dm_block_t from_dblock(dm_dblock_t b)
50 {
51         return (__force dm_block_t) b;
52 }
53
54 #endif /* DM_CACHE_BLOCK_TYPES_H */