"Fossies" - the Fresh Open Source Software Archive

Member "bind-9.17.5/lib/isc/include/isc/stats.h" (4 Sep 2020, 6382 Bytes) of package /linux/misc/dns/bind9/9.17.5/bind-9.17.5.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "stats.h" see the Fossies "Dox" file reference documentation.

    1 /*
    2  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
    3  *
    4  * This Source Code Form is subject to the terms of the Mozilla Public
    5  * License, v. 2.0. If a copy of the MPL was not distributed with this
    6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
    7  *
    8  * See the COPYRIGHT file distributed with this work for additional
    9  * information regarding copyright ownership.
   10  */
   11 
   12 #ifndef ISC_STATS_H
   13 #define ISC_STATS_H 1
   14 
   15 /*! \file isc/stats.h */
   16 
   17 #include <inttypes.h>
   18 
   19 #include <isc/types.h>
   20 
   21 /*%
   22  * Statistics counters.  Used as isc_statscounter_t values.
   23  */
   24 enum {
   25     /*%
   26      * Socket statistics counters.
   27      */
   28     isc_sockstatscounter_udp4open = 0,
   29     isc_sockstatscounter_udp6open = 1,
   30     isc_sockstatscounter_tcp4open = 2,
   31     isc_sockstatscounter_tcp6open = 3,
   32     isc_sockstatscounter_unixopen = 4,
   33 
   34     isc_sockstatscounter_udp4openfail = 5,
   35     isc_sockstatscounter_udp6openfail = 6,
   36     isc_sockstatscounter_tcp4openfail = 7,
   37     isc_sockstatscounter_tcp6openfail = 8,
   38     isc_sockstatscounter_unixopenfail = 9,
   39 
   40     isc_sockstatscounter_udp4close = 10,
   41     isc_sockstatscounter_udp6close = 11,
   42     isc_sockstatscounter_tcp4close = 12,
   43     isc_sockstatscounter_tcp6close = 13,
   44     isc_sockstatscounter_unixclose = 14,
   45     isc_sockstatscounter_fdwatchclose = 15,
   46 
   47     isc_sockstatscounter_udp4bindfail = 16,
   48     isc_sockstatscounter_udp6bindfail = 17,
   49     isc_sockstatscounter_tcp4bindfail = 18,
   50     isc_sockstatscounter_tcp6bindfail = 19,
   51     isc_sockstatscounter_unixbindfail = 20,
   52     isc_sockstatscounter_fdwatchbindfail = 21,
   53 
   54     isc_sockstatscounter_udp4connect = 22,
   55     isc_sockstatscounter_udp6connect = 23,
   56     isc_sockstatscounter_tcp4connect = 24,
   57     isc_sockstatscounter_tcp6connect = 25,
   58     isc_sockstatscounter_unixconnect = 26,
   59     isc_sockstatscounter_fdwatchconnect = 27,
   60 
   61     isc_sockstatscounter_udp4connectfail = 28,
   62     isc_sockstatscounter_udp6connectfail = 29,
   63     isc_sockstatscounter_tcp4connectfail = 30,
   64     isc_sockstatscounter_tcp6connectfail = 31,
   65     isc_sockstatscounter_unixconnectfail = 32,
   66     isc_sockstatscounter_fdwatchconnectfail = 33,
   67 
   68     isc_sockstatscounter_tcp4accept = 34,
   69     isc_sockstatscounter_tcp6accept = 35,
   70     isc_sockstatscounter_unixaccept = 36,
   71 
   72     isc_sockstatscounter_tcp4acceptfail = 37,
   73     isc_sockstatscounter_tcp6acceptfail = 38,
   74     isc_sockstatscounter_unixacceptfail = 39,
   75 
   76     isc_sockstatscounter_udp4sendfail = 40,
   77     isc_sockstatscounter_udp6sendfail = 41,
   78     isc_sockstatscounter_tcp4sendfail = 42,
   79     isc_sockstatscounter_tcp6sendfail = 43,
   80     isc_sockstatscounter_unixsendfail = 44,
   81     isc_sockstatscounter_fdwatchsendfail = 45,
   82 
   83     isc_sockstatscounter_udp4recvfail = 46,
   84     isc_sockstatscounter_udp6recvfail = 47,
   85     isc_sockstatscounter_tcp4recvfail = 48,
   86     isc_sockstatscounter_tcp6recvfail = 49,
   87     isc_sockstatscounter_unixrecvfail = 50,
   88     isc_sockstatscounter_fdwatchrecvfail = 51,
   89 
   90     isc_sockstatscounter_udp4active = 52,
   91     isc_sockstatscounter_udp6active = 53,
   92     isc_sockstatscounter_tcp4active = 54,
   93     isc_sockstatscounter_tcp6active = 55,
   94     isc_sockstatscounter_unixactive = 56,
   95 
   96     isc_sockstatscounter_rawopen = 57,
   97     isc_sockstatscounter_rawopenfail = 58,
   98     isc_sockstatscounter_rawclose = 59,
   99     isc_sockstatscounter_rawrecvfail = 60,
  100     isc_sockstatscounter_rawactive = 61,
  101 
  102     isc_sockstatscounter_max = 62
  103 };
  104 
  105 ISC_LANG_BEGINDECLS
  106 
  107 /*%<
  108  * Flag(s) for isc_stats_dump().
  109  */
  110 #define ISC_STATSDUMP_VERBOSE 0x00000001 /*%< dump 0-value counters */
  111 
  112 /*%<
  113  * Dump callback type.
  114  */
  115 typedef void (*isc_stats_dumper_t)(isc_statscounter_t, uint64_t, void *);
  116 
  117 isc_result_t
  118 isc_stats_create(isc_mem_t *mctx, isc_stats_t **statsp, int ncounters);
  119 /*%<
  120  * Create a statistics counter structure of general type.  It counts a general
  121  * set of counters indexed by an ID between 0 and ncounters -1.
  122  *
  123  * Requires:
  124  *\li   'mctx' must be a valid memory context.
  125  *
  126  *\li   'statsp' != NULL && '*statsp' == NULL.
  127  *
  128  * Returns:
  129  *\li   ISC_R_SUCCESS   -- all ok
  130  *
  131  *\li   anything else   -- failure
  132  */
  133 
  134 void
  135 isc_stats_attach(isc_stats_t *stats, isc_stats_t **statsp);
  136 /*%<
  137  * Attach to a statistics set.
  138  *
  139  * Requires:
  140  *\li   'stats' is a valid isc_stats_t.
  141  *
  142  *\li   'statsp' != NULL && '*statsp' == NULL
  143  */
  144 
  145 void
  146 isc_stats_detach(isc_stats_t **statsp);
  147 /*%<
  148  * Detaches from the statistics set.
  149  *
  150  * Requires:
  151  *\li   'statsp' != NULL and '*statsp' is a valid isc_stats_t.
  152  */
  153 
  154 int
  155 isc_stats_ncounters(isc_stats_t *stats);
  156 /*%<
  157  * Returns the number of counters contained in stats.
  158  *
  159  * Requires:
  160  *\li   'stats' is a valid isc_stats_t.
  161  *
  162  */
  163 
  164 void
  165 isc_stats_increment(isc_stats_t *stats, isc_statscounter_t counter);
  166 /*%<
  167  * Increment the counter-th counter of stats.
  168  *
  169  * Requires:
  170  *\li   'stats' is a valid isc_stats_t.
  171  *
  172  *\li   counter is less than the maximum available ID for the stats specified
  173  *  on creation.
  174  */
  175 
  176 void
  177 isc_stats_decrement(isc_stats_t *stats, isc_statscounter_t counter);
  178 /*%<
  179  * Decrement the counter-th counter of stats.
  180  *
  181  * Requires:
  182  *\li   'stats' is a valid isc_stats_t.
  183  */
  184 
  185 void
  186 isc_stats_dump(isc_stats_t *stats, isc_stats_dumper_t dump_fn, void *arg,
  187            unsigned int options);
  188 /*%<
  189  * Dump the current statistics counters in a specified way.  For each counter
  190  * in stats, dump_fn is called with its current value and the given argument
  191  * arg.  By default counters that have a value of 0 is skipped; if options has
  192  * the ISC_STATSDUMP_VERBOSE flag, even such counters are dumped.
  193  *
  194  * Requires:
  195  *\li   'stats' is a valid isc_stats_t.
  196  */
  197 
  198 void
  199 isc_stats_set(isc_stats_t *stats, uint64_t val, isc_statscounter_t counter);
  200 /*%<
  201  * Set the given counter to the specified value.
  202  *
  203  * Requires:
  204  *\li   'stats' is a valid isc_stats_t.
  205  */
  206 
  207 void
  208 isc_stats_set(isc_stats_t *stats, uint64_t val, isc_statscounter_t counter);
  209 /*%<
  210  * Set the given counter to the specified value.
  211  *
  212  * Requires:
  213  *\li   'stats' is a valid isc_stats_t.
  214  */
  215 
  216 void
  217 isc_stats_update_if_greater(isc_stats_t *stats, isc_statscounter_t counter,
  218                 isc_statscounter_t value);
  219 /*%<
  220  * Atomically assigns 'value' to 'counter' if value > counter.
  221  *
  222  * Requires:
  223  *\li   'stats' is a valid isc_stats_t.
  224  *
  225  *\li   counter is less than the maximum available ID for the stats specified
  226  *  on creation.
  227  */
  228 
  229 isc_statscounter_t
  230 isc_stats_get_counter(isc_stats_t *stats, isc_statscounter_t counter);
  231 /*%<
  232  * Returns value currently stored in counter.
  233  *
  234  * Requires:
  235  *\li   'stats' is a valid isc_stats_t.
  236  *
  237  *\li   counter is less than the maximum available ID for the stats specified
  238  *  on creation.
  239  */
  240 
  241 ISC_LANG_ENDDECLS
  242 
  243 #endif /* ISC_STATS_H */