*参照元 [#v1951214]
#backlinks

*説明 [#q59a6ec4]
-パス: [[linux-2.6.33/include/linux/irq.h]]

-FIXME: これは何?
--説明


**参考 [#bb39fc3c]


*実装 [#wf498c29]
 /**
  * struct irq_desc - interrupt descriptor
  * @irq:		interrupt number for this descriptor
  * @timer_rand_state:	pointer to timer rand state struct
  * @kstat_irqs:		irq stats per cpu
  * @irq_2_iommu:	iommu with this irq
  * @handle_irq:		highlevel irq-events handler [if NULL, __do_IRQ()]
  * @chip:		low level interrupt hardware access
  * @msi_desc:		MSI descriptor
  * @handler_data:	per-IRQ data for the irq_chip methods
  * @chip_data:		platform-specific per-chip private data for the chip
  *			methods, to allow shared chip implementations
  * @action:		the irq action chain
  * @status:		status information
  * @depth:		disable-depth, for nested irq_disable() calls
  * @wake_depth:		enable depth, for multiple set_irq_wake() callers
  * @irq_count:		stats field to detect stalled irqs
  * @last_unhandled:	aging timer for unhandled count
  * @irqs_unhandled:	stats field for spurious unhandled interrupts
  * @lock:		locking for SMP
  * @affinity:		IRQ affinity on SMP
  * @node:		node index useful for balancing
  * @pending_mask:	pending rebalanced interrupts
  * @threads_active:	number of irqaction threads currently running
  * @wait_for_threads:	wait queue for sync_irq to wait for threaded handlers
  * @dir:		/proc/irq/ procfs entry
  * @name:		flow handler name for /proc/interrupts output
  */
 struct irq_desc {
 	unsigned int		irq;
 	struct timer_rand_state *timer_rand_state;
-
--[[linux-2.6.33/timer_rand_state]]

 	unsigned int            *kstat_irqs;
 #ifdef CONFIG_INTR_REMAP
-
--[[linux-2.6.33/CONFIG_INTR_REMAP]]

 	struct irq_2_iommu      *irq_2_iommu;
-
--[[linux-2.6.33/irq_2_iommu]]

 #endif
 	irq_flow_handler_t	handle_irq;
-
--[[linux-2.6.33/irq_flow_handler_t]]

 	struct irq_chip		*chip;
-
--[[linux-2.6.33/irq_chip]]

 	struct msi_desc		*msi_desc;
-
--[[linux-2.6.33/msi_desc]]

 	void			*handler_data;
 	void			*chip_data;
 	struct irqaction	*action;	/* IRQ action list */
-
--[[linux-2.6.33/irqaction]]

 	unsigned int		status;		/* IRQ status */
 
 	unsigned int		depth;		/* nested irq disables */
 	unsigned int		wake_depth;	/* nested wake enables */
 	unsigned int		irq_count;	/* For detecting broken IRQs */
 	unsigned long		last_unhandled;	/* Aging timer for unhandled count */
 	unsigned int		irqs_unhandled;
 	raw_spinlock_t		lock;
-
--[[linux-2.6.33/raw_spinlock_t]]

 #ifdef CONFIG_SMP
-
--[[linux-2.6.33/CONFIG_SMP]]

 	cpumask_var_t		affinity;
-
--[[linux-2.6.33/cpumask_var_t]]

 	unsigned int		node;
 #ifdef CONFIG_GENERIC_PENDING_IRQ
-
--[[linux-2.6.33/CONFIG_GENERIC_PENDING_IRQ]]

 	cpumask_var_t		pending_mask;
 #endif
 #endif
 	atomic_t		threads_active;
-
--[[linux-2.6.33/atomic_t]]

 	wait_queue_head_t       wait_for_threads;
-
--[[linux-2.6.33/wait_queue_head_t]]

 #ifdef CONFIG_PROC_FS
-
--[[linux-2.6.33/CONFIG_PROC_FS]]

 	struct proc_dir_entry	*dir;
-
--[[linux-2.6.33/proc_dir_entry]]

 #endif
 	const char		*name;
 } ____cacheline_internodealigned_in_smp;
-
--[[linux-2.6.33/____cacheline_internodealigned_in_smp]]


*コメント [#i27bb3eb]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS