Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions | Variables
irq.h File Reference
#include <arch/sv_addr_ag.h>

Go to the source code of this file.

Data Structures

struct  etrax_interrupt_vector
 

Macros

#define NR_IRQS   32
 
#define FIRST_IRQ   0
 
#define SOME_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, some) /* 0 ? */
 
#define NMI_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, nmi) /* 1 */
 
#define TIMER0_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, timer0) /* 2 */
 
#define TIMER1_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, timer1) /* 3 */
 
#define NETWORK_STATUS_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, network) /* 6 */
 
#define SERIAL_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, serial) /* 8 */
 
#define PA_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, pa) /* 11 */
 
#define EXTDMA0_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, ext_dma0)
 
#define EXTDMA1_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, ext_dma1)
 
#define DMA0_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma0)
 
#define DMA1_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma1)
 
#define NETWORK_DMA_TX_IRQ_NBR   DMA0_TX_IRQ_NBR
 
#define NETWORK_DMA_RX_IRQ_NBR   DMA1_RX_IRQ_NBR
 
#define DMA2_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma2)
 
#define DMA3_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma3)
 
#define SER2_DMA_TX_IRQ_NBR   DMA2_TX_IRQ_NBR
 
#define SER2_DMA_RX_IRQ_NBR   DMA3_RX_IRQ_NBR
 
#define DMA4_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma4)
 
#define DMA5_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma5)
 
#define SER3_DMA_TX_IRQ_NBR   DMA4_TX_IRQ_NBR
 
#define SER3_DMA_RX_IRQ_NBR   DMA5_RX_IRQ_NBR
 
#define DMA6_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma6)
 
#define DMA7_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma7)
 
#define SER0_DMA_TX_IRQ_NBR   DMA6_TX_IRQ_NBR
 
#define SER0_DMA_RX_IRQ_NBR   DMA7_RX_IRQ_NBR
 
#define MEM2MEM_DMA_TX_IRQ_NBR   DMA6_TX_IRQ_NBR
 
#define MEM2MEM_DMA_RX_IRQ_NBR   DMA7_RX_IRQ_NBR
 
#define DMA8_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma8)
 
#define DMA9_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma9)
 
#define SER1_DMA_TX_IRQ_NBR   DMA8_TX_IRQ_NBR
 
#define SER1_DMA_RX_IRQ_NBR   DMA9_RX_IRQ_NBR
 
#define USB_DMA_TX_IRQ_NBR   DMA8_TX_IRQ_NBR
 
#define USB_DMA_RX_IRQ_NBR   DMA9_RX_IRQ_NBR
 
#define USB_HC_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, usb)
 
#define __STR(x)   #x
 
#define STR(x)   __STR(x)
 
#define SAVE_ALL
 
#define BLOCK_IRQ(mask, nr)
 
#define UNBLOCK_IRQ(mask)
 
#define IRQ_NAME2(nr)   nr##_interrupt(void)
 
#define IRQ_NAME(nr)   IRQ_NAME2(IRQ##nr)
 
#define sIRQ_NAME(nr)   IRQ_NAME2(sIRQ##nr)
 
#define BAD_IRQ_NAME(nr)   IRQ_NAME2(bad_IRQ##nr)
 
#define BUILD_IRQ(nr, mask)
 
#define BUILD_TIMER_IRQ(nr, mask)
 

Typedefs

typedef void(* irqvectptr )(void)
 

Functions

void set_int_vector (int n, irqvectptr addr)
 
void set_break_vector (int n, irqvectptr addr)
 

Variables

struct etrax_interrupt_vectoretrax_irv
 

Macro Definition Documentation

#define __STR (   x)    #x

Definition at line 80 of file irq.h.

#define BAD_IRQ_NAME (   nr)    IRQ_NAME2(bad_IRQ##nr)

Definition at line 110 of file irq.h.

#define BLOCK_IRQ (   mask,
  nr 
)
Value:
"move.d " #mask ",$r0\n\t" \
"move.d $r0,[0xb00000d8]\n\t"

Definition at line 99 of file irq.h.

#define BUILD_IRQ (   nr,
  mask 
)
Value:
void IRQ_NAME(nr); \
__asm__ ( \
".text\n\t" \
"IRQ" #nr "_interrupt:\n\t" \
BLOCK_IRQ(mask,nr) /* this must be done to prevent irq loops when we ei later */ \
"moveq "#nr",$r10\n\t" \
"move.d $sp,$r11\n\t" \
"jsr do_IRQ\n\t" /* irq.c, r10 and r11 are arguments */ \
"moveq 0,$r9\n\t" /* make ret_from_intr realise we came from an irq */ \
"jump ret_from_intr\n\t");

Definition at line 120 of file irq.h.

#define BUILD_TIMER_IRQ (   nr,
  mask 
)
Value:
void IRQ_NAME(nr); \
__asm__ ( \
".text\n\t" \
"IRQ" #nr "_interrupt:\n\t" \
"moveq "#nr",$r10\n\t" \
"move.d $sp,$r11\n\t" \
"jsr do_IRQ\n\t" /* irq.c, r10 and r11 are arguments */ \
"moveq 0,$r9\n\t" /* make ret_from_intr realise we came from an irq */ \
"jump ret_from_intr\n\t");

Definition at line 149 of file irq.h.

#define DMA0_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma0)

Definition at line 32 of file irq.h.

#define DMA1_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma1)

