Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\cpu\mtrr\cyrix.c Create Date:2022-07-28 08:06:56
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:cyrix_get_arr

Proto:static void cyrix_get_arr(unsigned int reg, unsigned long *base, unsigned long *size, mtrr_type *type)

Type:void

Parameter:

TypeParameterName
unsigned intreg
unsigned long *base
unsigned long *size
mtrr_type *type
20  arr = CX86_ARR_BASE + (reg << 1) + reg
22  local_irq_save(flags)
24  ccr3 = NSC/Cyrix CPU indexed register access. Must be inlined instead of* macros to ensure correct access ordering* Access order is always 0x22 (=offset), 0x23 (=value)
25  setCx86(CX86_CCR3, (ccr3 & 0x0f) | 0x10)
26  ) = NSC/Cyrix CPU indexed register access. Must be inlined instead of* macros to ensure correct access ordering* Access order is always 0x22 (=offset), 0x23 (=value)
27  ) = NSC/Cyrix CPU indexed register access. Must be inlined instead of* macros to ensure correct access ordering* Access order is always 0x22 (=offset), 0x23 (=value)
28  ) = NSC/Cyrix CPU indexed register access. Must be inlined instead of* macros to ensure correct access ordering* Access order is always 0x22 (=offset), 0x23 (=value)
29  rcr = NSC/Cyrix CPU indexed register access. Must be inlined instead of* macros to ensure correct access ordering* Access order is always 0x22 (=offset), 0x23 (=value)
30  setCx86(CX86_CCR3, ccr3)
32  local_irq_restore(flags)
34  shift = ) & 0x0f
35  base >>= PAGE_SHIFT determines the page size
41  If shift Then size = If reg < 7 Then 0x1UL Else 0x40UL << shift - 1
43  Else size = 0
47  If reg < 7 Then
49  Case rcr == 1
51  Break
52  Case rcr == 8
54  Break
55  Case rcr == 9
57  Break
58  Case rcr == 24
59  Default
61  Break
63  Else
65  Case rcr == 0
67  Break
68  Case rcr == 8
70  Break
71  Case rcr == 9
73  Break
74  Case rcr == 25
75  Default
77  Break
Caller
NameDescribe
cyrix_get_free_regionyrix_get_free_region - get a free ARR.*@base: the starting (base) address of the region.*@size: the size (in bytes) of the region.* Returns: the index of the region on success, else -1 on error.