函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:cyrix_set_arr

函数原型:static void cyrix_set_arr(unsigned int reg, unsigned long base, unsigned long size, mtrr_type type)

返回类型:void

参数:

类型参数名称
unsigned intreg
unsigned longbase
unsigned longsize
mtrr_typetype
184  arr等于CX86_ARR_BASEreg左移1位的值加reg
187  如果reg大于等于7则size右移等于6位
190  size与等于0x7fff
191 size循环如果reg小于7则
197  arr_type等于1
198  退出
199  :type恒等于MTRR_TYPE_WRCOMB
200  arr_type等于9
201  退出
202  :type恒等于#define MTRR_TYPE_ 3
203  arr_type等于24
204  退出
205  默认
206  arr_type等于8
207  退出
209  否则
212  arr_type等于0
213  退出
214  :type恒等于MTRR_TYPE_WRCOMB
215  arr_type等于8
216  退出
217  :type恒等于#define MTRR_TYPE_ 3
218  arr_type等于25
219  退出
220  默认
221  arr_type等于9
222  退出
226  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.
228  base左移等于PAGE_SHIFT determines the page size
229  setCx86(arr + 0, ((unsignedchar * ) & base)[3])
230  setCx86(arr + 1, ((unsignedchar * ) & base)[2])
231  setCx86(arr + 2, (((unsignedchar * ) & base)[1]) | arr_size)
232  setCx86(CX86_RCR_BASE + reg, arr_type)
234  post_set()
调用者
名称描述
cyrix_set_all