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  |