Branch data Line data Source code
1 : : /*
2 : : * Copyright (c) 2008, 2009, 2010, 2012 Nicira, Inc.
3 : : *
4 : : * Licensed under the Apache License, Version 2.0 (the "License");
5 : : * you may not use this file except in compliance with the License.
6 : : * You may obtain a copy of the License at:
7 : : *
8 : : * http://www.apache.org/licenses/LICENSE-2.0
9 : : *
10 : : * Unless required by applicable law or agreed to in writing, software
11 : : * distributed under the License is distributed on an "AS IS" BASIS,
12 : : * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 : : * See the License for the specific language governing permissions and
14 : : * limitations under the License.
15 : : */
16 : :
17 : : #ifndef RANDOM_H
18 : : #define RANDOM_H 1
19 : :
20 : : #include <stddef.h>
21 : : #include <stdint.h>
22 : :
23 : : void random_init(void);
24 : : void random_set_seed(uint32_t);
25 : :
26 : : void random_bytes(void *, size_t);
27 : : uint32_t random_uint32(void);
28 : : uint64_t random_uint64(void);
29 : :
30 : : static inline int
31 : 35586914 : random_range(int max)
32 : : {
33 : 35586914 : return random_uint32() % max;
34 : : }
35 : :
36 : : static inline uint8_t
37 : : random_uint8(void)
38 : : {
39 : : return random_uint32();
40 : : }
41 : :
42 : : static inline uint16_t
43 : 66385114 : random_uint16(void)
44 : : {
45 : 66385114 : return random_uint32();
46 : : }
47 : :
48 : : #endif /* random.h */
|