summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-elf/rtld_lock.h
diff options
context:
space:
mode:
Diffstat (limited to 'libexec/rtld-elf/rtld_lock.h')
-rw-r--r--libexec/rtld-elf/rtld_lock.h16
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 */
OpenPOWER on IntegriCloud