X7ROOT File Manager
Current Path:
/usr/include/bind9/isc
usr
/
include
/
bind9
/
isc
/
📁
..
📄
aes.h
(1.05 KB)
📄
app.h
(10.23 KB)
📄
assertions.h
(2.78 KB)
📄
atomic.h
(4.15 KB)
📄
backtrace.h
(3.8 KB)
📄
base32.h
(3.94 KB)
📄
base64.h
(2.39 KB)
📄
bind9.h
(849 B)
📄
boolean.h
(746 B)
📄
buffer.h
(25.69 KB)
📄
bufferlist.h
(1.42 KB)
📄
commandline.h
(1.69 KB)
📄
condition.h
(1.44 KB)
📄
counter.h
(1.88 KB)
📄
crc64.h
(986 B)
📄
deprecated.h
(622 B)
📄
dir.h
(1.96 KB)
📄
entropy.h
(8.76 KB)
📄
errno.h
(658 B)
📄
errno2result.h
(893 B)
📄
error.h
(1.4 KB)
📄
event.h
(2.98 KB)
📄
eventclass.h
(1.35 KB)
📄
file.h
(11.43 KB)
📄
formatcheck.h
(892 B)
📄
fsaccess.h
(7.25 KB)
📄
hash.h
(7.52 KB)
📄
heap.h
(5.14 KB)
📄
hex.h
(2.33 KB)
📄
hmacmd5.h
(1.75 KB)
📄
hmacsha.h
(4.44 KB)
📄
ht.h
(3.91 KB)
📄
httpd.h
(2.26 KB)
📄
int.h
(1.37 KB)
📄
interfaceiter.h
(3.03 KB)
📄
iterated_hash.h
(1.02 KB)
📄
json.h
(1.42 KB)
📄
keyboard.h
(976 B)
📄
lang.h
(636 B)
📄
lex.h
(9.42 KB)
📄
lfsr.h
(2.88 KB)
📄
lib.h
(1.04 KB)
📄
likely.h
(718 B)
📄
list.h
(5.65 KB)
📄
log.h
(28.06 KB)
📄
magic.h
(993 B)
📄
md5.h
(2.34 KB)
📄
mem.h
(20.63 KB)
📄
meminfo.h
(690 B)
📄
msgcat.h
(2.66 KB)
📄
msgs.h
(8.22 KB)
📄
mutex.h
(3.44 KB)
📄
mutexblock.h
(1.34 KB)
📄
net.h
(10.32 KB)
📄
netaddr.h
(4.56 KB)
📄
netdb.h
(862 B)
📄
netscope.h
(947 B)
📄
offset.h
(699 B)
📄
once.h
(981 B)
📄
ondestroy.h
(2.79 KB)
📄
os.h
(670 B)
📄
parseint.h
(1.49 KB)
📄
platform.h
(9.31 KB)
📄
pool.h
(3.42 KB)
📄
portset.h
(3.21 KB)
📄
print.h
(2.49 KB)
📄
queue.h
(4.66 KB)
📄
quota.h
(2.29 KB)
📄
radix.h
(6.37 KB)
📄
random.h
(2.99 KB)
📄
ratelimiter.h
(3.38 KB)
📄
refcount.h
(7.89 KB)
📄
regex.h
(766 B)
📄
region.h
(1.99 KB)
📄
resource.h
(2.8 KB)
📄
result.h
(4.62 KB)
📄
resultclass.h
(1.56 KB)
📄
rwlock.h
(3.6 KB)
📄
safe.h
(1.21 KB)
📄
serial.h
(1.4 KB)
📄
sha1.h
(1.52 KB)
📄
sha2.h
(5.65 KB)
📄
sockaddr.h
(6 KB)
📄
socket.h
(35.81 KB)
📄
stat.h
(805 B)
📄
stats.h
(3.02 KB)
📄
stdio.h
(1.74 KB)
📄
stdlib.h
(703 B)
📄
stdtime.h
(1.3 KB)
📄
strerror.h
(776 B)
📄
string.h
(5.94 KB)
📄
symtab.h
(4.21 KB)
📄
syslog.h
(843 B)
📄
task.h
(21.08 KB)
📄
taskpool.h
(3.61 KB)
📄
thread.h
(1.47 KB)
📄
time.h
(8.66 KB)
📄
timer.h
(10.54 KB)
📄
tm.h
(894 B)
📄
types.h
(5.54 KB)
📄
util.h
(7.49 KB)
📄
version.h
(688 B)
📄
xml.h
(1.07 KB)
Editing: pool.h
/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef ISC_OBJPOOL_H #define ISC_OBJPOOL_H 1 /***** ***** Module Info *****/ /*! \file isc/pool.h * \brief An object pool is a mechanism for sharing a small pool of * fungible objects among a large number of objects that depend on them. * * This is useful, for example, when it causes performance problems for * large number of zones to share a single memory context or task object, * but it would create a different set of problems for them each to have an * independent task or memory context. */ /*** *** Imports. ***/ #include <isc/lang.h> #include <isc/mem.h> #include <isc/types.h> ISC_LANG_BEGINDECLS /***** ***** Types. *****/ typedef void (*isc_pooldeallocator_t)(void **object); typedef isc_result_t (*isc_poolinitializer_t)(void **target, void *arg); typedef struct isc_pool isc_pool_t; /***** ***** Functions. *****/ isc_result_t isc_pool_create(isc_mem_t *mctx, unsigned int count, isc_pooldeallocator_t free, isc_poolinitializer_t init, void *initarg, isc_pool_t **poolp); /*%< * Create a pool of "count" object pointers. If 'free' is not NULL, * it points to a function that will detach the objects. 'init' * points to a function that will initialize the arguments, and * 'arg' to an argument to be passed into that function (for example, * a relevant manager or context object). * * Requires: * *\li 'mctx' is a valid memory context. * *\li init != NULL * *\li poolp != NULL && *poolp == NULL * * Ensures: * *\li On success, '*poolp' points to the new object pool. * * Returns: * *\li #ISC_R_SUCCESS *\li #ISC_R_NOMEMORY *\li #ISC_R_UNEXPECTED */ void * isc_pool_get(isc_pool_t *pool); /*%< * Returns a pointer to an object from the pool. Currently the object * is chosen from the pool at random. (This may be changed in the future * to something that guaratees balance.) */ int isc_pool_count(isc_pool_t *pool); /*%< * Returns the number of objcts in the pool 'pool'. */ isc_result_t isc_pool_expand(isc_pool_t **sourcep, unsigned int count, isc_pool_t **targetp); /*%< * If 'size' is larger than the number of objects in the pool pointed to by * 'sourcep', then a new pool of size 'count' is allocated, the existing * objects are copied into it, additional ones created to bring the * total number up to 'count', and the resulting pool is attached to * 'targetp'. * * If 'count' is less than or equal to the number of objects in 'source', then * 'sourcep' is attached to 'targetp' without any other action being taken. * * In either case, 'sourcep' is detached. * * Requires: * * \li 'sourcep' is not NULL and '*source' is not NULL * \li 'targetp' is not NULL and '*source' is NULL * * Ensures: * * \li On success, '*targetp' points to a valid task pool. * \li On success, '*sourcep' points to NULL. * * Returns: * * \li #ISC_R_SUCCESS * \li #ISC_R_NOMEMORY */ void isc_pool_destroy(isc_pool_t **poolp); /*%< * Destroy a task pool. The tasks in the pool are detached but not * shut down. * * Requires: * \li '*poolp' is a valid task pool. */ ISC_LANG_ENDDECLS #endif /* ISC_OBJPOOL_H */
Upload File
Create Folder