aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/compat/linuxkpi/common/include/linux/random.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/random.h b/sys/compat/linuxkpi/common/include/linux/random.h
index 28475ed2275a..04729319aaad 100644
--- a/sys/compat/linuxkpi/common/include/linux/random.h
+++ b/sys/compat/linuxkpi/common/include/linux/random.h
@@ -28,7 +28,8 @@
*
* $FreeBSD$
*/
-#ifndef _LINUX_RANDOM_H_
+
+#ifndef _LINUX_RANDOM_H_
#define _LINUX_RANDOM_H_
#include <sys/random.h>
@@ -37,8 +38,27 @@
static inline void
get_random_bytes(void *buf, int nbytes)
{
+
if (read_random(buf, nbytes) == 0)
arc4rand(buf, nbytes, 0);
}
-#endif /* _LINUX_RANDOM_H_ */
+static inline u_int
+get_random_int(void)
+{
+ u_int val;
+
+ get_random_bytes(&val, sizeof(val));
+ return (val);
+}
+
+static inline u_long
+get_random_long(void)
+{
+ u_long val;
+
+ get_random_bytes(&val, sizeof(val));
+ return (val);
+}
+
+#endif /* _LINUX_RANDOM_H_ */