diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-04-11 08:12:48 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-04-11 08:16:13 +0000 |
commit | 9b33518ada2ebda727ca3c7979cdcdb30716f737 (patch) | |
tree | ec0902088a7afe6ea2ead0efb7bf648ffb077d1b /libexec/rtld-elf | |
parent | 1a4e959eb34ae03a96f6d0dea68b6a6a88ac4462 (diff) | |
download | src-9b33518ada2ebda727ca3c7979cdcdb30716f737.tar.gz src-9b33518ada2ebda727ca3c7979cdcdb30716f737.zip |
rtld_lock.h: add some comments about versioning of struct RtldLockInfo
Sponsored by: The FreeBSD Foundation
MFC after: 6 days
Diffstat (limited to 'libexec/rtld-elf')
-rw-r--r-- | libexec/rtld-elf/rtld_lock.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libexec/rtld-elf/rtld_lock.h b/libexec/rtld-elf/rtld_lock.h index fdbdc9917075..c88b558b72b8 100644 --- a/libexec/rtld-elf/rtld_lock.h +++ b/libexec/rtld-elf/rtld_lock.h @@ -35,9 +35,20 @@ #define MAX_RTLD_LOCKS 8 +/* + * This structure is part of the ABI between rtld and threading + * libraries, like libthr and even libc_r. Its layout is fixed and + * can be changed only by appending new fields at the end, with the + * bump of RTLI_VERSION. + */ struct RtldLockInfo { + /* + * Valid if the object calling _rtld_thread_init() exported + * symbol _pli_rtli_version. Otherwise assume RTLI_VERSION_ONE. + */ unsigned int rtli_version; + void *(*lock_create)(void); void (*lock_destroy)(void *); void (*rlock_acquire)(void *); @@ -46,6 +57,8 @@ struct RtldLockInfo int (*thread_set_flag)(int); int (*thread_clr_flag)(int); void (*at_fork)(void); + + /* Version 2 fields */ char *(*dlerror_loc)(void); int *(*dlerror_seen)(void); int dlerror_loc_sz; |