---
name: "request_irq"
section: "9"
platform: "linux"
package: "linux-manual-2.6.26"
version: "2.6.26-29"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/request_irq"
---

# request\_irq(9)

allocate an interrupt line

## NAME

request\_irq - allocate an interrupt line

## SYNOPSIS

**int request\_irq(unsigned int** *irq***, irq\_handler\_t** *handler***, unsigned long** *irqflags***, const char \*** *devname***, void \*** *dev\_id***);**

## ARGUMENTS

*irq*

Interrupt line to allocate

*handler*

Function to be called when the IRQ occurs

*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.

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\_DISABLED Disable local interrupts while processing IRQF\_SAMPLE\_RANDOM The interrupt can be used for entropy

## COPYRIGHT
