Function report |
Source Code:arch\x86\include\asm\futex.h |
Create Date:2022-07-28 10:53:17 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:arch_futex_atomic_op_inuser
Proto:static inline int arch_futex_atomic_op_inuser(int op, int oparg, int *oval, unsigned int __user *uaddr)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| int | op | |
| int | oparg | |
| int * | oval | |
| unsigned int __user * | uaddr |
| 48 | oldval = 0 |
| 53 | Case op == (int *)UADDR2 = OPARG; |
| 54 | __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg) |
| 55 | Break |
| 56 | Case op == (int *)UADDR2 += OPARG; |
| 57 | __futex_atomic_op1(LOCK_PREFIX"xaddl %0, %2", ret, oldval, uaddr, oparg) |
| 59 | Break |
| 60 | Case op == (int *)UADDR2 |= OPARG; |
| 61 | __futex_atomic_op2("orl %4, %3", ret, oldval, uaddr, oparg) |
| 62 | Break |
| 63 | Case op == (int *)UADDR2 &= ~OPARG; |
| 64 | __futex_atomic_op2("andl %4, %3", ret, oldval, uaddr, ~oparg) |
| 65 | Break |
| 66 | Case op == (int *)UADDR2 ^= OPARG; |
| 67 | __futex_atomic_op2("xorl %4, %3", ret, oldval, uaddr, oparg) |
| 68 | Break |
| 69 | Default |
| 73 | pagefault_enable() |
| 78 | Return ret |
| Name | Describe |
|---|---|
| futex_atomic_op_inuser |
| 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 |