Lines Matching refs:mls

89 		multilist_sublist_t *mls = &ml->ml_sublists[i];
90 mutex_init(&mls->mls_lock, NULL, MUTEX_NOLOCKDEP, NULL);
91 list_create(&mls->mls_list, size, offset);
127 multilist_sublist_t *mls = &ml->ml_sublists[i];
129 ASSERT(list_is_empty(&mls->mls_list));
131 list_destroy(&mls->mls_list);
132 mutex_destroy(&mls->mls_lock);
157 multilist_sublist_t *mls;
165 mls = &ml->ml_sublists[sublist_idx];
176 need_lock = !MUTEX_HELD(&mls->mls_lock);
179 mutex_enter(&mls->mls_lock);
183 multilist_sublist_insert_head(mls, obj);
186 mutex_exit(&mls->mls_lock);
202 multilist_sublist_t *mls;
210 mls = &ml->ml_sublists[sublist_idx];
212 need_lock = !MUTEX_HELD(&mls->mls_lock);
215 mutex_enter(&mls->mls_lock);
219 multilist_sublist_remove(mls, obj);
222 mutex_exit(&mls->mls_lock);
245 multilist_sublist_t *mls = &ml->ml_sublists[i];
247 boolean_t need_lock = !MUTEX_HELD(&mls->mls_lock);
250 mutex_enter(&mls->mls_lock);
252 if (!list_is_empty(&mls->mls_list)) {
254 mutex_exit(&mls->mls_lock);
260 mutex_exit(&mls->mls_lock);
281 multilist_sublist_lock(multilist_sublist_t *mls)
283 mutex_enter(&mls->mls_lock);
290 multilist_sublist_t *mls;
293 mls = &ml->ml_sublists[sublist_idx];
294 mutex_enter(&mls->mls_lock);
296 return (mls);
307 multilist_sublist_unlock(multilist_sublist_t *mls)
309 mutex_exit(&mls->mls_lock);
322 multilist_sublist_insert_head(multilist_sublist_t *mls, void *obj)
324 ASSERT(MUTEX_HELD(&mls->mls_lock));
325 list_insert_head(&mls->mls_list, obj);
330 multilist_sublist_insert_tail(multilist_sublist_t *mls, void *obj)
332 ASSERT(MUTEX_HELD(&mls->mls_lock));
333 list_insert_tail(&mls->mls_list, obj);
338 multilist_sublist_insert_after(multilist_sublist_t *mls, void *prev, void *obj)
340 ASSERT(MUTEX_HELD(&mls->mls_lock));
341 list_insert_after(&mls->mls_list, prev, obj);
346 multilist_sublist_insert_before(multilist_sublist_t *mls, void *next, void *obj)
348 ASSERT(MUTEX_HELD(&mls->mls_lock));
349 list_insert_before(&mls->mls_list, next, obj);
366 multilist_sublist_move_forward(multilist_sublist_t *mls, void *obj)
368 void *prev = list_prev(&mls->mls_list, obj);
370 ASSERT(MUTEX_HELD(&mls->mls_lock));
371 ASSERT(!list_is_empty(&mls->mls_list));
377 list_remove(&mls->mls_list, obj);
378 list_insert_before(&mls->mls_list, prev, obj);
382 multilist_sublist_remove(multilist_sublist_t *mls, void *obj)
384 ASSERT(MUTEX_HELD(&mls->mls_lock));
385 list_remove(&mls->mls_list, obj);
389 multilist_sublist_is_empty(multilist_sublist_t *mls)
391 ASSERT(MUTEX_HELD(&mls->mls_lock));
392 return (list_is_empty(&mls->mls_list));
398 multilist_sublist_t *mls;
402 mls = &ml->ml_sublists[sublist_idx];
403 ASSERT(!MUTEX_HELD(&mls->mls_lock));
404 mutex_enter(&mls->mls_lock);
405 empty = list_is_empty(&mls->mls_list);
406 mutex_exit(&mls->mls_lock);
411 multilist_sublist_head(multilist_sublist_t *mls)
413 ASSERT(MUTEX_HELD(&mls->mls_lock));
414 return (list_head(&mls->mls_list));
418 multilist_sublist_tail(multilist_sublist_t *mls)
420 ASSERT(MUTEX_HELD(&mls->mls_lock));
421 return (list_tail(&mls->mls_list));
425 multilist_sublist_next(multilist_sublist_t *mls, void *obj)
427 ASSERT(MUTEX_HELD(&mls->mls_lock));
428 return (list_next(&mls->mls_list, obj));
432 multilist_sublist_prev(multilist_sublist_t *mls, void *obj)
434 ASSERT(MUTEX_HELD(&mls->mls_lock));
435 return (list_prev(&mls->mls_list, obj));