diff options
author | Andreas Kling <kling@serenityos.org> | 2020-05-16 10:39:06 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-05-16 10:55:54 +0200 |
commit | 03eb0e5638b2b4f6cb1a57a3c9e77db990e07db0 (patch) | |
tree | 2039b51ec55b61e5e9a3789eca0522d146ca2a3e /Kernel/Interrupts | |
parent | 85aafe492d40a106b90238f2a231f540e8d00eba (diff) | |
download | serenity-03eb0e5638b2b4f6cb1a57a3c9e77db990e07db0.zip |
Kernel: Let's say that IO::delay(N) delays for N microseconds
Supposedly that's how much delay you get when doing I/O on port 0x80.
Diffstat (limited to 'Kernel/Interrupts')
-rw-r--r-- | Kernel/Interrupts/APIC.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/Kernel/Interrupts/APIC.cpp b/Kernel/Interrupts/APIC.cpp index 6eaac95583..6400e24bc4 100644 --- a/Kernel/Interrupts/APIC.cpp +++ b/Kernel/Interrupts/APIC.cpp @@ -215,20 +215,16 @@ void enable(u32 cpu) write_register(APIC_REG_TPR, 0); if (cpu != 0) { - static volatile u32 foo = 0; - // INIT write_icr(ICRReg(0, ICRReg::INIT, ICRReg::Physical, ICRReg::Assert, ICRReg::TriggerMode::Edge, ICRReg::AllExcludingSelf)); - for (foo = 0; foo < 0x800000; foo++) - ; // TODO: 10 millisecond delay + IO::delay(10 * 1000); for (int i = 0; i < 2; i++) { // SIPI write_icr(ICRReg(0x08, ICRReg::StartUp, ICRReg::Physical, ICRReg::Assert, ICRReg::TriggerMode::Edge, ICRReg::AllExcludingSelf)); // start execution at P8000 - for (foo = 0; foo < 0x80000; foo++) - ; // TODO: 200 microsecond delay + IO::delay(200); } } } |