aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2011-06-10 10:18:28 -0400
committerArtem Bityutskiy <artem.bityutskiy@intel.com>2011-09-11 08:02:10 -0400
commitc7975330154af17aecc167b33ca866b6b3d98918 (patch)
treeb9895816b3f9bd53758410754ad1b1061986a8dd /include
parentf722013ee9fd24623df31dec9a91a6d02c3e2f2f (diff)
mtd: abstract last MTD partition parser argument
Encapsulate last MTD partition parser argument into a separate structure. Currently it holds only 'origin' field for RedBoot parser, but will be extended in future to contain at least device_node for OF devices. Amended commentary to make kerneldoc happy Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Artem Bityutskiy <dedekind1@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mtd/mtd.h3
-rw-r--r--include/linux/mtd/partitions.h15
2 files changed, 15 insertions, 3 deletions
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
index d28a241e7b55..b2b454b45cb5 100644
--- a/include/linux/mtd/mtd.h
+++ b/include/linux/mtd/mtd.h
@@ -323,13 +323,14 @@ static inline uint32_t mtd_mod_by_ws(uint64_t sz, struct mtd_info *mtd)
323 /* Kernel-side ioctl definitions */ 323 /* Kernel-side ioctl definitions */
324 324
325struct mtd_partition; 325struct mtd_partition;
326struct mtd_part_parser_data;
326 327
327extern int mtd_device_register(struct mtd_info *master, 328extern int mtd_device_register(struct mtd_info *master,
328 const struct mtd_partition *parts, 329 const struct mtd_partition *parts,
329 int nr_parts); 330 int nr_parts);
330extern int mtd_device_parse_register(struct mtd_info *mtd, 331extern int mtd_device_parse_register(struct mtd_info *mtd,
331 const char **part_probe_types, 332 const char **part_probe_types,
332 unsigned long origin, 333 struct mtd_part_parser_data *parser_data,
333 const struct mtd_partition *defparts, 334 const struct mtd_partition *defparts,
334 int defnr_parts); 335 int defnr_parts);
335extern int mtd_device_unregister(struct mtd_info *master); 336extern int mtd_device_unregister(struct mtd_info *master);
diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h
index 1431cf2609ed..5fdb963a5035 100644
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -52,6 +52,15 @@ struct mtd_partition {
52 52
53struct mtd_info; 53struct mtd_info;
54 54
55/**
56 * struct mtd_part_parser_data - used to pass data to MTD partition parsers.
57 * @origin: for RedBoot, start address of MTD device
58 */
59struct mtd_part_parser_data {
60 unsigned long origin;
61};
62
63
55/* 64/*
56 * Functions dealing with the various ways of partitioning the space 65 * Functions dealing with the various ways of partitioning the space
57 */ 66 */
@@ -60,13 +69,15 @@ struct mtd_part_parser {
60 struct list_head list; 69 struct list_head list;
61 struct module *owner; 70 struct module *owner;
62 const char *name; 71 const char *name;
63 int (*parse_fn)(struct mtd_info *, struct mtd_partition **, unsigned long); 72 int (*parse_fn)(struct mtd_info *, struct mtd_partition **,
73 struct mtd_part_parser_data *);
64}; 74};
65 75
66extern int register_mtd_parser(struct mtd_part_parser *parser); 76extern int register_mtd_parser(struct mtd_part_parser *parser);
67extern int deregister_mtd_parser(struct mtd_part_parser *parser); 77extern int deregister_mtd_parser(struct mtd_part_parser *parser);
68extern int parse_mtd_partitions(struct mtd_info *master, const char **types, 78extern int parse_mtd_partitions(struct mtd_info *master, const char **types,
69 struct mtd_partition **pparts, unsigned long origin); 79 struct mtd_partition **pparts,
80 struct mtd_part_parser_data *data);
70 81
71#define put_partition_parser(p) do { module_put((p)->owner); } while(0) 82#define put_partition_parser(p) do { module_put((p)->owner); } while(0)
72 83