blob: 37af554363170d3680aefe4fd581449a48d16c4e [file] [log] [blame]
Sughosh Ganua2487682019-12-28 23:58:27 +05301// 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
9struct udevice;
10
11/**
12 * dm_rng_read() - read a random number seed from the rng device
Sughosh Ganua2487682019-12-28 23:58:27 +053013 *
Heinrich Schuchardtc7ff87e2020-06-13 12:29:52 +020014 * The function blocks until the requested number of bytes is read.
15 *
16 * @dev: random number generator device
17 * @buffer: input buffer to put the read random seed into
18 * @size: number of random bytes to read
19 * Return: 0 if OK, -ve on error
Sughosh Ganua2487682019-12-28 23:58:27 +053020 */
21int dm_rng_read(struct udevice *dev, void *buffer, size_t size);
22
Heinrich Schuchardtc7ff87e2020-06-13 12:29:52 +020023/**
24 * struct dm_rng_ops - operations for the hwrng uclass
25 *
26 * This structures contains the function implemented by a hardware random
27 * number generation device.
28 */
Sughosh Ganua2487682019-12-28 23:58:27 +053029struct dm_rng_ops {
30 /**
Heinrich Schuchardtc7ff87e2020-06-13 12:29:52 +020031 * @read: read a random bytes
Sughosh Ganua2487682019-12-28 23:58:27 +053032 *
Heinrich Schuchardtc7ff87e2020-06-13 12:29:52 +020033 * The function blocks until the requested number of bytes is read.
Sughosh Ganua2487682019-12-28 23:58:27 +053034 *
Heinrich Schuchardtc7ff87e2020-06-13 12:29:52 +020035 * @read.dev: random number generator device
36 * @read.data: input buffer to read the random seed into
37 * @read.max: number of random bytes to read
38 * @read.Return: 0 if OK, -ve on error
Sughosh Ganua2487682019-12-28 23:58:27 +053039 */
40 int (*read)(struct udevice *dev, void *data, size_t max);
41};
42
43#endif /* _RNG_H_ */