18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: LGPL-2.1-only OR MIT */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * rseq-generic-thread-pointer.h 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * (C) Copyright 2021 - Mathieu Desnoyers <mathieu.desnoyers@efficios.com> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef _RSEQ_GENERIC_THREAD_POINTER 98c2ecf20Sopenharmony_ci#define _RSEQ_GENERIC_THREAD_POINTER 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#ifdef __cplusplus 128c2ecf20Sopenharmony_ciextern "C" { 138c2ecf20Sopenharmony_ci#endif 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci/* Use gcc builtin thread pointer. */ 168c2ecf20Sopenharmony_cistatic inline void *rseq_thread_pointer(void) 178c2ecf20Sopenharmony_ci{ 188c2ecf20Sopenharmony_ci return __builtin_thread_pointer(); 198c2ecf20Sopenharmony_ci} 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci#ifdef __cplusplus 228c2ecf20Sopenharmony_ci} 238c2ecf20Sopenharmony_ci#endif 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci#endif 26