aboutsummaryrefslogtreecommitdiff
path: root/original/uapi/linux/rseq.h
diff options
context:
space:
mode:
Diffstat (limited to 'original/uapi/linux/rseq.h')
-rw-r--r--original/uapi/linux/rseq.h20
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.