Changeset View
Changeset View
Standalone View
Standalone View
sys/x86/include/intr_machdep.h
Show First 20 Lines • Show All 78 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
struct pic { | struct pic { | ||||
void (*pic_register_sources)(struct pic *); | void (*pic_register_sources)(struct pic *); | ||||
void (*pic_enable_source)(struct intsrc *); | void (*pic_enable_source)(struct intsrc *); | ||||
void (*pic_disable_source)(struct intsrc *, int); | void (*pic_disable_source)(struct intsrc *, int); | ||||
void (*pic_eoi_source)(struct intsrc *); | void (*pic_eoi_source)(struct intsrc *); | ||||
void (*pic_enable_intr)(struct intsrc *); | void (*pic_enable_intr)(struct intsrc *); | ||||
void (*pic_disable_intr)(struct intsrc *); | void (*pic_disable_intr)(struct intsrc *); | ||||
int (*pic_vector)(struct intsrc *); | u_int (*pic_vector)(struct intsrc *); | ||||
int (*pic_source_pending)(struct intsrc *); | int (*pic_source_pending)(struct intsrc *); | ||||
void (*pic_suspend)(struct pic *); | void (*pic_suspend)(struct pic *); | ||||
void (*pic_resume)(struct pic *, bool suspend_cancelled); | void (*pic_resume)(struct pic *, bool suspend_cancelled); | ||||
int (*pic_config_intr)(struct intsrc *, enum intr_trigger, | int (*pic_config_intr)(struct intsrc *, enum intr_trigger, | ||||
enum intr_polarity); | enum intr_polarity); | ||||
int (*pic_assign_cpu)(struct intsrc *, u_int apic_id); | int (*pic_assign_cpu)(struct intsrc *, u_int apic_id); | ||||
void (*pic_reprogram_pin)(struct intsrc *); | void (*pic_reprogram_pin)(struct intsrc *); | ||||
TAILQ_ENTRY(pic) pics; | TAILQ_ENTRY(pic) pics; | ||||
Show All 39 Lines | |||||
/* XXX: The elcr_* prototypes probably belong somewhere else. */ | /* XXX: The elcr_* prototypes probably belong somewhere else. */ | ||||
int elcr_probe(void); | int elcr_probe(void); | ||||
enum intr_trigger elcr_read_trigger(u_int irq); | enum intr_trigger elcr_read_trigger(u_int irq); | ||||
void elcr_resume(void); | void elcr_resume(void); | ||||
void elcr_write_trigger(u_int irq, enum intr_trigger trigger); | void elcr_write_trigger(u_int irq, enum intr_trigger trigger); | ||||
#ifdef SMP | #ifdef SMP | ||||
void intr_add_cpu(u_int cpu); | void intr_add_cpu(u_int cpu); | ||||
#endif | #endif | ||||
int intr_add_handler(const char *name, int vector, driver_filter_t filter, | int intr_add_handler(const char *name, u_int vector, driver_filter_t filter, | ||||
driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep, | driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep, | ||||
int domain); | int domain); | ||||
#ifdef SMP | #ifdef SMP | ||||
int intr_bind(u_int vector, u_char cpu); | int intr_bind(u_int vector, u_char cpu); | ||||
#endif | #endif | ||||
int intr_config_intr(int vector, enum intr_trigger trig, | int intr_config_intr(u_int vector, enum intr_trigger trig, | ||||
enum intr_polarity pol); | enum intr_polarity pol); | ||||
int intr_describe(u_int vector, void *ih, const char *descr); | int intr_describe(u_int vector, void *ih, const char *descr); | ||||
void intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame); | void intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame); | ||||
u_int intr_next_cpu(int domain); | u_int intr_next_cpu(int domain); | ||||
struct intsrc *intr_lookup_source(int vector); | struct intsrc *intr_lookup_source(u_int vector); | ||||
int intr_register_pic(struct pic *pic); | int intr_register_pic(struct pic *pic); | ||||
int intr_register_source(struct intsrc *isrc); | int intr_register_source(struct intsrc *isrc); | ||||
int intr_remove_handler(void *cookie); | int intr_remove_handler(void *cookie); | ||||
void intr_resume(bool suspend_cancelled); | void intr_resume(bool suspend_cancelled); | ||||
void intr_suspend(void); | void intr_suspend(void); | ||||
void intr_reprogram(void); | void intr_reprogram(void); | ||||
void intrcnt_add(const char *name, u_long **countp); | void intrcnt_add(const char *name, u_long **countp); | ||||
void nexus_add_irq(u_long irq); | void nexus_add_irq(u_long irq); | ||||
int msi_alloc(device_t dev, int count, int maxcount, int *irqs); | int msi_alloc(device_t dev, int count, int maxcount, u_int *irqs); | ||||
void msi_init(void); | void msi_init(void); | ||||
int msi_map(int irq, uint64_t *addr, uint32_t *data); | int msi_map(u_int irq, uint64_t *addr, uint32_t *data); | ||||
int msi_release(int *irqs, int count); | int msi_release(u_int *irqs, int count); | ||||
int msix_alloc(device_t dev, int *irq); | int msix_alloc(device_t dev, u_int *irq); | ||||
int msix_release(int irq); | int msix_release(u_int irq); | ||||
#ifdef XENHVM | #ifdef XENHVM | ||||
void xen_intr_alloc_irqs(void); | void xen_intr_alloc_irqs(void); | ||||
#endif | #endif | ||||
#endif /* !LOCORE */ | #endif /* !LOCORE */ | ||||
#endif /* _KERNEL */ | #endif /* _KERNEL */ | ||||
#endif /* !__X86_INTR_MACHDEP_H__ */ | #endif /* !__X86_INTR_MACHDEP_H__ */ |