函数逻辑报告 |
Source Code:arch\x86\kernel\cpu\mtrr\mtrr.c |
Create Date:2022-07-27 09:05:31 |
| Last Modify:2022-05-18 17:35:08 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:mtrr_bp_init - initialize mtrrs on the boot CPU* This needs to be called early; before any of the other CPUs are* initialized (i.e. before smp_init()).
函数原型:void __init mtrr_bp_init(void)
返回类型:void
参数:无
| 695 | phys_addr等于32 |
| 697 | 如果boot_cpu_has(Memory Type Range Registers )则 |
| 698 | mtrr_if等于generic_mtrr_ops |
| 699 | size_or_mask等于SIZE_OR_MASK_BITS(36) |
| 700 | size_and_mask等于0x00f00000 |
| 701 | phys_addr等于36 |
| 708 | 如果CPUID functions returning a single datum大于等于0x80000008则 |
| 709 | phys_addr等于CPUID functions returning a single datum按位与0xff |
| 711 | 如果CPU vendor 恒等于X86_VENDOR_INTEL且CPU family 恒等于0xF且x86_model恒等于0x3且x86_stepping恒等于0x3或x86_stepping恒等于0x4的值则phys_addr等于36 |
| 719 | size_and_mask等于size_or_mask的反按位与0xfffff00000ULL |
| 720 | 否则如果CPU vendor 恒等于X86_VENDOR_CENTAUR且CPU family 恒等于6则 |
| 730 | 否则 |
| 732 | 当:CPU vendor 恒等于X86_VENDOR_AMD |
| 739 | 退出 |
| 740 | 当:CPU vendor 恒等于X86_VENDOR_CENTAUR |
| 747 | 当:CPU vendor 恒等于X86_VENDOR_CYRIX |
| 749 | mtrr_if等于mtrr_ops[X86_VENDOR_CYRIX] |
| 750 | size_or_mask等于SIZE_OR_MASK_BITS(32) |
| 751 | size_and_mask等于0 |
| 753 | 退出 |
| 754 | 默认 |
| 755 | 退出 |
| 759 | 如果mtrr_if则 |
| 760 | __mtrr_enabled = true |
| 762 | init_table() |
| 763 | 如果use_intel()则 |
| 765 | __mtrr_enabled等于get_mtrr_state() |
| 767 | 如果mtrr_enabled()则mtrr_bp_pat_init() |
| 770 | 如果mtrr_cleanup(phys_addr)则 |
| 771 | changed_by_mtrr_cleanup等于1 |
| 772 | set_all() |
| 777 | 如果非mtrr_enabled()则 |
| 778 | 打印信息("Disabled\n") |
| 785 | pat_disable("MTRRs disabled, skipping PAT initialization too.") |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |