函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\include\asm\futex.h Create Date:2022-07-27 11:53:19
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:arch_futex_atomic_op_inuser

函数原型:static inline int arch_futex_atomic_op_inuser(int op, int oparg, int *oval, unsigned int __user *uaddr)

返回类型:int

参数:

类型参数名称
intop
intoparg
int *oval
unsigned int __user *uaddr
48  oldval等于0
50  These routines enable/disable the pagefault handler. If disabled, it will* not take any locks and go straight to the fixup table.* User access methods will not sleep when called from a pagefault_disabled()* environment.
53  :op恒等于(int *)UADDR2 = OPARG;
54  __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg)
55  退出
56  :op恒等于(int *)UADDR2 += OPARG;
57  __futex_atomic_op1(LOCK_PREFIX"xaddl %0, %2", ret, oldval, uaddr, oparg)
59  退出
60  :op恒等于(int *)UADDR2 |= OPARG;
61  __futex_atomic_op2("orl %4, %3", ret, oldval, uaddr, oparg)
62  退出
63  :op恒等于(int *)UADDR2 &= ~OPARG;
64  __futex_atomic_op2("andl %4, %3", ret, oldval, uaddr, ~oparg)
65  退出
66  :op恒等于(int *)UADDR2 ^= OPARG;
67  __futex_atomic_op2("xorl %4, %3", ret, oldval, uaddr, oparg)
68  退出
69  默认
70  ret等于负ENOSYS
73  pagefault_enable()
75  如果非retoval等于oldval
78  返回:ret
调用者
名称描述
futex_atomic_op_inuser