노는 일이 많아 진도가 많이 안나간다고 생각했는데 그래도 생각보다 진도가 나갔네요.
==================================================
void __init __start_xen(unsigned long mbi_p)
{
set_intr_gate(TRAP_page_fault, &early_page_fault);
cmdline_parse(cmdline);
parse_video_info();
set_processor_id(0); /* needed early, for smp_processor_id() */
smp_prepare_boot_cpu();
serial_init_preirq();
init_console();
max_page = init_e820(memmap_type, e820_raw, &e820_raw_nr);
memcpy(&boot_e820, &e820, sizeof(e820));
map_pages_to_xen(
(unsigned long)maddr_to_bootstrap_virt(s),
s >> PAGE_SHIFT, (e-s) >> PAGE_SHIFT, PAGE_HYPERVISOR);
barrier();
move_memory(e, 0, __pa(&_end) - xen_phys_start);
memset(maddr_to_bootstrap_virt(e), 0x55, 1U<<20);
move_memory(initial_images_start,
mod[0].mod_start, mod[mbi->mods_count-1].mod_end);
reserve_in_boot_e820(initial_images_start, initial_images_end);
xenheap_phys_start = init_boot_allocator(__pa(&_end));
reserve_in_boot_e820(xen_phys_start,
xen_phys_start + (opt_xenheap_megabytes<<20));
init_boot_pages(1<<20 /* 0x100000 */, 16<<20 /* 0x1000000 */); /* Initial seed: 15MB */
init_boot_pages(s, e);
memguard_init();
init_frametable();
acpi_boot_table_init();
acpi_numa_init();
numa_initmem_init(0, max_page);
init_xenheap_pages(xenheap_phys_start, xenheap_phys_end);
<<<<<<==================================== [2008.04.20]
end_boot_allocator();
early_cpu_init();
paging_init();
memguard_guard_stack(cpu0_stack);
open_softirq(NEW_TLBFLUSH_CLOCK_PERIOD_SOFTIRQ, new_tlbflush_clock_period);
sort_exception_tables();
find_smp_config();
dmi_scan_machine();
generic_apic_probe();
acpi_boot_init();
init_cpu_to_node();
get_smp_config();
init_apic_mappings();
init_IRQ();
percpu_init_areas();
init_idle_domain();
trap_init();
rcu_init();
timer_init();
early_time_init();
arch_init_memory();
identify_cpu(&boot_cpu_data);
smp_prepare_cpus(max_cpus);
init_xen_time();
initialize_keytable();
serial_init_postirq();
smp_cpus_done(max_cpus);
initialise_gdb(); /* could be moved earlier */
do_initcalls();
extract_acm_policy(mbi, &initrdidx, &_policy_start, &_policy_len);
acm_init(_policy_start, _policy_len);
dom0 = domain_create(0, 0, DOM0_SSIDREF);
scrub_heap_pages();
init_trace_bufs();
console_endboot();
serial_endboot();
domain_unpause_by_systemcontroller(dom0);
reset_stack_and_jump(init_done);
}
==================================================
void __init __start_xen(unsigned long mbi_p)
{
set_intr_gate(TRAP_page_fault, &early_page_fault);
cmdline_parse(cmdline);
parse_video_info();
set_processor_id(0); /* needed early, for smp_processor_id() */
smp_prepare_boot_cpu();
serial_init_preirq();
init_console();
max_page = init_e820(memmap_type, e820_raw, &e820_raw_nr);
memcpy(&boot_e820, &e820, sizeof(e820));
map_pages_to_xen(
(unsigned long)maddr_to_bootstrap_virt(s),
s >> PAGE_SHIFT, (e-s) >> PAGE_SHIFT, PAGE_HYPERVISOR);
barrier();
move_memory(e, 0, __pa(&_end) - xen_phys_start);
memset(maddr_to_bootstrap_virt(e), 0x55, 1U<<20);
move_memory(initial_images_start,
mod[0].mod_start, mod[mbi->mods_count-1].mod_end);
reserve_in_boot_e820(initial_images_start, initial_images_end);
xenheap_phys_start = init_boot_allocator(__pa(&_end));
reserve_in_boot_e820(xen_phys_start,
xen_phys_start + (opt_xenheap_megabytes<<20));
init_boot_pages(1<<20 /* 0x100000 */, 16<<20 /* 0x1000000 */); /* Initial seed: 15MB */
init_boot_pages(s, e);
memguard_init();
init_frametable();
acpi_boot_table_init();
acpi_numa_init();
numa_initmem_init(0, max_page);
init_xenheap_pages(xenheap_phys_start, xenheap_phys_end);
<<<<<<==================================== [2008.04.20]
end_boot_allocator();
early_cpu_init();
paging_init();
memguard_guard_stack(cpu0_stack);
open_softirq(NEW_TLBFLUSH_CLOCK_PERIOD_SOFTIRQ, new_tlbflush_clock_period);
sort_exception_tables();
find_smp_config();
dmi_scan_machine();
generic_apic_probe();
acpi_boot_init();
init_cpu_to_node();
get_smp_config();
init_apic_mappings();
init_IRQ();
percpu_init_areas();
init_idle_domain();
trap_init();
rcu_init();
timer_init();
early_time_init();
arch_init_memory();
identify_cpu(&boot_cpu_data);
smp_prepare_cpus(max_cpus);
init_xen_time();
initialize_keytable();
serial_init_postirq();
smp_cpus_done(max_cpus);
initialise_gdb(); /* could be moved earlier */
do_initcalls();
extract_acm_policy(mbi, &initrdidx, &_policy_start, &_policy_len);
acm_init(_policy_start, _policy_len);
dom0 = domain_create(0, 0, DOM0_SSIDREF);
scrub_heap_pages();
init_trace_bufs();
console_endboot();
serial_endboot();
domain_unpause_by_systemcontroller(dom0);
reset_stack_and_jump(init_done);
}
댓글 0
.