Definition at line 33 of file irq.h.

#define DMA2_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma2)

Definition at line 38 of file irq.h.

#define DMA3_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma3)

Definition at line 39 of file irq.h.

#define DMA4_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma4)

Definition at line 44 of file irq.h.

#define DMA5_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma5)

Definition at line 45 of file irq.h.

#define DMA6_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma6)

Definition at line 50 of file irq.h.

#define DMA7_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma7)

Definition at line 51 of file irq.h.

#define DMA8_TX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma8)

Definition at line 58 of file irq.h.

#define DMA9_RX_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, dma9)

Definition at line 59 of file irq.h.

#define EXTDMA0_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, ext_dma0)

Definition at line 27 of file irq.h.

#define EXTDMA1_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, ext_dma1)

Definition at line 28 of file irq.h.

#define FIRST_IRQ   0

Definition at line 14 of file irq.h.

#define IRQ_NAME (   nr)    IRQ_NAME2(IRQ##nr)

Definition at line 108 of file irq.h.

#define IRQ_NAME2 (   nr)    nr##_interrupt(void)

Definition at line 107 of file irq.h.

#define MEM2MEM_DMA_RX_IRQ_NBR   DMA7_RX_IRQ_NBR

Definition at line 55 of file irq.h.

#define MEM2MEM_DMA_TX_IRQ_NBR   DMA6_TX_IRQ_NBR

Definition at line 54 of file irq.h.

#define NETWORK_DMA_RX_IRQ_NBR   DMA1_RX_IRQ_NBR

Definition at line 35 of file irq.h.

#define NETWORK_DMA_TX_IRQ_NBR   DMA0_TX_IRQ_NBR

Definition at line 34 of file irq.h.

#define NETWORK_STATUS_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, network) /* 6 */

Definition at line 22 of file irq.h.

#define NMI_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, nmi) /* 1 */

Definition at line 17 of file irq.h.

#define NR_IRQS   32

Definition at line 10 of file irq.h.

#define PA_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, pa) /* 11 */

Definition at line 25 of file irq.h.

#define SAVE_ALL
Value:
"move $irp,[$sp=$sp-16]\n\t" /* push instruction pointer and fake SBFS struct */ \
"push $srp\n\t" /* push subroutine return pointer */ \
"push $dccr\n\t" /* push condition codes */ \
"push $mof\n\t" /* push multiply overflow reg */ \
"di\n\t" /* need to disable irq's at this point */\
"subq 14*4,$sp\n\t" /* make room for r0-r13 */ \
"movem $r13,[$sp]\n\t" /* push the r0-r13 registers */ \
"push $r10\n\t" /* push orig_r10 */ \
"clear.d [$sp=$sp-4]\n\t" /* frametype - this is a normal stackframe */

Definition at line 85 of file irq.h.

#define SER0_DMA_RX_IRQ_NBR   DMA7_RX_IRQ_NBR

Definition at line 53 of file irq.h.

#define SER0_DMA_TX_IRQ_NBR   DMA6_TX_IRQ_NBR

Definition at line 52 of file irq.h.

#define SER1_DMA_RX_IRQ_NBR   DMA9_RX_IRQ_NBR

Definition at line 61 of file irq.h.

#define SER1_DMA_TX_IRQ_NBR   DMA8_TX_IRQ_NBR

Definition at line 60 of file irq.h.

#define SER2_DMA_RX_IRQ_NBR   DMA3_RX_IRQ_NBR

Definition at line 41 of file irq.h.

#define SER2_DMA_TX_IRQ_NBR   DMA2_TX_IRQ_NBR

Definition at line 40 of file irq.h.

#define SER3_DMA_RX_IRQ_NBR   DMA5_RX_IRQ_NBR

Definition at line 47 of file irq.h.

#define SER3_DMA_TX_IRQ_NBR   DMA4_TX_IRQ_NBR

Definition at line 46 of file irq.h.

#define SERIAL_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, serial) /* 8 */

Definition at line 24 of file irq.h.

#define sIRQ_NAME (   nr)    IRQ_NAME2(sIRQ##nr)

Definition at line 109 of file irq.h.

#define SOME_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, some) /* 0 ? */

Definition at line 16 of file irq.h.

#define STR (   x)    __STR(x)

Definition at line 81 of file irq.h.

#define TIMER0_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, timer0) /* 2 */

Definition at line 18 of file irq.h.

#define TIMER1_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, timer1) /* 3 */

Definition at line 19 of file irq.h.

#define UNBLOCK_IRQ (   mask)
Value:
"move.d " #mask ",$r0\n\t" \
"move.d $r0,[0xb00000dc]\n\t"

Definition at line 103 of file irq.h.

#define USB_DMA_RX_IRQ_NBR   DMA9_RX_IRQ_NBR

Definition at line 63 of file irq.h.

#define USB_DMA_TX_IRQ_NBR   DMA8_TX_IRQ_NBR

Definition at line 62 of file irq.h.

#define USB_HC_IRQ_NBR   IO_BITNR(R_VECT_MASK_RD, usb)

Definition at line 66 of file irq.h.

Typedef Documentation

typedef void(* irqvectptr)(void)

Definition at line 70 of file irq.h.

Function Documentation

void set_break_vector ( int  n,
irqvectptr  addr 
)

Definition at line 43 of file irq.c.

void set_int_vector ( int  n,
irqvectptr  addr 
)

Definition at line 31 of file irq.c.

Variable Documentation