函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:mm\memory.c Create Date:2022-07-27 16:06:17
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:free_pmd_range

函数原型:static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling)

返回类型:void

参数:

类型参数名称
struct mmu_gather *tlb
pud_t *pud
unsigned longaddr
unsigned longend
unsigned longfloor
unsigned longceiling
230  start等于addr
231  pmd等于pmd_offset(pud, addr)
232  循环
233  next等于pmd_addr_end(addr, end)
234  如果pmd_none_or_clear_bad(pmd)则继续下一循环
236  Note: this doesn't free the actual pages themselves. That* has been handled earlier when unmapping all the memory regions.
237 pmd自加, addr等于next, addr不等于end循环
239  start与等于PUD_MASK
240  如果start小于floor则返回
242  如果ceiling
243  ceiling与等于PUD_MASK
244  如果非ceiling则返回
247  如果end减1大于ceiling减1则返回
250  pmd等于pmd_offset(pud, start)
251  pud_clear(pud)
252  pmd_free_tlb(tlb, pmd, start)
253  mm_dec_nr_pmds(mm)
调用者
名称描述
free_pud_range