selftests/rseq: Introduce thread pointer getters
This is done in preparation for the selftest uplift to become compatible with glibc-2.35. glibc-2.35 exposes the rseq per-thread data in the TCB, accessible at an offset from the thread pointer. The toolchains do not implement accessing the thread pointer on all architectures. Provide thread pointer getters for ppc and x86 which lack (or lacked until recently) toolchain support. 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-7-mathieu.desnoyers@efficios.com
This commit is contained in:
committed by
Peter Zijlstra
parent
e546cd48cc
commit
886ddfba93
25
tools/testing/selftests/rseq/rseq-generic-thread-pointer.h
Normal file
25
tools/testing/selftests/rseq/rseq-generic-thread-pointer.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-only OR MIT */
|
||||
/*
|
||||
* rseq-generic-thread-pointer.h
|
||||
*
|
||||
* (C) Copyright 2021 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
|
||||
*/
|
||||
|
||||
#ifndef _RSEQ_GENERIC_THREAD_POINTER
|
||||
#define _RSEQ_GENERIC_THREAD_POINTER
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Use gcc builtin thread pointer. */
|
||||
static inline void *rseq_thread_pointer(void)
|
||||
{
|
||||
return __builtin_thread_pointer();
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user