irq.h
来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 149 行
H
149 行
#ifndef __ASM_SH64_IRQ_H#define __ASM_SH64_IRQ_H/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * include/asm-sh64/irq.h * * Copyright (C) 2000, 2001 Paolo Alberelli * */#include <linux/config.h>/* * Encoded IRQs are not considered worth to be supported. * Main reason is that there's no per-encoded-interrupt * enable/disable mechanism (as there was in SH3/4). * An all enabled/all disabled is worth only if there's * a cascaded IC to disable/enable/ack on. Until such * IC is available there's no such support. * * Presumably Encoded IRQs may use extra IRQs beyond 64, * below. Some logic must be added to cope with IRQ_IRL? * in an exclusive way. * * Priorities are set at Platform level, when IRQ_IRL0-3 * are set to 0 Encoding is allowed. Otherwise it's not * allowed. *//* Independent IRQs */#define IRQ_IRL0 0#define IRQ_IRL1 1#define IRQ_IRL2 2#define IRQ_IRL3 3#define IRQ_INTA 4#define IRQ_INTB 5#define IRQ_INTC 6#define IRQ_INTD 7#define IRQ_SERR 12#define IRQ_ERR 13#define IRQ_PWR3 14#define IRQ_PWR2 15#define IRQ_PWR1 16#define IRQ_PWR0 17#define IRQ_DMTE0 18#define IRQ_DMTE1 19#define IRQ_DMTE2 20#define IRQ_DMTE3 21#define IRQ_DAERR 22#define IRQ_TUNI0 32#define IRQ_TUNI1 33#define IRQ_TUNI2 34#define IRQ_TICPI2 35#define IRQ_ATI 36#define IRQ_PRI 37#define IRQ_CUI 38#define IRQ_ERI 39#define IRQ_RXI 40#define IRQ_BRI 41#define IRQ_TXI 42#define IRQ_ITI 63#define NR_INTC_IRQS 64#ifdef CONFIG_SH_CAYMAN#define NR_EXT_IRQS 32#define START_EXT_IRQS 64/* PCI bus 2 uses encoded external interrupts on the Cayman board */#define IRQ_P2INTA (START_EXT_IRQS + (3*8) + 0)#define IRQ_P2INTB (START_EXT_IRQS + (3*8) + 1)#define IRQ_P2INTC (START_EXT_IRQS + (3*8) + 2)#define IRQ_P2INTD (START_EXT_IRQS + (3*8) + 3)#define START_EXT_IRQS 64#define I8042_KBD_IRQ (START_EXT_IRQS + 2)#define I8042_AUX_IRQ (START_EXT_IRQS + 6)#else#define NR_EXT_IRQS 0#endif#define NR_IRQS (NR_INTC_IRQS+NR_EXT_IRQS)/* Default IRQs, fixed */#define TIMER_IRQ IRQ_TUNI0#define RTC_IRQ IRQ_CUI/* Default Priorities, Platform may choose differently */#define NO_PRIORITY 0 /* Disabled */#define TIMER_PRIORITY 2#define RTC_PRIORITY TIMER_PRIORITY#define SCIF_PRIORITY 3#define INTD_PRIORITY 3#define IRL3_PRIORITY 4#define INTC_PRIORITY 6#define IRL2_PRIORITY 7#define INTB_PRIORITY 9#define IRL1_PRIORITY 10#define INTA_PRIORITY 12#define IRL0_PRIORITY 13#define TOP_PRIORITY 15extern void disable_irq(unsigned int);extern void disable_irq_nosync(unsigned int);extern void enable_irq(unsigned int);extern int intc_evt_to_irq[(0xE20/0x20)+1];int intc_irq_describe(char* p, int irq);#define irq_canonicalize(irq) (irq)#ifdef CONFIG_SH_CAYMANint cayman_irq_demux(int evt);int cayman_irq_describe(char* p, int irq);#define irq_demux(x) cayman_irq_demux(x)#define irq_describe(p, x) cayman_irq_describe(p, x)#else#define irq_demux(x) (intc_evt_to_irq[x])#define irq_describe(p, x) intc_irq_describe(p, x)#endif/* * Function for "on chip support modules". *//* * SH-5 supports Priority based interrupts only. * Interrupt priorities are defined at platform level. */#define set_ipr_data(a, b, c, d)#define make_ipr_irq(a)#define make_imask_irq(a)#endif /* __ASM_SH64_IRQ_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?