更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
los_tlb_v6.h 文件参考

浏览源代码.

函数

STATIC INLINE VOID OsArmInvalidateTlbBarrier (VOID)
 
STATIC INLINE VOID OsArmInvalidateTlbMvaNoBarrier (VADDR_T va)
 
STATIC INLINE VOID OsArmInvalidateTlbMvaRangeNoBarrier (VADDR_T start, UINT32 count)
 
STATIC INLINE VOID OsCleanTLB (VOID)
 

函数说明

◆ OsArmInvalidateTlbBarrier()

STATIC INLINE VOID OsArmInvalidateTlbBarrier ( VOID  )

在文件 los_tlb_v6.h48 行定义.

49{
50#ifdef LOSCFG_KERNEL_SMP
52#else
54#endif
55 DSB;
56 ISB;
57}
STATIC INLINE VOID OsArmWriteBpiallis(UINT32 val)
Definition: arm.h:475
STATIC INLINE VOID OsArmWriteBpiall(UINT32 val)
Definition: arm.h:449
函数调用图:
这是这个函数的调用关系图:

◆ OsArmInvalidateTlbMvaNoBarrier()

STATIC INLINE VOID OsArmInvalidateTlbMvaNoBarrier ( VADDR_T  va)

在文件 los_tlb_v6.h59 行定义.

60{
61#ifdef LOSCFG_KERNEL_SMP
62 OsArmWriteTlbimvaais(va & 0xfffff000);
63#else
64 OsArmWriteTlbimvaa(va & 0xfffff000);
65#endif
66}
STATIC INLINE VOID OsArmWriteTlbimvaa(UINT32 val)
Definition: arm.h:657
STATIC INLINE VOID OsArmWriteTlbimvaais(UINT32 val)
Definition: arm.h:527
函数调用图:
这是这个函数的调用关系图:

◆ OsArmInvalidateTlbMvaRangeNoBarrier()

STATIC INLINE VOID OsArmInvalidateTlbMvaRangeNoBarrier ( VADDR_T  start,
UINT32  count 
)

在文件 los_tlb_v6.h68 行定义.

69{
70 UINT32 index = 0;
71
72 while (count > 0) {
73 OsArmInvalidateTlbMvaNoBarrier(start + (index << MMU_DESCRIPTOR_L2_SMALL_SHIFT));
74 index++;
75 count--;
76 }
77}
STATIC INLINE VOID OsArmInvalidateTlbMvaNoBarrier(VADDR_T va)
Definition: los_tlb_v6.h:59
unsigned int UINT32
Definition: los_typedef.h:57
函数调用图:
这是这个函数的调用关系图:

◆ OsCleanTLB()

STATIC INLINE VOID OsCleanTLB ( VOID  )

在文件 los_tlb_v6.h79 行定义.

80{
81 UINT32 val = 0;
82 __asm volatile("mcr p15, 0, %0, c8, c7, 0" : : "r"(val));
83}
这是这个函数的调用关系图: