Subversion Repositories freemyipod

Rev

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

Rev 485 Rev 487
Line 653... Line 653...
653
        else: self.logger.debug("Disabled FAT flushing\n")
653
        else: self.logger.debug("Disabled FAT flushing\n")
654
 
654
 
655
    @command(timeout = 30000)
655
    @command(timeout = 30000)
656
    def file_open(self, filename, mode):
656
    def file_open(self, filename, mode):
657
        """ Opens a file and returns the handle """
657
        """ Opens a file and returns the handle """
658
        self.logger.debug("Opening remote file %s with mode %s\n" % (filename, mode))
658
        self.logger.debug("Opening remote file %s with mode %d\n" % (filename, mode))
659
        result = self.lib.monitorcommand(struct.pack("IIII%dsB" % len(filename), 30, mode, 0, 0, filename, 0), "III", ("fd", None, None))
659
        result = self.lib.monitorcommand(struct.pack("IIII%dsB" % len(filename), 30, mode, 0, 0, filename, 0), "III", ("fd", None, None))
660
        if result.fd > 0x80000000:
660
        if result.fd > 0x80000000:
661
            raise DeviceError("file_open(filename=\"%s\", mode=0x%X) failed with RC=0x%08X, errno=%d" % (filename, mode, result.fd, self.errno()))
661
            raise DeviceError("file_open(filename=\"%s\", mode=0x%X) failed with RC=0x%08X, errno=%d" % (filename, mode, result.fd, self.errno()))
662
        self.logger.debug("Opened file as handle 0x%x\n" % result.fd)
662
        self.logger.debug("Opened file as handle 0x%x\n" % result.fd)
663
        return result.fd
663
        return result.fd