diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-09-13 15:08:40 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-10-14 14:04:20 +0200 |
commit | 1369bfd44f2393893036ee50f81e0104f7fb6416 (patch) | |
tree | f5eab85de4e8529904ec012bf4c7668d37d444da /common | |
parent | 51dce5facb4d1a6f182ede9654b25c2e83878aee (diff) | |
download | barebox-1369bfd44f2393893036ee50f81e0104f7fb6416.tar.gz barebox-1369bfd44f2393893036ee50f81e0104f7fb6416.tar.xz |
cdev: store dos partition type in struct cdev
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r-- | common/partitions.c | 4 | ||||
-rw-r--r-- | common/partitions/dos.c | 7 | ||||
-rw-r--r-- | common/partitions/parser.h | 1 |
3 files changed, 9 insertions, 3 deletions
diff --git a/common/partitions.c b/common/partitions.c index 38032a349c..694c6f6dd5 100644 --- a/common/partitions.c +++ b/common/partitions.c @@ -63,6 +63,8 @@ static int register_one_partition(struct block_device *blk, goto out; } + cdev->dos_partition_type = part->dos_partition_type; + free(partition_name); if (!part->name[0]) @@ -84,7 +86,7 @@ static int register_one_partition(struct block_device *blk, ret = 0; out: free(partition_name); - return 0; + return ret; } static struct partition_parser *partition_parser_get_by_filetype(uint8_t *buf) diff --git a/common/partitions/dos.c b/common/partitions/dos.c index 29f13751a1..31b1ed60d1 100644 --- a/common/partitions/dos.c +++ b/common/partitions/dos.c @@ -138,10 +138,13 @@ static void dos_partition(void *buf, struct block_device *blk, for (i = 0; i < 4; i++) { pentry.first_sec = get_unaligned_le32(&table[i].partition_start); pentry.size = get_unaligned_le32(&table[i].partition_size); + pentry.dos_partition_type = table[i].type; if (pentry.first_sec != 0) { - pd->parts[pd->used_entries].first_sec = pentry.first_sec; - pd->parts[pd->used_entries].size = pentry.size; + int n = pd->used_entries; + pd->parts[n].first_sec = pentry.first_sec; + pd->parts[n].size = pentry.size; + pd->parts[n].dos_partition_type = pentry.dos_partition_type; pd->used_entries++; } else { dev_dbg(blk->dev, "Skipping empty partition %d\n", i); diff --git a/common/partitions/parser.h b/common/partitions/parser.h index f5bdbd1442..8d39452378 100644 --- a/common/partitions/parser.h +++ b/common/partitions/parser.h @@ -16,6 +16,7 @@ struct partition { char name[MAX_PARTITION_NAME]; + u8 dos_partition_type; uint64_t first_sec; uint64_t size; }; |