| Function report | 
| Source Code: kernel\futex.c | Create Date:2022-07-28 10:54:27 | 
| Last Modify:2020-03-17 15:28:32 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:xup_owner() - Post lock pi_state and corner case management*@uaddr: user address of the futex*@q: futex_q (contains pi_state and access to the rt_mutex)*@locked: if the attempt to take the rt_mutex succeeded (1) or not (0)* After attempting to lock an
Proto:static int fixup_owner(unsigned int __user *uaddr, struct futex_q *q, int locked)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| unsigned int __user * | uaddr | |
| struct futex_q * | q | |
| int | locked | 
| 2628 | ret = 0 | 
| 2630 | If locked Then | 
| 2639 | If owner != current process Then ret = fixup_pi_state_owner(uaddr, q, current process) | 
| 2641 | Go to out | 
| 2652 | If owner == current process Then | 
| 2653 | ret = fixup_pi_state_owner(uaddr, q, NULL) | 
| 2654 | Go to out | 
| 2661 | If rt_mutex_owner( & The PI object:) == current process Then | 
| 2668 | out : | 
| Name | Describe | 
|---|---|
| futex_lock_pi | Userspace tried a 0 -> TID atomic transition of the futex value* and failed. The kernel side here does the whole locking operation:* if there are waiters then it will block as a consequence of relying* on rt-mutexes, it does PI, etc | 
| futex_wait_requeue_pi | ex_wait_requeue_pi() - Wait on uaddr and take uaddr2*@uaddr: the futex we initially wait on (non-pi)*@flags: futex flags (FLAGS_SHARED, FLAGS_CLOCKRT, etc | 
| 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 |