Lines Matching refs:lds

98 	struct lws_diskcache_scan *lds = lws_malloc(sizeof(*lds), "cachescan");  in lws_diskcache_create()  local
100 if (!lds) in lws_diskcache_create()
103 memset(lds, 0, sizeof(*lds)); in lws_diskcache_create()
105 lds->cache_dir_base = cache_dir_base; in lws_diskcache_create()
106 lds->cache_size_limit = cache_size_limit; in lws_diskcache_create()
108 return lds; in lws_diskcache_create()
112 lws_diskcache_destroy(struct lws_diskcache_scan **lds) in lws_diskcache_destroy() argument
114 if ((*lds)->batch) in lws_diskcache_destroy()
115 lws_free((*lds)->batch); in lws_diskcache_destroy()
116 lws_free(*lds); in lws_diskcache_destroy()
117 *lds = NULL; in lws_diskcache_destroy()
176 lws_diskcache_query(struct lws_diskcache_scan *lds, int is_bot, in lws_diskcache_query() argument
184 if (!lds->cache_dir_base) in lws_diskcache_query()
188 lds->cache_tries++; in lws_diskcache_query()
190 n = lws_snprintf(cache, cache_len, "%s/%c/%c/%s", lds->cache_dir_base, in lws_diskcache_query()
200 lds->cache_hits++; in lws_diskcache_query()
239 lws_diskcache_secs_to_idle(struct lws_diskcache_scan *lds) in lws_diskcache_secs_to_idle() argument
241 return lds->secs_waiting; in lws_diskcache_secs_to_idle()
272 lws_diskcache_trim(struct lws_diskcache_scan *lds) in lws_diskcache_trim() argument
274 size_t cache_size_limit = lds->cache_size_limit; in lws_diskcache_trim()
285 if (!lds->cache_subdir) { in lws_diskcache_trim()
287 if (lds->last_scan_completed + lds->secs_waiting > time(NULL)) in lws_diskcache_trim()
290 lds->batch = lws_malloc(sizeof(struct file_entry) * in lws_diskcache_trim()
292 if (!lds->batch) { in lws_diskcache_trim()
297 lds->agg_size = 0; in lws_diskcache_trim()
298 lds->head = NULL; in lws_diskcache_trim()
299 lds->batch_in_use = 0; in lws_diskcache_trim()
300 lds->agg_file_count = 0; in lws_diskcache_trim()
304 lds->cache_dir_base, hex[(lds->cache_subdir >> 4) & 15], in lws_diskcache_trim()
305 hex[lds->cache_subdir & 15]); in lws_diskcache_trim()
310 lds->cache_dir_base); in lws_diskcache_trim()
322 lds->agg_file_count++; in lws_diskcache_trim()
341 lds->agg_size += s.st_size; in lws_diskcache_trim()
343 if (lds->batch_in_use == BATCH_COUNT) { in lws_diskcache_trim()
349 if (lp_to_fe(lds->head, sorted)->modified < s.st_mtime) in lws_diskcache_trim()
357 p = lds->head; in lws_diskcache_trim()
358 lds->head = p->sorted; in lws_diskcache_trim()
362 p = &lds->batch[lds->batch_in_use++]; in lws_diskcache_trim()
370 lws_list_ptr_insert(&lds->head, &p->sorted, fe_modified_sort); in lws_diskcache_trim()
375 lds->cache_subdir++; in lws_diskcache_trim()
376 if (lds->cache_subdir != 0x100) in lws_diskcache_trim()
385 if (lds->agg_size > cache_size_limit) { in lws_diskcache_trim()
389 lp = lds->head; in lws_diskcache_trim()
405 while (lp && lds->agg_size > cache_size_limit) { in lws_diskcache_trim()
409 lds->cache_dir_base, p->name[0], in lws_diskcache_trim()
413 lds->agg_size -= p->size; in lws_diskcache_trim()
426 lds->cache_dir_base, files_trimmed, in lws_diskcache_trim()
428 ((unsigned long long)lds->agg_size) / MIB); in lws_diskcache_trim()
431 if (lds->agg_size && lds->agg_file_count) in lws_diskcache_trim()
432 lds->avg_size = lds->agg_size / lds->agg_file_count; in lws_diskcache_trim()
439 lds->last_scan_completed = time(NULL); in lws_diskcache_trim()
440 lds->secs_waiting = 1; in lws_diskcache_trim()
442 if (lds->agg_size < cache_size_limit) { in lws_diskcache_trim()
446 if (lds->agg_size && lds->agg_file_count) in lws_diskcache_trim()
447 avg = ((lds->agg_size * 8) / lds->agg_file_count) / 10; in lws_diskcache_trim()
459 projected = (lds->agg_size * 11) / 10; in lws_diskcache_trim()
462 lds->secs_waiting = (256 / 2) * ((cache_size_limit - in lws_diskcache_trim()
470 if (lds->secs_waiting > 3600) in lws_diskcache_trim()
471 lds->secs_waiting = 3600; in lws_diskcache_trim()
473 lds->secs_waiting = 0; in lws_diskcache_trim()
476 lds->cache_dir_base, in lws_diskcache_trim()
477 (unsigned long long)lds->agg_size / KIB, in lws_diskcache_trim()
479 lds->secs_waiting); in lws_diskcache_trim()
481 lws_free(lds->batch); in lws_diskcache_trim()
482 lds->batch = NULL; in lws_diskcache_trim()
484 lds->cache_subdir = 0; in lws_diskcache_trim()