177dde9f9SPaul Lindner /* See items.c */ 2bad6c614SDustin Sallings uint64_t get_cas_id(void); 3bad6c614SDustin Sallings 477dde9f9SPaul Lindner /*@null@*/ 5*690a9a9dSEiichi Tsukata item *do_item_alloc(char *key, const size_t nkey, const unsigned int flags, const rel_time_t exptime, const int nbytes); 677dde9f9SPaul Lindner void item_free(item *it); 710862f60SPaul Lindner bool item_size_ok(const size_t nkey, const int flags, const int nbytes); 877dde9f9SPaul Lindner 9bab9acd1Sdormando int do_item_link(item *it, const uint32_t hv); /** may fail if transgresses limits */ 10bab9acd1Sdormando void do_item_unlink(item *it, const uint32_t hv); 118fe5bf1fSdormando void do_item_unlink_nolock(item *it, const uint32_t hv); 1256b8339eSSteven Grimm void do_item_remove(item *it); 13516e7dc2SPaul Lindner void do_item_update(item *it); /** update LRU time to current and reposition */ 14f2a4e5b4Sdormando void do_item_update_nolock(item *it); 15bab9acd1Sdormando int do_item_replace(item *it, item *new_it, const uint32_t hv); 1677dde9f9SPaul Lindner 17004e2211Sdormando int item_is_flushed(item *it); 18004e2211Sdormando 1977dde9f9SPaul Lindner /*@null@*/ 209bce42f2Sdormando char *item_cachedump(const unsigned int slabs_clsid, const unsigned int limit, unsigned int *bytes); 219bce42f2Sdormando void item_stats(ADD_STAT add_stats, void *c); 229bce42f2Sdormando void item_stats_totals(ADD_STAT add_stats, void *c); 2377dde9f9SPaul Lindner /*@null@*/ 249bce42f2Sdormando void item_stats_sizes(ADD_STAT add_stats, void *c); 258d82383fSdormando void item_stats_sizes_init(void); 26ae6f4267Sdormando void item_stats_sizes_enable(ADD_STAT add_stats, void *c); 27ae6f4267Sdormando void item_stats_sizes_disable(ADD_STAT add_stats, void *c); 288d82383fSdormando void item_stats_sizes_add(item *it); 298d82383fSdormando void item_stats_sizes_remove(item *it); 308d82383fSdormando bool item_stats_sizes_status(void); 3156b8339eSSteven Grimm 326895d23eSsergiocarlos item *do_item_get(const char *key, const size_t nkey, const uint32_t hv, conn *c); 336895d23eSsergiocarlos item *do_item_touch(const char *key, const size_t nkey, uint32_t exptime, const uint32_t hv, conn *c); 3453180103STrond Norbye void item_stats_reset(void); 359bce42f2Sdormando extern pthread_mutex_t lru_locks[POWER_LARGEST]; 360d1f505cSdormando 376be2b6c0Sdormando enum crawler_result_type { 38e708513aSdormando CRAWLER_OK=0, CRAWLER_RUNNING, CRAWLER_BADCLASS, CRAWLER_NOTSTARTED 396be2b6c0Sdormando }; 406be2b6c0Sdormando 41fb269897Sdormando int start_lru_maintainer_thread(void); 42fb269897Sdormando int stop_lru_maintainer_thread(void); 43fb269897Sdormando int init_lru_maintainer(void); 44fb269897Sdormando void lru_maintainer_pause(void); 45fb269897Sdormando void lru_maintainer_resume(void); 46fb269897Sdormando 470d1f505cSdormando int start_item_crawler_thread(void); 480d1f505cSdormando int stop_item_crawler_thread(void); 496be2b6c0Sdormando int init_lru_crawler(void); 50e8711e1bSdormando enum crawler_result_type lru_crawler_crawl(char *slabs); 516af7aa0bSdormando void lru_crawler_pause(void); 526af7aa0bSdormando void lru_crawler_resume(void); 53