/* * Copyright: Matias Bjorling * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * */ #ifndef GENNVM_H_ #define GENNVM_H_ #include #include #include struct gen_lun { struct nvm_lun vlun; int reserved_blocks; /* lun block lists */ struct list_head used_list; /* In-use blocks */ struct list_head free_list; /* Not used blocks i.e. released * and ready for use */ struct list_head bb_list; /* Bad blocks. Mutually exclusive with * free_list and used_list */ }; struct gen_nvm { struct nvm_dev *dev; int nr_luns; struct gen_lun *luns; }; #define gennvm_for_each_lun(bm, lun, i) \ for ((i) = 0, lun = &(bm)->luns[0]; \ (i) < (bm)->nr_luns; (i)++, lun = &(bm)->luns[(i)]) #endif /* GENNVM_H_ */