1/**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12#ifndef _LINUX_FUTEX_H 13#define _LINUX_FUTEX_H 14 15#include <linux/sched.h> 16 17#define FUTEX_WAIT 0 18#define FUTEX_WAKE 1 19#define FUTEX_FD 2 20#define FUTEX_REQUEUE 3 21#define FUTEX_CMP_REQUEUE 4 22#define FUTEX_WAKE_OP 5 23#define FUTEX_LOCK_PI 6 24#define FUTEX_UNLOCK_PI 7 25#define FUTEX_TRYLOCK_PI 8 26 27struct robust_list { 28 struct robust_list __user *next; 29}; 30 31struct robust_list_head { 32 33 struct robust_list list; 34 35 long futex_offset; 36 37 struct robust_list __user *list_op_pending; 38}; 39 40#define FUTEX_WAITERS 0x80000000 41 42#define FUTEX_OWNER_DIED 0x40000000 43 44#define FUTEX_TID_MASK 0x3fffffff 45 46#define ROBUST_LIST_LIMIT 2048 47 48#define FUTEX_OP_SET 0 49#define FUTEX_OP_ADD 1 50#define FUTEX_OP_OR 2 51#define FUTEX_OP_ANDN 3 52#define FUTEX_OP_XOR 4 53#define FUTEX_OP_OPARG_SHIFT 8 54#define FUTEX_OP_CMP_EQ 0 55#define FUTEX_OP_CMP_NE 1 56#define FUTEX_OP_CMP_LT 2 57#define FUTEX_OP_CMP_LE 3 58#define FUTEX_OP_CMP_GT 4 59#define FUTEX_OP_CMP_GE 5 60#define FUTEX_OP(op, oparg, cmp, cmparg) (((op & 0xf) << 28) | ((cmp & 0xf) << 24) | ((oparg & 0xfff) << 12) | (cmparg & 0xfff)) 61#endif 62