函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\apic\vector.c Create Date:2022-07-27 09:28:02
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:x86_vector_alloc_irqs

函数原型:static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq, unsigned int nr_irqs, void *arg)

返回类型:int

参数:

类型参数名称
struct irq_domain *domain
unsigned intvirq
unsigned intnr_irqs
void *arg
531  info等于arg
536  如果disable_apic则返回:负ENXIO
540  如果flags按位与X86_IRQ_ALLOC_CONTIGUOUS_VECTORSnr_irqs大于1则返回:负ENOSYS
543 i小于nr_irqs循环
544  irqd等于q_domain_get_irq_data - Get irq_data associated with @virq and @domain*@domain: domain to match*@virq: IRQ number to get irq_data
545  BUG_ON(!irqd)
546  node等于irq_data_get_node(irqd)
547  WARN_ON_ONCE(和中断控制器相关的私有数据)
548  apicd等于alloc_apic_chip_data(node)
549  如果非apicd
550  err等于负ENOMEM
551  转到:error
554  irq等于virqi
555  中断控制器信息等于lapic_controller
556  和中断控制器相关的私有数据等于apicd
557  硬件中断号等于virqi
558  Must only be called of irqchip.irq_set_affinity() or low level* hieararchy domain allocation functions.
566  如果flags按位与X86_IRQ_ALLOC_LEGACY
567  如果非vector_configure_legacy(virq + i, irqd, apicd)则继续下一循环
571  err等于assign_irq_vector_policy(irqd, info)
572  trace_vector_setup(virq + i, TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., err)
573  如果err
576  转到:error
580  返回:0
582  error :
583  x86_vector_free_irqs(domain, virq, i)
584  返回:err