Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
io_apic.c File Reference
#include <linux/mm.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/pci.h>
#include <linux/mc146818rtc.h>
#include <linux/compiler.h>
#include <linux/acpi.h>
#include <linux/module.h>
#include <linux/syscore_ops.h>
#include <linux/msi.h>
#include <linux/htirq.h>
#include <linux/freezer.h>
#include <linux/kthread.h>
#include <linux/jiffies.h>
#include <linux/slab.h>
#include <linux/bootmem.h>
#include <linux/dmar.h>
#include <linux/hpet.h>
#include <asm/idle.h>
#include <asm/io.h>
#include <asm/smp.h>
#include <asm/cpu.h>
#include <asm/desc.h>
#include <asm/proto.h>
#include <asm/acpi.h>
#include <asm/dma.h>
#include <asm/timer.h>
#include <asm/i8259.h>
#include <asm/msidef.h>
#include <asm/hypertransport.h>
#include <asm/setup.h>
#include <asm/irq_remapping.h>
#include <asm/hpet.h>
#include <asm/hw_irq.h>
#include <asm/apic.h>

Go to the source code of this file.

Data Structures

struct  ioapic
 
struct  irq_pin_list
 
struct  io_apic
 
union  entry_union
 

Macros

#define __apicdebuginit(type)   static type __init
 
#define for_each_irq_pin(entry, head)   for (entry = head; entry; entry = entry->next)
 
#define mpc_ioapic_ver(ioapic_idx)   ioapics[ioapic_idx].mp_config.apicver
 
#define default_ISA_trigger(idx)   (0)
 
#define default_ISA_polarity(idx)   (0)
 
#define default_EISA_trigger(idx)   (EISA_ELCR(mp_irqs[idx].srcbusirq))
 
#define default_EISA_polarity(idx)   default_ISA_polarity(idx)
 
#define default_PCI_trigger(idx)   (1)
 
#define default_PCI_polarity(idx)   (1)
 
#define PIC_IRQS   (1UL << PIC_CASCADE_IR)
 
#define IOAPIC_RESOURCE_NAME_SIZE   11
 

Functions

int mpc_ioapic_id (int ioapic_idx)
 
unsigned int mpc_ioapic_addr (int ioapic_idx)
 
struct mp_ioapic_gsi * mp_ioapic_gsi_routing (int ioapic_idx)
 
 DECLARE_BITMAP (mp_bus_not_pci, MAX_MP_BUSSES)
 
void disable_ioapic_support (void)
 
 early_param ("noapic", parse_noapic)
 
void mp_save_irq (struct mpc_intsrc *m)
 
int __init arch_early_irq_init (void)
 
unsigned int native_io_apic_read (unsigned int apic, unsigned int reg)
 
void native_io_apic_write (unsigned int apic, unsigned int reg, unsigned int value)
 
void native_io_apic_modify (unsigned int apic, unsigned int reg, unsigned int value)
 
int save_ioapic_entries (void)
 
void mask_ioapic_entries (void)
 
int restore_ioapic_entries (void)
 
int IO_APIC_get_PCI_irq_vector (int bus, int slot, int pin, struct io_apic_irq_attr *irq_attr)
 
 EXPORT_SYMBOL (IO_APIC_get_PCI_irq_vector)
 
void lock_vector_lock (void)
 
void unlock_vector_lock (void)
 
int assign_irq_vector (int irq, struct irq_cfg *cfg, const struct cpumask *mask)
 
void __setup_vector_irq (int cpu)
 
void setup_IO_APIC_irq_extra (u32 gsi)
 
 __apicdebuginit (void)
 
 __setup ("show_lapic=", setup_show_lapic)
 
 __apicdebuginit (int)
 
 late_initcall (print_ICs)
 
void __init enable_IO_APIC (void)
 
void disable_IO_APIC (void)
 
 __setup ("no_timer_check", notimercheck)
 
int __ioapic_set_affinity (struct irq_data *data, const struct cpumask *mask, unsigned int *dest_id)
 
 early_param ("disable_timer_pin_1", disable_timer_pin_setup)
 
void __init setup_IO_APIC (void)
 
 late_initcall (io_apic_bug_finalize)
 
 device_initcall (ioapic_init_ops)
 
