[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