003 File Manager
Current Path:
/usr/src/usr.sbin/nscd
usr
/
src
/
usr.sbin
/
nscd
/
📁
..
📄
Makefile
(394 B)
📄
Makefile.depend
(314 B)
📄
agent.c
(3.34 KB)
📄
agent.h
(2.35 KB)
📁
agents
📄
cachelib.c
(33.88 KB)
📄
cachelib.h
(8.01 KB)
📄
cacheplcs.c
(18.6 KB)
📄
cacheplcs.h
(4.1 KB)
📄
config.c
(16.32 KB)
📄
config.h
(4.96 KB)
📄
debug.c
(3.14 KB)
📄
debug.h
(2.65 KB)
📄
hashtable.h
(7.41 KB)
📄
log.c
(2.29 KB)
📄
log.h
(1.97 KB)
📄
mp_rs_query.c
(16 KB)
📄
mp_rs_query.h
(1.49 KB)
📄
mp_ws_query.c
(16.78 KB)
📄
mp_ws_query.h
(1.56 KB)
📄
nscd.8
(4.22 KB)
📄
nscd.c
(23.63 KB)
📄
nscd.conf
(231 B)
📄
nscd.conf.5
(5.27 KB)
📄
nscdcli.c
(7.32 KB)
📄
nscdcli.h
(2.05 KB)
📄
parser.c
(13.8 KB)
📄
parser.h
(1.5 KB)
📄
protocol.c
(14.89 KB)
📄
protocol.h
(8.06 KB)
📄
query.c
(35.53 KB)
📄
query.h
(3.69 KB)
📄
singletons.c
(1.6 KB)
📄
singletons.h
(1.72 KB)
Editing: cacheplcs.h
/*- * Copyright (c) 2005 Michael Bushkov <bushman@rsu.ru> * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD$ */ #ifndef __NSCD_CACHEPLCS_H__ #define __NSCD_CACHEPLCS_H__ #include <sys/queue.h> /* common policy definitions */ #define CACHELIB_MAX_FREQUENCY 100 /* * cache_policy_item_ represents some abstract cache element in the policy * queue. connected_item pointers to the corresponding cache_policy_item_ in * another policy queue. */ struct cache_policy_item_ { char *key; size_t key_size; size_t request_count; struct timeval last_request_time; struct timeval creation_time; struct cache_policy_item_ *connected_item; }; /* * cache_policy_ represents an abstract policy queue. It can be customized by * setting appropriate function pointers */ struct cache_policy_ { struct cache_policy_item_* (*create_item_func)(void); void (*destroy_item_func)(struct cache_policy_item_ *); void (*add_item_func)(struct cache_policy_ *, struct cache_policy_item_ *); void (*remove_item_func)(struct cache_policy_ *, struct cache_policy_item_ *); void (*update_item_func)(struct cache_policy_ *, struct cache_policy_item_ *); struct cache_policy_item_ *(*get_first_item_func)( struct cache_policy_ *); struct cache_policy_item_ *(*get_last_item_func)( struct cache_policy_ *); struct cache_policy_item_ *(*get_next_item_func)( struct cache_policy_ *, struct cache_policy_item_ *); struct cache_policy_item_ *(*get_prev_item_func)( struct cache_policy_ *, struct cache_policy_item_ *); }; /* * LFU cache policy item "inherited" from cache_policy_item_ structure */ struct cache_lfu_policy_item_ { struct cache_policy_item_ parent_data; int frequency; TAILQ_ENTRY(cache_lfu_policy_item_) entries; }; TAILQ_HEAD(cache_lfu_policy_group_, cache_lfu_policy_item_); /* * LFU policy queue "inherited" from cache_policy_. */ struct cache_lfu_policy_ { struct cache_policy_ parent_data; struct cache_lfu_policy_group_ groups[CACHELIB_MAX_FREQUENCY]; }; /* * LRU and FIFO policies item "inherited" from cache_policy_item_ */ struct cache_queue_policy_item_ { struct cache_policy_item_ parent_data; TAILQ_ENTRY(cache_queue_policy_item_) entries; }; /* * LRU and FIFO policies "inherited" from cache_policy_ */ struct cache_queue_policy_ { struct cache_policy_ parent_data; TAILQ_HEAD(cache_queue_policy_head_, cache_queue_policy_item_) head; }; typedef struct cache_queue_policy_ cache_fifo_policy_; typedef struct cache_queue_policy_ cache_lru_policy_; /* fifo policy routines */ struct cache_policy_ *init_cache_fifo_policy(void); void destroy_cache_fifo_policy(struct cache_policy_ *); /* lru policy routines */ struct cache_policy_ *init_cache_lru_policy(void); void destroy_cache_lru_policy(struct cache_policy_ *); /* lfu policy routines */ struct cache_policy_ *init_cache_lfu_policy(void); void destroy_cache_lfu_policy(struct cache_policy_ *); #endif
Upload File
Create Folder