Lines Matching refs:fd
483 def _skip_to(self, fd, offset, pad_byte): argument
490 if fd.tell() > offset:
492 (offset, fd.tell()))
493 fd.write(tools.get_bytes(pad_byte, offset - fd.tell()))
495 def _pad_to(self, fd, offset, pad_byte): argument
502 self._align_to(fd, self._align, pad_byte)
503 upto = fd.tell()
510 fd.write(cbf.get_data_and_offset()[0])
511 self._skip_to(fd, offset, pad_byte)
513 def _align_to(self, fd, align, pad_byte): argument
525 offset = align_int(fd.tell(), align)
527 self._skip_to(fd, offset, pad_byte)
565 def _write_header(self, fd, add_fileheader): argument
573 if fd.tell() > self._header_offset:
575 (self._header_offset, fd.tell()))
577 self._pad_to(fd, self._header_offset, self._erase_byte)
583 fd.write(struct.pack(FILE_HEADER_FORMAT, FILE_MAGIC, len(hdr),
586 fd.write(name)
587 self._header_offset = fd.tell()
588 fd.write(hdr)
589 self._align_to(fd, self._align, self._erase_byte)
591 fd.write(hdr)
601 fd = io.BytesIO()
605 self._write_header(fd, add_fileheader=self._add_fileheader)
606 self._skip_to(fd, self._contents_offset, self._erase_byte)
613 self._pad_to(fd, align_int_down(offset, self._align),
615 pos = fd.tell()
618 fd.write(data)
619 self._align_to(fd, self._align, self._erase_byte)
622 self._write_header(fd, add_fileheader=self._add_fileheader)
625 self._pad_to(fd, self._base_address or self._size - 4, self._erase_byte)
627 fd.write(struct.pack('<I', rel_offset & 0xffffffff))
629 return fd.getvalue()
671 with io.BytesIO(self.data) as fd:
673 if not self._find_and_read_header(fd, len(self.data)):
675 fd.seek(self.cbfs_offset)
679 cfile = self._read_next_file(fd)
685 def _find_and_read_header(self, fd, size): argument
699 orig_pos = fd.tell()
700 fd.seek(size - 4)
701 rel_offset, = struct.unpack('<I', fd.read(4))
703 fd.seek(pos)
704 found = self._read_header(fd)
708 fd.seek(pos)
709 found = self._read_header(fd)
712 fd.seek(orig_pos)
715 def _read_next_file(self, fd): argument
726 file_pos = fd.tell()
727 data = fd.read(FILE_HEADER_LEN)
735 pos = fd.tell()
736 name = self._read_string(fd)
745 attrs = self._read_attr(fd, file_pos, attr, offset)
752 fd.seek(cbfs_offset, io.SEEK_SET)
756 self._read_header(fd)
762 cfile.data = fd.read(cfile.memlen)
765 data = fd.read(size)
772 fd.read(size)
781 pad = (self.align - fd.tell() % self.align) % self.align
782 fd.seek(pad, io.SEEK_CUR)
786 def _read_attr(cls, fd, file_pos, attr, offset): argument
812 fd.seek(file_pos + attr, io.SEEK_SET)
814 pos = fd.tell()
815 hdr = fd.read(8)
820 data = hdr + fd.read(alen - 8)
835 def _read_header(self, fd): argument
848 pos = fd.tell()
849 data = fd.read(HEADER_LEN)
861 def _read_string(cls, fd): argument
876 data = fd.read(ATTRIBUTE_ALIGN)