Subversion Repositories freemyipod

Rev

Rev 475 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 475 Rev 476
Line 899... Line 899...
899
                raise ArgumentError("Could not open local file for writing.")
899
                raise ArgumentError("Could not open local file for writing.")
900
            self.logger.info("Reading volume %s sectors %X - %X to %s..." % (volume, sector, sector + count - 1, file))
900
            self.logger.info("Reading volume %s sectors %X - %X to %s..." % (volume, sector, sector + count - 1, file))
901
            storageinfo = self.emcore.storage_get_info(volume)
901
            storageinfo = self.emcore.storage_get_info(volume)
902
            while count > 0:
902
            while count > 0:
903
                sectors = min(count, int(buffsize / storageinfo.sectorsize))
903
                sectors = min(count, int(buffsize / storageinfo.sectorsize))
904
                self.emcore.storage_read_sectors_md(volume, sector, sectors, buffsize, buffer)
904
                self.emcore.storage_read_sectors_md(volume, sector, sectors, buffer, buffsize)
905
                f.write(self.emcore.read(buffer, storageinfo.sectorsize * sectors))
905
                f.write(self.emcore.read(buffer, storageinfo.sectorsize * sectors))
906
                sector = sector + sectors
906
                sector = sector + sectors
907
                count = count - sectors
907
                count = count - sectors
908
            f.close()
908
            f.close()
909
        finally:
909
        finally:
Line 939... Line 939...
939
                bytes = storageinfo.sectorsize * sectors
939
                bytes = storageinfo.sectorsize * sectors
940
                data = f.read(bytes)
940
                data = f.read(bytes)
941
                if len(data) == 0: break
941
                if len(data) == 0: break
942
                while len(data) < bytes: data = data + f.read(bytes - len(data))
942
                while len(data) < bytes: data = data + f.read(bytes - len(data))
943
                self.emcore.write(buffer, data)
943
                self.emcore.write(buffer, data)
944
                self.emcore.storage_write_sectors_md(volume, sector, sectors, buffsize, buffer)
944
                self.emcore.storage_write_sectors_md(volume, sector, sectors, buffer, buffsize)
945
                sector = sector + sectors
945
                sector = sector + sectors
946
                count = count - sectors
946
                count = count - sectors
947
            f.close()
947
            f.close()
948
        finally:
948
        finally:
949
            if malloc == True:
949
            if malloc == True: