1
0
Fork 0

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>
hifive-unleashed-5.1
Mauro Carvalho Chehab 2017-05-17 06:42:36 -03:00 committed by Jonathan Corbet
parent 317a8455f1
commit ce3a966931
1 changed files with 9 additions and 5 deletions

View File

@ -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,