diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2011-06-10 10:18:28 -0400 |
---|---|---|
committer | Artem Bityutskiy <artem.bityutskiy@intel.com> | 2011-09-11 08:02:10 -0400 |
commit | c7975330154af17aecc167b33ca866b6b3d98918 (patch) | |
tree | b9895816b3f9bd53758410754ad1b1061986a8dd /include | |
parent | f722013ee9fd24623df31dec9a91a6d02c3e2f2f (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.h | 3 | ||||
-rw-r--r-- | include/linux/mtd/partitions.h | 15 |
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 | ||
325 | struct mtd_partition; | 325 | struct mtd_partition; |
326 | struct mtd_part_parser_data; | ||
326 | 327 | ||
327 | extern int mtd_device_register(struct mtd_info *master, | 328 | extern 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); |
330 | extern int mtd_device_parse_register(struct mtd_info *mtd, | 331 | extern 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); |
335 | extern int mtd_device_unregister(struct mtd_info *master); | 336 | extern 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 | ||
53 | struct mtd_info; | 53 | struct 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 | */ | ||
59 | struct 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 | ||
66 | extern int register_mtd_parser(struct mtd_part_parser *parser); | 76 | extern int register_mtd_parser(struct mtd_part_parser *parser); |
67 | extern int deregister_mtd_parser(struct mtd_part_parser *parser); | 77 | extern int deregister_mtd_parser(struct mtd_part_parser *parser); |
68 | extern int parse_mtd_partitions(struct mtd_info *master, const char **types, | 78 | extern 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 | ||