#ifndef _LINUX_FUTEX_H #define _LINUX_FUTEX_H #include <uapi/linux/futex.h> struct inode; struct mm_struct; struct task_struct; union ktime; long do_futex(u32 __user *uaddr, int op, u32 val, union ktime *timeout, u32 __user *uaddr2, u32 val2, u32 val3); extern int handle_futex_death(u32 __user *uaddr, struct task_struct *curr, int pi); /* * Futexes are matched on equal values of this key. * The key type depends on whether it's a shared or private mapping. * Don't rearrange members without looking at hash_futex(). * * offset is aligned to a multiple of sizeof(u32) (== 4) by definition. * We use the two low order bits of offset to tell what is the kind of key : * 00 : Private process futex (PTHREAD_PROCESS_PRIVATE) * (no reference on an inode or mm) * 01 : Shared futex (PTHREAD_PROCESS_SHARED) * mapped on a file (reference on the underlying inode) * 10 : Shared futex (PTHREAD_PROCESS_SHARED) * (but private mapping on an mm, and reference taken on it) */ #define FUT_OFF_INODE 1 /* We set bit 0 if key has a reference on inode */ #define FUT_OFF_MMSHARED 2 /* We set bit 1 if key has a reference on mm */ union futex_key { struct { unsigned long pgoff; struct inode *inode; int offset; } shared; struct { unsigned long address; struct mm_struct *mm; int offset; } private; struct { unsigned long word; void *ptr; int offset; } both; }; #define FUTEX_KEY_INIT (union futex_key) { .both = { .ptr = NULL } } #ifdef CONFIG_FUTEX extern void exit_robust_list(struct task_struct *curr); extern void exit_pi_state_list(struct task_struct *curr); #ifdef CONFIG_HAVE_FUTEX_CMPXCHG #define futex_cmpxchg_enabled 1 #else extern int futex_cmpxchg_enabled; #endif #else
static inline void exit_robust_list(struct task_struct *curr) { }Contributors
Person | Tokens | Prop | Commits | CommitProp | |
ingo molnar | ingo molnar | 11 | 100.00% | 2 | 100.00% |
Total | 11 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
ingo molnar | ingo molnar | 11 | 100.00% | 2 | 100.00% |
Total | 11 | 100.00% | 2 | 100.00% |
Person | Tokens | Prop | Commits | CommitProp | |
ingo molnar | ingo molnar | 78 | 37.86% | 5 | 29.41% |
rusty russell | rusty russell | 61 | 29.61% | 2 | 11.76% |
andrew morton | andrew morton | 19 | 9.22% | 2 | 11.76% |
mike frysinger | mike frysinger | 12 | 5.83% | 1 | 5.88% |
heiko carstens | heiko carstens | 11 | 5.34% | 1 | 5.88% |
eric dumazet | eric dumazet | 11 | 5.34% | 1 | 5.88% |
thomas gleixner | thomas gleixner | 4 | 1.94% | 1 | 5.88% |
peter zijlstra | peter zijlstra | 4 | 1.94% | 1 | 5.88% |
pierre peiffer | pierre peiffer | 3 | 1.46% | 1 | 5.88% |
david woodhouse | david woodhouse | 2 | 0.97% | 1 | 5.88% |
david howells | david howells | 1 | 0.49% | 1 | 5.88% |
Total | 206 | 100.00% | 17 | 100.00% |