Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/amd64/src/amd64.c

    rf902d36 r88dfee7  
    3434
    3535#include <arch.h>
    36 
    3736#include <typedefs.h>
    38 
    39 #include <config.h>
    40 
    41 #include <proc/thread.h>
    42 #include <genarch/multiboot/multiboot.h>
    43 #include <genarch/drivers/legacy/ia32/io.h>
    44 #include <genarch/drivers/ega/ega.h>
    45 #include <arch/drivers/vesa.h>
    46 #include <genarch/drivers/i8042/i8042.h>
    47 #include <genarch/kbrd/kbrd.h>
     37#include <errno.h>
     38#include <memstr.h>
     39#include <interrupt.h>
     40#include <console/console.h>
     41#include <syscall/syscall.h>
     42#include <sysinfo/sysinfo.h>
     43#include <arch/bios/bios.h>
     44#include <arch/boot/boot.h>
     45#include <arch/debugger.h>
    4846#include <arch/drivers/i8254.h>
    4947#include <arch/drivers/i8259.h>
    50 #include <arch/boot/boot.h>
     48#include <arch/syscall.h>
     49#include <genarch/acpi/acpi.h>
     50#include <genarch/drivers/ega/ega.h>
     51#include <genarch/drivers/i8042/i8042.h>
     52#include <genarch/drivers/legacy/ia32/io.h>
     53#include <genarch/fb/bfb.h>
     54#include <genarch/kbrd/kbrd.h>
     55#include <genarch/multiboot/multiboot.h>
     56#include <genarch/multiboot/multiboot2.h>
    5157
    5258#ifdef CONFIG_SMP
    5359#include <arch/smp/apic.h>
    5460#endif
    55 
    56 #include <arch/bios/bios.h>
    57 #include <arch/cpu.h>
    58 #include <print.h>
    59 #include <arch/cpuid.h>
    60 #include <genarch/acpi/acpi.h>
    61 #include <panic.h>
    62 #include <interrupt.h>
    63 #include <arch/syscall.h>
    64 #include <arch/debugger.h>
    65 #include <syscall/syscall.h>
    66 #include <console/console.h>
    67 #include <ddi/irq.h>
    68 #include <sysinfo/sysinfo.h>
    69 #include <memstr.h>
    7061
    7162/** Disable I/O on non-privileged levels
     
    10192/** Perform amd64-specific initialization before main_bsp() is called.
    10293 *
    103  * @param signature Should contain the multiboot signature.
    104  * @param mi        Pointer to the multiboot information structure.
    105  */
    106 void arch_pre_main(uint32_t signature, const multiboot_info_t *mi)
     94 * @param signature Multiboot signature.
     95 * @param info      Multiboot information structure.
     96 *
     97 */
     98void arch_pre_main(uint32_t signature, void *info)
    10799{
    108100        /* Parse multiboot information obtained from the bootloader. */
    109         multiboot_info_parse(signature, mi);
     101        multiboot_info_parse(signature, (multiboot_info_t *) info);
     102        multiboot2_info_parse(signature, (multiboot2_info_t *) info);
    110103       
    111104#ifdef CONFIG_SMP
     
    153146               
    154147#if (defined(CONFIG_FB) || defined(CONFIG_EGA))
    155                 bool vesa = false;
     148                bool bfb = false;
    156149#endif
    157150               
    158151#ifdef CONFIG_FB
    159                 vesa = vesa_init();
     152                bfb = bfb_init();
    160153#endif
    161154               
    162155#ifdef CONFIG_EGA
    163                 if (!vesa) {
     156                if (!bfb) {
    164157                        outdev_t *egadev = ega_init(EGA_BASE, EGA_VIDEORAM);
    165158                        if (egadev)
     
    221214                }
    222215        }
    223        
    224         /*
    225          * This is the necessary evil until the userspace driver is entirely
    226          * self-sufficient.
    227          */
    228         sysinfo_set_item_val("i8042", NULL, true);
    229         sysinfo_set_item_val("i8042.inr_a", NULL, IRQ_KBD);
    230         sysinfo_set_item_val("i8042.inr_b", NULL, IRQ_MOUSE);
    231         sysinfo_set_item_val("i8042.address.physical", NULL,
    232             (uintptr_t) I8042_BASE);
    233         sysinfo_set_item_val("i8042.address.kernel", NULL,
    234             (uintptr_t) I8042_BASE);
    235216#endif
    236217       
    237218        if (irqs_info != NULL)
    238219                sysinfo_set_item_val(irqs_info, NULL, true);
    239        
    240         sysinfo_set_item_val("netif.ne2000.inr", NULL, IRQ_NE2000);
    241220}
    242221
     
    261240 * we need not to go to CPL0 to read it.
    262241 */
    263 sysarg_t sys_tls_set(sysarg_t addr)
     242sysarg_t sys_tls_set(uintptr_t addr)
    264243{
    265244        THREAD->arch.tls = addr;
    266245        write_msr(AMD_MSR_FS, addr);
    267246       
    268         return 0;
     247        return EOK;
    269248}
    270249
Note: See TracChangeset for help on using the changeset viewer.