git: 87a7419c6375 - main - rtld: add lockstate_rlocked()

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Thu, 29 Oct 2026 15:56:18 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=87a7419c63756580278fcbdebdbca8b16f3bdd24

commit 87a7419c63756580278fcbdebdbca8b16f3bdd24
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-10-25 17:57:40 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-10-29 15:55:37 +0000

    rtld: add lockstate_rlocked()
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
---
 libexec/rtld-elf/rtld_lock.c | 6 ++++++
 libexec/rtld-elf/rtld_lock.h | 1 +
 2 files changed, 7 insertions(+)

diff --git a/libexec/rtld-elf/rtld_lock.c b/libexec/rtld-elf/rtld_lock.c
index 84374f493a47..dbb0a9f53287 100644
--- a/libexec/rtld-elf/rtld_lock.c
+++ b/libexec/rtld-elf/rtld_lock.c
@@ -332,6 +332,12 @@ lock_restart_for_upgrade(RtldLockState *lockstate)
 	}
 }
 
+bool
+lockstate_rlocked(const RtldLockState *lockstate)
+{
+	return (lockstate->lockstate == RTLD_LOCK_RLOCKED);
+}
+
 bool
 lockstate_wlocked(const RtldLockState *lockstate)
 {
diff --git a/libexec/rtld-elf/rtld_lock.h b/libexec/rtld-elf/rtld_lock.h
index e274d7e50121..e39c5c0c4843 100644
--- a/libexec/rtld-elf/rtld_lock.h
+++ b/libexec/rtld-elf/rtld_lock.h
@@ -94,6 +94,7 @@ 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 *);
+bool	lockstate_rlocked(const RtldLockState *);
 bool	lockstate_wlocked(const RtldLockState *);
 
 void	dlerror_dflt_init(void);