mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 12:57:53 +00:00
robust-futex-ABI.txt: standardize document format
Each text file under Documentation follows a different format. Some doesn't even have titles! Change its representation to follow the adopted standard, using ReST markups for it to be parseable by Sphinx: - promote document title; - use :Author: for authorship; - mark literal blocks; - add blank lines. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
This commit is contained in:
parent
317a8455f1
commit
ce3a966931
1 changed files with 9 additions and 5 deletions
|
@ -1,7 +1,9 @@
|
||||||
Started by Paul Jackson <pj@sgi.com>
|
====================
|
||||||
|
|
||||||
The robust futex ABI
|
The robust futex ABI
|
||||||
--------------------
|
====================
|
||||||
|
|
||||||
|
:Author: Started by Paul Jackson <pj@sgi.com>
|
||||||
|
|
||||||
|
|
||||||
Robust_futexes provide a mechanism that is used in addition to normal
|
Robust_futexes provide a mechanism that is used in addition to normal
|
||||||
futexes, for kernel assist of cleanup of held locks on task exit.
|
futexes, for kernel assist of cleanup of held locks on task exit.
|
||||||
|
@ -32,7 +34,7 @@ probably causing deadlock or other such failure of the other threads
|
||||||
waiting on the same locks.
|
waiting on the same locks.
|
||||||
|
|
||||||
A thread that anticipates possibly using robust_futexes should first
|
A thread that anticipates possibly using robust_futexes should first
|
||||||
issue the system call:
|
issue the system call::
|
||||||
|
|
||||||
asmlinkage long
|
asmlinkage long
|
||||||
sys_set_robust_list(struct robust_list_head __user *head, size_t len);
|
sys_set_robust_list(struct robust_list_head __user *head, size_t len);
|
||||||
|
@ -91,7 +93,7 @@ that lock using the futex mechanism.
|
||||||
When a thread has invoked the above system call to indicate it
|
When a thread has invoked the above system call to indicate it
|
||||||
anticipates using robust_futexes, the kernel stores the passed in 'head'
|
anticipates using robust_futexes, the kernel stores the passed in 'head'
|
||||||
pointer for that task. The task may retrieve that value later on by
|
pointer for that task. The task may retrieve that value later on by
|
||||||
using the system call:
|
using the system call::
|
||||||
|
|
||||||
asmlinkage long
|
asmlinkage long
|
||||||
sys_get_robust_list(int pid, struct robust_list_head __user **head_ptr,
|
sys_get_robust_list(int pid, struct robust_list_head __user **head_ptr,
|
||||||
|
@ -135,6 +137,7 @@ manipulating this list), the user code must observe the following
|
||||||
protocol on 'lock entry' insertion and removal:
|
protocol on 'lock entry' insertion and removal:
|
||||||
|
|
||||||
On insertion:
|
On insertion:
|
||||||
|
|
||||||
1) set the 'list_op_pending' word to the address of the 'lock entry'
|
1) set the 'list_op_pending' word to the address of the 'lock entry'
|
||||||
to be inserted,
|
to be inserted,
|
||||||
2) acquire the futex lock,
|
2) acquire the futex lock,
|
||||||
|
@ -143,6 +146,7 @@ On insertion:
|
||||||
4) clear the 'list_op_pending' word.
|
4) clear the 'list_op_pending' word.
|
||||||
|
|
||||||
On removal:
|
On removal:
|
||||||
|
|
||||||
1) set the 'list_op_pending' word to the address of the 'lock entry'
|
1) set the 'list_op_pending' word to the address of the 'lock entry'
|
||||||
to be removed,
|
to be removed,
|
||||||
2) remove the lock entry for this lock from the 'head' list,
|
2) remove the lock entry for this lock from the 'head' list,
|
||||||
|
|
Loading…
Reference in a new issue