• Home
  • Raw
  • Download

Lines Matching refs:mi

47 	struct mirror_instance *mi;  member
78 __mirror_rxflow_instance(struct mirror_instance *mi, int enable) in __mirror_rxflow_instance() argument
81 pss, mi->same_mi_pss_list) { in __mirror_rxflow_instance()
85 mi->rx_enabled = enable; in __mirror_rxflow_instance()
111 __mirror_update_worst_tail(struct mirror_instance *mi) in __mirror_update_worst_tail() argument
116 oldest = lws_ring_get_oldest_tail(mi->ring); in __mirror_update_worst_tail()
119 pss, mi->same_mi_pss_list) { in __mirror_update_worst_tail()
120 wai = (uint32_t)lws_ring_get_count_waiting_elements(mi->ring, in __mirror_update_worst_tail()
132 lws_ring_update_oldest_tail(mi->ring, worst_tail); in __mirror_update_worst_tail()
133 if (oldest == lws_ring_get_oldest_tail(mi->ring)) in __mirror_update_worst_tail()
139 if (!mi->rx_enabled && /* rx is disabled */ in __mirror_update_worst_tail()
140 lws_ring_get_count_free_elements(mi->ring) >= RXFLOW_MAX) in __mirror_update_worst_tail()
142 __mirror_rxflow_instance(mi, 1); in __mirror_update_worst_tail()
154 pss, mi->same_mi_pss_list) { in __mirror_update_worst_tail()
170 __mirror_callback_all_in_mi_on_writable(struct mirror_instance *mi) in __mirror_callback_all_in_mi_on_writable() argument
174 pss, mi->same_mi_pss_list) { in __mirror_callback_all_in_mi_on_writable()
200 struct mirror_instance *mi = NULL; in callback_lws_mirror() local
232 mi = mi1; in callback_lws_mirror()
237 if (!mi) { in callback_lws_mirror()
246 mi = malloc(sizeof(*mi)); in callback_lws_mirror()
247 if (!mi) in callback_lws_mirror()
249 memset(mi, 0, sizeof(*mi)); in callback_lws_mirror()
250 mi->ring = lws_ring_create(sizeof(struct a_message), in callback_lws_mirror()
253 if (!mi->ring) { in callback_lws_mirror()
254 free(mi); in callback_lws_mirror()
258 mi->next = v->mi_list; in callback_lws_mirror()
259 v->mi_list = mi; in callback_lws_mirror()
260 lws_snprintf(mi->name, sizeof(mi->name) - 1, "%s", pn); in callback_lws_mirror()
261 mi->rx_enabled = 1; in callback_lws_mirror()
263 lws_pthread_mutex_init(&mi->lock); in callback_lws_mirror()
265 lwsl_notice("Created new mi %p '%s'\n", mi, pn); in callback_lws_mirror()
270 lws_ll_fwd_insert(pss, same_mi_pss_list, mi->same_mi_pss_list); in callback_lws_mirror()
274 pss->mi = mi; in callback_lws_mirror()
275 pss->tail = lws_ring_get_oldest_tail(mi->ring); in callback_lws_mirror()
287 mi = pss->mi; in callback_lws_mirror()
288 if (!mi) in callback_lws_mirror()
295 same_mi_pss_list, pss, mi->same_mi_pss_list); in callback_lws_mirror()
296 pss->mi = NULL; in callback_lws_mirror()
298 if (mi->same_mi_pss_list) { in callback_lws_mirror()
306 lws_pthread_mutex_lock(&mi->lock); /* mi lock { */ in callback_lws_mirror()
307 __mirror_update_worst_tail(mi); in callback_lws_mirror()
308 lws_pthread_mutex_unlock(&mi->lock); /* } mi lock */ in callback_lws_mirror()
317 if (*pmi == mi) { in callback_lws_mirror()
320 lws_ring_destroy(mi->ring); in callback_lws_mirror()
321 lws_pthread_mutex_destroy(&mi->lock); in callback_lws_mirror()
323 free(mi); in callback_lws_mirror()
349 lws_pthread_mutex_lock(&pss->mi->lock); /* instance lock { */ in callback_lws_mirror()
350 oldest_tail = lws_ring_get_oldest_tail(pss->mi->ring); in callback_lws_mirror()
355 msg = lws_ring_get_element(pss->mi->ring, &pss->tail); in callback_lws_mirror()
363 if (lws_ring_consume(pss->mi->ring, &pss->tail, in callback_lws_mirror()
377 lws_ring_consume(pss->mi->ring, &pss->tail, NULL, 1); in callback_lws_mirror()
382 if (lws_ring_get_count_waiting_elements(pss->mi->ring, in callback_lws_mirror()
400 __mirror_update_worst_tail(pss->mi); in callback_lws_mirror()
403 lws_pthread_mutex_unlock(&pss->mi->lock); /* } instance lock */ in callback_lws_mirror()
407 lws_pthread_mutex_unlock(&pss->mi->lock); /* } instance lock */ in callback_lws_mirror()
412 lws_pthread_mutex_lock(&pss->mi->lock); /* mi lock { */ in callback_lws_mirror()
413 n = (int)lws_ring_get_count_free_elements(pss->mi->ring); in callback_lws_mirror()
416 if (pss->mi->rx_enabled) in callback_lws_mirror()
417 __mirror_rxflow_instance(pss->mi, 0); in callback_lws_mirror()
429 if (!lws_ring_insert(pss->mi->ring, &amsg, 1)) { in callback_lws_mirror()
432 if (pss->mi->rx_enabled) in callback_lws_mirror()
433 __mirror_rxflow_instance(pss->mi, 0); in callback_lws_mirror()
437 if (pss->mi->rx_enabled && in callback_lws_mirror()
438 lws_ring_get_count_free_elements(pss->mi->ring) < in callback_lws_mirror()
440 __mirror_rxflow_instance(pss->mi, 0); in callback_lws_mirror()
443 __mirror_callback_all_in_mi_on_writable(pss->mi); in callback_lws_mirror()
446 lws_pthread_mutex_unlock(&pss->mi->lock); /* } mi lock */ in callback_lws_mirror()