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/linux | |
| 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/linux')
| -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 | ||
