Changeset View
Changeset View
Standalone View
Standalone View
libexec/rtld-elf/riscv/rtld_machdep.h
Show First 20 Lines • Show All 76 Lines • ▼ Show 20 Lines | |||||
}) | }) | ||||
#define call_ifunc_resolver(ptr) \ | #define call_ifunc_resolver(ptr) \ | ||||
(((Elf_Addr (*)(void))ptr)()) | (((Elf_Addr (*)(void))ptr)()) | ||||
/* | /* | ||||
* TLS | * TLS | ||||
*/ | */ | ||||
#define TLS_VARIANT_I 1 | |||||
#define TLS_TP_OFFSET 0x0 | #define TLS_TP_OFFSET 0x0 | ||||
#define TLS_DTV_OFFSET 0x800 | #define TLS_DTV_OFFSET 0x800 | ||||
#define TLS_TCB_SIZE 16 | #define TLS_TCB_SIZE 16 | ||||
#define round(size, align) \ | #define round(size, align) \ | ||||
(((size) + (align) - 1) & ~((align) - 1)) | (((size) + (align) - 1) & ~((align) - 1)) | ||||
#define calculate_first_tls_offset(size, align, offset) \ | #define calculate_first_tls_offset(size, align, offset) \ | ||||
TLS_TCB_SIZE | TLS_TCB_SIZE | ||||
#define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ | #define calculate_tls_offset(prev_offset, prev_size, size, align, offset) \ | ||||
round(prev_offset + prev_size, align) | round(prev_offset + prev_size, align) | ||||
#define calculate_tls_end(off, size) ((off) + (size)) | |||||
#define calculate_tls_post_size(align) 0 | #define calculate_tls_post_size(align) 0 | ||||
typedef struct { | typedef struct { | ||||
unsigned long ti_module; | unsigned long ti_module; | ||||
unsigned long ti_offset; | unsigned long ti_offset; | ||||
} tls_index; | } tls_index; | ||||
extern void *__tls_get_addr(tls_index* ti); | extern void *__tls_get_addr(tls_index* ti); | ||||
#define RTLD_DEFAULT_STACK_PF_EXEC PF_X | #define RTLD_DEFAULT_STACK_PF_EXEC PF_X | ||||
#define RTLD_DEFAULT_STACK_EXEC PROT_EXEC | #define RTLD_DEFAULT_STACK_EXEC PROT_EXEC | ||||
#define md_abi_variant_hook(x) | #define md_abi_variant_hook(x) | ||||
#endif | #endif |