RTEMS  5.1
elcr.h
1 /*
2  * Copyright 2016 Chris Johns <chrisj@rtems.org>
3  *
4  * Header for the FreeBSD ported elcr.c
5  */
6 
7 #ifndef _IRQ_ELCR_H_
8 #define _IRQ_ELCR_H_
9 
10 #include <sys/types.h>
11 
12 enum intr_trigger {
13  INTR_TRIGGER_EDGE,
14  INTR_TRIGGER_LEVEL
15 };
16 
17 /*
18  * Check to see if we have what looks like a valid ELCR. We do this by
19  * verifying that IRQs 0, 1, 2, and 13 are all edge triggered.
20  */
21 int elcr_probe(void);
22 
23 /*
24  * Returns 1 for level trigger, 0 for edge.
25  */
26 enum intr_trigger elcr_read_trigger(u_int irq);
27 
28 /*
29  * Set the trigger mode for a specified IRQ. Mode of 0 means edge triggered,
30  * and a mode of 1 means level triggered.
31  */
32 void elcr_write_trigger(u_int irq, enum intr_trigger trigger);
33 
34 void elcr_resume(void);
35 
36 
37 #endif