函数逻辑报告

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:26
Last Modify:2020-03-16 21:24:45 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Find a specific PCI IRQ entry.* Not an __init, possibly needed by modules

函数原型:int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)

返回类型:int

参数:

类型参数名称
intbus
intslot
intpin
1150  best_ioapic等于负1, best_idx等于负1
1152  Define the default level of output to be very little* This can be turned up by using apic=verbose for more* information and apic=debug for _lots_ of information.* apic_verbosity is defined in apic.c(APIC_DEBUG, "querying PCI -> IRQ mapping bus:%d, slot:%d, pin:%d.\n", bus, slot, pin)
1155  如果st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from
1156  Define the default level of output to be very little* This can be turned up by using apic=verbose for more* information and apic=debug for _lots_ of information.* apic_verbosity is defined in apic.c(APIC_VERBOSE, "PCI BIOS passed nonexistent PCI bus %d!\n", bus)
1158  返回:负1
1161 i小于# of MP IRQ source entries 循环
1162  lbus等于srcbus
1163  found等于0
1165  如果bus不等于lbusirqtype不等于mp_INTslot不等于srcbusirq右移2位按位与0x1f的值则继续下一循环
1169  for_each_ioapic(ioapic_idx)
1170  如果mpc_ioapic_id(ioapic_idx)恒等于dstapicdstapic恒等于MP_APIC_ALL
1172  found等于1
1173  退出
1175  如果非found则继续下一循环
1179  irq等于pin_2_irq(i, ioapic_idx, dstirq, 0)
1180  如果irq大于0且非IO_APIC_IRQ(irq)则继续下一循环
1183  如果pin恒等于srcbusirq按位与3的值则
1184  best_idx等于i
1185  best_ioapic等于ioapic_idx
1186  转到:out
1193  如果best_idx小于0则
1194  best_idx等于i
1195  best_ioapic等于ioapic_idx
1198  如果best_idx小于0则返回:负1
1201  out :
1202  返回:pin_2_irq(best_idx, best_ioapic, dstirq, IOAPIC_MAP_ALLOC)