//! disk sector task slot initialization void alto2_cpu_device::init_ksec(int task) { set_bs(task, bs_ksec_read_kstat, &alto2_cpu_device::bs_early_read_kstat, nullptr); set_bs(task, bs_ksec_read_kdata, &alto2_cpu_device::bs_early_read_kdata, nullptr); set_f1(task, f1_block, &alto2_cpu_device::f1_early_ksec_block, nullptr); set_f1(task, f1_task_10, nullptr, nullptr); set_f1(task, f1_ksec_strobe, nullptr, &alto2_cpu_device::f1_late_strobe); set_f1(task, f1_ksec_load_kstat, nullptr, &alto2_cpu_device::f1_late_load_kstat); set_f1(task, f1_ksec_increcno, nullptr, &alto2_cpu_device::f1_late_increcno); set_f1(task, f1_ksec_clrstat, nullptr, &alto2_cpu_device::f1_late_clrstat); set_f1(task, f1_ksec_load_kcom, nullptr, &alto2_cpu_device::f1_late_load_kcom); set_f1(task, f1_ksec_load_kadr, nullptr, &alto2_cpu_device::f1_late_load_kadr); set_f1(task, f1_ksec_load_kdata, nullptr, &alto2_cpu_device::f1_late_load_kdata); set_f2(task, f2_ksec_init, nullptr, &alto2_cpu_device::f2_late_init); set_f2(task, f2_ksec_rwc, nullptr, &alto2_cpu_device::f2_late_rwc); set_f2(task, f2_ksec_recno, nullptr, &alto2_cpu_device::f2_late_recno); set_f2(task, f2_ksec_xfrdat, nullptr, &alto2_cpu_device::f2_late_xfrdat); set_f2(task, f2_ksec_swrnrdy, nullptr, &alto2_cpu_device::f2_late_swrnrdy); set_f2(task, f2_ksec_nfer, nullptr, &alto2_cpu_device::f2_late_nfer); set_f2(task, f2_ksec_strobon, nullptr, &alto2_cpu_device::f2_late_strobon); set_f2(task, f2_task_17, nullptr, nullptr); m_task_wakeup |= 1 << task; }
CardTableRS::CardTableRS(MemRegion whole_heap, int max_covered_regions) : GenRemSet(), _cur_youngergen_card_val(youngergenP1_card), _regions_to_iterate(max_covered_regions - 1) { #ifndef SERIALGC if (UseG1GC) { _ct_bs = new G1SATBCardTableLoggingModRefBS(whole_heap, max_covered_regions); } else { _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); } #else _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); #endif set_bs(_ct_bs); _last_cur_val_in_gen = new jbyte[GenCollectedHeap::max_gens + 1]; if (_last_cur_val_in_gen == NULL) { vm_exit_during_initialization("Could not last_cur_val_in_gen array."); } for (int i = 0; i < GenCollectedHeap::max_gens + 1; i++) { _last_cur_val_in_gen[i] = clean_card_val(); } _ct_bs->set_CTRS(this); }
CardTableRS::CardTableRS(MemRegion whole_heap, int max_covered_regions) : GenRemSet(), _cur_youngergen_card_val(youngergenP1_card), _regions_to_iterate(max_covered_regions - 1) { #if INCLUDE_ALL_GCS if (UseG1GC) { _ct_bs = new G1SATBCardTableLoggingModRefBS(whole_heap, max_covered_regions); } else { _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); } #else _ct_bs = new CardTableModRefBSForCTRS(whole_heap, max_covered_regions); #endif set_bs(_ct_bs); _last_cur_val_in_gen = NEW_C_HEAP_ARRAY3(jbyte, GenCollectedHeap::max_gens + 1, mtGC, 0, AllocFailStrategy::RETURN_NULL); if (_last_cur_val_in_gen == NULL) { vm_exit_during_initialization("Could not create last_cur_val_in_gen array."); } for (int i = 0; i < GenCollectedHeap::max_gens + 1; i++) { _last_cur_val_in_gen[i] = clean_card_val(); } _ct_bs->set_CTRS(this); }
CardTableRS::CardTableRS(MemRegion whole_heap) : _bs(NULL), _cur_youngergen_card_val(youngergenP1_card) { _ct_bs = new CardTableModRefBSForCTRS(whole_heap); _ct_bs->initialize(); set_bs(_ct_bs); // max_gens is really GenCollectedHeap::heap()->gen_policy()->number_of_generations() // (which is always 2, young & old), but GenCollectedHeap has not been initialized yet. uint max_gens = 2; _last_cur_val_in_gen = NEW_C_HEAP_ARRAY3(jbyte, max_gens + 1, mtGC, CURRENT_PC, AllocFailStrategy::RETURN_NULL); if (_last_cur_val_in_gen == NULL) { vm_exit_during_initialization("Could not create last_cur_val_in_gen array."); } for (uint i = 0; i < max_gens + 1; i++) { _last_cur_val_in_gen[i] = clean_card_val(); } _ct_bs->set_CTRS(this); }