Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

request_threaded_irq(9) [centos 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)

Check Out this Related Man Page

STRUCT 
IRQ_DESC(9) Structures STRUCT IRQ_DESC(9) NAME
struct_irq_desc - interrupt descriptor SYNOPSIS
struct irq_desc { unsigned int irq; struct timer_rand_state * timer_rand_state; unsigned int * kstat_irqs; #ifdef CONFIG_INTR_REMAP struct irq_2_iommu * irq_2_iommu; #endif irq_flow_handler_t handle_irq; struct irq_chip * chip; struct msi_desc * msi_desc; void * handler_data; void * chip_data; struct irqaction * action; unsigned int status; unsigned int depth; unsigned int wake_depth; unsigned int irq_count; unsigned long last_unhandled; unsigned int irqs_unhandled; raw_spinlock_t lock; #ifdef CONFIG_SMP cpumask_var_t affinity; unsigned int node; #ifdef CONFIG_GENERIC_PENDING_IRQ cpumask_var_t pending_mask; #endif #endif atomic_t threads_active; wait_queue_head_t wait_for_threads; #ifdef CONFIG_PROC_FS struct proc_dir_entry * dir; #endif const char * name; }; MEMBERS
irq interrupt number for this descriptor timer_rand_state pointer to timer rand state struct kstat_irqs irq stats per cpu irq_2_iommu iommu with this irq handle_irq highlevel irq-events handler [if NULL, __do_IRQ] chip low level interrupt hardware access msi_desc MSI descriptor handler_data per-IRQ data for the irq_chip methods chip_data platform-specific per-chip private data for the chip methods, to allow shared chip implementations action the irq action chain status status information depth disable-depth, for nested irq_disable calls wake_depth enable depth, for multiple set_irq_wake callers irq_count stats field to detect stalled irqs last_unhandled aging timer for unhandled count irqs_unhandled stats field for spurious unhandled interrupts lock locking for SMP affinity IRQ affinity on SMP node node index useful for balancing pending_mask pending rebalanced interrupts threads_active number of irqaction threads currently running wait_for_threads wait queue for sync_irq to wait for threaded handlers dir /proc/irq/ procfs entry name flow handler name for /proc/interrupts output AUTHORS
Thomas Gleixner <tglx@linutronix.de> Author. Ingo Molnar <mingo@elte.hu> Author. COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 STRUCT IRQ_DESC(9)
Man Page