fix: 修复了ps2和tty初始化顺序的错误 (#497)

* 修复了ps2和tty初始化顺序的错误
This commit is contained in:
Chiichen
2024-01-21 01:38:45 +08:00
committed by GitHub
parent 74ffde667e
commit 3e3c6316aa
3 changed files with 35 additions and 28 deletions

View File

@ -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();
}