summaryrefslogtreecommitdiffstats
path: root/common/partitions/dos.c
Commit message (Collapse)AuthorAgeFilesLines
* partitions: dos: Treat all extended partition types equallyAndrey Smirnov2018-01-221-7/+18
| | | | | | | | | | | | | | | | | | | | Creating logical DOS partitions with fdisk (Fedora 27, fdisk from util-linux 2.30.2) results in extended partition of type 0x05 being created on the device. Partitioned like this, device is succesfully recognized by Linux, but, due to algorithm in dos_partition(), not Barebox. Looking closer at the actual contents of MBR shows that while marked as "Extended partition with CHS addressing" that partition still have all of the LBA adressed fields filled correctly. Given the above and the fact that similar code in Linux kernel (block/partitions/msdos.c) does not make a distinction between types 0x0f and 0x05, port Linux's is_extended_partition() and convert the code to treat types 0x05, 0x0f and 0x85 the same way. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* param: make parameter functions more consistentSascha Hauer2017-04-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | This patch creates a consitent set of device parameter functions. With this we have: dev_add_param_<type><access> "type" is one of: int32, uint32, int64, uint64, string, mac, ipv4, enum, bitmask The improvement here is that we now can exactly specify the width of the int type parameters and also correctly distinguish between signed and unsigned variables which means that a variable no longer ends up with INT_MAX when it's assigned -1. "access" can be empty for regular read/write parameter, "_ro" for readonly parameters which get their value from a variable pointer in the background or "_fixed" for parameters which are set to a fixed value (without a pointer in the background). Some more exotic types are not (yet) implemented, like dev_add_param_ip_ro. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* partitions: dos: add partuuid string for logical partitionsUwe Kleine-König2016-05-101-2/+7
| | | | | | | | | | | Commit bc31d85c6e23 ("cdev: Add partuuid string to struct cdev") added partuuid strings for dos partitions but only for the (up to) four primary partitions. Do the same for the logical partitions. Their numbers start at 5 independently of the number of available primary partitions. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* cdev: Add partuuid string to struct cdevSascha Hauer2015-06-181-0/+4
| | | | | | | | This adds the partuuid string to struct cdev in order to have this available for constructing a suitable Linux root=PARTUUID= option for booting Linux. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* partitions: dos: parse extended partitionUwe Kleine-König2013-11-081-1/+75
| | | | | | | | DOS MBRs might contain an extended partition that holds several logical partitions. Add these to the partitions of the block device. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* partitions: dos: don't open code get_unaligned_le32Uwe Kleine-König2013-11-081-1/+1
| | | | | Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* partitions: dos: improve guess of disk sizeUwe Kleine-König2013-11-081-5/+9
| | | | | | | | | | | | The code used to ineffectively take the end of the last partition as guess for the disk size. Better use the end of the partition that has its end rearmost. Also return an unsigned type instead of int as the result is always non-negative. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* cdev: store dos partition type in struct cdevSascha Hauer2013-10-141-2/+5
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* partitions: dos: fix memory leak in nt disk signatureSascha Hauer2013-06-191-0/+2
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* partition: DOS: Add parameter for the NT disk SignatureSascha Hauer2013-06-021-0/+88
| | | | | | | | | | The NT disk Signature is a unique 32-bit value in the MBR allowing to identify a MSDOS partitioned disk. The signature can be used to specify the Linux rootfs. This patch adds support for the NT disk Signature in the form of a device parameter which can both be read and written. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* disk: introduce partition nameJean-Christophe PLAGNIOL-VILLARD2013-02-161-1/+1
| | | | | | | | so we can register partion with name as present in EFI GPT Cc: Rob Herring <rob.herring@calxeda.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* partitons: add frameworkJean-Christophe PLAGNIOL-VILLARD2013-02-161-0/+88
so we can support multiple format use filetpye to detect the parser to use Cc: Rob Herring <rob.herring@calxeda.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>