[PATCH v3] partitions: dos: Fix support of extended partition type 0x05
Victorien Vedrine
victorien.vedrine at ophrys.net
Tue Dec 23 05:23:04 PST 2014
photo resizedforemaillogo_zpsa47b7a0d.jpg <http://orpheogroup.com>
*Victorien Vedrine - R&D engineer*
OPHRYS Systèmes
6, rue Valérien Perrin
F-38170 SEYSSINET-PARISET
Tel +33 (0)4 38 12 40 66
Fax +33 (0)4 76 96 22 34
victorien.vedrine at ophrys.net <mailto:victorien.vedrine at ophrys.net>
http://www.orpheogroup.com <http://orpheogroup.com>
Le 22/12/2014 21:05, Uwe Kleine-König a écrit :
> On Mon, Dec 22, 2014 at 06:20:22PM +0100, Victorien Vedrine wrote:
>> From: victorien<victorien.vedrine at ophrys.net>
>>
>> Signed-off-by: Victorien Vedrine<victorien.vedrine at ophrys.net>
>> ---
>> common/partitions/dos.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/common/partitions/dos.c b/common/partitions/dos.c
>> index 37addfd..f02c822 100644
>> --- a/common/partitions/dos.c
>> +++ b/common/partitions/dos.c
>> @@ -205,11 +205,11 @@ static void dos_partition(void *buf, struct block_device *blk,
>> pd->used_entries++;
>> /*
>> * Partitions of type 0x05 and 0x0f (and some more)
>> - * contain extended partitions. Only check for type 0x0f
>> - * here as this is the easiest to parse and common
>> - * enough.
>> + * contain extended partitions. Only check for type
>> + * 0x05 and 0x0f.
> the now removed comment implies that partitions of type 0x05 and 0x0f
> are to be handled differently. With your change however they are handled
> identically. Is this correct? Might be worth to explain in the commit
> log.
I made some research and the difference is that 0x0f partition is LBA
and can start after the cylinder 1023.
I check on linux source code (3.14), and they consider that the 2 kinds
of partition is identical :
On /include/linux/genhd.h file :
enum {
/* These three have identical behaviour; use the second one if DOS
FDISK gets
confused about extended/logical partitions starting past
cylinder 1023. */
DOS_EXTENDED_PARTITION = 5,
LINUX_EXTENDED_PARTITION = 0x85,
WIN98_EXTENDED_PARTITION = 0x0f,
SUN_WHOLE_DISK = DOS_EXTENDED_PARTITION,
LINUX_SWAP_PARTITION = 0x82,
LINUX_DATA_PARTITION = 0x83,
LINUX_LVM_PARTITION = 0x8e,
LINUX_RAID_PARTITION = 0xfd, /* autodetect RAID partition */
SOLARIS_X86_PARTITION = LINUX_SWAP_PARTITION,
NEW_SOLARIS_X86_PARTITION = 0xbf,
DM6_AUX1PARTITION = 0x51, /* no DDO: use xlated geom */
DM6_AUX3PARTITION = 0x53, /* no DDO: use xlated geom */
DM6_PARTITION = 0x54, /* has DDO: use xlated geom &
offset */
EZD_PARTITION = 0x55, /* EZ-DRIVE */
FREEBSD_PARTITION = 0xa5, /* FreeBSD Partition ID */
OPENBSD_PARTITION = 0xa6, /* OpenBSD Partition ID */
NETBSD_PARTITION = 0xa9, /* NetBSD Partition ID */
BSDI_PARTITION = 0xb7, /* BSDI Partition ID */
MINIX_PARTITION = 0x81, /* Minix Partition ID */
UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */
};
I did some test with different SD Card size and table of partition and I
don't see problem.
Now I'm in holidays but when I'm back I'll continue to check this point
to determine if more modifications are necessary.
>> */
>> - if (pentry.dos_partition_type == 0x0f) {
>> + if (pentry.dos_partition_type == 0x0f ||
>> + pentry.dos_partition_type == 0x05) {
> There are two schools for indention in this case. Either use two tabs
> more than the line above, or align the continuation at the opening
> brace.
>
> Are you using vim? Then add "filetype indent on" to your .vimrc and
> depending on the way you want to handle the above case also add
>
> set cinoptions=(,:
>
> for aligning with the opening brace, or
>
> set cinoptions=:
>
> for the two tab preference.
Sorry, It's the first time I'm contribute to a project and I don't take
enough car about that. I'll modify that.
Thanks for your help
Best regards
Victorien
> Best regards
> Uwe
More information about the barebox
mailing list