[PATCH] Add /dev/urandom device.
Sascha Hauer
s.hauer at pengutronix.de
Fri Jul 27 04:30:58 EDT 2012
On Thu, Jul 19, 2012 at 10:33:49AM +0200, Juergen Kilb wrote:
> Nice for testing purposes.
Can we have an extra file with an extra config option for this? I agree
this is nice for debugging, but no need to bloat every build with it.
Sascha
>
> Signed-off-by: Juergen Kilb <J.Kilb at phytec.de>
> ---
> commands/stddev.c | 39 +++++++++++++++++++++++++++++++++++++++
> 1 files changed, 39 insertions(+), 0 deletions(-)
>
> diff --git a/commands/stddev.c b/commands/stddev.c
> index 098aea8..b807df6 100644
> --- a/commands/stddev.c
> +++ b/commands/stddev.c
> @@ -20,7 +20,9 @@
> */
>
> #include <common.h>
> +#include <clock.h>
> #include <init.h>
> +#include <stdlib.h>
>
> static ssize_t zero_read(struct cdev *cdev, void *buf, size_t count, loff_t offset, ulong flags)
> {
> @@ -104,3 +106,40 @@ static int null_init(void)
> }
>
> device_initcall(null_init);
> +
> +static ssize_t urandom_read(struct cdev *cdev, void *buf, size_t count, loff_t offset, ulong flags)
> +{
> + size_t i;
> + unsigned int *buffer;
> +
> + buffer = (unsigned int *) buf;
> +
> + for (i = 0; i < (count / sizeof(size_t)); i++)
> + buffer[i] = rand() | rand() << 16;
> +
> + return count;
> +}
> +
> +static struct file_operations urandomops = {
> + .read = urandom_read,
> + .lseek = dev_lseek_default,
> +};
> +
> +static int urandom_init(void)
> +{
> + struct cdev *cdev;
> +
> + cdev = xzalloc(sizeof(*cdev));
> +
> + cdev->name = "urandom";
> + cdev->size = ~0;
> + cdev->ops = &urandomops;
> +
> + devfs_create(cdev);
> +
> + srand(get_time_ns());
> +
> + return 0;
> +}
> +
> +device_initcall(urandom_init);
> --
> 1.7.0.4
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list