I just started to write my own OS in C. Not a problem for now but, just wondering some things about managing my "drivers" and especially my keyboard driver.
I can write somethings on the screen with the keyboard, ok, but my OS does it just because it is made for that. I mean, currently, my kernel just activate interrupts with "sti" and enter in the infinite loop but that's all. the rest is made by my interrupt manager... I want to be able to print something only if i call the function that do it from kernel.c (and not from interupt manager).
Currently, i'm in this position :
Interupt (asm) --> interupt manager --> driver --> kbtranslate --> print (--> = call)
As you can see, my kernel do not enter in the move here, and i want to be able to print somethings only if i ask.
Example of what i want, from kernel.c :
Interupt (asm) --> interupt manager --> driver --> || kernel || --> kbtranslate --> print (--> = call)
like :
- Code: Select all
[...]
while(getcar() != '\n')
{
sprint(getcar());
}
[...]
(sprint is my printf function).
Sorry if i'm not clear, but, my English is pretty bad and even in French, i cant explain this problem clearly.
Thank you by advance.