|
From: Juras B. <yb...@tu...> - 2003-03-01 10:05:47
|
Hello Luca,
Friday, February 28, 2003, 4:13:12 PM, you wrote:
LA> Ok, I hope this clarified things a little bit... If your scheduler is
LA> driven by the timer interrupt, I would simply avoid to invoke it if the
LA> interrupted task is the vm86 task.
Do you mean something like this:
void mytimerhandler()
{
if (vm86task)
{
// jump to vm86 timer handler through real mode interrupt table
// by setting VM86 task's CS:IP pointer, pushing flags etc.
return;
}
// switch to the next task in the scheduler's queue and
// handle timer interrupt for 32-bit OS needs
}
?
I think this will HALT the task-switching mechanism while a VM86-task is not
yet finished and paralyze the system...
But maybe I should handle an interrupt twice, i.e. emulate interrupt for VM86
task (pushing flags, setting CS:IP...) and handle the interrupt as usual for OS
needs?
--
Best regards,
Juras mailto:yb...@tu...
|