函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\cpu\mtrr\generic.c Create Date:2022-07-27 09:06:30
Last Modify:2022-05-18 17:45:43 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Since we are disabling the cache don't allow any interrupts,* they would run extremely slow and would only increase the pain.* The caller must ensure that local interrupts are disabled and* are reenabled after post_set() has been called.

函数原型:static void prepare_set(void)__acquires(set_atomicity_lock)

返回类型:void

参数:

741  raw_spin_lock( & set_atomicity_lock)
744  cr0等于read_cr0()按位或X86_CR0_CD
745  write_cr0(cr0)
753  如果非static_cpu_has("ss" CPU self snoop )则wbinvd()
757  如果boot_cpu_has(Page Global Enable )则
758  cr4等于__read_cr4()
759  __write_cr4(cr4 & ~X86_CR4_PGE)
763  count_vm_tlb_event(NR_TLB_LOCAL_FLUSH_ALL)
764  __flush_tlb()
767  Access to machine-specific registers (available on 586 and better only)* Note: the rd* operations modify the parameters directly (without using* pointer indirection), this allows gcc to optimize better(MSR_MTRRdefType, deftype_lo, deftype_hi)
770  Doesn't attempt to pass an error out to MTRR users* because it's quite complicated in some cases and probably not* worth it because the best error handling is to ignore it.
773  如果非static_cpu_has("ss" CPU self snoop )则wbinvd()
调用者
名称描述
mtrr_bp_pat_initPAT setup for BP. We need to go through sync steps here
generic_set_all
generic_set_mtrrgeneric_set_mtrr - set variable MTRR register on the local CPU.*@reg: The register to set.*@base: The base address of the region.*@size: The size of the region. If this is 0 the region is disabled.*@type: The type of the region.* Returns nothing.
cyrix_set_arr
cyrix_set_all