diff options
author | Simon Glass <sjg@chromium.org> | 2016-02-29 15:25:47 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2016-03-14 15:34:50 -0600 |
commit | 96e5b03c8ab749b6547f6a3ceb4d4b9f274211aa (patch) | |
tree | e27fa651bc8f72305ff2e90b61cc9914c5b2b502 /disk/part_amiga.c | |
parent | 14142811f4c2d4da28e86ccb2375487f8dff02cb (diff) | |
download | u-boot-96e5b03c8ab749b6547f6a3ceb4d4b9f274211aa.zip u-boot-96e5b03c8ab749b6547f6a3ceb4d4b9f274211aa.tar.gz u-boot-96e5b03c8ab749b6547f6a3ceb4d4b9f274211aa.tar.bz2 |
dm: part: Convert partition API use to linker lists
We can use linker lists instead of explicitly declaring each function.
This makes the code shorter by avoiding switch() statements and lots of
header file declarations.
While this does clean up the code it introduces a few code issues with SPL.
SPL never needs to print partition information since this all happens from
commands. SPL mostly doesn't need to obtain information about a partition
either, except in a few cases. Add these cases so that the code will be
dropped from each partition driver when not needed. This avoids code bloat.
I think this is still a win, since it is not a bad thing to be explicit
about which features are used in SPL. But others may like to weigh in.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'disk/part_amiga.c')
-rw-r--r-- | disk/part_amiga.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/disk/part_amiga.c b/disk/part_amiga.c index 5702c95..0f569f0 100644 --- a/disk/part_amiga.c +++ b/disk/part_amiga.c @@ -207,7 +207,7 @@ struct bootcode_block *get_bootcode(struct blk_desc *dev_desc) * Test if the given partition has an Amiga partition table/Rigid * Disk block */ -int test_part_amiga(struct blk_desc *dev_desc) +static int test_part_amiga(struct blk_desc *dev_desc) { struct rigid_disk_block *rdb; struct bootcode_block *bootcode; @@ -291,8 +291,8 @@ static struct partition_block *find_partition(struct blk_desc *dev_desc, /* * Get info about a partition */ -int get_partition_info_amiga(struct blk_desc *dev_desc, int part, - disk_partition_t *info) +static int get_partition_info_amiga(struct blk_desc *dev_desc, int part, + disk_partition_t *info) { struct partition_block *p = find_partition(dev_desc, part-1); struct amiga_part_geometry *g; @@ -319,7 +319,7 @@ int get_partition_info_amiga(struct blk_desc *dev_desc, int part, return 0; } -void print_part_amiga(struct blk_desc *dev_desc) +static void print_part_amiga(struct blk_desc *dev_desc) { struct rigid_disk_block *rdb; struct bootcode_block *boot; @@ -379,4 +379,12 @@ void print_part_amiga(struct blk_desc *dev_desc) } } +U_BOOT_PART_TYPE(amiga) = { + .name = "AMIGA", + .part_type = PART_TYPE_AMIGA, + .get_info = get_partition_info_amiga, + .print = print_part_amiga, + .test = test_part_amiga, +}; + #endif |