xref: /openbsd/sys/dev/pci/drm/include/linux/random.h (revision f005ef32)
1 /* Public domain. */
2 
3 #ifndef _LINUX_RANDOM_H
4 #define _LINUX_RANDOM_H
5 
6 #include <sys/types.h>
7 #include <sys/systm.h>
8 
9 static inline uint32_t
get_random_u32(void)10 get_random_u32(void)
11 {
12 	return arc4random();
13 }
14 
15 static inline uint32_t
get_random_u32_below(uint32_t x)16 get_random_u32_below(uint32_t x)
17 {
18 	return arc4random_uniform(x);
19 }
20 
21 static inline unsigned int
get_random_int(void)22 get_random_int(void)
23 {
24 	return arc4random();
25 }
26 
27 static inline uint64_t
get_random_u64(void)28 get_random_u64(void)
29 {
30 	uint64_t r;
31 	arc4random_buf(&r, sizeof(r));
32 	return r;
33 }
34 
35 static inline unsigned long
get_random_long(void)36 get_random_long(void)
37 {
38 #ifdef __LP64__
39 	return get_random_u64();
40 #else
41 	return get_random_u32();
42 #endif
43 }
44 
45 static inline uint32_t
prandom_u32_max(uint32_t x)46 prandom_u32_max(uint32_t x)
47 {
48 	return arc4random_uniform(x + 1);
49 }
50 
51 static inline void
get_random_bytes(void * buf,int nbytes)52 get_random_bytes(void *buf, int nbytes)
53 {
54 	arc4random_buf(buf, nbytes);
55 }
56 
57 #endif
58