1/*
2 * rand.h
3 *
4 * Pseudo-random number generation, based on OpenBSD arc4random().
5 *
6 * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
7 * Copyright (c) 1996 David Mazieres <dm@lcs.mit.edu>
8 *
9 * $Id: rand.h,v 1.4 2002/04/07 19:01:25 dugsong Exp $
10 */
11
12#ifndef DNET_RAND_H
13#define DNET_RAND_H
14
15typedef struct rand_handle rand_t;
16
17__BEGIN_DECLS
18rand_t	*rand_open(void);
19
20int	 rand_get(rand_t *r, void *buf, size_t len);
21int	 rand_set(rand_t *r, const void *seed, size_t len);
22int	 rand_add(rand_t *r, const void *buf, size_t len);
23
24uint8_t	 rand_uint8(rand_t *r);
25uint16_t rand_uint16(rand_t *r);
26uint32_t rand_uint32(rand_t *r);
27
28int	 rand_shuffle(rand_t *r, void *base, size_t nmemb, size_t size);
29
30rand_t	*rand_close(rand_t *r);
31__END_DECLS
32
33#endif /* DNET_RAND_H */
34