xref: /openbmc/linux/drivers/mtd/mtdcore.h (revision 046b212a)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * These are exported solely for the purpose of mtd_blkdevs.c and mtdchar.c.
4  * You should not use them for _anything_ else.
5  */
6 
7 extern struct mutex mtd_table_mutex;
8 extern struct backing_dev_info *mtd_bdi;
9 
10 struct mtd_info *__mtd_next_device(int i);
11 int __must_check add_mtd_device(struct mtd_info *mtd);
12 int del_mtd_device(struct mtd_info *mtd);
13 int add_mtd_partitions(struct mtd_info *, const struct mtd_partition *, int);
14 int del_mtd_partitions(struct mtd_info *);
15 void release_mtd_partition(struct mtd_info *mtd);
16 
17 struct mtd_partitions;
18 
19 int parse_mtd_partitions(struct mtd_info *master, const char * const *types,
20 			 struct mtd_part_parser_data *data);
21 
22 void mtd_part_parser_cleanup(struct mtd_partitions *parts);
23 
24 int __init init_mtdchar(void);
25 void __exit cleanup_mtdchar(void);
26 
27 #define mtd_for_each_device(mtd)			\
28 	for ((mtd) = __mtd_next_device(0);		\
29 	     (mtd) != NULL;				\
30 	     (mtd) = __mtd_next_device(mtd->index + 1))
31