• Home
  • Raw
  • Download

Lines Matching full:cache

26 #include "private-lib-misc-cache-ttl.h"
33 update_sul(lws_cache_ttl_lru_t_heap_t *cache);
54 _lws_cache_heap_item_destroy(lws_cache_ttl_lru_t_heap_t *cache, in _lws_cache_heap_item_destroy() argument
57 lwsl_cache("%s: %s (%s)\n", __func__, cache->cache.info.name, in _lws_cache_heap_item_destroy()
63 cache->cache.current_footprint -= item->size; in _lws_cache_heap_item_destroy()
65 update_sul(cache); in _lws_cache_heap_item_destroy()
67 if (cache->cache.info.cb) in _lws_cache_heap_item_destroy()
68 cache->cache.info.cb((void *)((uint8_t *)&item[1]), item->size); in _lws_cache_heap_item_destroy()
74 lws_cache_heap_item_destroy(lws_cache_ttl_lru_t_heap_t *cache, in lws_cache_heap_item_destroy() argument
77 struct lws_cache_ttl_lru *backing = &cache->cache; in lws_cache_heap_item_destroy()
98 cache->items_lru.head) { in lws_cache_heap_item_destroy()
129 _lws_cache_heap_item_destroy(cache, i); in lws_cache_heap_item_destroy()
149 _lws_cache_heap_item_destroy(cache, item); in lws_cache_heap_item_destroy()
153 lws_cache_item_evict_lru(lws_cache_ttl_lru_t_heap_t *cache) in lws_cache_item_evict_lru() argument
157 if (!cache->items_lru.head) in lws_cache_item_evict_lru()
160 ei = lws_container_of(cache->items_lru.head, in lws_cache_item_evict_lru()
163 lws_cache_heap_item_destroy(cache, ei, 0); in lws_cache_item_evict_lru()
173 lws_cache_ttl_lru_t_heap_t *cache = lws_container_of(sul, in expiry_cb() local
174 lws_cache_ttl_lru_t_heap_t, cache.sul); in expiry_cb()
177 lwsl_cache("%s: %s\n", __func__, cache->cache.info.name); in expiry_cb()
179 while (cache->items_expiry.head) { in expiry_cb()
182 item = lws_container_of(cache->items_expiry.head, in expiry_cb()
188 lws_cache_heap_item_destroy(cache, item, 1); in expiry_cb()
197 earliest_expiry(lws_cache_ttl_lru_t_heap_t *cache, lws_usec_t *pearliest) in earliest_expiry() argument
201 if (!cache->items_expiry.head) in earliest_expiry()
204 item = lws_container_of(cache->items_expiry.head, in earliest_expiry()
213 update_sul(lws_cache_ttl_lru_t_heap_t *cache) in update_sul() argument
218 expiry_cb(&cache->cache.sul); in update_sul()
221 if (earliest_expiry(cache, &earliest)) { in update_sul()
222 lws_sul_cancel(&cache->cache.sul); in update_sul()
230 lws_cache_schedule(&cache->cache, expiry_cb, earliest); in update_sul()
234 lws_cache_heap_specific(lws_cache_ttl_lru_t_heap_t *cache, in lws_cache_heap_specific() argument
237 lws_start_foreach_dll(struct lws_dll2 *, d, cache->items_lru.head) { in lws_cache_heap_specific()
252 lws_cache_heap_tag_match(struct lws_cache_ttl_lru *cache, const char *wc, in lws_cache_heap_tag_match() argument
262 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)_c; in lws_cache_heap_lookup() local
265 lws_start_foreach_dll(struct lws_dll2 *, d, cache->items_lru.head) { in lws_cache_heap_lookup()
279 * cache level in lws_cache_heap_lookup()
326 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)_c; in lws_cache_heap_write() local
344 cache->items_lru.head) { in lws_cache_heap_write()
360 _lws_cache_heap_item_destroy(cache, i); in lws_cache_heap_write()
371 while ((cache->cache.info.max_footprint && in lws_cache_heap_write()
372 cache->cache.current_footprint + size > in lws_cache_heap_write()
373 cache->cache.info.max_footprint) || in lws_cache_heap_write()
374 (cache->cache.info.max_items && in lws_cache_heap_write()
375 cache->items_lru.count + 1 > cache->cache.info.max_items)) in lws_cache_heap_write()
376 lws_cache_item_evict_lru(cache); in lws_cache_heap_write()
380 lws_cache_heap_invalidate(&cache->cache, specific_key); in lws_cache_heap_write()
387 cache->cache.current_footprint += item->size; in lws_cache_heap_write()
409 lws_dll2_add_sorted(&item->list_expiry, &cache->items_expiry, in lws_cache_heap_write()
411 ei = lws_container_of(cache->items_expiry.head, in lws_cache_heap_write()
415 lws_cache_schedule(&cache->cache, expiry_cb, ei->expiry); in lws_cache_heap_write()
419 lws_dll2_add_head(&item->list_lru, &cache->items_lru); in lws_cache_heap_write()
428 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)_c; in lws_cache_heap_get() local
431 item = lws_cache_heap_specific(cache, specific_key); in lws_cache_heap_get()
437 lws_dll2_add_head(&item->list_lru, &cache->items_lru); in lws_cache_heap_get()
450 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)_c; in lws_cache_heap_invalidate() local
469 cache->items_lru.head) { in lws_cache_heap_invalidate()
486 _lws_cache_heap_item_destroy(cache, i); in lws_cache_heap_invalidate()
491 lws_cache_heap_item_destroy(cache, item, 0); in lws_cache_heap_invalidate()
499 lws_cache_ttl_lru_t_heap_t *cache; in lws_cache_heap_create() local
504 cache = lws_fi(&info->cx->fic, "cache_createfail") ? NULL : in lws_cache_heap_create()
505 lws_zalloc(sizeof(*cache), __func__); in lws_cache_heap_create()
506 if (!cache) in lws_cache_heap_create()
509 cache->cache.info = *info; in lws_cache_heap_create()
511 info->parent->child = &cache->cache; in lws_cache_heap_create()
515 return (struct lws_cache_ttl_lru *)cache; in lws_cache_heap_create()
522 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)_c; in destroy_dll() local
526 lws_cache_heap_item_destroy(cache, item, 0); in destroy_dll()
534 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)_c; in lws_cache_heap_expunge() local
536 lws_dll2_foreach_safe(&cache->items_lru, cache, destroy_dll); in lws_cache_heap_expunge()
545 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)c; in lws_cache_heap_destroy() local
547 if (!cache) in lws_cache_heap_destroy()
552 lws_dll2_foreach_safe(&cache->items_lru, cache, destroy_dll); in lws_cache_heap_destroy()
576 lws_cache_ttl_lru_t_heap_t *cache = (lws_cache_ttl_lru_t_heap_t *)_c; in lws_cache_heap_debug_dump() local
580 lws_dll2_t *d = cache->items_expiry.head; in lws_cache_heap_debug_dump()
587 cache->cache.info.name, (int)cache->items_lru.count, in lws_cache_heap_debug_dump()
591 lws_dll2_foreach_safe(&cache->items_lru, cache, dump_dll); in lws_cache_heap_debug_dump()