Add BIND 9.2.4rc7.
[dragonfly.git] / contrib / bind-9.2.4rc7 / lib / isc / include / isc / random.h
blobdb78157c760f066d996f0867017169fd666d3866
1 /*
2 * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (C) 1999-2001 Internet Software Consortium.
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11 * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15 * PERFORMANCE OF THIS SOFTWARE.
18 /* $Id: random.h,v 1.11.2.1 2004/03/09 06:12:00 marka Exp $ */
20 #ifndef ISC_RANDOM_H
21 #define ISC_RANDOM_H 1
23 #include <isc/lang.h>
24 #include <isc/types.h>
27 * Implements a random state pool which will let the caller return a
28 * series of possibly non-reproducable random values. Note that the
29 * strength of these numbers is not all that high, and should not be
30 * used in cryptography functions. It is useful for jittering values
31 * a bit here and there, such as timeouts, etc.
34 ISC_LANG_BEGINDECLS
36 void
37 isc_random_seed(isc_uint32_t seed);
39 * Set the initial seed of the random state.
42 void
43 isc_random_get(isc_uint32_t *val);
45 * Get a random value.
47 * Requires:
48 * val != NULL.
51 isc_uint32_t
52 isc_random_jitter(isc_uint32_t max, isc_uint32_t jitter);
54 * Get a random value between (max - jitter) and (max).
55 * This is useful for jittering timer values.
58 ISC_LANG_ENDDECLS
60 #endif /* ISC_RANDOM_H */