*参照元 [#cfbef5c9]
#backlinks

*説明 [#o484c6bd]
-パス: [[linux-4.4.1/include/linux/irqdesc.h]]

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


**参考 [#gb51c3e5]


*実装 [#ubdfb22d]
 /**
  * struct irq_desc - interrupt descriptor
  * @irq_common_data:    per irq and chip data passed down to chip functions
  * @kstat_irqs:         irq stats per cpu
  * @handle_irq:         highlevel irq-events handler
  * @preflow_handler:    handler called before the flow handler (currently used by sparc)
  * @action:             the irq action chain
  * @status:             status information
  * @core_internal_state__do_not_mess_with_it: core internal status information
  * @depth:              disable-depth, for nested irq_disable() calls
  * @wake_depth:         enable depth, for multiple irq_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
  * @threads_handled:    stats field for deferred spurious detection of threaded handlers
  * @threads_handled_last: comparator field for deferred spurious detection of theraded handlers
  * @lock:               locking for SMP
  * @affinity_hint:      hint to user space for preferred irq affinity
  * @affinity_notify:    context for notification of affinity changes
  * @pending_mask:       pending rebalanced interrupts
  * @threads_oneshot:    bitfield to handle shared oneshot threads
  * @threads_active:     number of irqaction threads currently running
  * @wait_for_threads:   wait queue for sync_irq to wait for threaded handlers
  * @nr_actions:         number of installed actions on this descriptor
  * @no_suspend_depth:   number of irqactions on a irq descriptor with
  *                      IRQF_NO_SUSPEND set
  * @force_resume_depth: number of irqactions on a irq descriptor with
  *                      IRQF_FORCE_RESUME set
  * @dir:                /proc/irq/ procfs entry
  * @name:               flow handler name for /proc/interrupts output
  */
 struct irq_desc {
         struct irq_common_data  irq_common_data;
         struct irq_data         irq_data;
-
--[[linux-4.4.1/irq_common_data]]
--[[linux-4.4.1/irq_data]]

         unsigned int __percpu   *kstat_irqs;
         irq_flow_handler_t      handle_irq;
-
--[[linux-4.4.1/irq_flow_handler_t]]

 #ifdef CONFIG_IRQ_PREFLOW_FASTEOI
-
--[[linux-4.4.1/CONFIG_IRQ_PREFLOW_FASTEOI]]

         irq_preflow_handler_t   preflow_handler;
-
--[[linux-4.4.1/irq_preflow_handler_t]]

 #endif
         struct irqaction        *action;        /* IRQ action list */
-
--[[linux-4.4.1/irqaction]]

         unsigned int            status_use_accessors;
         unsigned int            core_internal_state__do_not_mess_with_it;
         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;
         atomic_t                threads_handled;
-
--[[linux-4.4.1/atomic_t]]

         int                     threads_handled_last;
         raw_spinlock_t          lock;
-
--[[linux-4.4.1/raw_spinlock_t]]

         struct cpumask          *percpu_enabled;
-
--[[linux-4.4.1/cpumask]]

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

         const struct cpumask    *affinity_hint;
         struct irq_affinity_notify *affinity_notify;
-
--[[linux-4.4.1/cpumask]]
--[[linux-4.4.1/irq_affinity_notify]]

 #ifdef CONFIG_GENERIC_PENDING_IRQ
-
--[[linux-4.4.1/CONFIG_GENERIC_PENDING_IRQ]]

         cpumask_var_t           pending_mask;
-
--[[linux-4.4.1/cpumask_var_t]]

 #endif
 #endif
         unsigned long           threads_oneshot;
         atomic_t                threads_active;
         wait_queue_head_t       wait_for_threads;
-
--[[linux-4.4.1/wait_queue_head_t]]

 #ifdef CONFIG_PM_SLEEP
-
--[[linux-4.4.1/CONFIG_PM_SLEEP]]

         unsigned int            nr_actions;
         unsigned int            no_suspend_depth;
         unsigned int            cond_suspend_depth;
         unsigned int            force_resume_depth;
 #endif
 #ifdef CONFIG_PROC_FS
-
--[[linux-4.4.1/CONFIG_PROC_FS]]

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

 #endif
         int                     parent_irq;
         struct module           *owner;
-
--[[linux-4.4.1/module]]

         const char              *name;
 } ____cacheline_internodealigned_in_smp;
-
--[[linux-4.4.1/____cacheline_internodealigned_in_smp]]


*コメント [#b4a38b61]


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