函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:uv_acpi_madt_oem_check

函数原型:static int __init uv_acpi_madt_oem_check(char *_oem_id, char *_oem_table_id)

返回类型:int

参数:

类型参数名称
char *_oem_id
char *_oem_table_id
269  uv_stringify(Unpack OEM/TABLE ID's to be NULL terminated strings 的长度, Unpack OEM/TABLE ID's to be NULL terminated strings , _oem_id)
270  uv_stringify(oem_table_id的长度, oem_table_id, _oem_table_id)
272  如果字符串指定长度比较不等于0则
273  如果字符串指定长度比较不等于0则返回:0
277  如果字符串指定长度比较恒等于0则uv_hubless_system等于0x11
281  否则uv_hubless_system等于0x9
284  打印信息("UV: OEM IDs %s/%s, HUBLESS(0x%x)\n", Unpack OEM/TABLE ID's to be NULL terminated strings , oem_table_id, uv_hubless_system)
287  返回:0
290  如果numa_off
291  打印错误信息("UV: NUMA is off, disabling UV support\n")
292  返回:0
296  ({
296  0
296  ({
296  循环
296  const void * __vpp_verify = NULL
296  当0循环
296  })
296  })->p_uv_hub_info = & uv_hub_info_node0
305  hub_revision等于如果如果如果如果非字符串指定长度比较UV4_HUB_REVISION_BASE否则非字符串指定长度比较UV3_HUB_REVISION_BASE否则非字符串比较UV2_HUB_REVISION_BASE否则非字符串比较HUB revision ranges for each UV HUB architecture.* This is a software convention - NOT the hardware revision numbers in* the hub chip.否则0
311  如果hub_revision恒等于0则转到:badbios
315  :hub_revision恒等于UV4_HUB_REVISION_BASE
316  uv_hubbed_system等于0x11
317  退出
319  :hub_revision恒等于UV3_HUB_REVISION_BASE
320  uv_hubbed_system等于0x9
321  退出
323  :hub_revision恒等于UV2_HUB_REVISION_BASE
324  uv_hubbed_system等于0x5
325  退出
327  :hub_revision恒等于HUB revision ranges for each UV HUB architecture.* This is a software convention - NOT the hardware revision numbers in* the hub chip.
328  uv_hubbed_system等于0x3
329  退出
332  pnodeid等于early_get_pnodeid()
333  early_get_apic_socketid_shift()
335  is_untracked_pat_range等于uv_is_untracked_pat_range
336  nmi_init等于uv_nmi_init
338  如果非字符串比较
340  uv_system_type = UV_X2APIC
341  uv_apic等于0
343  否则如果非字符串比较
345  uv_system_type = UV_NON_UNIQUE_APIC
346  warm_reset等于0
347  __this_cpu_write(x2apic_extra_bits, pnodeid << pnode_shift)
348  Add an extra bit as dictated by bios to the destination apicid of* interrupts potentially passing through the UV HUB. This prevents* a deadlock between interrupts and IO port operations.
349  uv_apic等于1
351  否则如果非字符串比较
353  uv_system_type = UV_LEGACY_APIC
354  uv_apic等于0
356  否则
357  转到:badbios
360  打印信息("UV: OEM IDs %s/%s, System/HUB Types %d/%d, uv_apic %d\n", Unpack OEM/TABLE ID's to be NULL terminated strings , oem_table_id, uv_system_type, uv_min_hub_revision_id, uv_apic)
361  uv_tsc_check_sync()
363  返回:uv_apic
365  badbios :
366  打印错误信息("UV: OEM_ID:%s OEM_TABLE_ID:%s\n", Unpack OEM/TABLE ID's to be NULL terminated strings , oem_table_id)
367  打印错误信息("Current BIOS not supported, update kernel and/or BIOS\n")
368  BUG()