函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\aperture_64.c Create Date:2022-07-27 09:52:34
Last Modify:2020-03-17 10:38:51 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:gart_iommu_hole_init

函数原型:int __init gart_iommu_hole_init(void)

返回类型:int

参数:

389  agp_aper_base等于0, agp_aper_order等于0
390  aper_alloc等于0, aper_order等于0, last_aper_order等于0
391  last_aper_base等于0
392  valid_agp等于0
395  如果非amd_gart_present()则返回:负ENODEV
398  如果gart_iommu_aperture_disabled或非fix_aperture或非early_pci_allowed()则返回:负ENODEV
402  打印信息("Checking aperture...\n")
404  如果非fallback_aper_forceagp_aper_base等于Look for an AGP bridge
407  fix等于0
408  node等于0
409 i小于dev_limit循环
414  bus等于bus
415  dev_base等于dev_base
416  dev_limit等于dev_limit
418 slot小于dev_limit循环
423  gart_iommu_aperture等于1
438  aper_order等于ctl右移1位按位与7
439  aper_size等于32乘1024乘1024左移aper_order
441  aper_base左移等于25位
443  打印信息("Node %d: aperture [bus addr %#010Lx-%#010Lx] (%uMB)\n", node, aper_base, aper_base + aper_size - 1, aper_size >> 20)
446  node自加
448  如果非aperture_valid(aper_base, aper_size, 64 << 20)则
456  打印错误信息("you are using iommu with agp, but GART size is less than 64MB\n")
457  打印错误信息("please increase GART size in your BIOS setup\n")
458  打印错误信息("if BIOS doesn't have that option, contact your HW vendor!\n")
459  printed_gart_size_msg等于1
461  否则
462  fix等于1
463  转到:out
469  fix等于1
470  转到:out
477  out :
478  如果非fix且非fallback_aper_force
479  如果last_aper_base
487  返回:1
489  返回:0
492  如果非fallback_aper_force
493  aper_alloc等于agp_aper_base
494  aper_order等于agp_aper_order
497  如果aper_alloc则否则如果非no_iommuduplicated to the one in bootmem.h 大于4GB broken PCI/AGP hardware bus master zone force_iommuvalid_agpfallback_aper_force
503  打印信息("Your BIOS doesn't leave an aperture memory hole\n")
504  打印信息("Please enable the IOMMU option in the BIOS setup\n")
505  打印信息("This costs you %dMB of RAM\n", 32 << fallback_aper_order)
508  aper_order等于fallback_aper_order
509  aper_alloc等于This code runs before the PCI subsystem is initialized, so justaccess the northbridge directly.
510  如果非aper_alloc
521  否则
522  返回:0
531  exclude_from_core(aper_alloc, aper_order)
534 i小于dev_limit循环
541  ctl等于aper_order左移1位
543  bus等于bus
544  dev_base等于dev_base
545  dev_limit等于dev_limit
546 slot小于dev_limit循环
555  set_up_gart_resume(aper_order, aper_alloc)
557  返回:1