函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:__mmu_interval_notifier_insert

函数原型:static int __mmu_interval_notifier_insert(struct mmu_interval_notifier *mni, struct mm_struct *mm, struct mmu_notifier_mm *mmn_mm, unsigned long start, unsigned long length, const struct mmu_interval_notifier_ops *ops)

返回类型:int

参数:

类型参数名称
struct mmu_interval_notifier *mni
struct mm_struct *mm
struct mmu_notifier_mm *mmn_mm
unsigned longstart
unsigned longlength
const struct mmu_interval_notifier_ops *ops
855  mm等于mm
856  ops等于ops
857  RB_CLEAR_NODE( & rb)
858  Start of interval 等于start
863  如果length恒等于0或For simplicity and code hygiene, the fallback code below insists on* a, b and *d having the same type (similar to the min() and max()* macros), whereas gcc's type-generic overflow checkers accept* different types(start, length - 1, & Last location _in_ interval )则返回:负EOVERFLOW
868  如果WARN_ON(atomic_read( & *@mm_count: The number of references to &struct mm_struct * (@mm_users count as 1). * Use mmgrab()/mmdrop() to modify. When this drops to 0, the * &struct mm_struct is freed.) <= 0)则返回:负EINVAL
872  mmgrab() - Pin a &struct mm_struct
887  加自旋锁
888  如果active_invalidate_ranges
889  如果This is a collision-retry read-side/write-side 'lock', a lot like a* seqcount, however this allows multiple write-sides to hold it at* oncehlist_add_head( & deferred_item, & deferred_list)
892  否则
893  invalidate_seq或等于1
897  invalidate_seq等于invalidate_seq
898  否则
899  WARN_ON(This is a collision-retry read-side/write-side 'lock', a lot like a* seqcount, however this allows multiple write-sides to hold it at* once)
906  invalidate_seq等于invalidate_seq减1
907  interval_tree_insert( & interval_tree, & itree)
909  自旋锁解锁
910  返回:0
调用者
名称描述
mmu_interval_notifier_insertmmu_interval_notifier_insert - Insert an interval notifier*@mni: Interval notifier to register*@start: Starting virtual address to monitor*@length: Length of the range to monitor*@mm : mm_struct to attach to* This function subscribes the interval notifier
mmu_interval_notifier_insert_locked