diff options
author | Peter Nessrup <peter.nessrup@stericsson.com> | 2010-08-17 10:39:02 +0200 |
---|---|---|
committer | Michael BRANDT <michael.brandt@stericsson.com> | 2010-09-16 11:52:23 +0200 |
commit | f1f51a277554486f3f46e9a4c16e9a2c78e730de (patch) | |
tree | 619bb0990ab232a64109984a4f740711094c9d3b /disk/part.c | |
parent | 04678dba604a7b0f459dd50ef717dc86ef4daad4 (diff) |
Added TOC partition support
TOC partition support added under disk
New files: part_toc.c, part_toc.h
CONFIG_TOC_PARTITION needs to be set for it to be activated.
ST-Ericsson ID: ER256835
Change-Id: I301b0650cb73b34f04b80dd5f27babdbf7ba09e1
Signed-off-by: Peter Nessrup <peter.nessrup@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/4369
Reviewed-by: Sebastian RASMUSSEN <sebastian.rasmussen@stericsson.com>
Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com>
Reviewed-by: Ulf HANSSON <ulf.hansson@stericsson.com>
Diffstat (limited to 'disk/part.c')
-rw-r--r-- | disk/part.c | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/disk/part.c b/disk/part.c index 457502bed..39aabdb5d 100644 --- a/disk/part.c +++ b/disk/part.c @@ -227,7 +227,8 @@ void dev_print (block_dev_desc_t *dev_desc) defined(CONFIG_DOS_PARTITION) || \ defined(CONFIG_ISO_PARTITION) || \ defined(CONFIG_AMIGA_PARTITION) || \ - defined(CONFIG_EFI_PARTITION) + defined(CONFIG_EFI_PARTITION) || \ + defined(CONFIG_TOC_PARTITION) int init_part (block_dev_desc_t * dev_desc) { @@ -253,6 +254,14 @@ int init_part (block_dev_desc_t * dev_desc) } #endif +/* must also be placed before DOS partition detection */ +#ifdef CONFIG_TOC_PARTITION + if (test_part_toc(dev_desc) == 0) { + dev_desc->part_type = PART_TYPE_TOC; + return 0; + } +#endif + #ifdef CONFIG_DOS_PARTITION if (test_part_dos(dev_desc) == 0) { dev_desc->part_type = PART_TYPE_DOS; @@ -319,6 +328,15 @@ int get_partition_info (block_dev_desc_t *dev_desc, int part } break; #endif + +#ifdef CONFIG_TOC_PARTITION + case PART_TYPE_TOC: + if (get_partition_info_toc(dev_desc,part,info) == 0) { + PRINTF ("## Valid TOC partition found ##\n"); + return (0); + } + break; +#endif default: break; } @@ -403,15 +421,24 @@ void print_part (block_dev_desc_t * dev_desc) print_part_efi (dev_desc); return; #endif + +#ifdef CONFIG_TOC_PARTITION + case PART_TYPE_TOC: + PRINTF ("## Testing for valid TOC partition ##\n"); + print_part_header ("TOC", dev_desc); + print_part_toc (dev_desc); + return; +#endif } puts ("## Unknown partition table\n"); } -#else /* neither MAC nor DOS nor ISO nor AMIGA nor EFI partition configured */ +#else /* neither MAC nor DOS nor ISO nor AMIGA nor EFI + nor TOC partition configured */ # error neither CONFIG_MAC_PARTITION nor CONFIG_DOS_PARTITION # error nor CONFIG_ISO_PARTITION nor CONFIG_AMIGA_PARTITION -# error nor CONFIG_EFI_PARTITION configured! +# error nor CONFIG_EFI_PARTITION nor CONFIG_TOC_PARTITION configured! #endif #else |