Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\apic\io_apic.c Create Date:2022-07-28 08:29:55
Last Modify:2020-03-16 21:24:45 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:Find a specific PCI IRQ entry.* Not an __init, possibly needed by modules

Proto:int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin)

Type:int

Parameter:

TypeParameterName
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  If st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from Then
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  Return -1
1161  When i < # of MP IRQ source entries cycle
1162  lbus = srcbus
1163  found = 0
1165  If bus != lbus || irqtype != mp_INT || slot != ( srcbusirq >> 2 & 0x1f) Then Continue
1169  for_each_ioapic(ioapic_idx)
1172  found = 1
1173  Break
1175  If Not found Then Continue
1179  irq = pin_2_irq(i, ioapic_idx, dstirq, 0)
1180  If irq > 0 && Not IO_APIC_IRQ(irq) Then Continue
1183  If pin == (srcbusirq & 3) Then
1184  best_idx = i
1186  Go to out
1193  If best_idx < 0 Then
1194  best_idx = i
1198  If best_idx < 0 Then Return -1
1201  out :
1202  Return pin_2_irq(best_idx, best_ioapic, dstirq, IOAPIC_MAP_ALLOC)