Changes between Version 58 and Version 59 of Archi-1-TP11


Ignore:
Timestamp:
Dec 16, 2022, 4:28:54 PM (2 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP11

    v58 v59  
    78781. Dans la version précédente du gestionnaire de syscall, nous avions masqué les IRQ en écrivant `0` dans le registre `c0_status`(registre $12 du coprocesseur 0). Cela avait pour conséquence de mettre tout à 0, entre autre le bit `IE`. Il faut modifier ça, parce que sinon, lorsque l'utilisateur demandera à lire le clavier avec l'appel système `fgets()`, l'IRQ venant du timer ne sera jamais prise en compte (`TODO1`), ensuite au retour de la fonction qui réalise l'appel système, il faut masquer les IRQ pour ne pas avoir d'interruption pendant la restauration des registres jusqu'au `eret` qui fait sortir du kernel.
    7979{{{#!c
    80 irq_handler:
     80syscall_handler:
    8181    addiu   $29,    $29,    -8*4        // context for $31 + EPC + SR + syscall_code + 4 args
    8282    mfc0    $27,    $14                 // $27 <- EPC (addr of syscall instruction)