diff options
Diffstat (limited to 'original/uapi/linux/rseq.h')
-rw-r--r-- | original/uapi/linux/rseq.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/original/uapi/linux/rseq.h b/original/uapi/linux/rseq.h index 77ee207..9a402fd 100644 --- a/original/uapi/linux/rseq.h +++ b/original/uapi/linux/rseq.h @@ -105,11 +105,23 @@ struct rseq { * Read and set by the kernel. Set by user-space with single-copy * atomicity semantics. This field should only be updated by the * thread which registered this data structure. Aligned on 64-bit. - * - * 32-bit architectures should update the low order bits of the - * rseq_cs field, leaving the high order bits initialized to 0. */ - __u64 rseq_cs; + union { + __u64 ptr64; +#ifdef __LP64__ + __u64 ptr; +#else + struct { +#if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || defined(__BIG_ENDIAN) + __u32 padding; /* Initialized to zero. */ + __u32 ptr32; +#else /* LITTLE */ + __u32 ptr32; + __u32 padding; /* Initialized to zero. */ +#endif /* ENDIAN */ + } ptr; +#endif + } rseq_cs; /* * Restartable sequences flags field. |