futex.h

来自「此工具是arm-linux-GCC交叉编译工具(cross-3.4.4)」· C头文件 代码 · 共 44 行

H
44
字号
#ifndef _LINUX_FUTEX_H#define _LINUX_FUTEX_H/* Second argument to futex syscall */#define FUTEX_WAIT		0#define FUTEX_WAKE		1#define FUTEX_FD		2#define FUTEX_REQUEUE		3#define FUTEX_CMP_REQUEUE	4#define FUTEX_WAKE_OP		5long do_futex(unsigned long uaddr, int op, int val,		unsigned long timeout, unsigned long uaddr2, int val2,		int val3);#define FUTEX_OP_SET		0	/* *(int *)UADDR2 = OPARG; */#define FUTEX_OP_ADD		1	/* *(int *)UADDR2 += OPARG; */#define FUTEX_OP_OR		2	/* *(int *)UADDR2 |= OPARG; */#define FUTEX_OP_ANDN		3	/* *(int *)UADDR2 &= ~OPARG; */#define FUTEX_OP_XOR		4	/* *(int *)UADDR2 ^= OPARG; */#define FUTEX_OP_OPARG_SHIFT	8	/* Use (1 << OPARG) instead of OPARG.  */#define FUTEX_OP_CMP_EQ		0	/* if (oldval == CMPARG) wake */#define FUTEX_OP_CMP_NE		1	/* if (oldval != CMPARG) wake */#define FUTEX_OP_CMP_LT		2	/* if (oldval < CMPARG) wake */#define FUTEX_OP_CMP_LE		3	/* if (oldval <= CMPARG) wake */#define FUTEX_OP_CMP_GT		4	/* if (oldval > CMPARG) wake */#define FUTEX_OP_CMP_GE		5	/* if (oldval >= CMPARG) wake *//* FUTEX_WAKE_OP will perform atomically   int oldval = *(int *)UADDR2;   *(int *)UADDR2 = oldval OP OPARG;   if (oldval CMP CMPARG)     wake UADDR2;  */#define FUTEX_OP(op, oparg, cmp, cmparg) \  (((op & 0xf) << 28) | ((cmp & 0xf) << 24)		\   | ((oparg & 0xfff) << 12) | (cmparg & 0xfff))#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?