• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/router/squashfs/

Lines Matching refs:fragment

180 /* fragment block data structures */
184 struct fragment {
222 struct fragment *fragment;
272 int fragment;
328 struct file_info *duplicate(long long file_size, long long bytes, unsigned int **block_list, long long *start, struct fragment **fragment, struct file_buffer *file_buffer, struct buffer_list *buffer_list, int blocks, unsigned short checksum, unsigned short fragment_checksum, int checksum_flag);
330 struct file_info *add_non_dup(long long file_size, long long bytes, unsigned int *block_list, long long start, struct fragment *fragment, unsigned short checksum, unsigned short fragment_checksum, int checksum_flag);
842 int create_inode(squashfs_inode *i_no, struct dir_ent *dir_ent, int type, long long byte_size, long long start_block, unsigned int offset, unsigned int *block_list, struct fragment *fragment, struct directory *dir_in)
866 reg->fragment = fragment->index;
867 reg->offset = fragment->offset;
875 TRACE("File inode, file_size %d, start_block %llx, blocks %d, fragment %d, offset %d, size %d\n", (int) byte_size,
876 start_block, offset, fragment->index, fragment->offset, fragment->size);
889 reg->fragment = fragment->index;
890 reg->offset = fragment->offset;
898 TRACE("Long file inode, file_size %lld, start_block %llx, blocks %d, fragment %d, offset %d, size %d, nlink %d\n", byte_size,
899 start_block, offset, fragment->index, fragment->offset, fragment->size, nlink);
1215 char *get_fragment(char *buffer, struct fragment *fragment, int *cached_fragment)
1220 if(fragment->index == *cached_fragment || fragment->index == SQUASHFS_INVALID_FRAG)
1221 return buffer + fragment->offset;
1223 if(fragment_data && fragment->index == fragments)
1224 return fragment_data->data + fragment->offset;
1227 while(fragment_table[fragment->index].pending)
1230 disk_fragment = &fragment_table[fragment->index];
1257 *cached_fragment = fragment->index;
1258 return buffer + fragment->offset;
1280 BAD_ERROR("Out of memory in fragment table\n");
1302 static struct fragment empty_fragment = {SQUASHFS_INVALID_FRAG, 0, 0};
1303 struct fragment *get_and_fill_fragment(struct file_buffer *file_buffer)
1305 struct fragment *ffrg;
1314 if((ffrg = (struct fragment *) malloc(sizeof(struct fragment))) == NULL)
1315 BAD_ERROR("Out of memory in fragment block allocation!\n");
1383 TRACE("write_fragment_table: fragment %d, start_block %llx, size %d\n", i, fragment_table[i].start_block, fragment_table[i].size);
1470 void add_file(long long start, long long file_size, long long file_bytes, unsigned int *block_listp, int blocks, unsigned int fragment, int offset, int bytes)
1472 struct fragment *frg;
1485 if(fragment != dupl_ptr->fragment->index)
1487 if(fragment != SQUASHFS_INVALID_FRAG && (offset != dupl_ptr->fragment->offset || bytes != dupl_ptr->fragment->size))
1492 if((frg = (struct fragment *) malloc(sizeof(struct fragment))) == NULL)
1493 BAD_ERROR("Out of memory in fragment block allocation!\n");
1495 frg->index = fragment;
1525 dupl_ptr->fragment_checksum = get_checksum_mem(get_fragment(cached_fragment, dupl_ptr->fragment, &cached_frag1), file_size);
1536 struct file_info *add_non_dup(long long file_size, long long bytes, unsigned int *block_list, long long start, struct fragment *fragment, unsigned short checksum, unsigned short fragment_checksum, int checksum_flag)
1548 dupl_ptr->fragment = fragment;
1560 struct file_info *duplicate(long long file_size, long long bytes, unsigned int **block_list, long long *start, struct fragment **fragment, struct file_buffer *file_buffer, struct buffer_list *buffer_list, int blocks, unsigned short checksum, unsigned short fragment_checksum, int checksum_flag)
1566 if(file_size == dupl_ptr->file_size && bytes == dupl_ptr->bytes && frag_bytes == dupl_ptr->fragment->size) {
1580 dupl_ptr->fragment_checksum = get_checksum_mem(get_fragment(cached_fragment, dupl_ptr->fragment, &cached_frag1), frag_bytes);
1601 char *fragment_buffer1 = get_fragment(cached_fragment, dupl_ptr->fragment, &cached_frag1);
1604 TRACE("Found duplicate file, start 0x%llx, size %lld, checksum 0x%x, fragment %d, size %d, offset %d, checksum 0x%x\n", dupl_ptr->start,
1605 dupl_ptr->bytes, dupl_ptr->checksum, dupl_ptr->fragment->index, frag_bytes, dupl_ptr->fragment->offset, fragment_checksum);
1608 *fragment = dupl_ptr->fragment;
1615 return add_non_dup(file_size, bytes, *block_list, *start, *fragment, checksum, fragment_checksum, checksum_flag);
1646 if((file_buffer->fragment = (count == frag_block)))
1762 write_buffer->fragment = FALSE;
1794 TRACE("Writing fragment %d, uncompressed size %d, compressed size %d\n", file_buffer->block, file_buffer->size, compressed_size);
1885 struct fragment *fragment;
1889 dupl_ptr = duplicate(size, 0, &block_listp, &start, &fragment, file_buffer, NULL, 0, 0, checksum, TRUE);
1893 fragment = get_and_fill_fragment(file_buffer);
1894 dupl_ptr->fragment = fragment;
1906 create_inode(inode, dir_ent, SQUASHFS_FILE_TYPE, size, 0, 0, NULL, fragment, NULL) :
1907 create_inode(inode, dir_ent, SQUASHFS_LREG_TYPE, size, 0, 0, NULL, fragment, NULL);
1913 struct fragment *fragment;
1927 fragment = get_and_fill_fragment(file_buffer);
1932 add_non_dup(size, 0, NULL, 0, fragment, 0, checksum, TRUE);
1942 create_inode(inode, dir_ent, SQUASHFS_FILE_TYPE, size, 0, 0, NULL, fragment, NULL) :
1943 create_inode(inode, dir_ent, SQUASHFS_LREG_TYPE, size, 0, 0, NULL, fragment, NULL);
1952 struct fragment *fragment;
1992 fragment = get_and_fill_fragment(read_buffer);
1996 add_non_dup(read_size, file_bytes, block_list, start, fragment, 0, 0, FALSE);
2000 status = create_inode(inode, dir_ent, SQUASHFS_FILE_TYPE, read_size, start, blocks, block_list, fragment, NULL);
2002 status = create_inode(inode, dir_ent, SQUASHFS_LREG_TYPE, read_size, start, blocks, block_list, fragment, NULL);
2028 struct fragment *fragment;
2085 dupl_ptr = duplicate(read_size, file_bytes, &block_listp, &start, &fragment, read_buffer, buffer_list, blocks, 0, 0, FALSE);
2091 fragment = get_and_fill_fragment(read_buffer);
2092 dupl_ptr->fragment = fragment;
2108 status = create_inode(inode, dir_ent, SQUASHFS_FILE_TYPE, read_size, start, blocks, block_listp, fragment, NULL);
2110 status = create_inode(inode, dir_ent, SQUASHFS_LREG_TYPE, read_size, start, blocks, block_listp, fragment, NULL);
2991 ERROR("-noF\t\t\tdo not compress fragment blocks\n");
2993 ERROR("-always-use-fragments\tuse fragment blocks for files larger than block size\n");