Page 1 of 1

IRQs are blocked

Posted: Thu Feb 09, 2017 3:56 am
by cklie97
Hello there,
in my OS there are recently no IRQs working. After a little debugging I found the problem. In short I have a function calling the asm operation

Code: Select all

int $0x40
in the respective sysCall-handler there is a while-loop. Until the end of the loop there are no IRQs thrown. This is a very big problem because the end of the while-loop depends on keyboard inputs. So the sysCall-handler ends up beeing a neverending loop. So my OS is messed up. So I need a way to get IRQs working while in a sysCall-handler.

Re: IRQs are blocked

Posted: Thu Feb 09, 2017 4:07 am
by alexfru
sti?

Re: IRQs are blocked

Posted: Thu Feb 09, 2017 4:09 am
by MollenOS
You need to read up on the IDT table and how to configure your IDT entries. everything you need is right there.

Re: IRQs are blocked

Posted: Thu Feb 09, 2017 5:02 am
by cklie97
MollenOS wrote:You need to read up on the IDT table.
Thans for the hint. The problems is solved. I set the interrupt_gate instead of the trap_gate.

Re: IRQs are blocked

Posted: Thu Feb 09, 2017 9:58 am
by Love4Boobies
You probably don't want to tie your hands with a kernel service that blocks until there is user input because you'd be keeping your resources idle. I would reconsider my design if I were you.