Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
irq_64.h File Reference
#include <linux/linkage.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <asm/pil.h>
#include <asm/ptrace.h>

Go to the source code of this file.

Macros

#define IMAP_VALID   0x80000000UL /* IRQ Enabled */
 
#define IMAP_TID_UPA   0x7c000000UL /* UPA TargetID */
 
#define IMAP_TID_JBUS   0x7c000000UL /* JBUS TargetID */
 
#define IMAP_TID_SHIFT   26
 
#define IMAP_AID_SAFARI   0x7c000000UL /* Safari AgentID */
 
#define IMAP_AID_SHIFT   26
 
#define IMAP_NID_SAFARI   0x03e00000UL /* Safari NodeID */
 
#define IMAP_NID_SHIFT   21
 
#define IMAP_IGN   0x000007c0UL /* IRQ Group Number */
 
#define IMAP_INO   0x0000003fUL /* IRQ Number */
 
#define IMAP_INR   0x000007ffUL /* Full interrupt number*/
 
#define ICLR_IDLE   0x00000000UL /* Idle state */
 
#define ICLR_TRANSMIT   0x00000001UL /* Transmit state */
 
#define ICLR_PENDING   0x00000003UL /* Pending state */
 
#define NR_IRQS   255
 
#define irq_canonicalize(irq)   (irq)
 
#define arch_trigger_all_cpu_backtrace   arch_trigger_all_cpu_backtrace
 
#define __ARCH_HAS_DO_SOFTIRQ
 
#define NO_IRQ   0xffffffff
 

Functions

void irq_install_pre_handler (int irq, void(*func)(unsigned int, void *, void *), void *arg1, void *arg2)
 
unsigned int build_irq (int inofixup, unsigned long iclr, unsigned long imap)
 
unsigned int sun4v_build_irq (u32 devhandle, unsigned int devino)
 
unsigned int sun4v_build_virq (u32 devhandle, unsigned int devino)
 
unsigned int sun4v_build_msi (u32 devhandle, unsigned int *irq_p, unsigned int msi_devino_start, unsigned int msi_devino_end)
 
void sun4v_destroy_msi (unsigned int irq)
 
unsigned int sun4u_build_msi (u32 portid, unsigned int *irq_p, unsigned int msi_devino_start, unsigned int msi_devino_end, unsigned long imap_base, unsigned long iclr_base)
 
void sun4u_destroy_msi (unsigned int irq)
 
unsigned char irq_alloc (unsigned int dev_handle, unsigned int dev_ino)
 
void __init init_IRQ (void)
 
void fixup_irqs (void)
 
void arch_trigger_all_cpu_backtrace (void)
 

Variables

voidhardirq_stack [NR_CPUS]
 
voidsoftirq_stack [NR_CPUS]
 

Macro Definition Documentation

#define __ARCH_HAS_DO_SOFTIRQ

Definition at line 97 of file irq_64.h.

#define arch_trigger_all_cpu_backtrace   arch_trigger_all_cpu_backtrace

Definition at line 93 of file irq_64.h.

#define ICLR_IDLE   0x00000000UL /* Idle state */

Definition at line 30 of file irq_64.h.

#define ICLR_PENDING   0x00000003UL /* Pending state */

Definition at line 32 of file irq_64.h.

#define ICLR_TRANSMIT   0x00000001UL /* Transmit state */

Definition at line 31 of file irq_64.h.

#define IMAP_AID_SAFARI   0x7c000000UL /* Safari AgentID */

Definition at line 22 of file irq_64.h.

#define IMAP_AID_SHIFT   26

Definition at line 23 of file irq_64.h.

#define IMAP_IGN   0x000007c0UL /* IRQ Group Number */

Definition at line 26 of file irq_64.h.

#define IMAP_INO   0x0000003fUL /* IRQ Number */

Definition at line 27 of file irq_64.h.

#define IMAP_INR   0x000007ffUL /* Full interrupt number*/

Definition at line 28 of file irq_64.h.

#define IMAP_NID_SAFARI   0x03e00000UL /* Safari NodeID */

Definition at line 24 of file irq_64.h.

#define IMAP_NID_SHIFT   21

Definition at line 25 of file irq_64.h.

#define IMAP_TID_JBUS   0x7c000000UL /* JBUS TargetID */

Definition at line 20 of file irq_64.h.

#define IMAP_TID_SHIFT   26

Definition at line 21 of file irq_64.h.

#define IMAP_TID_UPA   0x7c000000UL /* UPA TargetID */

Definition at line 19 of file irq_64.h.

#define IMAP_VALID   0x80000000UL /* IRQ Enabled */

Definition at line 18 of file irq_64.h.

#define irq_canonicalize (   irq)    (irq)

Definition at line 45 of file irq_64.h.

#define NO_IRQ   0xffffffff

Definition at line 99 of file irq_64.h.

#define NR_IRQS   255

Definition at line 40 of file irq_64.h.

Function Documentation

void arch_trigger_all_cpu_backtrace ( void  )

Definition at line 260 of file process_64.c.

unsigned int build_irq ( int  inofixup,
unsigned long  iclr,
unsigned long  imap 
)

Definition at line 503 of file irq_64.c.

void fixup_irqs ( void  )
void __init init_IRQ ( void  )

The hexagon core comes with a first-level interrupt controller with 32 total possible interrupts. When the core is embedded into different systems/platforms, it is typically wrapped by macro cells that provide one or more second-level interrupt controllers that are cascaded into one or more of the first-level interrupts handled here. The precise wiring of these other irqs varies from platform to platform, and are set up & configured in the platform-specific files.

The first-level interrupt controller is wrapped by the VM, which virtualizes the interrupt controller for us. It provides a very simple, fast & efficient API, and so the fasteoi handler is appropriate for this case.

Definition at line 109 of file irq_alpha.c.

unsigned char irq_alloc ( unsigned int  dev_handle,
unsigned int  dev_ino 
)

Definition at line 121 of file irq_32.c.

void irq_install_pre_handler ( int  irq,
void(*)(unsigned int, void *, void *)  func,
void arg1,
void arg2 
)

Definition at line 490 of file irq_64.c.

unsigned int sun4u_build_msi ( u32  portid,
unsigned int irq_p,
unsigned int  msi_devino_start,
unsigned int  msi_devino_end,
unsigned long  imap_base,
unsigned long  iclr_base 
)
void sun4u_destroy_msi ( unsigned int  irq)
unsigned int sun4v_build_irq ( u32  devhandle,
unsigned int  devino 
)

Definition at line 580 of file irq_64.c.

unsigned int sun4v_build_msi ( u32  devhandle,
unsigned int irq_p,
unsigned int  msi_devino_start,
unsigned int  msi_devino_end 
)
unsigned int sun4v_build_virq ( u32  devhandle,
unsigned int  devino 
)

Definition at line 587 of file irq_64.c.

void sun4v_destroy_msi ( unsigned int  irq)

Variable Documentation

void* hardirq_stack[NR_CPUS]

Definition at line 655 of file irq_64.c.

void* softirq_stack[NR_CPUS]

Definition at line 656 of file irq_64.c.