musl/arch/riscv32/pthread_arch.h
Stefan O'Rear 01d9fe4d9f riscv32: add arch headers
These are mostly copied from riscv64. _Addr and _Reg had to become int
to match compiler-controlled parts of the ABI (result type of sizeof,
etc.). There is no kernel stat struct; the userspace stat matches
glibc in the sizes and offsets of all fields (including glibc's
__dev_t __pad1). The jump buffer is 12 words larger to account for 12
saved double-precision floats; additionally it should be 64-bit
aligned to save doubles.

The syscall list was significantly revised by deleting all time32 and
pre-statx syscalls, and renaming several syscalls that have different
names depending on __BITS_PER_LONG, notably mmap2 and _llseek.

futex was added as an alias to futex_time64 since it is widely used by
software which does not pass time arguments.
2024-02-29 16:35:30 -05:00

14 lines
210 B
C

static inline uintptr_t __get_tp()
{
uintptr_t tp;
__asm__ __volatile__("mv %0, tp" : "=r"(tp));
return tp;
}
#define TLS_ABOVE_TP
#define GAP_ABOVE_TP 0
#define DTP_OFFSET 0x800
#define MC_PC __gregs[0]