Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "uio-irq.h" // https://pastebin.com/w42Ti0Hz
- // blocking, for level-triggered interrupts:
- int fd = open( path, O_RDWR | O_CLOEXEC );
- setup_irq();
- loop {
- uio_irqenable( fd );
- uio_wfi( fd );
- handle_irq();
- }
- // blocking, for edge-triggered interrupts:
- int fd = open( path, O_RDWR | O_CLOEXEC );
- setup_irq();
- loop {
- uio_irqenable( fd );
- handle_irq();
- uio_wfi( fd );
- }
- // non-blocking, for level-triggered interrupts:
- int fd = open( path, O_RDWR | O_CLOEXEC | O_NONBLOCK );
- setup_irq();
- uio_irqenable( fd );
- when fd readable {
- uio_wfi( fd );
- handle_irq();
- uio_irqenable( fd );
- }
- // non-blocking, for edge-triggered interrupts:
- int fd = open( path, O_RDWR | O_CLOEXEC | O_NONBLOCK );
- setup_irq();
- uio_irqenable( fd );
- handle_irq();
- when fd readable {
- uio_wfi( fd );
- uio_irqenable( fd );
- handle_irq();
- }
Add Comment
Please, Sign In to add comment