Lines Matching defs:mls

82 		multilist_sublist_t *mls = &ml->ml_sublists[i];
83 mutex_init(&mls->mls_lock, NULL, MUTEX_DEFAULT, NULL);
84 list_create(&mls->mls_list, size, offset);
97 multilist_sublist_t *mls = &ml->ml_sublists[i];
99 ASSERT(list_is_empty(&mls->mls_list));
101 list_destroy(&mls->mls_list);
102 mutex_destroy(&mls->mls_lock);
126 multilist_sublist_t *mls;
134 mls = &ml->ml_sublists[sublist_idx];
145 need_lock = !MUTEX_HELD(&mls->mls_lock);
148 mutex_enter(&mls->mls_lock);
152 multilist_sublist_insert_head(mls, obj);
155 mutex_exit(&mls->mls_lock);
171 multilist_sublist_t *mls;
179 mls = &ml->ml_sublists[sublist_idx];
181 need_lock = !MUTEX_HELD(&mls->mls_lock);
184 mutex_enter(&mls->mls_lock);
188 multilist_sublist_remove(mls, obj);
191 mutex_exit(&mls->mls_lock);
214 multilist_sublist_t *mls = &ml->ml_sublists[i];
216 boolean_t need_lock = !MUTEX_HELD(&mls->mls_lock);
219 mutex_enter(&mls->mls_lock);
221 if (!list_is_empty(&mls->mls_list)) {
223 mutex_exit(&mls->mls_lock);
229 mutex_exit(&mls->mls_lock);
253 multilist_sublist_t *mls;
256 mls = &ml->ml_sublists[sublist_idx];
257 mutex_enter(&mls->mls_lock);
259 return (mls);
263 multilist_sublist_unlock(multilist_sublist_t *mls)
265 mutex_exit(&mls->mls_lock);
278 multilist_sublist_insert_head(multilist_sublist_t *mls, void *obj)
280 ASSERT(MUTEX_HELD(&mls->mls_lock));
281 list_insert_head(&mls->mls_list, obj);
286 multilist_sublist_insert_tail(multilist_sublist_t *mls, void *obj)
288 ASSERT(MUTEX_HELD(&mls->mls_lock));
289 list_insert_tail(&mls->mls_list, obj);
306 multilist_sublist_move_forward(multilist_sublist_t *mls, void *obj)
308 void *prev = list_prev(&mls->mls_list, obj);
310 ASSERT(MUTEX_HELD(&mls->mls_lock));
311 ASSERT(!list_is_empty(&mls->mls_list));
317 list_remove(&mls->mls_list, obj);
318 list_insert_before(&mls->mls_list, prev, obj);
322 multilist_sublist_remove(multilist_sublist_t *mls, void *obj)
324 ASSERT(MUTEX_HELD(&mls->mls_lock));
325 list_remove(&mls->mls_list, obj);
329 multilist_sublist_head(multilist_sublist_t *mls)
331 ASSERT(MUTEX_HELD(&mls->mls_lock));
332 return (list_head(&mls->mls_list));
336 multilist_sublist_tail(multilist_sublist_t *mls)
338 ASSERT(MUTEX_HELD(&mls->mls_lock));
339 return (list_tail(&mls->mls_list));
343 multilist_sublist_next(multilist_sublist_t *mls, void *obj)
345 ASSERT(MUTEX_HELD(&mls->mls_lock));
346 return (list_next(&mls->mls_list, obj));
350 multilist_sublist_prev(multilist_sublist_t *mls, void *obj)
352 ASSERT(MUTEX_HELD(&mls->mls_lock));
353 return (list_prev(&mls->mls_list, obj));