"Das U-Boot" Source Tree
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (c) 2019, Linaro Limited
4 */
5
6#if !defined _RNG_H_
7#define _RNG_H_
8
9#include <linux/types.h>
10
11struct udevice;
12
13/**
14 * dm_rng_read() - read a random number seed from the rng device
15 *
16 * The function blocks until the requested number of bytes is read.
17 *
18 * @dev: random number generator device
19 * @buffer: input buffer to put the read random seed into
20 * @size: number of random bytes to read
21 * Return: 0 if OK, -ve on error
22 */
23int dm_rng_read(struct udevice *dev, void *buffer, size_t size);
24
25/**
26 * struct dm_rng_ops - operations for the hwrng uclass
27 *
28 * This structures contains the function implemented by a hardware random
29 * number generation device.
30 */
31struct dm_rng_ops {
32 /**
33 * @read: read a random bytes
34 *
35 * The function blocks until the requested number of bytes is read.
36 *
37 * @read.dev: random number generator device
38 * @read.data: input buffer to read the random seed into
39 * @read.max: number of random bytes to read
40 * @read.Return: 0 if OK, -ve on error
41 */
42 int (*read)(struct udevice *dev, void *data, size_t max);
43};
44
45#endif /* _RNG_H_ */