1*053f45beSAndroid Build Coastguard Worker /* SPDX-License-Identifier: LGPL-2.1-only OR MIT */ 2*053f45beSAndroid Build Coastguard Worker /* 3*053f45beSAndroid Build Coastguard Worker * rseq-generic-thread-pointer.h 4*053f45beSAndroid Build Coastguard Worker * 5*053f45beSAndroid Build Coastguard Worker * (C) Copyright 2021 - Mathieu Desnoyers <[email protected]> 6*053f45beSAndroid Build Coastguard Worker */ 7*053f45beSAndroid Build Coastguard Worker 8*053f45beSAndroid Build Coastguard Worker #ifndef _RSEQ_GENERIC_THREAD_POINTER 9*053f45beSAndroid Build Coastguard Worker #define _RSEQ_GENERIC_THREAD_POINTER 10*053f45beSAndroid Build Coastguard Worker 11*053f45beSAndroid Build Coastguard Worker #ifdef __cplusplus 12*053f45beSAndroid Build Coastguard Worker extern "C" { 13*053f45beSAndroid Build Coastguard Worker #endif 14*053f45beSAndroid Build Coastguard Worker 15*053f45beSAndroid Build Coastguard Worker /* Use gcc builtin thread pointer. */ rseq_thread_pointer(void)16*053f45beSAndroid Build Coastguard Workerstatic inline void *rseq_thread_pointer(void) 17*053f45beSAndroid Build Coastguard Worker { 18*053f45beSAndroid Build Coastguard Worker return __builtin_thread_pointer(); 19*053f45beSAndroid Build Coastguard Worker } 20*053f45beSAndroid Build Coastguard Worker 21*053f45beSAndroid Build Coastguard Worker #ifdef __cplusplus 22*053f45beSAndroid Build Coastguard Worker } 23*053f45beSAndroid Build Coastguard Worker #endif 24*053f45beSAndroid Build Coastguard Worker 25*053f45beSAndroid Build Coastguard Worker #endif 26