Lines Matching refs:len
73 virtual int AddToSparseFile(struct sparse_file* s, int64_t len, unsigned int block) = 0;
76 virtual int ReadValue(void* ptr, int len) = 0;
79 virtual int GetCrc32(uint32_t* crc32, int64_t len) = 0;
102 int AddToSparseFile(struct sparse_file* s, int64_t len, unsigned int block) override { in AddToSparseFile() argument
103 return sparse_file_add_fd(s, fd, GetOffset(), len, block); in AddToSparseFile()
106 int ReadValue(void* ptr, int len) override { return read_all(fd, ptr, len); } in ReadValue() argument
108 int GetCrc32(uint32_t* crc32, int64_t len) override { in GetCrc32() argument
111 while (len) { in GetCrc32()
112 chunk = std::min(len, COPY_BUF_SIZE); in GetCrc32()
118 len -= chunk; in GetCrc32()
131 int AccessOkay(int64_t len) { in AccessOkay() argument
132 if (len <= 0) return -EINVAL; in AccessOkay()
135 if (len > buf_end - buf) return -EOVERFLOW; in AccessOkay()
141 SparseFileBufSource(char* buf, uint64_t len) { in SparseFileBufSource() argument
145 this->buf_end = buf + len; in SparseFileBufSource()
167 int AddToSparseFile(struct sparse_file* s, int64_t len, unsigned int block) override { in AddToSparseFile() argument
168 int ret = AccessOkay(len); in AddToSparseFile()
172 return sparse_file_add_data(s, buf, len, block); in AddToSparseFile()
175 int ReadValue(void* ptr, int len) override { in ReadValue() argument
176 int ret = AccessOkay(len); in ReadValue()
180 memcpy(ptr, buf, len); in ReadValue()
181 buf += len; in ReadValue()
182 offset += len; in ReadValue()
186 int GetCrc32(uint32_t* crc32, int64_t len) override { in GetCrc32() argument
187 int ret = AccessOkay(len); in GetCrc32()
191 *crc32 = sparse_crc32(*crc32, buf, len); in GetCrc32()
192 buf += len; in GetCrc32()
193 offset += len; in GetCrc32()
216 int64_t len = (int64_t)blocks * s->block_size; in process_raw_chunk() local
226 ret = source->AddToSparseFile(s, len, block); in process_raw_chunk()
232 ret = source->GetCrc32(crc32, len); in process_raw_chunk()
237 ret = source->Seek(len); in process_raw_chunk()
251 int64_t len = (int64_t)blocks * s->block_size; in process_fill_chunk() local
265 ret = sparse_file_add_fill(s, fill_val, len, block); in process_fill_chunk()
277 while (len) { in process_fill_chunk()
278 chunk = std::min(len, COPY_BUF_SIZE); in process_fill_chunk()
280 len -= chunk; in process_fill_chunk()
295 int64_t len = (int64_t)blocks * s->block_size; in process_skip_chunk() local
298 while (len) { in process_skip_chunk()
299 int chunk = std::min(len, COPY_BUF_SIZE); in process_skip_chunk()
301 len -= chunk; in process_skip_chunk()
514 ret = do_sparse_file_read_normal(s, fd, buf, 0, s->len); in sparse_file_read_normal()
540 } else if (start > s->len) { in sparse_file_read_hole()
550 end = std::min(end, s->len); in sparse_file_read_hole()
564 } while (end < s->len); in sparse_file_read_hole()
598 int64_t len; in sparse_file_import_source() local
633 len = (int64_t)sparse_header.total_blks * sparse_header.blk_sz; in sparse_file_import_source()
634 s = sparse_file_new(sparse_header.blk_sz, len); in sparse_file_import_source()
663 struct sparse_file* sparse_file_import_buf(char* buf, size_t len, bool verbose, bool crc) { in sparse_file_import_buf() argument
664 SparseFileBufSource source(buf, len); in sparse_file_import_buf()
670 int64_t len; in sparse_file_import_auto() local
678 len = lseek64(fd, 0, SEEK_END); in sparse_file_import_auto()
679 if (len < 0) { in sparse_file_import_auto()
685 s = sparse_file_new(4096, len); in sparse_file_import_auto()