diff options
author | netchild <netchild@FreeBSD.org> | 2010-11-15 13:03:35 +0000 |
---|---|---|
committer | netchild <netchild@FreeBSD.org> | 2010-11-15 13:03:35 +0000 |
commit | d3aba4235e74d0db06b04e0581038d0ec62dd93d (patch) | |
tree | ca73ed73fa582030123e768ed3aec9c770f07bf0 /sys/compat/linux/linux_futex.h | |
parent | 27725d83cceb418509558e9041d5b1caf8ad3e38 (diff) | |
download | FreeBSD-src-d3aba4235e74d0db06b04e0581038d0ec62dd93d.zip FreeBSD-src-d3aba4235e74d0db06b04e0581038d0ec62dd93d.tar.gz |
- print out the PID and program name of the program trying to use an
unsupported futex operation
- for those futex operations which are known to be not supported,
print out which futex operation it is
- shortcut the error return of the unsupported FUTEX_CLOCK_REALTIME in
some cases:
FUTEX_CLOCK_REALTIME can be used to tell linux to use
CLOCK_REALTIME instead of CLOCK_MONOTONIC. FUTEX_CLOCK_REALTIME
however must only be set, if either FUTEX_WAIT_BITSET or
FUTEX_WAIT_REQUEUE_PI are set too. If that's not the case
we can die with ENOSYS right at the beginning.
Submitted by: arundel
Reviewed by: rdivacky (earlier iteration of the patch)
MFC after: 1 week
Diffstat (limited to 'sys/compat/linux/linux_futex.h')
-rw-r--r-- | sys/compat/linux/linux_futex.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/sys/compat/linux/linux_futex.h b/sys/compat/linux/linux_futex.h index 1d462a7..4ccd46c 100644 --- a/sys/compat/linux/linux_futex.h +++ b/sys/compat/linux/linux_futex.h @@ -39,17 +39,20 @@ extern LIST_HEAD(futex_list, futex) futex_list; extern struct mtx futex_mtx; -#define LINUX_FUTEX_WAIT 0 -#define LINUX_FUTEX_WAKE 1 -#define LINUX_FUTEX_FD 2 /* unused */ -#define LINUX_FUTEX_REQUEUE 3 -#define LINUX_FUTEX_CMP_REQUEUE 4 -#define LINUX_FUTEX_WAKE_OP 5 -#define LINUX_FUTEX_LOCK_PI 6 -#define LINUX_FUTEX_UNLOCK_PI 7 -#define LINUX_FUTEX_TRYLOCK_PI 8 +#define LINUX_FUTEX_WAIT 0 +#define LINUX_FUTEX_WAKE 1 +#define LINUX_FUTEX_FD 2 /* unused */ +#define LINUX_FUTEX_REQUEUE 3 +#define LINUX_FUTEX_CMP_REQUEUE 4 +#define LINUX_FUTEX_WAKE_OP 5 +#define LINUX_FUTEX_LOCK_PI 6 +#define LINUX_FUTEX_UNLOCK_PI 7 +#define LINUX_FUTEX_TRYLOCK_PI 8 +#define LINUX_FUTEX_WAIT_BITSET 9 +#define LINUX_FUTEX_WAIT_REQUEUE_PI 11 #define LINUX_FUTEX_PRIVATE_FLAG 128 +#define LINUX_FUTEX_CLOCK_REALTIME 256 #define FUTEX_OP_SET 0 /* *(int *)UADDR2 = OPARG; */ #define FUTEX_OP_ADD 1 /* *(int *)UADDR2 += OPARG; */ |