00001 /* 00002 * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC") 00003 * Copyright (C) 1999-2001 Internet Software Consortium. 00004 * 00005 * Permission to use, copy, modify, and/or distribute this software for any 00006 * purpose with or without fee is hereby granted, provided that the above 00007 * copyright notice and this permission notice appear in all copies. 00008 * 00009 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 00010 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 00011 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 00012 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 00013 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 00014 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 00015 * PERFORMANCE OF THIS SOFTWARE. 00016 */ 00017 00018 /* $Id: bufferlist.h,v 1.17 2007/06/19 23:47:18 tbox Exp $ */ 00019 00020 #ifndef ISC_BUFFERLIST_H 00021 #define ISC_BUFFERLIST_H 1 00022 00023 /***** 00024 ***** Module Info 00025 *****/ 00026 00027 /*! \file isc/bufferlist.h 00028 * 00029 * 00030 *\brief Buffer lists have no synchronization. Clients must ensure exclusive 00031 * access. 00032 * 00033 * \li Reliability: 00034 * No anticipated impact. 00035 00036 * \li Security: 00037 * No anticipated impact. 00038 * 00039 * \li Standards: 00040 * None. 00041 */ 00042 00043 /*** 00044 *** Imports 00045 ***/ 00046 00047 #include <isc/lang.h> 00048 #include <isc/types.h> 00049 00050 ISC_LANG_BEGINDECLS 00051 00052 /*** 00053 *** Functions 00054 ***/ 00055 00056 unsigned int 00057 isc_bufferlist_usedcount(isc_bufferlist_t *bl); 00058 /*!< 00059 * \brief Return the length of the sum of all used regions of all buffers in 00060 * the buffer list 'bl' 00061 * 00062 * Requires: 00063 * 00064 *\li 'bl' is not NULL. 00065 * 00066 * Returns: 00067 *\li sum of all used regions' lengths. 00068 */ 00069 00070 unsigned int 00071 isc_bufferlist_availablecount(isc_bufferlist_t *bl); 00072 /*!< 00073 * \brief Return the length of the sum of all available regions of all buffers in 00074 * the buffer list 'bl' 00075 * 00076 * Requires: 00077 * 00078 *\li 'bl' is not NULL. 00079 * 00080 * Returns: 00081 *\li sum of all available regions' lengths. 00082 */ 00083 00084 ISC_LANG_ENDDECLS 00085 00086 #endif /* ISC_BUFFERLIST_H */