summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-11-14 22:57:13 +0300
committerTom Rini <trini@konsulko.com>2019-12-03 02:23:07 +0300
commit840ef4d43b69a687660b3722b9c4a8a44a2912f8 (patch)
tree6d54af8d723554926ce4a8724588872bdc5e03aa
parentc076e5c9b35fc20cdea076e8eae71126e7cadd4f (diff)
downloadu-boot-840ef4d43b69a687660b3722b9c4a8a44a2912f8.tar.xz
common: Move random-number functions into their own header
Create a new rand.h header file and move functions into it, to reduce the size of common.h Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r--include/common.h6
-rw-r--r--include/net.h1
-rw-r--r--include/rand.h40
-rw-r--r--lib/rand.c1
-rw-r--r--net/link_local.c1
5 files changed, 43 insertions, 6 deletions
diff --git a/include/common.h b/include/common.h
index 52bcc2e591..b09c7aeddd 100644
--- a/include/common.h
+++ b/include/common.h
@@ -325,12 +325,6 @@ char * strmhz(char *buf, unsigned long hz);
/* lib/crc32.c */
#include <u-boot/crc.h>
-/* lib/rand.c */
-#define RAND_MAX -1U
-void srand(unsigned int seed);
-unsigned int rand(void);
-unsigned int rand_r(unsigned int *seedp);
-
/*
* STDIO based functions (can always be used)
*/
diff --git a/include/net.h b/include/net.h
index 75a16e4c8f..d8d187d8af 100644
--- a/include/net.h
+++ b/include/net.h
@@ -16,6 +16,7 @@
#include <asm/byteorder.h> /* for nton* / ntoh* stuff */
#include <env.h>
#include <linux/if_ether.h>
+#include <rand.h>
#define DEBUG_LL_STATE 0 /* Link local state machine changes */
#define DEBUG_DEV_PKT 0 /* Packets or info directed to the device */
diff --git a/include/rand.h b/include/rand.h
new file mode 100644
index 0000000000..c9d15f50a1
--- /dev/null
+++ b/include/rand.h
@@ -0,0 +1,40 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * (C) Copyright 2000-2009
+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+ */
+
+#ifndef __RAND_H
+#define __RAND_H
+
+#define RAND_MAX -1U
+
+/**
+ * srand() - Set the random-number seed value
+ *
+ * This can be used to restart the pseudo-random-number sequence from a known
+ * point. This affects future calls to rand() to start from that point
+ *
+ * @seed: New seed
+ */
+void srand(unsigned int seed);
+
+/**
+ * rand() - Get a 32-bit pseudo-random number
+ *
+ * @returns next random number in the sequence
+ */
+unsigned int rand(void);
+
+/**
+ * rand_r() - Get a 32-bit pseudo-random number
+ *
+ * This version of the function allows multiple sequences to be used at the
+ * same time, since it requires the caller to store the seed value.
+ *
+ * @seed value to use, updated on exit
+ * @returns next random number in the sequence
+ */
+unsigned int rand_r(unsigned int *seedp);
+
+#endif
diff --git a/lib/rand.c b/lib/rand.c
index af4cf3a0e8..d256baf5ce 100644
--- a/lib/rand.c
+++ b/lib/rand.c
@@ -8,6 +8,7 @@
*/
#include <common.h>
+#include <rand.h>
static unsigned int y = 1U;
diff --git a/net/link_local.c b/net/link_local.c
index dd9fcad087..1986b9b9d3 100644
--- a/net/link_local.c
+++ b/net/link_local.c
@@ -14,6 +14,7 @@
#include <common.h>
#include <env.h>
#include <net.h>
+#include <rand.h>
#include "arp.h"
#include "net_rand.h"