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 |