Lines Matching defs:rll

242 typedef struct rll {
1080 ztest_rll_init(rll_t *rll)
1082 rll->rll_writer = NULL;
1083 rll->rll_readers = 0;
1084 VERIFY(_mutex_init(&rll->rll_lock, USYNC_THREAD, NULL) == 0);
1085 VERIFY(cond_init(&rll->rll_cv, USYNC_THREAD, NULL) == 0);
1089 ztest_rll_destroy(rll_t *rll)
1091 ASSERT(rll->rll_writer == NULL);
1092 ASSERT(rll->rll_readers == 0);
1093 VERIFY(_mutex_destroy(&rll->rll_lock) == 0);
1094 VERIFY(cond_destroy(&rll->rll_cv) == 0);
1098 ztest_rll_lock(rll_t *rll, rl_type_t type)
1100 VERIFY(mutex_lock(&rll->rll_lock) == 0);
1103 while (rll->rll_writer != NULL)
1104 (void) cond_wait(&rll->rll_cv, &rll->rll_lock);
1105 rll->rll_readers++;
1107 while (rll->rll_writer != NULL || rll->rll_readers)
1108 (void) cond_wait(&rll->rll_cv, &rll->rll_lock);
1109 rll->rll_writer = curthread;
1112 VERIFY(mutex_unlock(&rll->rll_lock) == 0);
1116 ztest_rll_unlock(rll_t *rll)
1118 VERIFY(mutex_lock(&rll->rll_lock) == 0);
1120 if (rll->rll_writer) {
1121 ASSERT(rll->rll_readers == 0);
1122 rll->rll_writer = NULL;
1124 ASSERT(rll->rll_readers != 0);
1125 ASSERT(rll->rll_writer == NULL);
1126 rll->rll_readers--;
1129 if (rll->rll_writer == NULL && rll->rll_readers == 0)
1130 VERIFY(cond_broadcast(&rll->rll_cv) == 0);
1132 VERIFY(mutex_unlock(&rll->rll_lock) == 0);
1138 rll_t *rll = &zd->zd_object_lock[object & (ZTEST_OBJECT_LOCKS - 1)];
1140 ztest_rll_lock(rll, type);
1146 rll_t *rll = &zd->zd_object_lock[object & (ZTEST_OBJECT_LOCKS - 1)];
1148 ztest_rll_unlock(rll);
1156 rll_t *rll = &zd->zd_range_lock[hash & (ZTEST_RANGE_LOCKS - 1)];
1163 rl->rl_lock = rll;
1165 ztest_rll_lock(rll, type);
1173 rll_t *rll = rl->rl_lock;
1175 ztest_rll_unlock(rll);