Linux Kernel
3.7.1
|
#include <linux/smp.h>
#include <linux/linkage.h>
#include <linux/cache.h>
#include <linux/spinlock.h>
#include <linux/cpumask.h>
#include <linux/gfp.h>
#include <linux/irqreturn.h>
#include <linux/irqnr.h>
#include <linux/errno.h>
#include <linux/topology.h>
#include <linux/wait.h>
#include <asm/irq.h>
#include <asm/ptrace.h>
#include <asm/irq_regs.h>
#include <linux/irqdesc.h>
#include <asm/hw_irq.h>
Go to the source code of this file.
Data Structures | |
struct | irq_data |
struct | irq_chip |
Macros | |
#define | IRQF_MODIFY_MASK |
#define | IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING) |
Typedefs | |
typedef void(* | irq_flow_handler_t )(unsigned int irq, struct irq_desc *desc) |
typedef void(* | irq_preflow_handler_t )(struct irq_data *data) |
Enumerations | |
enum | { IRQ_TYPE_NONE = 0x00000000, IRQ_TYPE_EDGE_RISING = 0x00000001, IRQ_TYPE_EDGE_FALLING = 0x00000002, IRQ_TYPE_EDGE_BOTH = (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING), IRQ_TYPE_LEVEL_HIGH = 0x00000004, IRQ_TYPE_LEVEL_LOW = 0x00000008, IRQ_TYPE_LEVEL_MASK = (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH), IRQ_TYPE_SENSE_MASK = 0x0000000f, IRQ_TYPE_DEFAULT = IRQ_TYPE_SENSE_MASK, IRQ_TYPE_PROBE = 0x00000010, IRQ_LEVEL = (1 << 8), IRQ_PER_CPU = (1 << 9), IRQ_NOPROBE = (1 << 10), IRQ_NOREQUEST = (1 << 11), IRQ_NOAUTOEN = (1 << 12), IRQ_NO_BALANCING = (1 << 13), IRQ_MOVE_PCNTXT = (1 << 14), IRQ_NESTED_THREAD = (1 << 15), IRQ_NOTHREAD = (1 << 16), IRQ_PER_CPU_DEVID = (1 << 17) } |
enum | { IRQ_SET_MASK_OK = 0, IRQ_SET_MASK_OK_NOCOPY } |
enum | { IRQD_TRIGGER_MASK = 0xf, IRQD_SETAFFINITY_PENDING = (1 << 8), IRQD_NO_BALANCING = (1 << 10), IRQD_PER_CPU = (1 << 11), IRQD_AFFINITY_SET = (1 << 12), IRQD_LEVEL = (1 << 13), IRQD_WAKEUP_STATE = (1 << 14), IRQD_MOVE_PCNTXT = (1 << 15), IRQD_IRQ_DISABLED = (1 << 16), IRQD_IRQ_MASKED = (1 << 17), IRQD_IRQ_INPROGRESS = (1 << 18) } |
: name for /proc/interrupts | |
struct irq_chip - hardware interrupt chip descriptor : start up the interrupt (defaults to ->enable if NULL) : shut down the interrupt (defaults to ->disable if NULL) : enable the interrupt (defaults to chip->unmask if NULL) : disable the interrupt : start of a new interrupt : mask an interrupt source : ack and mask an interrupt source : unmask an interrupt source : end of interrupt : set the CPU affinity on SMP machines : resend an IRQ to the CPU : set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ : enable/disable power-management wake-on of an IRQ : function to lock access to slow bus (i2c) chips :function to sync and unlock slow bus (i2c) chips : configure an interrupt source for a secondary CPU : un-configure an interrupt source for a secondary CPU : function called from core code on suspend once per chip : function called from core code on resume once per chip : function called from core code on shutdown once per chip : optional to print special chip info in show_interrupts : chip specific flags | |
#define | NR_IRQS_LEGACY 0 |
#define | ARCH_IRQ_INIT_FLAGS 0 |
#define | IRQ_DEFAULT_INIT_FLAGS ARCH_IRQ_INIT_FLAGS |
enum | { IRQCHIP_SET_TYPE_MASKED = (1 << 0), IRQCHIP_EOI_IF_HANDLED = (1 << 1), IRQCHIP_MASK_ON_SUSPEND = (1 << 2), IRQCHIP_ONOFFLINE_ENABLED = (1 << 3), IRQCHIP_SKIP_SET_WAKE = (1 << 4), IRQCHIP_ONESHOT_SAFE = (1 << 5) } |
int | setup_irq (unsigned int irq, struct irqaction *new) |
void | remove_irq (unsigned int irq, struct irqaction *act) |
int | setup_percpu_irq (unsigned int irq, struct irqaction *new) |
void | remove_percpu_irq (unsigned int irq, struct irqaction *act) |
void | irq_cpu_online (void) |
void | irq_cpu_offline (void) |
int | __irq_set_affinity_locked (struct irq_data *data, const struct cpumask *cpumask) |
#define IRQ_DEFAULT_INIT_FLAGS ARCH_IRQ_INIT_FLAGS |
#define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING) |
#define IRQF_MODIFY_MASK |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |