Linux内核中断模块之中断描述符

 

Linux 内核中中断描述符,即每个irq对应一个中断描述符。 /*  * Core internal functions to deal with irq descriptors  */ struct irq_desc {  struct irq_common_data irq_common_data;  struct irq_data  irq_data;  unsigned int __percpu *kstat_irqs;  irq_flow_handler_t handle_irq; #ifdef CONFIG_IRQ_PREFLOW_FASTEOI  irq_preflow_handler_t preflow_handler; #endif  struct irqaction *action; /* IRQ action list */  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;  int   threads_handled_last;  raw_spinlock_t  lock;  struct cpumask  *percpu_enabled;  const struct cpumask *percpu_affinity; #ifdef CONFIG_SMP  const struct cpumask *affinity_hint;  struct irq_affinity_notify *affinity_notify; #ifdef CONFIG_GENERIC_PENDING_IRQ  cpumask_var_t  pending_mask; #endif #endif  unsigned long  threads_oneshot;  atomic_t  threads_active;  wait_queue_head_t       wait_for_threads; #ifdef 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  struct proc_dir_entry *dir; #endif #ifdef CONFIG_SPARSE_IRQ  struct rcu_head  rcu;  struct kobject  kobj; #endif  int   parent_irq;  struct module  *owner;  const char  *name; } ____cacheline_internodealigned_in_smp;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值