[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