mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-23 12:13:22 +00:00
@ -23,14 +23,12 @@
|
||||
|
||||
#include "driver/acpi/acpi.h"
|
||||
#include "driver/disk/ata.h"
|
||||
#include "driver/keyboard/ps2_keyboard.h"
|
||||
#include "driver/mouse/ps2_mouse.h"
|
||||
#include "driver/multiboot2/multiboot2.h"
|
||||
#include <time/timer.h>
|
||||
|
||||
#include <arch/x86_64/driver/apic/apic_timer.h>
|
||||
#include <virt/kvm/kvm.h>
|
||||
#include <debug/bug.h>
|
||||
#include <virt/kvm/kvm.h>
|
||||
|
||||
extern int rs_driver_init();
|
||||
extern void rs_softirq_init();
|
||||
@ -56,8 +54,7 @@ ul bsp_idt_size, bsp_gdt_size;
|
||||
struct gdtr gdtp;
|
||||
struct idtr idtp;
|
||||
ul _stack_start;
|
||||
void reload_gdt()
|
||||
{
|
||||
void reload_gdt() {
|
||||
|
||||
gdtp.size = bsp_gdt_size - 1;
|
||||
gdtp.gdt_vaddr = (ul)phys_2_virt((ul)&GDT_Table);
|
||||
@ -65,8 +62,7 @@ void reload_gdt()
|
||||
asm volatile("lgdt (%0) \n\t" ::"r"(&gdtp) : "memory");
|
||||
}
|
||||
|
||||
void reload_idt()
|
||||
{
|
||||
void reload_idt() {
|
||||
|
||||
idtp.size = bsp_idt_size - 1;
|
||||
idtp.idt_vaddr = (ul)phys_2_virt((ul)&IDT_Table);
|
||||
@ -77,8 +73,7 @@ void reload_idt()
|
||||
}
|
||||
|
||||
// 初始化系统各模块
|
||||
void system_initialize()
|
||||
{
|
||||
void system_initialize() {
|
||||
rs_init_before_mem_init();
|
||||
|
||||
_stack_start =
|
||||
@ -147,7 +142,6 @@ void system_initialize()
|
||||
|
||||
cpu_init();
|
||||
|
||||
ps2_keyboard_init();
|
||||
io_mfence();
|
||||
|
||||
rs_pci_init();
|
||||
@ -179,8 +173,7 @@ void system_initialize()
|
||||
}
|
||||
|
||||
// 操作系统内核从这里开始执行
|
||||
void Start_Kernel(void)
|
||||
{
|
||||
void Start_Kernel(void) {
|
||||
|
||||
// 获取multiboot2的信息
|
||||
uint64_t mb2_info, mb2_magic;
|
||||
@ -201,16 +194,12 @@ void Start_Kernel(void)
|
||||
io_mfence();
|
||||
|
||||
// idle
|
||||
while (1)
|
||||
{
|
||||
while (1) {
|
||||
// 如果调用的时候,启用了中断,则hlt。否则认为是bug
|
||||
if (get_rflags() & 0x200)
|
||||
{
|
||||
if (get_rflags() & 0x200) {
|
||||
// kdebug("hlt");
|
||||
hlt();
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
BUG_ON(1);
|
||||
pause();
|
||||
}
|
||||
|
Reference in New Issue
Block a user