summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/intr_machdep.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2004-05-04 21:02:56 +0000
committerjhb <jhb@FreeBSD.org>2004-05-04 21:02:56 +0000
commit415131cd6db5461be3f495e59f9e00d283adb995 (patch)
tree525d4d97f918c6c9d8fa13659c24f043dd7d4a6d /sys/i386/include/intr_machdep.h
parente077495344dba7e35611886ce89b689353105df3 (diff)
downloadFreeBSD-src-415131cd6db5461be3f495e59f9e00d283adb995.zip
FreeBSD-src-415131cd6db5461be3f495e59f9e00d283adb995.tar.gz
- Add a new pic method pic_config_intr() to set the trigger mode and
polarity for a specified IRQ. The intr_config_intr() function wraps this pic method hiding the IRQ to interrupt source lookup. - Add a config_intr() method to the atpic(4) driver that reconfigures the interrupt using the ELCR if possible and returns an error otherwise. - Add a config_intr() method to the apic(4) driver that just logs any requests that would change the existing programming under bootverbose. Currently, the only changes the apic(4) driver receives are due to bugs in the acpi(4) driver and its handling of link devices, hence the reason for such requests currently being ignored. - Have the nexus(4) driver on i386 implement the bus_config_intr() function by calling intr_config_intr().
Diffstat (limited to 'sys/i386/include/intr_machdep.h')
-rw-r--r--sys/i386/include/intr_machdep.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/i386/include/intr_machdep.h b/sys/i386/include/intr_machdep.h
index 6794751..d8256c9 100644
--- a/sys/i386/include/intr_machdep.h
+++ b/sys/i386/include/intr_machdep.h
@@ -57,6 +57,8 @@ struct pic {
int (*pic_source_pending)(struct intsrc *);
void (*pic_suspend)(struct intsrc *);
void (*pic_resume)(struct intsrc *);
+ int (*pic_config_intr)(struct intsrc *, enum intr_trigger,
+ enum intr_polarity);
};
/*
@@ -84,6 +86,8 @@ void elcr_resume(void);
void elcr_write_trigger(u_int irq, enum intr_trigger trigger);
int intr_add_handler(const char *name, int vector, driver_intr_t handler,
void *arg, enum intr_type flags, void **cookiep);
+int intr_config_intr(int vector, enum intr_trigger trig,
+ enum intr_polarity pol);
void intr_execute_handlers(struct intsrc *isrc, struct intrframe *iframe);
struct intsrc *intr_lookup_source(int vector);
int intr_register_source(struct intsrc *isrc);
OpenPOWER on IntegriCloud