Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
hw_irq.h File Reference
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/profile.h>
#include <asm/machvec.h>
#include <asm/ptrace.h>
#include <asm/smp.h>

Go to the source code of this file.

Data Structures

struct  irq_cfg
 

Macros

#define IA64_MIN_VECTORED_IRQ   16
 
#define IA64_MAX_VECTORED_IRQ   255
 
#define IA64_NUM_VECTORS   256
 
#define AUTO_ASSIGN   -1
 
#define IA64_SPURIOUS_INT_VECTOR   0x0f
 
#define IA64_CPEP_VECTOR   0x1c /* corrected platform error polling vector */
 
#define IA64_CMCP_VECTOR   0x1d /* corrected machine-check polling vector */
 
#define IA64_CPE_VECTOR   0x1e /* corrected platform error interrupt vector */
 
#define IA64_CMC_VECTOR   0x1f /* corrected machine-check interrupt vector */
 
#define IA64_DEF_FIRST_DEVICE_VECTOR   0x30
 
#define IA64_DEF_LAST_DEVICE_VECTOR   0xe7
 
#define IA64_FIRST_DEVICE_VECTOR   ia64_first_device_vector
 
#define IA64_LAST_DEVICE_VECTOR   ia64_last_device_vector
 
#define IA64_MAX_DEVICE_VECTORS   (IA64_DEF_LAST_DEVICE_VECTOR - IA64_DEF_FIRST_DEVICE_VECTOR + 1)
 
#define IA64_NUM_DEVICE_VECTORS   (IA64_LAST_DEVICE_VECTOR - IA64_FIRST_DEVICE_VECTOR + 1)
 
#define IA64_MCA_RENDEZ_VECTOR   0xe8 /* MCA rendez interrupt */
 
#define IA64_PERFMON_VECTOR   0xee /* performance monitor interrupt vector */
 
#define IA64_TIMER_VECTOR   0xef /* use highest-prio group 15 interrupt for timer */
 
#define IA64_MCA_WAKEUP_VECTOR   0xf0 /* MCA wakeup (must be >MCA_RENDEZ_VECTOR) */
 
#define IA64_IPI_LOCAL_TLB_FLUSH   0xfc /* SMP flush local TLB */
 
#define IA64_IPI_RESCHEDULE   0xfd /* SMP reschedule */
 
#define IA64_IPI_VECTOR   0xfe /* inter-processor interrupt vector */
 
#define IA64_IRQ_REDIRECTED   (1 << 31)
 
#define IA64_IPI_DEFAULT_BASE_ADDR   0xfee00000
 
#define isa_irq_to_vector(x)   isa_irq_to_vector_map[(x)]
 
#define irq_to_domain(x)   irq_cfg[(x)].domain
 
#define ia64_register_ipi   ia64_native_register_ipi
 
#define assign_irq_vector   ia64_native_assign_irq_vector
 
#define free_irq_vector   ia64_native_free_irq_vector
 
#define register_percpu_irq   ia64_native_register_percpu_irq
 
#define ia64_resend_irq   ia64_native_resend_irq
 

Typedefs

typedef u8 ia64_vector
 

Enumerations

enum  {
  IA64_IPI_DM_INT = 0x0, IA64_IPI_DM_PMI = 0x2, IA64_IPI_DM_NMI = 0x4, IA64_IPI_DM_INIT = 0x5,
  IA64_IPI_DM_EXTINT = 0x7
}
 

Functions

 DECLARE_PER_CPU (int[IA64_NUM_VECTORS], vector_irq)
 
void ia64_native_register_ipi (void)
 
int bind_irq_vector (int irq, int vector, cpumask_t domain)
 
int ia64_native_assign_irq_vector (int irq)
 
void ia64_native_free_irq_vector (int vector)
 
int reserve_irq_vector (int vector)
 
void __setup_vector_irq (int cpu)
 
void ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect)
 
void ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action)
 
int check_irq_used (int irq)
 
void destroy_and_reserve_irq (unsigned int irq)
 

Variables

int ia64_first_device_vector
 
int ia64_last_device_vector
 
__u8 isa_irq_to_vector_map [16]
 
spinlock_t vector_lock
 
struct irq_cfg irq_cfg [NR_IRQS]
 
struct irq_chip irq_type_ia64_lsapic
 

Macro Definition Documentation

#define assign_irq_vector   ia64_native_assign_irq_vector

Definition at line 121 of file hw_irq.h.

#define AUTO_ASSIGN   -1

Definition at line 41 of file hw_irq.h.

#define free_irq_vector   ia64_native_free_irq_vector

Definition at line 122 of file hw_irq.h.

#define IA64_CMC_VECTOR   0x1f /* corrected machine-check interrupt vector */

Definition at line 51 of file hw_irq.h.

#define IA64_CMCP_VECTOR   0x1d /* corrected machine-check polling vector */

Definition at line 49 of file hw_irq.h.

#define IA64_CPE_VECTOR   0x1e /* corrected platform error interrupt vector */

Definition at line 50 of file hw_irq.h.

#define IA64_CPEP_VECTOR   0x1c /* corrected platform error polling vector */

Definition at line 48 of file hw_irq.h.

#define IA64_DEF_FIRST_DEVICE_VECTOR   0x30