unsigned int create_irq_nr (unsigned int from, int node)
 
int create_irq (void)
 
void destroy_irq (unsigned int irq)
 
int io_apic_setup_irq_pin_once (unsigned int irq, int node, struct io_apic_irq_attr *attr)
 
int get_nr_irqs_gsi (void)
 
int __init arch_probe_nr_irqs (void)
 
int io_apic_set_pci_routing (struct device *dev, int irq, struct io_apic_irq_attr *irq_attr)
 
int acpi_get_override_irq (u32 gsi, int *trigger, int *polarity)
 
void __init native_io_apic_init_mappings (void)
 
void __init ioapic_insert_resources (void)
 
int mp_find_ioapic (u32 gsi)
 
int mp_find_ioapic_pin (int ioapic, u32 gsi)
 
void __init mp_register_ioapic (int id, u32 address, u32 gsi_base)
 
void __init pre_init_apic_IRQ0 (void)
 

Variables

int sis_apic_bug = -1
 
int nr_ioapics
 
u32 gsi_top
 
struct mpc_intsrc mp_irqs [MAX_IRQ_SOURCES]
 
int mp_irq_entries
 
int skip_ioapic_setup
 
int no_timer_check __initdata
 
atomic_t irq_mis_count
 

Macro Definition Documentation

#define __apicdebuginit (   type)    static type __init

Definition at line 66 of file io_apic.c.

#define default_EISA_polarity (   idx)    default_ISA_polarity(idx)

Definition at line 867 of file io_apic.c.

#define default_EISA_trigger (   idx)    (EISA_ELCR(mp_irqs[idx].srcbusirq))

Definition at line 866 of file io_apic.c.

#define default_ISA_polarity (   idx)    (0)

Definition at line 859 of file io_apic.c.

#define default_ISA_trigger (   idx)    (0)

Definition at line 858 of file io_apic.c.

#define default_PCI_polarity (   idx)    (1)

Definition at line 873 of file io_apic.c.

#define default_PCI_trigger (   idx)    (1)

Definition at line 872 of file io_apic.c.

#define for_each_irq_pin (   entry,
  head 
)    for (entry = head; entry; entry = entry->next)

Definition at line 68 of file io_apic.c.

#define IOAPIC_RESOURCE_NAME_SIZE   11

Definition at line 3706 of file io_apic.c.

#define mpc_ioapic_ver (   ioapic_idx)    ioapics[ioapic_idx].mp_config.apicver

Definition at line 112 of file io_apic.c.

#define PIC_IRQS   (1UL << PIC_CASCADE_IR)

Definition at line 2919 of file io_apic.c.

Function Documentation

__apicdebuginit ( void  )

Definition at line 1530 of file io_apic.c.

__apicdebuginit ( int  )

Definition at line 1863 of file io_apic.c.

int __ioapic_set_affinity ( struct irq_data data,
const struct cpumask mask,
unsigned int dest_id 
)

Definition at line 2355 of file io_apic.c.

__setup ( )
__setup ( "no_timer_check"  ,
notimercheck   
)
void __setup_vector_irq ( int  cpu)

Definition at line 1227 of file io_apic.c.

int acpi_get_override_irq ( u32  gsi,
int trigger,
int polarity 
)

Definition at line 3638 of file io_apic.c.

int __init arch_early_irq_init ( void  )

Definition at line 208 of file io_apic.c.

int __init arch_probe_nr_irqs ( void  )

Definition at line 3490 of file io_apic.c.

int assign_irq_vector ( int  irq,
struct irq_cfg cfg,
const struct cpumask mask 
)

Definition at line 1189 of file io_apic.c.

int create_irq ( void  )

Definition at line 3030 of file io_apic.c.

unsigned int create_irq_nr ( unsigned int  from,
int  node 
)

Definition at line 2997 of file io_apic.c.

DECLARE_BITMAP ( mp_bus_not_pci  ,
MAX_MP_BUSSES   
)
void destroy_irq ( unsigned int  irq)

Definition at line 3045 of file io_apic.c.

device_initcall ( ioapic_init_ops  )
void disable_IO_APIC ( void  )

