void main(struct multiboot *mboot) { int rc; /* init the kmsg buffer and printk */ console_sys_init(); kmsg_init(); console_register(&kmsg_con); /* arch might want to setup stuff */ arch_early_init(); printk("kmsg: buffer setup!\n"); printk("sys: kernel relocation: 0x%x -> 0x%x size 0x%x\n", &kernel_base, &kernel_end, (uintptr_t)&kernel_end - (uintptr_t)&kernel_base); parse_multiboot(mboot); paging_fini(); heap_install(); /* arch should finish init now */ arch_late_init(); printk("sys: init done!\n"); drivers_init(); do_mount(); do_test(); syscall_init(); /* wait forever */ asm volatile("mov $0x1337, %eax"); asm volatile("mov $0x1337, %ebx"); asm volatile("mov $0x1337, %ecx"); asm volatile("mov $0x1337, %edx"); start_sched(); panic("finished with main, but no idle task was started\n"); }
void __init __start_xen_ppc( ulong r3, ulong r4, ulong r5, ulong r6, ulong r7, ulong orig_msr) { /* clear bss */ memset(__bss_start, 0, (ulong)_end - (ulong)__bss_start); if (r5) { /* We came from Open Firmware. */ boot_of_init(r5, orig_msr); oftree = (ulong)boot_of_devtree(); /* Copy the device tree. */ /* Use the device tree to find the Xen console. */ boot_of_serial((void *)oftree); boot_of_finish(); /* End firmware. */ } else { /* XXX handle flat device tree here */ __builtin_trap(); } ofd_bootargs(); if (r3 == MB2_BOOTLOADER_MAGIC) { /* Get dom0 info from multiboot structures. */ parse_multiboot(r4); } if ((dom0_len == 0) && r3 && r4) { /* Maybe dom0's location handed to us in registers. */ dom0_addr = r3; dom0_len = r4; } if (dom0_len == 0) { /* Dom0 had better be built in. */ dom0_addr = (ulong)dom0_start; dom0_len = (ulong)dom0_size; } __start_xen(); }