99 LWS_VISIBLE LWS_EXTERN 
struct lws_ring *
 
  101                 void (*destroy_element)(
void *element));
 
  110 LWS_VISIBLE LWS_EXTERN 
void 
  121 LWS_VISIBLE LWS_EXTERN 
size_t 
  133 LWS_VISIBLE LWS_EXTERN 
size_t 
  146 LWS_VISIBLE LWS_EXTERN 
size_t 
  170 LWS_VISIBLE LWS_EXTERN 
size_t 
  190 LWS_VISIBLE LWS_EXTERN 
const void *
 
  203 LWS_VISIBLE LWS_EXTERN 
void 
  214 LWS_VISIBLE LWS_EXTERN uint32_t
 
  235 LWS_VISIBLE LWS_EXTERN 
int 
  245 LWS_VISIBLE LWS_EXTERN 
void 
  248 LWS_VISIBLE LWS_EXTERN 
void 
  249 lws_ring_dump(
struct lws_ring *ring, uint32_t *tail);
 
  262 #define lws_ring_consume_and_update_oldest_tail(\ 
  273         ___n = lws_ring_get_oldest_tail(___ring) == *(___ptail); \ 
  274         lws_ring_consume(___ring, ___ptail, NULL, ___count); \ 
  276                 uint32_t ___oldest; \ 
  278                 ___oldest = *(___ptail); \ 
  279                 lws_start_foreach_llp(___type **, ___ppss, ___list_head) { \ 
  280                         ___m = (int)lws_ring_get_count_waiting_elements( \ 
  281                                         ___ring, &(*___ppss)->___mtail); \ 
  282                         if (___m >= ___n) { \ 
  284                                 ___oldest = (*___ppss)->___mtail; \ 
  286                 } lws_end_foreach_llp(___ppss, ___mlist); \ 
  288                 lws_ring_update_oldest_tail(___ring, ___oldest); \ 
  298 #define lws_ring_consume_single_tail(\ 
  303         lws_ring_consume(___ring, ___ptail, NULL, ___count); \ 
  304         lws_ring_update_oldest_tail(___ring, *(___ptail)); \ 
LWS_VISIBLE LWS_EXTERN size_t lws_ring_insert(struct lws_ring *ring, const void *src, size_t max_count)
LWS_VISIBLE LWS_EXTERN void lws_ring_destroy(struct lws_ring *ring)
LWS_VISIBLE LWS_EXTERN size_t lws_ring_consume(struct lws_ring *ring, uint32_t *tail, void *dest, size_t max_count)
LWS_VISIBLE LWS_EXTERN uint32_t lws_ring_get_oldest_tail(struct lws_ring *ring)
LWS_VISIBLE LWS_EXTERN size_t lws_ring_get_count_waiting_elements(struct lws_ring *ring, uint32_t *tail)
LWS_VISIBLE LWS_EXTERN size_t lws_ring_get_count_free_elements(struct lws_ring *ring)
LWS_VISIBLE LWS_EXTERN int lws_ring_next_linear_insert_range(struct lws_ring *ring, void **start, size_t *bytes)
LWS_VISIBLE LWS_EXTERN void lws_ring_update_oldest_tail(struct lws_ring *ring, uint32_t tail)
LWS_VISIBLE LWS_EXTERN struct lws_ring * lws_ring_create(size_t element_len, size_t count, void(*destroy_element)(void *element))
LWS_VISIBLE LWS_EXTERN void lws_ring_bump_head(struct lws_ring *ring, size_t bytes)
LWS_VISIBLE LWS_EXTERN const void * lws_ring_get_element(struct lws_ring *ring, uint32_t *tail)