dm: part: Add a cast to avoid a compiler warning
[platform/kernel/u-boot.git] / disk / part_dos.c
index cf1a36e..ea0315c 100644 (file)
@@ -17,6 +17,7 @@
 #include <common.h>
 #include <command.h>
 #include <ide.h>
+#include <memalign.h>
 #include "part_dos.h"
 
 #ifdef HAVE_BLOCK_DEVICE
@@ -25,7 +26,7 @@
 
 /* Convert char[4] in little endian format to the host format integer
  */
-static inline int le32_to_int(unsigned char *le32)
+static inline unsigned int le32_to_int(unsigned char *le32)
 {
     return ((le32[3] << 24) +
            (le32[2] << 16) +
@@ -46,13 +47,14 @@ static inline int is_bootable(dos_partition_t *p)
        return p->boot_ind == 0x80;
 }
 
-static void print_one_part(dos_partition_t *p, int ext_part_sector,
+static void print_one_part(dos_partition_t *p, lbaint_t ext_part_sector,
                           int part_num, unsigned int disksig)
 {
-       int lba_start = ext_part_sector + le32_to_int (p->start4);
-       int lba_size  = le32_to_int (p->size4);
+       lbaint_t lba_start = ext_part_sector + le32_to_int (p->start4);
+       lbaint_t lba_size  = le32_to_int (p->size4);
 
-       printf("%3d\t%-10d\t%-10d\t%08x-%02x\t%02x%s%s\n",
+       printf("%3d\t%-10" LBAFlength "u\t%-10" LBAFlength
+               "u\t%08x-%02x\t%02x%s%s\n",
                part_num, lba_start, lba_size, disksig, part_num, p->sys_ind,
                (is_extended(p->sys_ind) ? " Extd" : ""),
                (is_bootable(p) ? " Boot" : ""));
@@ -85,11 +87,11 @@ static int test_block_type(unsigned char *buffer)
 }
 
 
-int test_part_dos (block_dev_desc_t *dev_desc)
+int test_part_dos(struct blk_desc *dev_desc)
 {
        ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz);
 
-       if (dev_desc->block_read(dev_desc->dev, 0, 1, (ulong *) buffer) != 1)
+       if (dev_desc->block_read(dev_desc, 0, 1, (ulong *)buffer) != 1)
                return -1;
 
        if (test_block_type(buffer) != DOS_MBR)
@@ -100,16 +102,18 @@ int test_part_dos (block_dev_desc_t *dev_desc)
 
 /*  Print a partition that is relative to its Extended partition table
  */
-static void print_partition_extended(block_dev_desc_t *dev_desc,
-                                    int ext_part_sector, int relative,
+static void print_partition_extended(struct blk_desc *dev_desc,
+                                    lbaint_t ext_part_sector,
+                                    lbaint_t relative,
                                     int part_num, unsigned int disksig)
 {
        ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz);
        dos_partition_t *pt;
        int i;
 
-       if (dev_desc->block_read(dev_desc->dev, ext_part_sector, 1, (ulong *) buffer) != 1) {
-               printf ("** Can't read partition table on %d:%d **\n",
+       if (dev_desc->block_read(dev_desc, ext_part_sector, 1,
+                                (ulong *)buffer) != 1) {
+               printf ("** Can't read partition table on %d:" LBAFU " **\n",
                        dev_desc->dev, ext_part_sector);
                return;
        }
@@ -148,7 +152,8 @@ static void print_partition_extended(block_dev_desc_t *dev_desc,
        pt = (dos_partition_t *) (buffer + DOS_PART_TBL_OFFSET);
        for (i = 0; i < 4; i++, pt++) {
                if (is_extended (pt->sys_ind)) {
-                       int lba_start = le32_to_int (pt->start4) + relative;
+                       lbaint_t lba_start
+                               = le32_to_int (pt->start4) + relative;
 
                        print_partition_extended(dev_desc, lba_start,
                                ext_part_sector == 0  ? lba_start : relative,
@@ -162,18 +167,20 @@ static void print_partition_extended(block_dev_desc_t *dev_desc,
 
 /*  Print a partition that is relative to its Extended partition table
  */
-static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part_sector,
-                                int relative, int part_num,
-                                int which_part, disk_partition_t *info,
-                                unsigned int disksig)
+static int get_partition_info_extended(struct blk_desc *dev_desc,
+                                      lbaint_t ext_part_sector,
+                                      lbaint_t relative, int part_num,
+                                      int which_part, disk_partition_t *info,
+                                      unsigned int disksig)
 {
        ALLOC_CACHE_ALIGN_BUFFER(unsigned char, buffer, dev_desc->blksz);
        dos_partition_t *pt;
        int i;
        int dos_type;
 
-       if (dev_desc->block_read (dev_desc->dev, ext_part_sector, 1, (ulong *) buffer) != 1) {
-               printf ("** Can't read partition table on %d:%d **\n",
+       if (dev_desc->block_read(dev_desc, ext_part_sector, 1,
+                                (ulong *)buffer) != 1) {
+               printf ("** Can't read partition table on %d:" LBAFU " **\n",
                        dev_desc->dev, ext_part_sector);
                return -1;
        }
@@ -230,7 +237,7 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part
                                        break;
                        }
                        /* sprintf(info->type, "%d, pt->sys_ind); */
-                       sprintf ((char *)info->type, "U-Boot");
+                       strcpy((char *)info->type, "U-Boot");
                        info->bootable = is_bootable(pt);
 #ifdef CONFIG_PARTITION_UUIDS
                        sprintf(info->uuid, "%08x-%02x", disksig, part_num);
@@ -249,7 +256,8 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part
        pt = (dos_partition_t *) (buffer + DOS_PART_TBL_OFFSET);
        for (i = 0; i < 4; i++, pt++) {
                if (is_extended (pt->sys_ind)) {
-                       int lba_start = le32_to_int (pt->start4) + relative;
+                       lbaint_t lba_start
+                               = le32_to_int (pt->start4) + relative;
 
                        return get_partition_info_extended (dev_desc, lba_start,
                                 ext_part_sector == 0 ? lba_start : relative,
@@ -265,7 +273,7 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part
                info->size = dev_desc->lba;
                info->blksz = DOS_PART_DEFAULT_SECTOR;
                info->bootable = 0;
-               sprintf ((char *)info->type, "U-Boot");
+               strcpy((char *)info->type, "U-Boot");
 #ifdef CONFIG_PARTITION_UUIDS
                info->uuid[0] = 0;
 #endif
@@ -275,13 +283,14 @@ static int get_partition_info_extended (block_dev_desc_t *dev_desc, int ext_part
        return -1;
 }
 
-void print_part_dos (block_dev_desc_t *dev_desc)
+void print_part_dos(struct blk_desc *dev_desc)
 {
        printf("Part\tStart Sector\tNum Sectors\tUUID\t\tType\n");
        print_partition_extended(dev_desc, 0, 0, 1, 0);
 }
 
-int get_partition_info_dos (block_dev_desc_t *dev_desc, int part, disk_partition_t * info)
+int get_partition_info_dos(struct blk_desc *dev_desc, int part,
+                          disk_partition_t *info)
 {
        return get_partition_info_extended(dev_desc, 0, 0, 1, part, info, 0);
 }