static inline u64
wim_resource_chunks(const struct wim_lookup_table_entry *lte)
{
- return (wim_resource_size(lte) + WIM_CHUNK_SIZE - 1) / WIM_CHUNK_SIZE;
+ return DIV_ROUND_UP(wim_resource_size(lte), WIM_CHUNK_SIZE);
}
static inline u64
/* Calculate how many chunks the resource consists of in its entirety.
* */
- u64 num_chunks = (resource_uncompressed_size + WIM_CHUNK_SIZE - 1) /
- WIM_CHUNK_SIZE;
+ u64 num_chunks = DIV_ROUND_UP(resource_uncompressed_size, WIM_CHUNK_SIZE);
+
/* As mentioned, the first chunk has no entry in the chunk table. */
u64 num_chunk_entries = num_chunks - 1;
struct chunk_table **chunk_tab_ret)
{
u64 size = wim_resource_size(lte);
- u64 num_chunks = (size + WIM_CHUNK_SIZE - 1) / WIM_CHUNK_SIZE;
+ u64 num_chunks = wim_resource_chunks(lte);
size_t alloc_size = sizeof(struct chunk_table) + num_chunks * sizeof(u64);
struct chunk_table *chunk_tab = CALLOC(1, alloc_size);
chunk_tab->file_offset = file_offset;
chunk_tab->num_chunks = num_chunks;
chunk_tab->original_resource_size = size;
- chunk_tab->bytes_per_chunk_entry = (size >= (1ULL << 32)) ? 8 : 4;
+ chunk_tab->bytes_per_chunk_entry = (size > (1ULL << 32)) ? 8 : 4;
chunk_tab->table_disk_size = chunk_tab->bytes_per_chunk_entry *
(num_chunks - 1);
chunk_tab->cur_offset = 0;