.. | .. |
---|
105 | 105 | * Read and set by the kernel. Set by user-space with single-copy |
---|
106 | 106 | * atomicity semantics. This field should only be updated by the |
---|
107 | 107 | * thread which registered this data structure. Aligned on 64-bit. |
---|
| 108 | + * |
---|
| 109 | + * 32-bit architectures should update the low order bits of the |
---|
| 110 | + * rseq_cs field, leaving the high order bits initialized to 0. |
---|
108 | 111 | */ |
---|
109 | | - union { |
---|
110 | | - __u64 ptr64; |
---|
111 | | -#ifdef __LP64__ |
---|
112 | | - __u64 ptr; |
---|
113 | | -#else |
---|
114 | | - struct { |
---|
115 | | -#if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || defined(__BIG_ENDIAN) |
---|
116 | | - __u32 padding; /* Initialized to zero. */ |
---|
117 | | - __u32 ptr32; |
---|
118 | | -#else /* LITTLE */ |
---|
119 | | - __u32 ptr32; |
---|
120 | | - __u32 padding; /* Initialized to zero. */ |
---|
121 | | -#endif /* ENDIAN */ |
---|
122 | | - } ptr; |
---|
123 | | -#endif |
---|
124 | | - } rseq_cs; |
---|
| 112 | + __u64 rseq_cs; |
---|
125 | 113 | |
---|
126 | 114 | /* |
---|
127 | 115 | * Restartable sequences flags field. |
---|