Changes between Version 56 and Version 57 of Archi-1-TP11


Ignore:
Timestamp:
Nov 24, 2022, 11:50:19 AM (2 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP11

    v56 v57  
    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
     80irq_handler:
    8081    addiu   $29,    $29,    -8*4        // context for $31 + EPC + SR + syscall_code + 4 args
    8182    mfc0    $27,    $14                 // $27 <- EPC (addr of syscall instruction)