github.com/afumu/libc@v0.0.6/musl/arch/riscv64/pthread_arch.h (about) 1 static inline struct pthread *__pthread_self() 2 { 3 char *tp; 4 __asm__ __volatile__("mv %0, tp" : "=r"(tp)); 5 return (void *)(tp - sizeof(struct pthread)); 6 } 7 8 #define TLS_ABOVE_TP 9 #define GAP_ABOVE_TP 0 10 #define TP_ADJ(p) ((char *)p + sizeof(struct pthread)) 11 12 #define DTP_OFFSET 0x800 13 14 #define MC_PC __gregs[0]