Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:41

0001 /*
0002  * Copyright 2016 Chris Johns <chrisj@rtems.org>
0003  *
0004  * Header for the FreeBSD ported elcr.c
0005  */
0006 
0007 #ifndef _IRQ_ELCR_H_
0008 #define _IRQ_ELCR_H_
0009 
0010 #include <sys/types.h>
0011 
0012 enum intr_trigger {
0013   INTR_TRIGGER_EDGE,
0014   INTR_TRIGGER_LEVEL
0015 };
0016 
0017 /*
0018  * Check to see if we have what looks like a valid ELCR.  We do this by
0019  * verifying that IRQs 0, 1, 2, and 13 are all edge triggered.
0020  */
0021 int elcr_probe(void);
0022 
0023 /*
0024  * Returns 1 for level trigger, 0 for edge.
0025  */
0026 enum intr_trigger elcr_read_trigger(u_int irq);
0027 
0028 /*
0029  * Set the trigger mode for a specified IRQ.  Mode of 0 means edge triggered,
0030  * and a mode of 1 means level triggered.
0031  */
0032 void elcr_write_trigger(u_int irq, enum intr_trigger trigger);
0033 
0034 void elcr_resume(void);
0035 
0036 
0037 #endif