函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:free_p4d_range

函数原型:static inline void free_p4d_range(struct mmu_gather *tlb, pgd_t *pgd, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling)

返回类型:void

参数:

类型参数名称
struct mmu_gather *tlb
pgd_t *pgd
unsigned longaddr
unsigned longend
unsigned longfloor
unsigned longceiling
298  start等于addr
299  p4d等于p4d_offset(pgd, addr)
300  循环
301  next等于p4d_addr_end(addr, end)
302  如果p4d_none_or_clear_bad(p4d)则继续下一循环
304  free_pud_range(tlb, p4d, addr, next, floor, ceiling)
305 p4d自加, addr等于next, addr不等于end循环
307  start与等于PGDIR_MASK
308  如果start小于floor则返回
310  如果ceiling
311  ceiling与等于PGDIR_MASK
312  如果非ceiling则返回
315  如果end减1大于ceiling减1则返回
318  p4d等于p4d_offset(pgd, start)
319  pgd_clear(pgd)
320  p4d_free_tlb(tlb, p4d, start)
调用者
名称描述
free_pgd_rangeThis function frees user-level page tables of a process.