| .. | .. |
|---|
| 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. |
|---|