Definition at line 1941 of file io_apic.c.

void disable_ioapic_support ( void  )

disable_ioapic_support() - disables ioapic support at runtime

Definition at line 154 of file io_apic.c.

early_param ( "noapic"  ,
parse_noapic   
)
early_param ( "disable_timer_pin_1"  ,
disable_timer_pin_setup   
)
void __init enable_IO_APIC ( void  )

Definition at line 1886 of file io_apic.c.

EXPORT_SYMBOL ( IO_APIC_get_PCI_irq_vector  )
int get_nr_irqs_gsi ( void  )

Definition at line 3485 of file io_apic.c.

int IO_APIC_get_PCI_irq_vector ( int  bus,
int  slot,
int  pin,
struct io_apic_irq_attr irq_attr 
)

Definition at line 1033 of file io_apic.c.

int io_apic_set_pci_routing ( struct device dev,
int  irq,
struct io_apic_irq_attr irq_attr 
)

Definition at line 3510 of file io_apic.c.

int io_apic_setup_irq_pin_once ( unsigned int  irq,
int  node,
struct io_apic_irq_attr attr 
)

Definition at line 3440 of file io_apic.c.

void __init ioapic_insert_resources ( void  )

Definition at line 3782 of file io_apic.c.

late_initcall ( print_ICs  )
late_initcall ( io_apic_bug_finalize  )
void lock_vector_lock ( void  )

Definition at line 1087 of file io_apic.c.

void mask_ioapic_entries ( void  )

Definition at line 740 of file io_apic.c.

int mp_find_ioapic ( u32  gsi)

Definition at line 3800 of file io_apic.c.

int mp_find_ioapic_pin ( int  ioapic,
u32  gsi 
)

Definition at line 3819 of file io_apic.c.

struct mp_ioapic_gsi* mp_ioapic_gsi_routing ( int  ioapic_idx)
read

Definition at line 124 of file io_apic.c.

void __init mp_register_ioapic ( int  id,
u32  address,
u32  gsi_base 
)

Definition at line 3866 of file io_apic.c.

void mp_save_irq ( struct mpc_intsrc m)

Definition at line 175 of file io_apic.c.

unsigned int mpc_ioapic_addr ( int  ioapic_idx)

Definition at line 119 of file io_apic.c.

int mpc_ioapic_id ( int  ioapic_idx)

Definition at line 114 of file io_apic.c.

void __init native_io_apic_init_mappings ( void  )

Definition at line 3740 of file io_apic.c.

void native_io_apic_modify ( unsigned int  apic,
unsigned int  reg,
unsigned int  value 
)

Definition at line 356 of file io_apic.c.

unsigned int native_io_apic_read ( unsigned int  apic,
unsigned int  reg 
)

Definition at line 335 of file io_apic.c.

void native_io_apic_write ( unsigned int  apic,
unsigned int  reg,
unsigned int  value 
)

Definition at line 342 of file io_apic.c.

void __init pre_init_apic_IRQ0 ( void  )

Definition at line 3917 of file io_apic.c.

int restore_ioapic_entries ( void  )

Definition at line 763 of file io_apic.c.

int save_ioapic_entries ( void  )

Definition at line 718 of file io_apic.c.

void __init setup_IO_APIC ( void  )

Definition at line 2921 of file io_apic.c.

void setup_IO_APIC_irq_extra ( u32  gsi)

Definition at line 1458 of file io_apic.c.

void unlock_vector_lock ( void  )

Definition at line 1095 of file io_apic.c.

Variable Documentation

int timer_through_8259 __initdata

Definition at line 2113 of file io_apic.c.

Definition at line 1884 of file io_apic.c.

u32 gsi_top

Definition at line 132 of file io_apic.c.

atomic_t irq_mis_count

Definition at line 2414 of file io_apic.c.

int mp_irq_entries

Definition at line 138 of file io_apic.c.

Definition at line 135 of file io_apic.c.

int nr_ioapics

Definition at line 129 of file io_apic.c.

int pin

Definition at line 1884 of file io_apic.c.

int sis_apic_bug = -1

Definition at line 91 of file io_apic.c.

int skip_ioapic_setup

Definition at line 149 of file io_apic.c.