Definition at line 67 of file hw_irq.h.

#define IA64_DEF_LAST_DEVICE_VECTOR   0xe7

Definition at line 69 of file hw_irq.h.

#define IA64_FIRST_DEVICE_VECTOR   ia64_first_device_vector

Definition at line 70 of file hw_irq.h.

#define IA64_IPI_DEFAULT_BASE_ADDR   0xfee00000

Definition at line 89 of file hw_irq.h.

#define IA64_IPI_LOCAL_TLB_FLUSH   0xfc /* SMP flush local TLB */

Definition at line 79 of file hw_irq.h.

#define IA64_IPI_RESCHEDULE   0xfd /* SMP reschedule */

Definition at line 80 of file hw_irq.h.

#define IA64_IPI_VECTOR   0xfe /* inter-processor interrupt vector */

Definition at line 81 of file hw_irq.h.

#define IA64_IRQ_REDIRECTED   (1 << 31)

Definition at line 85 of file hw_irq.h.

#define IA64_LAST_DEVICE_VECTOR   ia64_last_device_vector

Definition at line 71 of file hw_irq.h.

#define IA64_MAX_DEVICE_VECTORS   (IA64_DEF_LAST_DEVICE_VECTOR - IA64_DEF_FIRST_DEVICE_VECTOR + 1)

Definition at line 72 of file hw_irq.h.

#define IA64_MAX_VECTORED_IRQ   255

Definition at line 38 of file hw_irq.h.

#define IA64_MCA_RENDEZ_VECTOR   0xe8 /* MCA rendez interrupt */

Definition at line 75 of file hw_irq.h.

#define IA64_MCA_WAKEUP_VECTOR   0xf0 /* MCA wakeup (must be >MCA_RENDEZ_VECTOR) */

Definition at line 78 of file hw_irq.h.

#define IA64_MIN_VECTORED_IRQ   16

Definition at line 37 of file hw_irq.h.

#define IA64_NUM_DEVICE_VECTORS   (IA64_LAST_DEVICE_VECTOR - IA64_FIRST_DEVICE_VECTOR + 1)

Definition at line 73 of file hw_irq.h.

#define IA64_NUM_VECTORS   256

Definition at line 39 of file hw_irq.h.

#define IA64_PERFMON_VECTOR   0xee /* performance monitor interrupt vector */

Definition at line 76 of file hw_irq.h.

#define ia64_register_ipi   ia64_native_register_ipi

Definition at line 120 of file hw_irq.h.

#define ia64_resend_irq   ia64_native_resend_irq

Definition at line 124 of file hw_irq.h.

#define IA64_SPURIOUS_INT_VECTOR   0x0f

Definition at line 43 of file hw_irq.h.

#define IA64_TIMER_VECTOR   0xef /* use highest-prio group 15 interrupt for timer */

Definition at line 77 of file hw_irq.h.

#define irq_to_domain (   x)    irq_cfg[(x)].domain

Definition at line 112 of file hw_irq.h.

#define isa_irq_to_vector (   x)    isa_irq_to_vector_map[(x)]

Definition at line 101 of file hw_irq.h.

#define register_percpu_irq   ia64_native_register_percpu_irq

Definition at line 123 of file hw_irq.h.

Typedef Documentation

typedef u8 ia64_vector

Definition at line 19 of file hw_irq.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
IA64_IPI_DM_INT 
IA64_IPI_DM_PMI 
IA64_IPI_DM_NMI 
IA64_IPI_DM_INIT 
IA64_IPI_DM_EXTINT 

Definition at line 92 of file hw_irq.h.

Function Documentation

void __setup_vector_irq ( int  cpu)

Definition at line 246 of file irq_ia64.c.

int bind_irq_vector ( int  irq,
int  vector,
cpumask_t  domain 
)

Definition at line 158 of file irq_ia64.c.

int check_irq_used ( int  irq)

Definition at line 96 of file irq_ia64.c.

DECLARE_PER_CPU ( int  [IA64_NUM_VECTORS],
vector_irq   
)
void destroy_and_reserve_irq ( unsigned int  irq)

Definition at line 390 of file irq_ia64.c.

int ia64_native_assign_irq_vector ( int  irq)

Definition at line 199 of file irq_ia64.c.

void ia64_native_free_irq_vector ( int  vector)

Definition at line 225 of file irq_ia64.c.

void ia64_native_register_ipi ( void  )

Definition at line 641 of file irq_ia64.c.

void ia64_native_register_percpu_irq ( ia64_vector  vec,
struct irqaction action 
)

Definition at line 627 of file irq_ia64.c.

void ia64_send_ipi ( int  cpu,
int  vector,
int  delivery_mode,
int  redirect 
)

Definition at line 671 of file irq_ia64.c.

int reserve_irq_vector ( int  vector)

Definition at line 234 of file irq_ia64.c.

Variable Documentation

int ia64_first_device_vector

Definition at line 56 of file irq_ia64.c.

int ia64_last_device_vector

Definition at line 57 of file irq_ia64.c.

struct irq_chip irq_type_ia64_lsapic

Definition at line 36 of file irq_lsapic.c.

__u8 isa_irq_to_vector_map[16]

Definition at line 68 of file irq_ia64.c.

spinlock_t vector_lock