mirror of https://github.com/mkerrisk/man-pages
futex.2: Casting utime to uint32_t
The kernel uses the following cast: if (cmd == FUTEX_REQUEUE || cmd == FUTEX_CMP_REQUEUE || cmd == FUTEX_CMP_REQUEUE_PI || cmd == FUTEX_WAKE_OP) val2 = (u32) (unsigned long) utime; This ensures that always the least significant four bytes of the pointer are used, both on ILP32 and LP64 systems. On a big endian system a simple cast from 64 bit pointer to 32 bit integer would return the most significant four bytes. We have to make the reader of the man-page aware of the usage of the least significant bytes. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
parent
c6dc40a2c9
commit
10022b8e63
|
@ -136,11 +136,13 @@ argument is a pointer to a
|
|||
.IR timespec
|
||||
structure that specifies a timeout for the operation.
|
||||
However, notwithstanding the prototype shown above, for some operations,
|
||||
this argument is instead a four-byte integer whose meaning
|
||||
the least significant four bytes are used as an integer whose meaning
|
||||
is determined by the operation.
|
||||
For these operations, the kernel casts the
|
||||
.I timeout
|
||||
value to
|
||||
value first to
|
||||
.IR "unsigned long",
|
||||
then to
|
||||
.IR uint32_t ,
|
||||
and in the remainder of this page, this argument is referred to as
|
||||
.I val2
|
||||
|
|
Loading…
Reference in New Issue