[Kos-dev] double fault fonctionnel !

Christophe Avoinne (Club-Internet) kos-dev@enix.org
Sat, 7 Apr 2001 19:47:58 +0200


----- Original Message -----
From: "Thomas Petazzoni" <thomas.petazzoni@ifrance.com>
To: <kos-dev@enix.org>
Sent: Saturday, April 07, 2001 3:28 PM
Subject: Re: [Kos-dev] double fault fonctionnel !


> voici le nouveau code du handler de #DF :
>
>
>   if (system_tss->esp == 0xDEADBEEF)
>     {
>       *(screen +1) = 6;
>       (*screen)++;
>       __bochs_printk("irq lost.. or not ?\n");
>        system_tss->esp =  double_fault_tss->esp0 - 512;
>        system_tss->eip++; // saute l'instruction "hlt"
>        outb(0x20, 0x20);
>        return cpu_context;
>     }
>
>   else {
>     new_stack_addr = get_physical_page();
>     new_stack_addr += PAGE_SIZE-1;
>     show_all_thread_info();
>   }
>
> et la le timer 0 et les threads continuent de tourner, mais le twiddle
> du double fault ne tourne pas....

Avant de faire "system_tss->eip++", désassemble à cette adresse pour voir si
on a un bien "hlt" (j'ai pas vérifier si cette instruction fait qu'un seul
octet, à vérifier donc !).

Hlide