}
static void do_swap_read_write(
- int core_base,
- int swap_base,
+ struct process *process,
+ int block,
int blocks,
bool dir
) {
#ifndef INDIRECT_CORE
#ifndef INDIRECT_SWAP
- swap_read_write(core_base, swap_base, blocks, dir);
+ swap_read_write(
+ process->core_item.base + block,
+ process->swap_item.base + block,
+ blocks,
+ dir
+ );
#else /* INDIRECT_SWAP */
- int i;
+ int core_base, swap_base, i;
+ core_base = process->core_item.base + block,
+ swap_base = process->swap_item.base + block,
printf("blocks");
for (i = 0; i < blocks; ++i)
{
printf("\n");
#endif /* INDIRECT_SWAP */
#else /* INDIRECT_CORE */
- int i;
+ int core_base, swap_base, i;
+ core_base = process->core_item.base + block,
+ swap_base = process->swap_item.base + block,
printf("blocks");
for (i = 0; i < blocks; ++i)
{
);
#endif /* INDIRECT_SWAP */
printf("write core [%d,%d) to swap [%d,%d)\n", process->core_item.base + block, process->core_item.base + block + blocks, process->swap_item.base + block, process->swap_item.base + block + blocks);
- do_swap_read_write(
- process->core_item.base + block,
- process->swap_item.base + block,
- blocks,
- true
- );
+ do_swap_read_write(process, block, blocks, true);
#ifdef INDIRECT_CORE
block_pool_free(
&core_block_pool,
);
#endif /* INDIRECT_CORE */
printf("read swap [%d,%d) to core [%d,%d)\n", process->swap_item.base + block, process->swap_item.base + block + blocks, process->core_item.base + block, process->core_item.base + block + blocks);
- do_swap_read_write(
- process->core_item.base + block,
- process->swap_item.base + block,
- blocks,
- false
- );
+ do_swap_read_write(process, block, blocks, false);
#ifdef INDIRECT_SWAP
block_pool_free(
&swap_block_pool,