_rwlock
if ((lc = __nisdb_assert_wheld(&lvar ## _rwlock)) != 0) { \
#define WLOCK(var) __nisdb_wlock(&var ## _rwlock)
#define TRYWLOCK(var) __nisdb_wlock_trylock(&var ## _rwlock, 1)
#define RULOCK(var) __nisdb_rulock(&var ## _rwlock)
#define WULOCK(var) __nisdb_wulock(&var ## _rwlock)
#define DESTROYRW(var) __nisdb_destroy_lock(&var ## _rwlock)
#define ASSERTWHELD(var) if (__nisdb_assert_wheld(&var ## _rwlock) \
#define ASSERTRHELD(var) if (__nisdb_assert_rheld(&var ## _rwlock) \
#define DECLRWLOCK(var) __nisdb_rwlock_t var ## _rwlock = \
#define USERWLOCK(var) extern __nisdb_rwlock_t var ## _rwlock
#define STRUCTRWLOCK(var) __nisdb_rwlock_t var ## _rwlock
#define INITRW(var) (void) __nisdb_rwinit(&var ## _rwlock)
#define READLOCKOK(var) (void) __nisdb_rw_readlock_ok(&var ## _rwlock)
#define RLOCK(var) __nisdb_rlock(&var ## _rwlock)
#define WLOCK(var) __nisdb_wlock(&var ## _rwlock)
#define TRYWLOCK(var) __nisdb_wlock_trylock(&var ## _rwlock, 1)
#define RULOCK(var) __nisdb_rulock(&var ## _rwlock)
#define WULOCK(var) __nisdb_wulock(&var ## _rwlock)
#define DESTROYRW(var) __nisdb_destroy_lock(&var ## _rwlock)
#define DECLRWLOCK(var) __nisdb_rwlock_t var ## _rwlock = \
#define USERWLOCK(var) extern __nisdb_rwlock_t var ## _rwlock
#define STRUCTRWLOCK(var) __nisdb_rwlock_t var ## _rwlock
#define INITRW(var) (void) __nisdb_rwinit(&var ## _rwlock)
#define READLOCKOK(var) (void) __nisdb_rw_readlock_ok(&var ## _rwlock)
#define RLOCK(var) __nisdb_rlock(&var ## _rwlock)