diff options
Diffstat (limited to 'libexec/rtld-elf/rtld_lock.h')
-rw-r--r-- | libexec/rtld-elf/rtld_lock.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/libexec/rtld-elf/rtld_lock.h b/libexec/rtld-elf/rtld_lock.h index 6c04e3b..fa63787 100644 --- a/libexec/rtld-elf/rtld_lock.h +++ b/libexec/rtld-elf/rtld_lock.h @@ -57,10 +57,18 @@ extern rtld_lock_t rtld_bind_lock; extern rtld_lock_t rtld_libc_lock; extern rtld_lock_t rtld_phdr_lock; -int rlock_acquire(rtld_lock_t); -int wlock_acquire(rtld_lock_t); -void rlock_release(rtld_lock_t, int); -void wlock_release(rtld_lock_t, int); +#define RTLD_LOCK_UNLOCKED 0 +#define RTLD_LOCK_RLOCKED 1 +#define RTLD_LOCK_WLOCKED 2 + +struct Struct_RtldLockState; +typedef struct Struct_RtldLockState RtldLockState; + +void rlock_acquire(rtld_lock_t, RtldLockState *); +void wlock_acquire(rtld_lock_t, RtldLockState *); +void lock_release(rtld_lock_t, RtldLockState *); +void lock_upgrade(rtld_lock_t, RtldLockState *); +void lock_restart_for_upgrade(RtldLockState *); #endif /* IN_RTLD */ |