Ignore:
Timestamp:
2019-06-09T11:31:38Z (5 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c48de91
Parents:
b401b33
Message:

Introduce PIC operations indirection mechanism

Some architectures switch from one interrupt controller implementation
to another during runtime. By providing a cleaner indirection mechanism,
it is possible e.g. for the ia32 IRQ 7 handler to distinguish i8259
spurious interrupts from actual IRQ 7 device interrupts, even when the
i8259 interrupt controller is no longer active.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/include/genarch/drivers/i8259/i8259.h

    rb401b33 r2a103b5  
    3838#include <typedefs.h>
    3939#include <arch/interrupt.h>
     40#include <genarch/pic/pic_ops.h>
    4041#include <stdbool.h>
    4142
     
    6263} __attribute__((packed)) i8259_t;
    6364
     65extern pic_ops_t i8259_pic_ops;
     66
    6467extern void i8259_init(i8259_t *, i8259_t *, unsigned int);
    65 extern void pic_enable_irqs(uint16_t);
    66 extern void pic_disable_irqs(uint16_t);
    67 extern void pic_eoi(unsigned int);
    68 extern bool pic_is_spurious(unsigned int);
    69 extern void pic_handle_spurious(unsigned int);
     68extern void i8259_enable_irqs(uint16_t);
     69extern void i8259_disable_irqs(uint16_t);
     70extern void i8259_eoi(unsigned int);
     71extern bool i8259_is_spurious(unsigned int);
     72extern void i8259_handle_spurious(unsigned int);
    7073
    7174#endif
Note: See TracChangeset for help on using the changeset viewer.