函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\apic\io_apic.c Create Date:2022-07-27 09:29:22
Last Modify:2020-03-16 21:24:45 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:mp_map_pin_to_irq

函数原型:static int mp_map_pin_to_irq(unsigned int gsi, int idx, int ioapic, int pin, unsigned int flags, struct irq_alloc_info *info)

返回类型:int

参数:

类型参数名称
unsigned intgsi
intidx
intioapic
intpin
unsigned intflags
struct irq_alloc_info *info
1038  bool legacy = false
1041  domain等于mp_ioapic_irqdomain(ioapic)
1043  如果非domain则返回:负ENOSYS
1046  如果idx大于等于0且st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from
1047  irq等于srcbusirq
1048  legacy等于mp_is_legacy_irq(irq)
1051  mutex_lock( & ioapic_mutex)
1052  如果非flags按位与IOAPIC_MAP_ALLOC的值则
1053  如果非legacy
1055  如果irq恒等于0则irq等于负ENOENT
1058  否则
1059  ioapic_copy_alloc_attr( & tmp, info, gsi, ioapic, pin)
1060  如果legacyirq等于Need special handling for ISA IRQs because there may be multiple IOAPIC pins* sharing the same ISA IRQ number and irqdomain only supports 1:1 mapping* between IOAPIC pin and IRQ number. A typical IOAPIC has 24 pins, pin 0-15 are
1063  否则如果irq等于q_find_mapping() - Find a linux irq from a hw irq number.*@domain: domain owning this hardware interrupt*@hwirq: hardware irq number in that domain space恒等于0则irq等于alloc_irq_from_domain(domain, ioapic, gsi, & tmp)
1065  否则如果非mp_check_pin_attr(irq, & tmp)则irq等于负EBUSY
1067  如果irq大于等于0则
1068  data等于irq_get_chip_data(irq)
1069  count自加
1072  mutex_unlock( & ioapic_mutex)
1074  返回:irq
调用者
名称描述
pin_2_irq
mp_map_gsi_to_irq