Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ppc32/src/interrupt.c

    rffe276f rd99c1d2  
    4444#include <print.h>
    4545
     46
    4647void start_decrementer(void)
    4748{
    4849        asm volatile (
    49                 "mtdec %[dec]\n"
    50                 :: [dec] "r" (1000)
     50                "mtdec %0\n"
     51                :
     52                : "r" (1000)
    5153        );
    5254}
    5355
    54 /** External interrupts handler
    55  *
    56  */
     56
     57/** Handler of external interrupts */
    5758static void exception_external(int n, istate_t *istate)
    5859{
    59         uint8_t inum;
     60        int inum;
    6061       
    61         while ((inum = pic_get_pending()) != 255) {
     62        while ((inum = pic_get_pending()) != -1) {
    6263                irq_t *irq = irq_dispatch_and_lock(inum);
    6364                if (irq) {
     
    7980                        }
    8081                       
    81                         irq_spinlock_unlock(&irq->lock, false);
     82                        spinlock_unlock(&irq->lock);
    8283                } else {
    8384                        /*
     
    8586                         */
    8687#ifdef CONFIG_DEBUG
    87                         printf("cpu%" PRIs ": spurious interrupt (inum=%" PRIu8 ")\n",
    88                             CPU->id, inum);
     88                        printf("cpu%u: spurious interrupt (inum=%d)\n", CPU->id, inum);
    8989#endif
    9090                }
    9191        }
    9292}
     93
    9394
    9495static void exception_decrementer(int n, istate_t *istate)
     
    9798        clock();
    9899}
     100
    99101
    100102/* Initialize basic tables for exception dispatching */
Note: See TracChangeset for help on using the changeset viewer.