mpc83xx: cosmetic: MERGERBOX.h checkpatch compliance
[oweals/u-boot.git] / fs / ext2 / dev.c
index 117a44984e7f4b255fb9fe6defa57d21a8b23274..874e21161e69cca9e6f39e7e57b29b0a21f33dd6 100644 (file)
 
 
 #include <common.h>
-#if (CONFIG_COMMANDS & CFG_CMD_EXT2)
-
 #include <config.h>
 #include <ext2fs.h>
 
 static block_dev_desc_t *ext2fs_block_dev_desc;
 static disk_partition_t part_info;
 
-#undef DEBUG
-int ext2fs_set_blk_dev
-    (
-    block_dev_desc_t *rbdd, 
-    int               part
-    )
-    {
-    ext2fs_block_dev_desc = rbdd;
-
-    if (part == 0) 
-        {
-       /* disk doesn't use partition table */
-       part_info.start = 0;
-       part_info.size = rbdd->lba;
-       part_info.blksz = rbdd->blksz;
-       } 
-    else 
-        {
-       if (get_partition_info (ext2fs_block_dev_desc, part, &part_info)) 
-           {
-           return 0;
-           }
+int ext2fs_set_blk_dev(block_dev_desc_t *rbdd, int part)
+{
+       ext2fs_block_dev_desc = rbdd;
+
+       if (part == 0) {
+               /* disk doesn't use partition table */
+               part_info.start = 0;
+               part_info.size = rbdd->lba;
+               part_info.blksz = rbdd->blksz;
+       } else {
+               if (get_partition_info
+                   (ext2fs_block_dev_desc, part, &part_info)) {
+                       return 0;
+               }
        }
-    return (part_info.size);
-    }
-
-
-int ext2fs_devread 
-    (
-    int   sector, 
-    int   byte_offset, 
-    int   byte_len, 
-    char *buf
-    )
-    {
-    char sec_buf[SECTOR_SIZE];
-    unsigned block_len;
-/*
- *  Check partition boundaries
- */
-    if ((sector < 0) || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS)) >= part_info.size)) 
-        {
-/*      errnum = ERR_OUTSIDE_PART; */
-       printf (" ** ext2fs_devread() read outside partition sector %d\n", sector);
-       return(0);
+       return part_info.size;
+}
+
+
+int ext2fs_devread(int sector, int byte_offset, int byte_len, char *buf)
+{
+       ALLOC_CACHE_ALIGN_BUFFER(char, sec_buf, SECTOR_SIZE);
+       unsigned sectors;
+
+       /*
+        *  Check partition boundaries
+        */
+       if ((sector < 0) ||
+           ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS)) >=
+               part_info.size)) {
+               /* errnum = ERR_OUTSIDE_PART; */
+               printf(" ** %s read outside partition sector %d\n",
+                      __func__,
+                      sector);
+               return 0;
        }
 
-/*
- *  Get the read to the beginning of a partition.
- */
-    sector += byte_offset >> SECTOR_BITS;
-    byte_offset &= SECTOR_SIZE - 1;
+       /*
       *  Get the read to the beginning of a partition.
       */
+       sector += byte_offset >> SECTOR_BITS;
+       byte_offset &= SECTOR_SIZE - 1;
 
-#if defined(DEBUG)
-    printf (" <%d, %d, %d>\n", sector, byte_offset, byte_len);
-#endif
+       debug(" <%d, %d, %d>\n", sector, byte_offset, byte_len);
 
-    if (ext2fs_block_dev_desc == NULL)
-        {
-        printf("** Invalid Block Device Descriptor (NULL)\n");
-       return(0);
+       if (ext2fs_block_dev_desc == NULL) {
+               printf(" ** %s Invalid Block Device Descriptor (NULL)\n",
+                      __func__);
+               return 0;
        }
 
-    if (byte_offset != 0) 
-        {
-/*      read first part which isn't aligned with start of sector */
-       if (ext2fs_block_dev_desc->block_read(ext2fs_block_dev_desc->dev, part_info.start+sector, 1, (unsigned long *)sec_buf) != 1) 
-           {
-           printf (" ** ext2fs_devread() read error **\n");
-           return(0);
-           }
-       memcpy(buf, sec_buf+byte_offset, min(SECTOR_SIZE-byte_offset, byte_len));
-       buf+=min(SECTOR_SIZE-byte_offset, byte_len);
-       byte_len-=min(SECTOR_SIZE-byte_offset, byte_len);
-       sector++;
+       if (byte_offset != 0) {
+               /* read first part which isn't aligned with start of sector */
+               if (ext2fs_block_dev_desc->
+                   block_read(ext2fs_block_dev_desc->dev,
+                              part_info.start + sector, 1,
+                              (unsigned long *) sec_buf) != 1) {
+                       printf(" ** %s read error **\n", __func__);
+                       return 0;
+               }
+               memcpy(buf, sec_buf + byte_offset,
+                      min(SECTOR_SIZE - byte_offset, byte_len));
+               buf += min(SECTOR_SIZE - byte_offset, byte_len);
+               byte_len -= min(SECTOR_SIZE - byte_offset, byte_len);
+               sector++;
        }
 
-/*  read sector aligned part */
-    block_len = byte_len & ~(SECTOR_SIZE-1);
-    if (ext2fs_block_dev_desc->block_read(ext2fs_block_dev_desc->dev, 
-                                         part_info.start+sector, 
-                                         block_len/SECTOR_SIZE, 
-                                         (unsigned long *)buf) != block_len/SECTOR_SIZE) 
-        {
-       printf (" ** ext2fs_devread() read error - block\n");
-       return(0);
+       /*  read sector aligned part */
+       sectors = byte_len / SECTOR_SIZE;
+
+       if (sectors > 0) {
+               if (ext2fs_block_dev_desc->block_read(
+                       ext2fs_block_dev_desc->dev,
+                       part_info.start + sector,
+                       sectors,
+                       (unsigned long *) buf) != sectors) {
+                       printf(" ** %s read error - block\n", __func__);
+                       return 0;
+               }
+
+               buf += sectors * SECTOR_SIZE;
+               byte_len -= sectors * SECTOR_SIZE;
+               sector += sectors;
        }
-    buf+=block_len;
-    byte_len-=block_len;
-    sector+= block_len/SECTOR_SIZE;
-
-    if (byte_len != 0) 
-        {
-/*      read rest of data which are not in whole sector */
-       if (ext2fs_block_dev_desc->block_read(ext2fs_block_dev_desc->dev,
-                                             part_info.start+sector, 
-                                             1, 
-                                             (unsigned long *)sec_buf) != 1) 
-           {
-           printf (" ** ext2fs_devread() read error - last part\n");
-           return(0);
-           }
-       memcpy(buf, sec_buf, byte_len);
+
+       if (byte_len != 0) {
+               /* read rest of data which are not in whole sector */
+               if (ext2fs_block_dev_desc->
+                   block_read(ext2fs_block_dev_desc->dev,
+                              part_info.start + sector, 1,
+                              (unsigned long *) sec_buf) != 1) {
+                       printf(" ** %s read error - last part\n", __func__);
+                       return 0;
+               }
+               memcpy(buf, sec_buf, byte_len);
        }
-    return(1);
-    }
-#endif /* CFG_CMD_EXT2FS */
+       return 1;
+}