selftests/rseq: introduce own copy of rseq uapi header
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 24 Jan 2022 17:12:39 +0000 (12:12 -0500)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 2 Feb 2022 12:11:33 +0000 (13:11 +0100)
commit5c105d55a9dc9e01535116ccfc26e703168a574f
tree684ee72d42560ae6fe215f19832b5062ba979cbb
parentec2444530612a886b406e2830d7f314d1a07d4bb
selftests/rseq: introduce own copy of rseq uapi header

The Linux kernel rseq uapi header has a broken layout for the
rseq_cs.ptr field on 32-bit little endian architectures. The entire
rseq_cs.ptr field is planned for removal, leaving only the 64-bit
rseq_cs.ptr64 field available.

Both glibc and librseq use their own copy of the Linux kernel uapi
header, where they introduce proper union fields to access to the 32-bit
low order bits of the rseq_cs pointer on 32-bit architectures.

Introduce a copy of the Linux kernel uapi headers in the Linux kernel
selftests.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20220124171253.22072-2-mathieu.desnoyers@efficios.com
tools/testing/selftests/rseq/rseq-abi.h [new file with mode: 0644]
tools/testing/selftests/rseq/rseq.c
tools/testing/selftests/rseq/rseq.h