Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

struct_irq_chip(9) [centos man page]

STRUCT 
IRQ_CHIP(9) Structures STRUCT IRQ_CHIP(9) NAME
struct_irq_chip - hardware interrupt chip descriptor SYNOPSIS
struct irq_chip { const char * name; unsigned int (* irq_startup) (struct irq_data *data); void (* irq_shutdown) (struct irq_data *data); void (* irq_enable) (struct irq_data *data); void (* irq_disable) (struct irq_data *data); void (* irq_ack) (struct irq_data *data); void (* irq_mask) (struct irq_data *data); void (* irq_mask_ack) (struct irq_data *data); void (* irq_unmask) (struct irq_data *data); void (* irq_eoi) (struct irq_data *data); int (* irq_set_affinity) (struct irq_data *data, const struct cpumask *dest, bool force); int (* irq_retrigger) (struct irq_data *data); int (* irq_set_type) (struct irq_data *data, unsigned int flow_type); int (* irq_set_wake) (struct irq_data *data, unsigned int on); void (* irq_bus_lock) (struct irq_data *data); void (* irq_bus_sync_unlock) (struct irq_data *data); void (* irq_cpu_online) (struct irq_data *data); void (* irq_cpu_offline) (struct irq_data *data); void (* irq_suspend) (struct irq_data *data); void (* irq_resume) (struct irq_data *data); void (* irq_pm_shutdown) (struct irq_data *data); void (* irq_print_chip) (struct irq_data *data, struct seq_file *p); unsigned long flags; }; MEMBERS
name name for /proc/interrupts irq_startup start up the interrupt (defaults to ->enable if NULL) irq_shutdown shut down the interrupt (defaults to ->disable if NULL) irq_enable enable the interrupt (defaults to chip->unmask if NULL) irq_disable disable the interrupt irq_ack start of a new interrupt irq_mask mask an interrupt source irq_mask_ack ack and mask an interrupt source irq_unmask unmask an interrupt source irq_eoi end of interrupt irq_set_affinity set the CPU affinity on SMP machines irq_retrigger resend an IRQ to the CPU irq_set_type set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ irq_set_wake enable/disable power-management wake-on of an IRQ irq_bus_lock function to lock access to slow bus (i2c) chips irq_bus_sync_unlock function to sync and unlock slow bus (i2c) chips irq_cpu_online configure an interrupt source for a secondary CPU irq_cpu_offline un-configure an interrupt source for a secondary CPU irq_suspend function called from core code on suspend once per chip irq_resume function called from core code on resume once per chip irq_pm_shutdown function called from core code on shutdown once per chip irq_print_chip optional to print special chip info in show_interrupts flags chip specific flags AUTHORS
Thomas Gleixner <tglx@linutronix.de> Author. Ingo Molnar <mingo@elte.hu> Author. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 STRUCT IRQ_CHIP(9)

Check Out this Related Man Page

REQUEST_THREADED_IRQ(9) 				     Public Functions Provided					   REQUEST_THREADED_IRQ(9)

NAME
request_threaded_irq - allocate an interrupt line SYNOPSIS
int request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned long irqflags, const char * devname, void * dev_id); ARGUMENTS
irq Interrupt line to allocate handler Function to be called when the IRQ occurs. Primary handler for threaded interrupts If NULL and thread_fn != NULL the default primary handler is installed thread_fn Function called from the irq handler thread If NULL, no irq thread is created irqflags Interrupt type flags devname An ascii name for the claiming device dev_id A cookie passed back to the handler function DESCRIPTION
This call allocates interrupt resources and enables the interrupt line and IRQ handling. From the point this call is made your handler function may be invoked. Since your handler function must clear any interrupt the board raises, you must take care both to initialise your hardware and to set up the interrupt handler in the right order. If you want to set up a threaded irq handler for your device then you need to supply handler and thread_fn. handler is still called in hard interrupt context and has to check whether the interrupt originates from the device. If yes it needs to disable the interrupt on the device and return IRQ_WAKE_THREAD which will wake up the handler thread and run thread_fn. This split handler design is necessary to support shared interrupts. Dev_id must be globally unique. Normally the address of the device data structure is used as the cookie. Since the handler receives this value it makes sense to use it. If your interrupt is shared you must pass a non NULL dev_id as this is required when freeing the interrupt. FLAGS
IRQF_SHARED Interrupt is shared IRQF_TRIGGER_* Specify active edge(s) or level AUTHORS
Thomas Gleixner <tglx@linutronix.de> Author. Ingo Molnar <mingo@elte.hu> Author. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 REQUEST_THREADED_IRQ(9)
Man Page