diff mbox series

[U-Boot,v2,05/41] common: Move random-number functions into their own header

Message ID 20191108125120.v2.5.I7aa3d4f52a2b16462b1c11eb90dcca7e2a1e52a5@changeid
State Changes Requested
Delegated to: Tom Rini
Headers show
Series common: Further reduce common.h | expand

Commit Message

Simon Glass Nov. 8, 2019, 7:53 p.m. UTC
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>
---

Changes in v2: None

 include/common.h |  6 ------
 include/net.h    |  1 +
 include/rand.h   | 40 ++++++++++++++++++++++++++++++++++++++++
 lib/rand.c       |  1 +
 net/link_local.c |  1 +
 5 files changed, 43 insertions(+), 6 deletions(-)
 create mode 100644 include/rand.h

Comments

Tom Rini Nov. 11, 2019, 2:18 p.m. UTC | #1
On Fri, Nov 08, 2019 at 12:53:12PM -0700, Simon Glass wrote:
> 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>
> ---
> 
> Changes in v2: None
> 
>  include/common.h |  6 ------
>  include/net.h    |  1 +
>  include/rand.h   | 40 ++++++++++++++++++++++++++++++++++++++++
>  lib/rand.c       |  1 +
>  net/link_local.c |  1 +
>  5 files changed, 43 insertions(+), 6 deletions(-)
>  create mode 100644 include/rand.h
> 
> 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 */

OK, but common.h includes net.h, and I don't see this addressed further
in the series.  So this is a step in the right direction, but does it
get messy to not include it?
Simon Glass Nov. 12, 2019, 1:49 p.m. UTC | #2
Hi Tom,

On Mon, 11 Nov 2019 at 07:18, Tom Rini <trini@konsulko.com> wrote:
>
> On Fri, Nov 08, 2019 at 12:53:12PM -0700, Simon Glass wrote:
> > 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>
> > ---
> >
> > Changes in v2: None
> >
> >  include/common.h |  6 ------
> >  include/net.h    |  1 +
> >  include/rand.h   | 40 ++++++++++++++++++++++++++++++++++++++++
> >  lib/rand.c       |  1 +
> >  net/link_local.c |  1 +
> >  5 files changed, 43 insertions(+), 6 deletions(-)
> >  create mode 100644 include/rand.h
> >
> > 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 */
>
> OK, but common.h includes net.h, and I don't see this addressed further
> in the series.  So this is a step in the right direction, but does it
> get messy to not include it?

Even after this series there are about another 40 functions to remove
from common.h - once that is done I can look at dropping the includes.

I suspect it should be possible to remove net.h provided that it only
includes network functions.

Regards,
Simon
Tom Rini Nov. 12, 2019, 1:54 p.m. UTC | #3
On Tue, Nov 12, 2019 at 06:49:21AM -0700, Simon Glass wrote:
> Hi Tom,
> 
> On Mon, 11 Nov 2019 at 07:18, Tom Rini <trini@konsulko.com> wrote:
> >
> > On Fri, Nov 08, 2019 at 12:53:12PM -0700, Simon Glass wrote:
> > > 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>
> > > ---
> > >
> > > Changes in v2: None
> > >
> > >  include/common.h |  6 ------
> > >  include/net.h    |  1 +
> > >  include/rand.h   | 40 ++++++++++++++++++++++++++++++++++++++++
> > >  lib/rand.c       |  1 +
> > >  net/link_local.c |  1 +
> > >  5 files changed, 43 insertions(+), 6 deletions(-)
> > >  create mode 100644 include/rand.h
> > >
> > > 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 */
> >
> > OK, but common.h includes net.h, and I don't see this addressed further
> > in the series.  So this is a step in the right direction, but does it
> > get messy to not include it?
> 
> Even after this series there are about another 40 functions to remove
> from common.h - once that is done I can look at dropping the includes.
> 
> I suspect it should be possible to remove net.h provided that it only
> includes network functions.

OK, so just laying ground work for future cleanups, I can accept that,
thanks!

Reviewed-by: Tom Rini <trini@konsulko.com>
diff mbox series

Patch

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"