Function report |
Source Code:mm\memory.c |
Create Date:2022-07-28 14:43:46 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:__follow_pte_pmd
Proto:static int __follow_pte_pmd(struct mm_struct *mm, unsigned long address, struct mmu_notifier_range *range, pte_t **ptepp, pmd_t **pmdpp, spinlock_t **ptlp)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct mm_struct * | mm | |
unsigned long | address | |
struct mmu_notifier_range * | range | |
pte_t ** | ptepp | |
pmd_t ** | pmdpp | |
spinlock_t ** | ptlp |
4295 | p4d = p4d_offset(pgd, address) |
4299 | pud = pud_offset(p4d, address) |
4303 | pmd = pmd_offset(pud, address) |
4304 | VM_BUG_ON(pmd_trans_huge( * pmd)) |
4310 | If range Then |
4311 | mmu_notifier_range_init(range, MMU_NOTIFY_CLEAR, 0, NULL, mm, address & PMD_MASK, (address & PMD_MASK) + PMD_SIZE) |
4321 | spin_unlock( * ptlp) |
4322 | If range Then mmu_notifier_invalidate_range_end(range) |
4326 | If pmd_none( * pmd) || Value for the false possibility is greater at compile time(pmd_bad( * pmd)) Then Go to out |
4329 | If range Then |
4330 | mmu_notifier_range_init(range, MMU_NOTIFY_CLEAR, 0, NULL, mm, address & PAGE_MASK, (address & PAGE_MASK) + PAGE_SIZE) |
4336 | If Not pte_present( * ptep) Then Go to unlock |
4339 | Return 0 |
4340 | unlock : |
4341 | pte_unmap_unlock(ptep, * ptlp) |
4342 | If range Then mmu_notifier_invalidate_range_end(range) |
4344 | out : |
4345 | Return -EINVAL |
Name | Describe |
---|---|
follow_pte | |
follow_pte_pmd |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |