函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:io_apic_get_unique_id

函数原型:static int io_apic_get_unique_id(int ioapic, int apic_id)

返回类型:int

参数:

类型参数名称
intioapic
intapic_id
2457  apic_id_map等于PHYSID_MASK_NONE
2460  i等于0
2471  如果physids_empty(apic_id_map)则ioapic_phys_id_map( & Bitmask of physically existing CPUs:, & apic_id_map)
2474  raw_spin_lock_irqsave( & ioapic_lock, flags)
2475  raw等于io_apic_read(ioapic, 0)
2476  raw_spin_unlock_irqrestore( & ioapic_lock, flags)
2478  如果apic_id大于等于get_physical_broadcast - Get number of physical broadcast IDs
2479  printk(warning conditions "IOAPIC[%d]: Invalid apic_id %d, trying %d\n", ioapic, apic_id, ID)
2481  apic_id等于ID
2488  如果check_apicid_used( & apic_id_map, apic_id)则
2491  如果非check_apicid_used( & apic_id_map, i)则退出
2495  如果i恒等于get_physical_broadcast - Get number of physical broadcast IDspanic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns.
2498  printk(warning conditions "IOAPIC[%d]: apic_id %d already used, trying %d\n", ioapic, apic_id, i)
2501  apic_id等于i
2504  apicid_to_cpu_present(apic_id, & tmp)
2505  physids_or(apic_id_map, apic_id_map, tmp)
2507  如果ID不等于apic_id
2508  ID等于apic_id
2510  raw_spin_lock_irqsave( & ioapic_lock, flags)
2511  io_apic_write(ioapic, 0, raw)
2512  raw等于io_apic_read(ioapic, 0)
2513  raw_spin_unlock_irqrestore( & ioapic_lock, flags)
2516  如果ID不等于apic_id
2517  打印错误信息("IOAPIC[%d]: Unable to change apic_id!\n", ioapic)
2519  返回:负1
2523  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, formational "IOAPIC[%d]: Assigned apic_id %d\n", ioapic, apic_id)
2526  返回:apic_id
调用者
名称描述
io_apic_unique_id