[haiku-commits] r39279 - in haiku/trunk/src/add-ons/kernel: bus_managers/ata generic/scsi_periph

  • From: korli@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 2 Nov 2010 22:13:30 +0100 (CET)

Author: korli
Date: 2010-11-02 22:13:30 +0100 (Tue, 02 Nov 2010)
New Revision: 39279
Changeset: http://dev.haiku-os.org/changeset/39279

Modified:
   haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp
   haiku/trunk/src/add-ons/kernel/generic/scsi_periph/block.cpp
Log:
big_endian conversion: this should be more correct


Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp       
2010-11-02 20:56:20 UTC (rev 39278)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp       
2010-11-02 21:13:30 UTC (rev 39279)
@@ -199,8 +199,7 @@
        data.block_size = B_HOST_TO_BENDIAN_INT32(fBlockSize);
 
        uint64 lastBlock = fTotalSectors - 1;
-       data.lba = (((uint64)B_HOST_TO_BENDIAN_INT32(lastBlock >> 32)) << 32)
-               | B_HOST_TO_BENDIAN_INT32(lastBlock);
+       data.lba = B_HOST_TO_BENDIAN_INT64(lastBlock);
        TRACE("returning last block: %llu\n", data.lba);
 
        copy_sg_data(ccb, 0, ccb->data_length, &data, sizeof(data), false);

Modified: haiku/trunk/src/add-ons/kernel/generic/scsi_periph/block.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/generic/scsi_periph/block.cpp        
2010-11-02 20:56:20 UTC (rev 39278)
+++ haiku/trunk/src/add-ons/kernel/generic/scsi_periph/block.cpp        
2010-11-02 21:13:30 UTC (rev 39279)
@@ -76,9 +76,7 @@
                        ACQUIRE_BEN(&device->mutex);
 
                        if (res == B_OK && request->data_resid == 0) {
-                               capacity = (((uint64)B_BENDIAN_TO_HOST_INT32(
-                                               capacityLongResult.lba >> 32)) 
<< 32)
-                                       | 
B_BENDIAN_TO_HOST_INT32(capacityLongResult.lba);
+                               capacity = 
B_BENDIAN_TO_HOST_INT64(capacityLongResult.lba);
                        } else
                                capacity = 0;
                }


Other related posts:

  • » [haiku-commits] r39279 - in haiku/trunk/src/add-ons/kernel: bus_managers/ata generic/scsi_periph - korli