arm: dts: rk3288-android: use secure efuse
[firefly-linux-kernel-4.4.55.git] / drivers / lightnvm / gennvm.h
1 /*
2  * Copyright: Matias Bjorling <mb@bjorling.me>
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License version
6  * 2 as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  * General Public License for more details.
12  *
13  */
14
15 #ifndef GENNVM_H_
16 #define GENNVM_H_
17
18 #include <linux/module.h>
19 #include <linux/vmalloc.h>
20
21 #include <linux/lightnvm.h>
22
23 struct gen_lun {
24         struct nvm_lun vlun;
25
26         int reserved_blocks;
27         /* lun block lists */
28         struct list_head used_list;     /* In-use blocks */
29         struct list_head free_list;     /* Not used blocks i.e. released
30                                          * and ready for use
31                                          */
32         struct list_head bb_list;       /* Bad blocks. Mutually exclusive with
33                                          * free_list and used_list
34                                          */
35 };
36
37 struct gen_nvm {
38         struct nvm_dev *dev;
39
40         int nr_luns;
41         struct gen_lun *luns;
42 };
43
44 #define gennvm_for_each_lun(bm, lun, i) \
45                 for ((i) = 0, lun = &(bm)->luns[0]; \
46                         (i) < (bm)->nr_luns; (i)++, lun = &(bm)->luns[(i)])
47
48 #endif /* GENNVM_H_ */