diff options
author | Blue Swirl <blauwirbel@gmail.com> | 2010-08-07 12:49:53 +0000 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2010-08-07 12:49:53 +0000 |
commit | f7717af4197fafb6a9252016b1c1fbfbfbea7908 (patch) | |
tree | 603f87b9ad099b0cf922a60061ec2153384c6d48 /packages | |
parent | 988f780aa5fbee872018036b2b7aa910240ae373 (diff) | |
download | qemu-openbios-f7717af4197fafb6a9252016b1c1fbfbfbea7908.tar.gz |
sun-parts: fix id and flag sizes
Also use __bexx_to_cpu() to access the fields.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@840 f158a5a8-5612-0410-a976-696ce0be7e32
Diffstat (limited to 'packages')
-rw-r--r-- | packages/sun-parts.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/packages/sun-parts.c b/packages/sun-parts.c index db52171e..86f735d6 100644 --- a/packages/sun-parts.c +++ b/packages/sun-parts.c @@ -46,10 +46,8 @@ struct sun_disklabel { uint8_t info[128]; /* Informative text string */ uint8_t spare0[14]; struct sun_info { - uint8_t spare1; - uint8_t id; - uint8_t spare2; - uint8_t flags; + uint16_t id; + uint16_t flags; } infos[8]; uint8_t spare[246]; /* Boot information etc. */ uint16_t rspeed; /* Disk rotational speed */ @@ -172,8 +170,11 @@ sunparts_open( sunparts_info_t *di ) p = (struct sun_disklabel *)buf; for (i = 0; i < 8; i++) { - DPRINTF("%c: %d + %d, id %x, flags %x\n", 'a' + i, p->partitions[i].start_cylinder, - p->partitions[i].num_sectors, p->infos[i].id, p->infos[i].flags); + DPRINTF("%c: %d + %d, id %x, flags %x\n", 'a' + i, + __be32_to_cpu(p->partitions[i].start_cylinder), + __be32_to_cpu(p->partitions[i].num_sectors), + __be16_to_cpu(p->infos[i].id), + __be16_to_cpu(p->infos[i].flags)); if (parnum < 0) { if (p->partitions[i].num_sectors != 0 && p->infos[i].id != 0) parnum = i; @@ -193,7 +194,7 @@ sunparts_open( sunparts_info_t *di ) size = (long long)__be32_to_cpu(p->partitions[parnum].num_sectors) * bs; di->size_hi = size >> BITS; di->size_lo = size & (ucell) -1; - di->type = __be32_to_cpu(p->infos[parnum].id); + di->type = __be16_to_cpu(p->infos[parnum].id); DPRINTF("Found Sun partition, offs %lld size %lld\n", (long long)offs, (long long)size); |