#else /* INDIRECT_CORE */
core_base = victim->core_item.base + victim_swap_blocks;
#endif /* INDIRECT_CORE */
- size = (long)blocks << BLOCK_SHIFT;
-
- // see if last transfer for victim
victim_core_blocks -= blocks;
- if (victim_core_blocks == 0)
- // yes, correct size for partial last block
- size += ((victim->size - 1L) | -BLOCK_SIZE) + 1L;
+ victim_swap_blocks += blocks;
+ size = (long)blocks << BLOCK_SHIFT;
// transfer data to swap
#ifndef INDIRECT_CORE
printf("\n");
block_pool_free(&core_block_pool, core_table_mem + core_base, blocks);
#endif /* INDIRECT_CORE */
- victim_swap_blocks += blocks;
// see if victim fully swapped out
if (victim_core_blocks) {
loop_entry_full:
// calculate transfer parameters
+ process_core_blocks += blocks;
process_swap_blocks -= blocks;
swap_base = process->swap_item.base + process_swap_blocks;
#ifndef INDIRECT_CORE
#else /* INDIRECT_CORE */
core_base = process->core_item.base + process_swap_blocks;
#endif /* INDIRECT_CORE */
-
size = (long)blocks << BLOCK_SHIFT;
- // see if first transfer for process
- if (process_core_blocks == 0)
- // yes, correct size for partial last block
- size += ((process->size - 1L) | -BLOCK_SIZE) + 1L;
- process_core_blocks += blocks;
-
// transfer data to core
#ifdef INDIRECT_CORE
block_pool_alloc(&core_block_pool, core_table_mem + core_base, blocks);